ElemedexEnciclopedia de bolsillo de arquitecturas de IA

Glosario (MT) › Piezas de arquitectura

MT092

Caché KV

También: caché de claves y valores

En inglés: KV cache

Memoria en la que un modelo generativo guarda las claves y valores de atención de los tokens ya procesados, para no recalcularlos al producir cada token nuevo.

Un modelo autorregresivo genera de a un token: agrega el último al texto y vuelve a pasar todo por la red (Alammar y Grootendorst, 2024, pp. 75–76). Pero gracias a la máscara causal, las claves y valores de los tokens anteriores no cambian cuando se agrega uno nuevo. Entonces se guardan: en cada paso solo se calculan la consulta, la clave y el valor del token nuevo, y la consulta se compara con las claves almacenadas. Eso es la caché KV (Alammar y Grootendorst, 2024, pp. 83–84). En una prueba de Alammar y Grootendorst (2024), generar 100 tokens con un modelo pequeño tardó 4,5 segundos con caché y 21,8 sin ella (2024, p. 85).

El precio es memoria, y crece con el largo del contexto. Por cada token hay que guardar una clave y un valor en cada capa: unos 2 × capas × d números. Para GPT-3 (96 capas, d = 12.288; (Brown et al., 2020, sec. 2.1)) eso da ≈ 2,4 millones de números por token: ≈ 4,7 MB en 16 bits, y ≈ 9,7 GB para una ventana de 2048 tokens (cálculo propio, aproximado). Por eso la caché, y no solo los pesos, limita cuán larga puede ser la ventana de contexto y cuántos usuarios atiende a la vez un servidor.

Cómo se la aligera. La atención multiconsulta hace que todas las cabezas compartan una sola clave y un solo valor; la atención por grupos (usada en Llama 2 y 3) comparte entre grupos de cabezas (Alammar y Grootendorst, 2024, pp. 98–100). Pope et al. (2023) muestran que compartir claves y valores permite contextos hasta 32 veces más largos. Los modelos de espacio de estados como Mamba evitan el problema de raíz: su memoria no crece.

Un malentendido frecuente. La «memoria» de una conversación con ChatGPT (InstructGPT) no es un recuerdo del modelo: los modelos de lenguaje no conservan estado entre llamadas, y para que «recuerden» hay que volver a enviarles el historial (Alammar y Grootendorst, 2024, p. 209). La caché KV es solo un atajo para no repetir cuentas dentro de una misma generación.

Fuentes