Estado y capacidad
Para 4096 tokens son 512 MiB de carga KV. No incluye pesos ni buffers.
Los enlaces con ?t= abren el vídeo en un segundo concreto.
Las ideas que debes retener
Qué guarda realmente el KV cache
En atención causal, cuando el modelo ya ha procesado un token, las proyecciones K y V de ese token no necesitan recalcularse desde cero en cada paso posterior. El runtime puede…
Una fórmula útil para estimar memoria — con límites explícitos
Para un transformer autoregresivo de atención completa donde cada capa guarda K y V con forma estándar, una estimación del KV cache de una secuencia es:
Ejemplo ilustrativo, no benchmark
Supongamos una arquitectura ficticia con:
Ve directamente a una sección
Leer transcripción revisada
Vídeo sin narración. Esta transcripción reproduce el texto visual del vídeo; no atribuye una voz inexistente.
El contexto ocupa memoria
Cada token guarda claves y valores por capa y cabeza KV. También importa la precisión.
Con 32 capas, 8 cabezas, dimensión 128 y dos bytes, resultan 128 KiB por token.
Para 4096 tokens son 512 MiB de carga KV. No incluye pesos ni buffers.
La GPU no es toda KV
Partimos de dieciséis GiB en un ejemplo simplificado.
Diez GiB alojan pesos y dos alojan buffers y otras reservas.
Quedan cuatro para KV. La capacidad por peticiones depende del estado vivo, no sólo de FLOPs.
Separar lógico y físico
La secuencia necesita seis posiciones. Una reserva máxima de dieciséis deja diez sin utilizar.
Con bloques de cuatro, dos bloques físicos alojan esas seis posiciones mediante una tabla.
Quedan dos posiciones vacías en el último bloque. Paging reduce desperdicio; no lo elimina todo.
Terminar libera una plaza
A y B comparten una iteración de decode. A termina antes que B.
El scheduler libera el KV de A y admite C mientras B sigue generando.
Continuous batching cambia quién participa en cada paso. No es lo mismo que paginar memoria.
Mover estado también cuesta
Un bloque expulsado de la GPU permanece en memoria de CPU.
Para reutilizarlo, debe cruzar la interconexión y volver a estar residente.
Más capacidad total puede añadir movimiento al camino crítico. Mide transferencias y espera, no sólo ocupación.
Cancelar libera estado
Una petición reserva tres bloques y continúa creciendo.
La cancelación detiene el trabajo y devuelve sus bloques al conjunto libre.
La contabilidad debe cerrar también con errores. Un bloque huérfano reduce capacidad para las peticiones siguientes.