Todos los vídeos Inferencia de LLMs 2:13

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.

Resumen del vídeo

Las ideas que debes retener

01

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…

02

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:

03

Ejemplo ilustrativo, no benchmark

Supongamos una arquitectura ficticia con:

Momentos clave

Ve directamente a una sección

  1. El contexto ocupa memoria
  2. La GPU no es toda KV
  3. Separar lógico y físico
  4. Terminar libera una plaza
  5. Mover estado también cuesta
  6. Cancelar libera estado
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.