1fxxcvxt Yxijdwf9qjebqq.png

Una inmersión profunda en la decodificación estocástica con temperatura, top_p, top_k y min_p

Código Python de ejemplo tomado del SDK Python de OpenAI donde se llama a la API de finalización de chat con los parámetros temperatura y top_p.
Al llamar a la API de OpenAI con el SDK de Python, ¿alguna vez se preguntó qué hacen exactamente los parámetros de temperatura y top_p?

Cuando se le hace una pregunta a un Modelo de Lenguaje Grande (LLM), el modelo genera una probabilidad para cada token posible en su vocabulario.

Después de muestrear un token de esta distribución de probabilidad, podemos agregar el token seleccionado a nuestro mensaje de entrada para que el LLM pueda generar las probabilidades para el próximo token.

Este proceso de muestreo se puede controlar mediante parámetros como el famoso temperature y top_p.

En este artículo, explicaré y visualizaré las estrategias de muestreo que definen el comportamiento de salida de los LLM. Al comprender qué hacen estos parámetros y configurarlos según nuestro caso de uso, podemos mejorar la salida generada por los LLM.

Para este artículo, utilizaré Muy bueno como el motor de inferencia y el nuevo de Microsoft Phi-3.5-mini-instrucciones Modelo con cuantificación AWQ. Para ejecutar este modelo localmente, utilizo la GPU NVIDIA GeForce RTX 2060 de mi computadora portátil.

Tabla de contenido

· Comprensión del muestreo con Logprobs
Teoría de la decodificación de LLM
Recuperación de Logprobs con el SDK de Python de OpenAI
· Descodificación codiciosa
· Temperatura
· Muestreo de los mejores k
· Muestreo de top-p
· Combinando Top-p