Sebuah bug dalam fungsi `generate()` Hugging Face menyebabkan output yang salah ketika `past_key_values` adalah `DynamicCache` yang dibangun secara eksternal. Masalah ini memengaruhi metode kompresi cache KV seperti SnapKV, H2O, dan KIVI yang merekonstruksi cache dari data prefill. Penyebab utamanya adalah kegagalan dalam meneruskan konteks posisi, yang menyebabkan penurunan akurasi sebesar 10,7pp pada Qwen3-VL-8B.

  • Tambahkan metode kelas `DynamicCache.from_kv_tensors()` untuk merekonstruksi cache dengan aman menggunakan keadaan internal yang benar.
  • Wajibkan `attention_mask` dan `position_ids` eksplisit selama generasi untuk memulihkan kualitas dasar.
  • Metode baru ini mengalokasikan daftar internal sebelumnya melalui parameter opsional `num_hidden_layers` untuk kompatibilitas mundur.

Perbaikan ini memastikan bahwa alur kerja kompresi KV menghasilkan output yang andal dengan menangani panjang urutan dan mask perhatian secara benar.