Decodificación especulativa
El modelo grande genera texto correctamente, pero despacio. Un modelo pequeño puede proponer con rapidez varios fragmentos siguientes. Quieres aprovechar su trabajo manteniendo el control del modelo grande sobre el resultado final.
Speculative Decoding crea una propuesta de continuación más barata y luego la verifica con el modelo objetivo. En el algoritmo clásico aceptamos la secuencia inicial de tokens aprobados —fragmentos de texto— hasta el primer rechazo, y entonces calculamos una corrección.
El modelo grande puede evaluar una propuesta conocida para varias posiciones en paralelo. La variante correcta de muestreo usa probabilidades específicas de aceptación y corrección para conservar la distribución objetivo. La simple prueba «¿suena razonable?» no lo garantiza.
La aceleración depende del coste de la propuesta, el número de aceptaciones y el hardware. Si el modelo pequeño discrepa a menudo del grande, el trabajo adicional puede anular la mejora. La demostración siguiente muestra la conservación de las probabilidades, no un tiempo de ejecución garantizado.
Fuente del mecanismo: Leviathan et al., §2, algoritmo 1.
Mecanismo y detalles
Es una forma de acelerar Decode conservando la distribución del modelo objetivo bajo las condiciones del algoritmo. No basta con comprobar si la propuesta «parece buena».
Por qué hace falta una corrección
Llamemos a la distribución objetivo y a la del borrador, para el mismo prefijo y el mismo conjunto de tokens. Ambas incluyen las reglas de muestreo elegidas, por ejemplo la temperatura y el muestreo top-p. Aceptamos la propuesta con probabilidad:
La propuesta muestreada tiene . Tras rechazarla, muestreamos de una distribución proporcional a . Este paso completa exactamente la masa de probabilidad que falta. Si , no se rechaza nada y no hace falta corrección. Leviathan et al., §2.3 y demostración A.1.
Ejemplo propio: para los tokens A, B y C, sean y . La masa incondicional de las propuestas aceptadas es . Los 0,4 restantes deben repartirse a partes iguales entre B y C. Muestrear la corrección de la distribución normal daría, en cambio, el resultado .
El experimento muestra el balance exacto de una posición, sin simular todo el bucle ni el tiempo de ejecución. Conservar la distribución no garantiza un texto idéntico con la misma semilla: los algoritmos consumen la aleatoriedad de formas distintas y los cálculos tienen precisión limitada. Chen et al., §4.2 y §6.1 lo explican.
La aceleración depende del porcentaje de aceptación, del coste del borrador y del hardware. Un borrador demasiado caro o muchos rechazos pueden anular el ahorro, aunque se conserve la distribución correcta.
Utilizo contenido generado por IA como parte de mi proceso de aprendizaje diario.