Capítulo 07 · Generación · 7 min
Elegir la siguiente palabra
Temperature, top-k, top-p. El arte de convertir una distribución de probabilidades en texto.
Generar no es elegir siempre el maximo
Un modelo entrenado produce una distribucion de probabilidad. Pero una distribucion no es una frase. Hay que convertirla en un token.
La opcion mas simple seria tomar siempre el token mas probable. Funciona para tareas cerradas, pero produce texto rigido, repetitivo, a veces bloqueado. Para escribir, explicar o explorar, necesitamos un poco de variacion.
Juega con la temperature: a 0, el modelo es determinista y repetitivo; a 1.5, se vuelve creativo hasta volverse incoherente. Top-k y top-p cortan la cola de candidatos improbables sin tocar a los probables.
Temperatura
La temperatura controla la forma de la distribucion antes del muestreo.
- Temperatura baja: los tokens probables se vuelven aun mas dominantes.
- Temperatura alta: la distribucion se aplana y deja entrar opciones menos probables.
No cambia lo que el modelo sabe. Cambia cuanto riesgo aceptamos al elegir.
Top-k
Top-k corta la distribucion y conserva solo los k tokens mas probables. Si k = 5, todo lo que no este en el top 5 queda imposible.
Es simple y eficaz, pero rigido: a veces el modelo solo tiene dos buenas opciones; a veces tiene treinta. Top-k no lo sabe.
Top-p
Top-p, o nucleus sampling, conserva tokens hasta alcanzar una probabilidad acumulada p.
Si el modelo esta muy seguro, el nucleo puede contener uno o dos tokens. Si esta indeciso, se abre para incluir mas candidatos.
Top-p adapta el tamaño de la lista al nivel de incertidumbre del modelo.
Por que esto importa
Los parametros de muestreo explican por que dos respuestas del mismo modelo pueden diferir aunque el prompt sea identico.
Tambien explican por que un ajuste malo puede degradar un buen modelo:
- temperatura demasiado baja → texto plano, repetitivo
- temperatura demasiado alta → respuestas incoherentes
- top-k demasiado pequeño → falta de diversidad
- top-p demasiado alto → demasiada cola rara
Tres parametros mas que conocer
Mas alla de temperatura / top-k / top-p, hay otros ajustes que aparecen en casi todas las APIs.
Repetition penalty (o frequency penalty / presence penalty en OpenAI). Penaliza los tokens que ya aparecieron en la salida. Util para romper bucles repetitivos sin tener que subir la temperatura. Valor tipico: 1.05–1.2.
Stop sequences. Una lista de cadenas de caracteres que, si aparecen en la salida, paran la generacion al instante. Imprescindible para usos estructurados: en un dialogo formateado, paras en <|im_end|> o \n\nUser: para impedir que el modelo siga la conversacion solo.
Beam search. En vez de muestrear estocasticamente, mantienes en paralelo las k mejores secuencias parciales en cada paso, y al final eliges la que maximiza la probabilidad global. El resultado es mas "liso" pero a menudo menos natural. Se usa en traduccion automatica y reconocimiento de voz, mucho menos en generacion creativa.
Lo siguiente
Hasta ahora hemos visto un modelo que predice texto. Pero un asistente debe hacer algo mas: seguir instrucciones, rechazar ciertas peticiones, adoptar un tono util. Eso no aparece automaticamente con el pre-entrenamiento.
Hace falta alinearlo.
Actualizado el