Decoding autoregresif menambahkan tensor key dan value ke cache pada setiap layer transformer. Cache mencegah token lama diproyeksikan ulang menjadi key dan value, tetapi kebutuhan penyimpanannya terus bertambah bersama panjang sequence. Kuantisasi KV cache mengubah representasi penyimpanan tersebut: entri lama atau entri tertentu dikodekan dengan bit lebih sedikit, lalu direkonstruksi saat dipakai oleh attention.

Mekanisme ini merupakan pertukaran pada format memori. Token tidak dihapus dari konteks attention dan bobot model tidak diubah. Jumlah byte untuk state cache berkurang, dengan konsekuensi berupa error kuantisasi, metadata skala atau zero point, serta kerja konversi pada jalur decode.

Pertumbuhan cache menjadikan presisi sebagai parameter sistem

Untuk decoder dengan batch size (B), panjang sequence (T), jumlah layer bercache (L), jumlah head key-value (H_{kv}), dan dimensi head (D), cache dense sederhana menyimpan key sekaligus value:

[ N_{KV} = 2 B T L H_{kv} D ]

elemen.

Jika setiap elemen memakai (p) byte, payload-nya kira-kira:

[ M_{KV} = 2 B T L H_{kv} D p ]

di luar efek allocator dan metadata tambahan. Faktor linear terhadap (T) membuat representasi cache makin penting ketika konteks, batch, atau jumlah request serentak membesar.

Mengganti elemen cache dari representasi 16-bit ke kode low-bit memang mengecilkan payload, tetapi rasio akhirnya tidak persis sama dengan rasio bit width. Grup kuantisasi tetap membutuhkan skala dan, pada skema affine, zero point. Padding, granularitas packing, buffer rekonstruksi sementara, dan area residual berpresisi penuh juga dapat menambah penggunaan memori.

Kuantisasi memetakan grup ke ruang kode yang lebih kecil

Skema affine yang umum memberikan skala (s) dan zero point (z) untuk satu grup nilai cache. Kode integer yang disimpan dapat dinyatakan secara konseptual sebagai:

[ q = \operatorname{clamp}(\operatorname{round}(x/s) + z) ]

sedangkan rekonstruksinya:

[ \hat{x} = s(q-z) ]

Nilai hasil rekonstruksi (\hat{x}) umumnya tidak identik dengan (x) semula. Attention akhirnya bekerja dengan aproksimasi key atau value cache setelah rekonstruksi.

Grouping menentukan rentang nilai yang berbagi parameter kuantisasi. Grup lebih besar membagi biaya metadata ke lebih banyak elemen, tetapi memaksa lebih banyak nilai memakai skala yang sama. Grup lebih kecil dapat menyesuaikan rentang lokal secara lebih rapat dengan konsekuensi metadata dan kerja kuantisasi yang lebih besar.

Pilihan sumbu grouping juga terkait dengan struktur statistik tensor key dan value. KIVI, misalnya, melaporkan kuantisasi per-channel untuk key dan per-token untuk value berdasarkan pola outlier pada model yang mereka evaluasi. Hasil tersebut merupakan karakteristik metode dan pengukurannya, bukan aturan universal bagi setiap quantizer cache.

Error pada key mengganggu skor attention

Untuk satu head attention, skor bergantung pada query (Q) dan key cache (K):

[ S = QK^\top / \sqrt{d} ]

Jika key hasil rekonstruksi adalah (\hat{K} = K + E_K), skornya menjadi:

[ \hat{S} = Q(K + E_K)^\top / \sqrt{d} ]

sehingga gangguan pada skor memuat:

[ \Delta S = QE_K^\top / \sqrt{d} ]

sebelum softmax.

Softmax kemudian mengubah pergeseran skor menjadi perubahan bobot attention. Efek akhirnya bergantung pada data: besar error rekonstruksi yang sama tidak selalu menghasilkan perubahan output yang sama karena query, margin skor, dan distribusi key pesaing dapat berbeda.

Karena itu, error rekonstruksi tensor yang kecil secara rata-rata tidak otomatis menjamin probabilitas token atau sequence hasil generasi tetap identik.

Error pada value masuk setelah bobot attention

Value berada pada posisi berbeda dalam komputasi attention. Jika (P) adalah matriks bobot attention, output-nya:

[ O = PV ]

dan value hasil rekonstruksi (\hat{V} = V + E_V) menghasilkan:

[ \hat{O} = P(V + E_V) = O + PE_V ]

ketika (P) dianggap tetap.

Error key dapat mengubah bobot melalui jalur skor, sedangkan error value dicampurkan oleh bobot setelah softmax. Quantizer tertentu karena itu dapat memakai grouping atau kebijakan presisi yang berbeda untuk key dan value. Memperlakukan keduanya secara identik merupakan pilihan implementasi, bukan aturan arsitektural transformer attention.

Residual cache memindahkan konversi dari token terbaru

Sebagian runtime mempertahankan area terbatas untuk key dan value terbaru dalam presisi komputasi, lalu mengkuantisasi entri yang lebih lama secara batch. Hugging Face Transformers memakai pola ini melalui residual cache pada implementasi quantized cache.

Secara konseptual, state dibagi menjadi dua area:

token lama                    token terbaru
+----------------------+     +------------------+
| K,V low-bit + params |     | K,V asli         |
+----------------------+     +------------------+
          |                         |
          +------ attention --------+

Pembagian ini mengubah penggunaan memori sekaligus biaya eksekusi. Residual yang lebih besar mempertahankan lebih banyak state berpresisi penuh dan memakai lebih banyak memori. Residual lebih kecil memindahkan lebih banyak state ke representasi ringkas dan, bergantung pada implementasi, dapat membuat konversi terjadi lebih sering.

Residual cache bukan bagian wajib dari kuantisasi KV cache. Ini adalah salah satu strategi runtime untuk menyeimbangkan overhead konversi, presisi state terbaru, dan tekanan memori.

Penyimpanan lebih kecil tidak menjamin decode lebih cepat

Kuantisasi mengurangi byte yang harus tetap resident untuk bagian cache yang sudah diringkas. Efek ini bernilai ketika kapasitas cache menjadi sumber batas utama. Namun, kernel decode tetap membutuhkan nilai dalam bentuk yang dapat dipakai jalur aritmetik.

Runtime dapat melakukan dequantization ke tipe komputasi, menggabungkan rekonstruksi dengan attention dalam kernel, atau memakai strategi kernel khusus lain. Setiap pilihan mengubah traffic memori, penyimpanan sementara, overhead peluncuran, dan biaya aritmetik. Pada konteks pendek yang sudah muat dengan longgar di memori accelerator, overhead konversi dapat lebih besar daripada manfaat pengurangan byte cache. Dokumentasi Transformers saat ini juga mencatat bahwa quantized cache dapat memperburuk latency pada kondisi tersebut.

Pada konteks panjang atau concurrency tinggi, footprint cache yang lebih kecil dapat membuka batch lebih besar atau mencegah kegagalan alokasi. Dampak itu bergantung pada deployment dan tidak otomatis muncul hanya karena bit width nominal diturunkan.

Bit width saja tidak mendefinisikan format cache

Dua cache yang sama-sama disebut 4-bit dapat memiliki perilaku berbeda. Parameter penting mencakup ukuran grup, sumbu grouping, mapping symmetric atau affine, presisi metadata, panjang residual cache, layout packing, tipe rekonstruksi, dan dukungan kernel.

Arsitektur model juga mengubah baseline. Multi-query attention dan grouped-query attention mengurangi jumlah KV head yang disimpan sebelum kuantisasi diterapkan. Layer sliding-window dapat membatasi jumlah posisi yang dipertahankan. Kuantisasi dapat digabungkan dengan mekanisme tersebut, tetapi tidak menggantikannya.

Angka memori praktis karena itu merupakan gabungan payload ringkas, metadata, serta area berpresisi penuh atau sementara. Angka latency praktis juga mencakup kernel attention dan seluruh konversi representasi pada jalurnya.

Kuantisasi KV cache paling tepat diperlakukan sebagai representasi penyimpanan untuk state attention. Keuntungannya adalah state resident yang lebih kecil; biayanya adalah aproksimasi dan kerja pengelolaan representasi. Titik seimbangnya ditentukan oleh geometri cache, granularitas quantizer, implementasi kernel, panjang konteks, dan memori yang tersedia, bukan oleh bit width secara terpisah.