Serving autoregresif sering menerima request yang dimulai dengan urutan token panjang yang sama. System prompt, tool schema, header dokumen tetap, atau konteks berulang lain dapat membuat model menghitung state attention untuk prefix yang sama berkali-kali. Prefix caching menargetkan pekerjaan prefill yang berulang itu dengan mempertahankan state key-value yang kompatibel dan menghubungkan request berikutnya ke state tersebut.

Batas penggunaan ulang adalah state token yang identik, bukan kemiripan semantik. Dua prompt yang menyampaikan maksud serupa tetapi menghasilkan token berbeda tidak memiliki entry prefix cache yang dapat dipertukarkan.

Penggunaan ulang dimulai pada batas token bersama

Saat prefill, setiap layer transformer menghasilkan tensor key dan value untuk token prompt. Untuk request dengan urutan token:

P = [p0, p1, ..., pk]

request berikutnya yang diawali urutan sama dapat menggunakan state cache untuk P lalu hanya menghitung suffix setelahnya:

request A = P + A_suffix
request B = P + B_suffix

Kedua request dapat langsung bercabang setelah P. State KV berikutnya menjadi spesifik untuk masing-masing request, sedangkan state prefix bersama dapat tetap dipakai bersama jika implementasi serving mendukung bentuk reuse tersebut.

Mekanisme ini berbeda dari response caching. Prefix caching tidak mengembalikan respons model yang sudah disimpan. Generation tetap dijalankan untuk request baru. Objek yang digunakan ulang adalah state attention perantara hasil komputasi prefill sebelumnya.

Identitas token lebih ketat daripada identitas teks

Kompatibilitas cache umumnya terkait dengan representasi input model dan konfigurasi eksekusi. Teks yang tampak sama dapat menghasilkan urutan token berbeda ketika input tokenisasi berubah. Special token tambahan, chat template, whitespace, serialisasi tool, atau versi tokenizer dapat mengubah prefix yang dihasilkan.

Karena itu, cache key tidak aman jika hanya bergantung pada teks mentah. Key perlu mengidentifikasi konteks eksekusi secukupnya agar state dari invocation yang tidak kompatibel tidak dianggap valid untuk invocation lain. Struktur key persisnya bergantung pada implementasi, tetapi persoalan kompatibilitas setidaknya mencakup model dan urutan token.

State model juga berpengaruh. Tensor KV merupakan keluaran dari parameterisasi model tertentu. State yang dihitung oleh satu checkpoint secara umum tidak dapat dipertukarkan dengan checkpoint lain hanya karena token ID sama.

Block prefix memungkinkan pencocokan parsial

Serving engine sering mengelola state KV dalam block atau page, bukan satu alokasi untuk seluruh prompt. Cache berbasis block dapat mencocokkan request dengan rangkaian block prefix yang tersimpan lalu menggunakan rangkaian kompatibel terpanjang.

Secara konseptual:

cached blocks: [B0][B1][B2]
new request:   [B0][B1][C2][C3]
reuse:         [B0][B1]
compute:               [C2][C3]

Seluruh prompt tidak harus identik. Reuse dapat berhenti pada block pertama yang tidak kompatibel, kemudian prefill normal dilanjutkan. Ukuran block menentukan granularitas pencocokan dan pengelolaan storage, sedangkan semantik attention tetap bergantung pada urutan token prefix yang direpresentasikan block tersebut.

Block hash dapat mengidentifikasi konten, tetapi kecocokan hash hanya mekanisme indexing. Untuk menjaga kebenaran, runtime tetap perlu memastikan bahwa state cache yang dirujuk berasal dari konteks eksekusi model yang kompatibel. Hash tidak membuat tensor KV yang semula tidak kompatibel menjadi dapat dipertukarkan.

Posisi menjadi bagian dari kompatibilitas

Representasi key dan query dapat bergantung pada posisi token melalui mekanisme positional model. Penggunaan ulang prefix cache mengasumsikan state tersimpan sesuai dengan posisi yang diberikan kepada prefix tersebut pada request baru.

Untuk kasus umum ketika kedua request dimulai dengan prefix sama pada posisi nol, alignment posisi bersifat langsung. Skema reuse yang mencoba memindahkan state ke posisi berbeda memerlukan penanganan eksplisit. Sistem cache tidak dapat menyimpulkan ekuivalensi posisi hanya dari token ID yang sama ketika representasi model bergantung pada posisi.

Batas yang sama berlaku pada metadata attention yang spesifik terhadap implementasi. Serving engine dapat menyimpan layout sequence, format cache, parameter kuantisasi, atau state lain yang diperlukan untuk menginterpretasikan tensor KV. Metadata semacam itu termasuk dalam kontrak cache walaupun tidak terlihat di prompt.

Reuse mengurangi komputasi prefill, bukan dependensi decode

Prefix caching terutama menghapus pekerjaan berulang untuk token yang state KV-nya sudah tersedia. Mekanisme ini tidak menghilangkan dependensi autoregresif untuk token baru. Setelah prefix yang dapat digunakan ulang dan suffix prompt yang belum tersimpan diproses, decoding tetap maju token demi token sesuai prosedur decoding model.

Dampaknya bergantung pada bentuk workload. Prefix panjang yang berulang menyediakan lebih banyak state prefill yang dapat digunakan ulang dibanding request dengan prompt yang tidak berkaitan. Cache juga dapat memakai memori tanpa menghasilkan hit yang berguna jika prefix jarang berulang atau entry sudah dieviction sebelum dipakai kembali.

Kapasitas memori, eviction policy, granularitas block, dan locality request menentukan berapa banyak state reusable yang tetap resident. Semua itu merupakan properti sistem serving, bukan perubahan pada arsitektur transformer.

State bersama memerlukan aturan isolasi

Sistem serving perlu memperlakukan state KV cache sebagai data turunan dari request. Reuse lintas request dapat menimbulkan persoalan keamanan dan privasi jika cache key, batas tenant, atau aturan lifecycle memungkinkan satu konteks merujuk state yang seharusnya tidak dibagikan.

Batas aman bergantung pada deployment. Layanan single-tenant dapat mengizinkan reuse pada seluruh request yang kompatibel. Layanan multi-tenant dapat mempartisi cache berdasarkan tenant, domain otorisasi, instance model, atau isolation key lain walaupun prefix token cocok.

Partisi tersebut dapat menurunkan hit rate, tetapi hit rate bukan satu-satunya kriteria kebenaran. Reuse cache harus menjaga kompatibilitas state model sekaligus kebijakan isolasi data aplikasi.

Prefix caching dapat digabung dengan teknik KV lain

Prefix caching mengubah apakah state prefix yang sudah ada perlu dihitung dan diduplikasi kembali. Mekanisme lain bekerja pada dimensi berbeda. Grouped-query attention mengurangi jumlah key-value head yang dihasilkan model. Kuantisasi KV mengubah lebar representasi state tersimpan. Paged allocation mengubah penempatan dan perilaku fragmentasi. Bounded attention dapat membatasi jumlah state historis yang tetap dapat diakses.

Mekanisme tersebut dapat digunakan bersamaan karena batas yang diubah berbeda. Cache terkuantisasi tetap dapat menggunakan ulang block prefix, dan model dengan KV head lebih sedikit tetap mendapat manfaat dari menghindari prefill berulang untuk prefix bersama. Pemeriksaan kompatibilitas perlu mencakup detail representasi apa pun yang memengaruhi interpretasi tensor tersimpan.

Prefix caching paling relevan ketika pengulangan terjadi sebelum request bercabang. Batas strukturalnya adalah state model yang benar-benar dapat digunakan ulang: teks yang sama belum tentu cukup, kemiripan makna tidak relevan, dan cache hit hanya valid ketika urutan token, posisi, state model, representasi, serta aturan isolasi sesuai pada batas reuse.