Saltar al contenido principal

Capítulo 1: Optimización de Inferencia

Caché KV​

Almacene pares clave-valor calculados para evitar recálculos:

# Sin caché KV: recalcula todos los KV para cada nuevo token
# Con caché KV: solo calcula KV para el nuevo token

class KVCache:
def __init__(self, max_batch, max_seq, num_heads, head_dim):
self.k_cache = torch.zeros(max_batch, num_heads, max_seq, head_dim)
self.v_cache = torch.zeros(max_batch, num_heads, max_seq, head_dim)

def update(self, k, v, position):
self.k_cache[:, :, position] = k
self.v_cache[:, :, position] = v

Decodificación Especulativa​

Utilice un modelo pequeño para redactar y uno grande para verificar:

# 1. Redactar: el modelo pequeño genera N tokens rápidamente
# 2. Verificar: el modelo grande verifica los N tokens en paralelo
# 3. Acepta los tokens coincidentes, regenera desde la primera discrepancia

Batching Continuo​

Procese múltiples solicitudes simultáneamente:

EstrategiaRendimientoLatencia
EstáticaBajoConsistente
ContinuaAltoVariable