Temas en tendencia
#
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 se hace que sea 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 la computación, es la computación redundante.
Sin caché KV, tu modelo recalcula claves y valores para cada token, repitiendo el trabajo.
- con caché KV → 9 segundos
- sin caché KV → 42 segundos (~5 veces más lento)
¡Vamos a profundizar para entender cómo funciona!
Para comprender el almacenamiento en caché de KV, debemos saber cómo los LLM generan tokens.
- 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.
- Repita para los tokens posteriores.
Mira esto👇
Por lo tanto, para generar un nuevo token, solo necesitamos el estado oculto del token más reciente.
No se requiere ninguno de los otros estados ocultos.
A continuación, veamos cómo se calcula el último estado oculto dentro de la capa transformadora a partir del mecanismo de atención.
Durante la atención:
La última fila de query-key-product implica:
- el último vector de consulta.
- todos los vectores clave.
Además, la última fila del resultado final de la atención implica:
- el último vector de consulta.
- Todos los vectores clave y de valor.
Consulte esta imagen para comprender mejor:
La información anterior sugiere que para generar un nuevo token, cada operación de atención en la red solo necesita:
- vector de consulta del último token.
- Todos los vectores clave y de valor.
Pero hay una idea 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 tiempo y cómputo.
¡Esto se llama almacenamiento en caché KV!
Para reiterar, en lugar de calcular de forma redundante los vectores KV de todos los tokens de contexto, colóquelos en caché.
Para generar un token:
- Genere un vector QKV para el token generado un paso antes.
- Obtener todos los demás vectores KV de la caché.
- Calcule la atención.
Mira esto👇
La caché KV acelera la inferencia calculando la caché KV del prompt antes de generar los tokens.
Por eso mismo ChatGPT tarda más en generar el primer token que el resto.
Este retraso se conoce como tiempo hasta el primer token (TTFT).
¡Mejorar la TTFT es un tema para otro día!
171
Populares
Ranking
Favoritas
