Inferensi LLM autoregresif sering memproses token awal yang sama pada banyak request. System prompt tetap, schema tool, atau prefix dokumen dapat berisi ribuan token sebelum teks khusus request dimulai. Menghitung state attention untuk prefix identik pada setiap request berarti mengulang pekerjaan prefill yang sebelumnya sudah menghasilkan key dan value cache yang sama dalam kondisi eksekusi yang kompatibel.
Prefix caching menyimpan state attention yang dapat digunakan ulang untuk prefix token bersama. Mekanisme ini mengurangi komputasi prefill saat terjadi cache hit, tetapi tidak membuat prompt yang sekadar mirip dapat saling dipertukarkan. Unit yang dapat digunakan ulang terikat pada state input model yang tepat, bukan kemiripan semantik.
Penggunaan ulang prefix berhenti sebelum token berbeda
Pada inferensi transformer kausal, setiap token hanya dapat memperhatikan posisi pada atau sebelum posisinya sendiri. Setelah sebuah prefix diproses, tensor key dan value miliknya tidak bergantung pada token yang ditambahkan kemudian. Batas kausal ini memungkinkan request berikutnya dengan prefix yang sama memulai dari state cache dan hanya memproses suffix yang belum di-cache.
Pertimbangkan dua urutan token:
request A: [P0 P1 P2 P3 A0 A1]
request B: [P0 P1 P2 P3 B0 B1 B2]Jika empat token pertama mewakili state cache yang kompatibel, request B dapat menggunakan ulang state sampai P3. Penggunaan ulang berhenti pada token pertama yang berbeda. Suffix mulai B0 tetap memerlukan eksekusi model normal.
Sifat ini membedakan prefix caching dari response caching. Response cache mengembalikan hasil yang sudah dihitung untuk request yang cocok. Prefix cache menyediakan state model perantara, lalu generation dilanjutkan dari state tersebut.
Identitas token lebih penting daripada kemiripan teks
Lookup cache pada akhirnya harus merepresentasikan urutan token dan state model yang menghasilkan tensor tersimpan. Dua prompt yang tampak setara bagi manusia dapat menghasilkan token berbeda karena whitespace, representasi Unicode, formatting template, atau konfigurasi tokenizer. Token ID yang berbeda berarti prefix yang berbeda.
Membandingkan raw string juga tidak cukup ketika serving stack mengubah message menjadi template khusus model sebelum tokenization. Identitas cache sebaiknya diturunkan pada batas representasi yang benar-benar digunakan inferensi, bukan dari object aplikasi sebelumnya yang mungkin mengabaikan detail formatting.
Konstruksi prompt yang deterministik karena itu membantu bukan hanya keterbacaan. Urutan definisi tool, serialization, dan output template yang stabil meningkatkan peluang request berbagi prefix token literal. Mengubah urutan metadata yang secara semantik setara dapat menghilangkan reuse walaupun informasinya sama.
State cache bersifat spesifik terhadap model
Tensor key dan value adalah hasil eksekusi model tertentu. Menggunakannya pada weights yang tidak kompatibel tidak valid hanya karena token ID sama. Update model dapat mengubah setiap tensor cache yang terkait dengan prefix.
Identitas cache karena itu memerlukan batas model. Sistem yang melayani beberapa checkpoint, adapter, atau revisi harus mencegah state dari satu model efektif digunakan model lain kecuali serving implementation secara eksplisit menjamin kompatibilitas.
Konfigurasi eksekusi juga dapat menambah batas. Positional treatment, implementasi attention, layout tensor, precision, dan representasi cache dapat menentukan apakah state tersimpan bisa dipakai langsung. Format cache sebaiknya diperlakukan sebagai artefak internal inferensi kecuali sistem mendokumentasikan kontrak interchange yang stabil.
Posisi merupakan bagian dari state attention yang digunakan ulang
State key dan value sebuah token terkait dengan posisinya dalam sequence. Prefix reuse bekerja secara alami ketika token cache menempati posisi awal yang sama pada request berikutnya. Hal ini tidak berarti block cache dapat dipindahkan ke offset sembarang tanpa penyesuaian.
Konsekuensinya penting untuk aplikasi yang menyusun prompt dari fragmen reusable. Tool schema yang di-cache pada awal sebuah prompt tidak otomatis dapat digunakan ketika dipindahkan setelah preamble berbeda. Token ID mungkin sama, tetapi konteks posisinya berubah.
Sebagian inference engine memakai pengelolaan cache berbasis block dan mungkin memiliki mekanisme khusus untuk state posisi. Perilaku tersebut spesifik engine. Kontrak umum prefix caching tetap lebih sempit: gunakan ulang urutan yang cocok dari awal sampai identitas atau kompatibilitas terputus.
Granularitas cache mengubah perilaku hit
Serving engine sering mengelola memori KV dalam block, bukan satu allocation untuk setiap prompt lengkap. Granularitas block menentukan berapa banyak prefix yang dapat digunakan ulang dan seberapa banyak metadata yang perlu dilacak.
Misalkan block berisi empat token dan sebuah request berbagi enam token awal dengan sequence yang di-cache. Implementasi yang hanya menggunakan ulang block lengkap dapat memakai empat token pertama dan menghitung ulang dua token bersama yang tersisa bersama suffix. Desain dengan granularitas lebih halus dapat menangkap lebih banyak kecocokan, dengan biaya bookkeeping yang lebih detail.
Karena itu metrik yang berguna bukan hanya apakah request menghasilkan cache hit. Jumlah token yang digunakan ulang, panjang prefix yang dihitung ulang, dan memori per block reusable menggambarkan dampak sebenarnya dengan lebih tepat daripada hit ratio biner.
Tekanan memori dapat menghapus peluang reuse berikutnya
Prefix caching menukar KV state yang dipertahankan dengan pengurangan komputasi berulang. Entry yang tetap resident memakai memori yang dapat digunakan untuk state request aktif atau prefix reusable lain. Saat memori tertekan, engine dapat mengevict block cache dan menghitungnya kembali pada request berikutnya.
Kebijakan eviction berinteraksi dengan bentuk traffic. Prefix sangat besar yang jarang dipakai dapat mengonsumsi banyak cache dengan sedikit reuse. Prefix lebih kecil yang dipakai banyak request bisa lebih bernilai walaupun setiap hit menghemat lebih sedikit token.
Admission dan eviction cache karena itu bergantung pada workload. Menyimpan setiap prefix yang pernah terlihat tidak selalu lebih baik. Sistem serving harus menyeimbangkan memori inferensi aktif, perkiraan reuse, dan biaya membangun ulang state yang dievict.
Prefix bersama dapat menyentuh batas isolasi
Cache yang dibagi antar-request juga menjadi bagian dari model isolasi sistem serving. Cache key harus mencegah request menerima state yang terkait dengan konteks model yang tidak kompatibel. Sistem multi-tenant dapat memerlukan partitioning lebih kuat ketika materi prompt atau metadata cache berpotensi mengungkap informasi workload tenant lain.
Walaupun tensor cache tidak pernah dikembalikan secara langsung, timing cache hit dapat terlihat. Relevansinya bergantung pada threat model, batas deployment, dan informasi yang dikodekan prefix bersama. Prefix caching tidak sebaiknya diperlakukan hanya sebagai optimasi lokal.
Implementasi dapat mempartisi namespace cache berdasarkan tenant, model, security domain, atau batas lain. Partitioning mengurangi reuse lintas batas sebagai imbalan atas isolasi yang lebih jelas.
Prefix caching mengubah biaya prefill, bukan semantik decode
Cache hit menghindari perhitungan ulang sebagian posisi prompt. Hal ini tidak menghilangkan dependency autoregresif token baru. Setiap posisi decode tetap memakai state attention sebelumnya dan menghasilkan state baru untuk posisi berikutnya.
Perbedaan ini penting saat membaca latency. Request dengan prompt bersama yang panjang dan output pendek dapat memperoleh manfaat besar dari pengurangan prefill. Request yang didominasi generation panjang mungkin memperoleh dampak end-to-end lebih kecil karena decode tetap sequential pada tingkat dependency token.
Batching juga berinteraksi dengan pemisahan ini. Inference engine dapat menjadwalkan request cached dan uncached bersama, tetapi prefix reuse tidak menghapus biaya scheduling, memory bandwidth, atau decode. Ia menghapus satu kelas komputasi berulang: membangun kembali state attention untuk prefix kompatibel yang identik.
Prefix caching paling mudah diprediksi ketika konstruksi prompt dan identitas cache dirancang bersama. Prefix token yang stabil menciptakan peluang reuse; batas model dan isolasi yang eksplisit menjaga reuse tetap valid. Optimasi ini sempit, tetapi justru batas tersebut membuatnya berguna: pekerjaan prefill berkurang tanpa mengubah urutan token atau aturan generation setelah prefix cache.