Um bug na função `generate()` do Hugging Face causa saídas incorretas quando `past_key_values` é um `DynamicCache` construído externamente. Este problema afeta métodos de compressão de cache KV como SnapKV, H2O e KIVI que reconstruem caches a partir de dados de prefill. A causa raiz é a falha em propagar o contexto posicional, levando a uma perda de precisão de 10,7pp no Qwen3-VL-8B.

  • Adicionar método de classe `DynamicCache.from_kv_tensors()` para reconstruir caches com segurança e estado interno adequado.
  • Exigir `attention_mask` e `position_ids` explícitos durante a geração para restaurar a qualidade base.
  • O novo método pré-aloca listas internas via parâmetro opcional `num_hidden_layers` para compatibilidade com versões anteriores.

Esta correção garante que fluxos de trabalho de compressão KV produzam saídas confiáveis ao lidar corretamente com o comprimento da sequência e as máscaras de atenção.