La capa final del modelo produce un vector de tamaño V (tamaño del vocabulario, típicamente 32K–128K). Cada elemento es un logit para ese token. Softmax los convierte en probabilidades: P(token_i) = exp(logit_i) / ∑ exp(logit_j). Antes de softmax, los logits pueden ser cualquier número real — positivo, negativo o cero. Un logit de 10 vs. 5 significa que el modelo considera el primer token aproximadamente e^5 ≈ 150x más probable.
Varias técnicas trabajan directamente sobre logits. La temperatura divide todos los logits por T antes de softmax (T<1 agudiza, T>1 aplana). Top-k pone en cero todos los logits excepto los k más altos. Top-p (nucleus sampling) pone en cero los logits para tokens fuera del conjunto más pequeño cuya probabilidad acumulada excede p. El logit bias añade un offset fijo a los logits de tokens específicos — añadir +10 al logit de "JSON" hace que el modelo prefiera fuertemente empezar con JSON. La penalización de repetición reduce los logits de tokens generados recientemente.
La mayoría de las APIs pueden devolver log-probabilidades (logaritmo de la salida softmax) junto con los tokens generados. Estas son útiles para: medir la confianza del modelo (baja log-prob = incierto), calibrar salidas (¿las predicciones con 90% de confianza son correctas el 90% del tiempo?), y construir clasificadores a partir de LLMs (comparar log-probs de diferentes completaciones). Las log-probs son más estables numéricamente que las probabilidades crudas para valores extremos.