Satu entri KV cache bukan representasi yang dapat dipakai ulang untuk sembarang teks yang tampak mirip. Pada transformer autoregresif, key dan value yang tersimpan adalah state perantara yang dihasilkan untuk prefix token tertentu dalam konteks eksekusi tertentu. Reuse valid hanya jika request baru mencapai batas state yang sama.

Batas itu lebih ketat daripada kecocokan karakter yang terlihat. Tokenisasi, urutan token, penanganan posisi, identitas model, state adapter, serta input lain yang memengaruhi hidden state dapat menentukan apakah prefix dalam cache masih mewakili komputasi yang dibutuhkan request baru.

Cache menyimpan state setelah suatu riwayat token

Dalam causal self-attention, setiap layer menghasilkan vektor key dan value untuk posisi token yang sudah diproses. Pada langkah decoding t, attention dapat memakai state dari posisi sebelumnya di cache tanpa menghitung ulang seluruh prefix.

Untuk satu layer, strukturnya dapat ditulis secara skematis sebagai:

K_cache = [K_0, K_1, ..., K_(t-1)]
V_cache = [V_0, V_1, ..., V_(t-1)]

Token baru menambahkan pasangan key dan value berikutnya. Dengan demikian, cache merepresentasikan jalur komputasi melalui sequence token yang berurutan. Sifatnya berbeda dari embedding semantik untuk prefix tersebut.

Prefix reuse memperluas mekanisme ini ke beberapa request. Jika dua request dimulai dengan sequence token yang sama dan memenuhi syarat cache, sistem serving dapat mempertahankan state layer yang terkait lalu memulai komputasi baru setelah prefix bersama. Pekerjaan yang dilewati adalah komputasi transformer yang menghasilkan state tersimpan itu, sesuai desain cache dan jalur eksekusi yang didukung runtime.

Reuse tidak membuat seluruh pemrosesan request hilang. Tokenisasi, lookup cache, pengelolaan metadata, pemrosesan suffix yang tidak cocok, sampling, dan decoding berikutnya tetap berlangsung.

Kesamaan teks dan kesamaan token adalah pemeriksaan berbeda

Lapisan serving umumnya menerima teks, sedangkan model menerima token ID. Identitas cache perlu ditetapkan pada representasi yang benar-benar masuk ke model.

Dua string yang tampak hampir sama dapat menghasilkan tokenisasi berbeda akibat whitespace, representasi Unicode, tanda baca, format template, atau konfigurasi tokenizer. Begitu token ID berbeda pada suatu posisi, hidden state setelah titik itu pada umumnya berasal dari riwayat token yang berbeda.

Arah sebaliknya juga relevan secara operasional: cache key yang hanya memakai teks mentah dapat terlalu longgar atau terlalu ketat, bergantung pada lokasi normalisasi dan templating. Jika chat template menyisipkan control token sebelum tokenisasi, prefix efektif adalah sequence token hasil rendering, bukan sekadar pesan yang terlihat oleh pengguna.

Karena itu, desain cache yang tepat mengikat identitas ke sequence input model yang aktual atau ke key yang merepresentasikannya secara deterministik. Hash dapat membuat lookup lebih ringkas, tetapi hash hanya mekanisme pengindeksan. Correctness tetap bergantung pada data yang dimasukkan ke key serta penanganan collision yang sesuai dengan implementasi.

Perbedaan token memutus state yang dapat dipakai ulang

Misalkan dua request menghasilkan sequence berikut:

A: [31, 44, 90, 12, 77, 18]
B: [31, 44, 90, 63, 52]

Keduanya memiliki tiga token prefix yang sama. State untuk tiga posisi pertama dapat menjadi kandidat reuse. State yang dihasilkan setelah token 12 pada request A tidak dapat menggantikan state setelah token 63 pada request B.

Causal attention membentuk batas ini karena representasi pada suatu posisi bergantung pada konteks sebelumnya yang diizinkan. Perbedaan token mengubah riwayat yang tersedia bagi posisi berikutnya, sehingga cache tidak dapat langsung melompati bagian yang berbeda lalu menganggap kecocokan teks di posisi lebih akhir sebagai state yang berkesinambungan.

Cache berbasis block menambahkan granularitas lain. Runtime dapat mengindeks block token berukuran tetap, bukan setiap posisi secara terpisah. Dalam desain tersebut, block yang hanya cocok sebagian dapat memerlukan komputasi baru walaupun beberapa token di dalamnya sama. Ini merupakan sifat implementasi layout cache, bukan perubahan semantik transformer.

State posisi termasuk dalam batas kompatibilitas

Token ID yang sama diperlukan pada banyak desain prefix cache, tetapi token ID saja belum mencakup seluruh input model yang dapat memengaruhi state tersimpan.

Komputasi berbasis posisi adalah contoh utama. Transformer dapat mengodekan posisi melalui rotary position transform, absolute position embedding, atau aturan lain yang khusus pada model. Jika sequence token yang sama diperlakukan pada posisi berbeda dan mekanisme posisi mengubah state key atau value, tensor cache dari satu penetapan posisi tidak dapat dianggap valid untuk penetapan lain.

Sistem serving dapat menghindari ambiguitas ini dengan mendefinisikan entri cache pada posisi prefix yang diketahui dan membawa metadata posisi yang diperlukan bersama entri tersebut. Aturan kompatibilitas persisnya bergantung pada arsitektur dan runtime. Implementasi cache perlu mengikuti semantik posisi model yang aktual, bukan menganggap posisi sebagai metadata generik yang aman untuk diabaikan.

Perhatian yang sama berlaku pada struktur attention. Jika jalur eksekusi mengubah posisi terdahulu mana yang boleh diakses sebuah token, token ID yang identik tetap dapat menghasilkan state berbeda. Reuse cache harus mempertahankan semantik attention yang digunakan ketika tensor tersimpan dibuat.

State model dan adapter masuk ke batas cache

KV cache terikat pada parameter yang menghasilkannya. Memakai state dari bobot model berbeda bukan shortcut yang valid hanya karena vocabulary tokenizer dan token ID sama.

Hal ini relevan ketika satu proses serving menjalankan beberapa revisi model atau parameter-efficient adapter. Jika adapter mengubah projection atau komputasi lain yang berkontribusi pada hidden state, key, atau value, entri cache yang dibuat dengan satu state adapter tidak otomatis valid untuk state adapter lain.

Namespace cache atau lookup key perlu memisahkan state eksekusi yang dapat menghasilkan tensor cache berbeda. Bergantung pada sistem, identitas itu dapat mencakup revisi model, identitas adapter, konfigurasi model yang relevan, serta fitur pada request yang mengubah komputasi sebelum atau di dalam prefix tersimpan.

Tidak semua opsi serving perlu masuk ke identitas tersebut. Sampling temperature yang diterapkan setelah logits dihasilkan, misalnya, tidak mengubah secara retroaktif key dan value yang sudah dihitung untuk prefix. Kompatibilitas cache sebaiknya ditentukan oleh input kausal terhadap state tersimpan, bukan seluruh field request tanpa pembedaan.

Cache hit dapat parsial tanpa menjadi aproksimasi

Prefix caching kadang dipandang sebagai hit penuh atau miss penuh, padahal trie, struktur radix, atau indeks block dapat menemukan prefix tersimpan terpanjang yang cocok dengan request. Request dapat memakai ulang bagian yang identik itu lalu menghitung suffix sisanya seperti biasa.

Reuse tersebut tetap eksak jika tensor cache sama dengan state yang akan dihasilkan jalur model aktif untuk prefix itu. Tidak diperlukan ambang kemiripan semantik. Approximate retrieval merupakan mekanisme berbeda: retrieval dokumen atau vektor terkait dapat mengubah konteks model, sedangkan prefix-cache reuse menghindari komputasi ulang untuk prefix komputasi yang memang identik.

Pemisahan ini juga memperjelas metrik. Hit rate per request dapat menyembunyikan kondisi ketika hanya prefix pendek yang dipakai ulang. Jumlah token atau block yang direuse lebih langsung menggambarkan cakupan prefix yang dihemat, walaupun nilainya tetap tidak berbanding satu-ke-satu dengan latency karena penjadwalan kernel, perpindahan memori, lookup cache, dan komposisi batch juga memengaruhi waktu serving.

Eviction mengubah ketersediaan, bukan validitas

Prefix yang valid dapat tidak tersedia karena entri cache sudah dieviction. Batas kapasitas, kebijakan recency, tekanan block, atau invalidasi eksplisit dapat membuang state yang sebenarnya dapat direuse tanpa mengubah aturan correctness.

Pembedaan ini berguna saat mendiagnosis miss. Compatibility miss berarti entri yang tersedia tidak merepresentasikan state komputasi yang dibutuhkan. Capacity miss berarti entri kompatibel semestinya dapat digunakan, tetapi sudah tidak resident. Menggabungkan keduanya menjadi satu penghitung cache miss menyamarkan penyebab yang berbeda.

Perhitungan memori juga perlu mengikuti representasi fisik cache. State KV disimpan di berbagai layer transformer dan posisi token, dengan ukuran yang dipengaruhi arsitektur model, dtype cache, struktur head, serta layout runtime. Peluang reuse yang tinggi tidak otomatis berarti mempertahankan setiap prefix merupakan kebijakan alokasi yang tepat.

Batas yang tetap adalah identitas state: prefix reuse aman ketika tensor cache sesuai dengan komputasi yang memang dibutuhkan request aktif pada prefix tersebut. Kemiripan teks, frasa berulang, atau suffix yang sama tidak menetapkan identitas itu. Sistem serving memperoleh reuse yang dapat diandalkan dengan membuat riwayat token dan setiap input eksekusi pembentuk state eksplisit di cache key serta namespace.