Membongkar Rahasia Inferensi LLM Prefill Decode dan KV Cache

Oleh VOXBLICK

Rabu, 01 April 2026 - 08.15 WIB
Membongkar Rahasia Inferensi LLM Prefill Decode dan KV Cache
Memahami Prefill Decode KV Cache (Foto oleh RDNE Stock project)

VOXBLICK.COM - Kamu mungkin pernah merasakan “ajaibnya” LLM: kamu mengetik beberapa kata, lalu model langsung menyusun kalimat yang terasa nyambung. Tapi di balik kelancaran itu ada dua fase inferensi yang bekerja seperti mesin berkecepatan tinggiPrefill dan Decode. Ditambah lagi, ada komponen yang sering jadi kunci performa: KV Cache (Key-Value Cache). Artikel ini akan membedah cara LLM memproses input hingga menghasilkan output, sekaligus menjelaskan kenapa prefill decode dan KV cache begitu menentukan kecepatan dan akurasi.

Kalau kamu ingin benar-benar “mengerti” bukan sekadar menggunakan, kamu perlu melihat LLM sebagai rangkaian langkah komputasi. Prefill adalah fase ketika model membaca konteks yang ada (prompt).

Decode adalah fase ketika model menghasilkan token satu per satu. Sementara KV Cache adalah cara cerdas untuk menyimpan hasil perhitungan perhatian (attention) agar tidak dihitung ulang.

Membongkar Rahasia Inferensi LLM Prefill Decode dan KV Cache
Membongkar Rahasia Inferensi LLM Prefill Decode dan KV Cache (Foto oleh Google DeepMind)

Gambaran Besar: Kenapa LLM Terasa Cepat?

LLM tidak “menebak” langsung seluruh kalimat sekaligus. Ia bekerja token demi token. Namun, ada perbedaan besar antara:

  • Memproses prompt panjang (biasanya mahal di awal) → ini fase Prefill.
  • Memproduksi token berikutnya (berulang berkali-kali) → ini fase Decode.

Di sinilah KV Cache berperan. Tanpa KV Cache, setiap langkah decode harus menghitung ulang perhatian terhadap seluruh konteks dari awal. Dengan KV Cache, sebagian besar perhitungan bisa dipakai ulang.

Prefill: Fase Membaca Konteks (Prompt Processing)

Prefill adalah proses ketika model menerima inputmisalnya prompt penggunalalu mengubahnya menjadi representasi internal. Secara konseptual, langkahnya kira-kira seperti ini:

  • Prompt dipecah menjadi token (mis. subword).
  • Token-token tersebut dipetakan ke embedding.
  • Model menjalankan beberapa layer Transformer untuk menghasilkan representasi laten.
  • Model juga menyiapkan informasi yang dibutuhkan untuk langkah decode berikutnya.

Bagian yang paling “berat” pada prefill biasanya adalah attention. Pada Transformer, perhatian menghitung hubungan antara setiap token dengan token lain. Ini membuat biaya komputasi prefill cenderung meningkat seiring panjang konteks.

Namun, prefill bukan sekadar “membaca”. Ia juga menghasilkan state yang akan dipakai saat decode.

Di sinilah KV Cache mulai relevan: saat model memproses prompt, ia dapat menyimpan Key dan Value untuk tiap token yang sudah diproses. Dengan begitu, ketika masuk fase decode, model tidak perlu menghitung ulang attention untuk token-token lama.

Decode: Fase Menulis Token Demi Token

Decode adalah langkah ketika model mulai menghasilkan output. Misalnya, setelah prompt berakhir, model harus memutuskan token berikutnya berdasarkan probabilitas dari distribusi output.

Pola umumnya:

  • Model mengambil token terakhir yang sudah dihasilkan.
  • Model menghitung logits untuk token berikutnya.
  • Token dipilih (misalnya dengan greedy decoding, top-k, top-p, atau sampling lain).
  • Token itu ditambahkan ke konteks, lalu proses diulang.

Karena langkah decode terjadi berulang kali sampai panjang output tercapai, biaya decode bisa menjadi dominan. Tantangan utamanya adalah: setiap token baru harus mempertimbangkan seluruh konteks (prompt + token yang sudah dihasilkan).

Tanpa optimasi, proses perhatian akan menjadi semakin mahal seiring bertambahnya panjang output.

KV Cache: “Hemat Hitung” dengan Key-Value Storage

KV Cache adalah teknik untuk mengurangi kerja berulang dalam attention. Dalam attention Transformer, setiap layer menghitung proyeksi Key dan Value dari hidden states.

Saat decode, token baru hanya butuh kontribusi dari token yang baru, tetapi perhitungan attention terhadap token lama bisa dihemat.

Secara sederhana:

  • Selama prefill, model menghitung Key dan Value untuk seluruh token prompt.
  • Key-Value itu disimpan di KV Cache.
  • Selama decode, model cukup menghitung Key/Value untuk token terbaru saja.
  • Untuk attention terhadap token lama, model mengambil Key/Value dari cache.

Hasilnya? Kecepatan meningkat drastis terutama pada skenario output panjang. Ini juga menjelaskan mengapa sistem inferensi modern sering menempatkan KV Cache sebagai komponen inti ketika membahas latensi token-per-token.

Bagaimana Prefill dan Decode Berinteraksi?

Sering kali orang membayangkan prefill dan decode sebagai dua tahap terpisah. Padahal, pada implementasi nyata, keduanya saling “mengalir”. Prosesnya kurang lebih seperti pipeline:

  • Prefill menyusun representasi untuk prompt dan menyiapkan KV Cache.
  • Decode menggunakan KV Cache tersebut untuk menghitung attention secara efisien.

Kalau kamu mengoptimasi sistem (mis. untuk throughput server atau latensi), kamu akan melihat trade-off di area berikut:

  • Panjang prompt → memperbesar biaya prefill dan memakan memori KV Cache.
  • Panjang output → memperbesar jumlah langkah decode, sehingga KV Cache makin terasa manfaatnya.
  • Ukuran model & jumlah layer → memperbesar jumlah cache yang harus disimpan.
  • Batching (banyak permintaan sekaligus) → mempengaruhi manajemen memori dan scheduling.

Implikasi terhadap Akurasi: Apakah KV Cache Mengubah Hasil?

KV Cache pada dasarnya adalah optimasi performa, bukan perubahan model.

Jadi, pada kondisi tertentu (implementasi yang konsisten), KV Cache seharusnya menghasilkan output yang sama seperti tanpa cache, karena nilai Key dan Value yang dipakai adalah identikhanya cara menghitungnya yang lebih efisien.

Tapi ada hal penting yang perlu kamu pahami: akurasi yang “terlihat” bisa berbeda karena hal-hal lain, misalnya:

  • Strategi decoding (sampling vs greedy) yang mempengaruhi variasi output.
  • Presisi komputasi (FP16/BF16/INT8) yang dapat memengaruhi numerik.
  • Teknik optimasi sistem seperti quantization atau fused kernels.

Intinya: KV Cache bukan penyebab utama perubahan akurasi, tetapi ia mempengaruhi bagaimana model dieksekusi secara efisien sehingga kamu bisa mendapatkan token dengan lebih cepat.

Kenapa Prefill Sering Terasa “Lama”?

Walau decode bisa menjadi panjang, banyak pengguna merasa prefill adalah “titik awal” yang membuat latency terasa. Ini wajar karena prefill harus memproses seluruh prompt sekaligus.

Jika prompt panjang, biaya attention dan biaya layer Transformer meningkat signifikan.

Beberapa strategi yang sering dipakai untuk mengurangi dampak prefill:

  • Ringkas konteks (summarization) sebelum mengirim prompt.
  • Gunakan retrieval agar prompt berisi potongan yang relevan, bukan semuanya.
  • Atur panjang maksimum output supaya decode tidak terlalu panjang.

Praktik Nyata: Cara Memikirkan “Token Per Detik” (TPS)

Kalau kamu sedang membangun aplikasi berbasis LLM, kamu akan bertemu metrik seperti latensi awal (time-to-first-token) dan kecepatan token berikutnya (tokens per second). Secara konsep:

  • Time-to-first-token sangat dipengaruhi prefill (dan panjang prompt).
  • Tokens per second sangat dipengaruhi decode dan efisiensi KV Cache.

Jadi, ketika kamu melihat performa tidak stabil, coba cek apakah bottleneck ada di prefill (prompt panjang) atau decode (output panjang, batch besar, atau memori cache terbatas).

Menguasai Konsep Ini untuk Optimasi Sistem

Memahami inferensi LLM prefill decode dan KV Cache bukan sekadar pengetahuan akademik. Ini adalah peta untuk mengambil keputusan ketika kamu:

  • Mendesain arsitektur server inferensi (throughput vs latency).
  • Mengatur strategi batching dan antrian permintaan.
  • Memilih panjang konteks dan kebijakan truncation/summarization.
  • Menentukan trade-off antara kualitas respons dan biaya komputasi.

Semakin kamu memahami bagaimana model “membaca” prompt dan “menulis” token, semakin mudah kamu mengatur ekspektasi performadan semakin cepat kamu bisa melakukan tuning pada aplikasi atau pipeline AI kamu.

Pada akhirnya, rahasia kecepatan LLM bukan hanya tentang “modelnya besar”, melainkan tentang bagaimana sistem menjalankan komputasi secara cerdas.

Prefill menentukan seberapa cepat model memahami konteks, decode menentukan seberapa cepat model menghasilkan jawaban, dan KV Cache memastikan perhitungan perhatian tidak diulang-ulang secara sia-sia. Dengan pemahaman ini, kamu bisa lebih percaya diri saat membangun, mengoptimasi, dan menilai performa solusi berbasis Large Language Models.

Apa Reaksi Anda?

Suka Suka 0
Tidak Suka Tidak Suka 0
Cinta Cinta 0
Lucu Lucu 0
Marah Marah 0
Sedih Sedih 0
Wow Wow 0