Un error en la función `generate()` de Hugging Face provoca salidas incorrectas cuando `past_key_values` es un `DynamicCache` construido externamente. Este problema afecta a métodos de compresión de caché KV como SnapKV, H2O y KIVI que reconstruyen cachés a partir de datos de prefill. La causa raíz es la falta de propagación del contexto posicional, lo que provoca una pérdida de precisión de 10,7 puntos porcentuales en Qwen3-VL-8B.
- Añadir el método de clase `DynamicCache.from_kv_tensors()` para reconstruir cachés de forma segura con el estado interno adecuado.
- Requerir `attention_mask` y `position_ids` explícitos durante la generación para restaurar la calidad base.
- El nuevo método preasigna listas internas mediante un parámetro opcional `num_hidden_layers` para compatibilidad con versiones anteriores.
Esta corrección asegura que los flujos de trabajo de compresión KV produzcan salidas fiables manejando correctamente la longitud de secuencia y las máscaras de atención.