Tendencias del momento
#
Bonk Eco continues to show strength amid $USELESS rally
#
Pump.fun to raise $1B token sale, traders speculating on airdrop
#
Boop.Fun leading the way with a new launchpad on Solana.
Estás en una entrevista para Ingeniero de IA en OpenAI.
El entrevistador pregunta:
"Nuestro modelo GPT genera 100 tokens en 42 segundos.
¿Cómo lo harías 5 veces más rápido?"
Tú: "Asignaré más GPUs para una generación más rápida."
Entrevista terminada.
Esto es lo que te perdiste:
El verdadero cuello de botella no es el cálculo, es el cálculo redundante.
Sin almacenamiento en caché KV, tu modelo recalcula claves y valores para cada token, repitiendo trabajo.
- con almacenamiento en caché KV → 9 segundos
- sin almacenamiento en caché KV → 42 segundos (~5x más lento)
¡Profundicemos para entender cómo funciona!
Para entender la caché KV, debemos saber cómo los LLMs generan tokens.
- El Transformer produce estados ocultos para todos los tokens.
- Los estados ocultos se proyectan en el espacio de vocabulario.
- Los logits del último token se utilizan para generar el siguiente token.
- Repetir para los tokens subsiguientes.
Revisa esto👇
Así, para generar un nuevo token, solo necesitamos el estado oculto del token más reciente.
No se requieren ninguno de los otros estados ocultos.
A continuación, veamos cómo se calcula el último estado oculto dentro de la capa del transformador a partir del mecanismo de atención.
Durante la atención:
La última fila del producto consulta-clave implica:
- el último vector de consulta.
- todos los vectores de clave.
Además, la última fila del resultado final de atención implica:
- el último vector de consulta.
- todos los vectores de clave y valor.
Consulta esta visualización para entender mejor:
La información anterior sugiere que para generar un nuevo token, cada operación de atención en la red solo necesita:
- el vector de consulta del último token.
- todos los vectores de clave y valor.
Pero hay un insight clave más aquí.
A medida que generamos nuevos tokens:
- Los vectores KV utilizados para TODOS los tokens anteriores no cambian.
Por lo tanto, solo necesitamos generar un vector KV para el token generado un paso antes.
El resto de los vectores KV se pueden recuperar de una caché para ahorrar computación y tiempo.
¡Esto se llama almacenamiento en caché KV!
Para reiterar, en lugar de calcular redundante los vectores KV de todos los tokens de contexto, guárdalos en caché.
Para generar un token:
- Genera el vector QKV para el token generado un paso antes.
- Obtén todos los demás vectores KV de la caché.
- Calcula la atención.
Mira esto👇
El almacenamiento en caché KV acelera la inferencia al calcular la caché KV del prompt antes de generar tokens.
Esta es exactamente la razón por la que ChatGPT tarda más en generar el primer token que en el resto.
Este retraso se conoce como tiempo hasta el primer token (TTFT).
¡Mejorar el TTFT es un tema para otro día!
217
Parte superior
Clasificación
Favoritos
