Give Me 20 Minutes, and the KV Cache Will Click Forever
| Istilah | Arti |
|---|---|
| KV cache | Penyimpanan key dan value dari kata-kata sebelumnya agar tidak dihitung ulang saat model menulis kata baru, sehingga biaya projection turun sekitar 357 kali dalam contoh video. |
| prefill | Fase pertama model bahasa yang memproses seluruh prompt sekaligus dalam satu kali jalan sebelum mulai menulis jawaban kata demi kata. |
| decoding | Fase kedua model bahasa yang menulis jawaban satu kata per langkah, di mana hanya kata terbaru yang bertanya ke semua kata sebelumnya. |
| QKV projection | Tahap pertama attention yang mengalikan embedding setiap kata dengan tiga matriks untuk menghasilkan query, key, dan value, dan menjadi biaya terbesar tanpa cache. |
| self attention | Mekanisme saat setiap kata menilai kata-kata lain dalam kalimat yang sama lalu mencampur informasinya sesuai skor, dengan biaya tumbuh seiring kuadrat panjang teks. |
| query | Baris angka yang mewakili apa yang ditanyakan sebuah kata, lalu dicocokkan dengan key kata lain untuk menghasilkan skor perhatian. |
| key | Baris angka yang mewakili cara sebuah kata menjawab pertanyaan, yang dibandingkan dengan query dan disimpan di KV cache. |
| value | Baris angka berisi informasi yang disumbangkan sebuah kata, yang dicampur sesuai bagian hasil softmax dan ikut disimpan di KV cache. |
| softmax | Fungsi yang mengubah deretan skor menjadi bagian-bagian positif berjumlah satu, sehingga menentukan porsi value tiap kata yang dicampur. |
| embedding | Deretan angka yang mewakili makna sebuah kata, misalnya dua kolom hewan dan mesin pada contoh kata crane di video ini. |
| mask | Penutup yang memberi nilai minus tak hingga pada kata-kata sesudahnya agar sebuah kata tidak bisa melihat masa depan, sekaligus menjaga cache tiap lapisan tetap valid. |
| Llama 3 8B | Model bahasa populer dengan lebar embedding 4.096 yang dipakai video ini sebagai contoh nyata untuk menghitung jumlah perkalian di setiap tahap. |
Zachary Huang membuka video ini dengan tabel harga dari halaman developer OpenAI: input token bisa berharga 10 dolar per sejuta, tetapi hanya 1 dolar bila input itu sudah tersimpan di cache, karena OpenAI memakai prompt cache yang menyimpan tensor key dan value. Pertanyaan utamanya adalah bagaimana KV cache sebenarnya bekerja dan kenapa ia menghemat begitu banyak komputasi saat model bahasa menulis jawaban. Video dibagi menjadi empat bagian yang masing-masing membahas dua tahap yang sama, yaitu QKV projection dan self attention: mengulang dasar attention, menghitung biaya prefill, menghitung biaya decoding, lalu membangun KV cache dan melihat berapa biaya yang hilang. Tujuannya agar penonton memahami setiap baris kode Python pendek yang mengimplementasikan KV cache.
Pembicara memakai contoh mainan berisi kosakata enam kata dan prompt the crane, dengan embedding dua kolom bertema hewan dan mesin, lalu menghitung skor, mask, softmax, dan pencampuran value secara manual hingga crane mempertahankan sekitar 86 persen value-nya sendiri. Dengan angka Llama 3 8B, d sebesar 4.096, prompt 1.000 kata, dan jawaban 500 kata, prefill tahap projection butuh sekitar 50,3 miliar perkalian dan tahap attention sekitar 8,2 miliar. Tanpa cache, decoding membangun ulang key dan value seluruh konteks di setiap langkah sehingga projection membengkak menjadi sekitar 21 triliun perkalian. KV cache cukup menyimpan key dan value lama lalu menambahkan satu baris baru per kata, sehingga biayanya turun menjadi sekitar 58,7 miliar, 357 kali lebih kecil, sementara biaya attention tetap sama. Di akhir, ia menunjukkan bahwa mask membuat cache setiap lapisan tetap valid, sebab tanpa mask keluaran kata lama ikut berubah dan hanya lapisan pertama yang bisa di-cache.
Kata kunci
- KV cache
- prefill
- decoding
- QKV projection
- Menjelaskan KV cache lewat kode Python pendek dan contoh kecil attention.
- Menghitung biaya tahap prefill dan decoding tanpa cache, lalu melihat berapa yang dihemat KV cache.
- Memahami QKV projection dan mengapa key yang tersimpan bisa berubah di layer lebih dalam.
Tulis catatan pribadimu untuk modul ini. Catatan tersimpan di akunmu dan bisa dibuka dari perangkat mana pun.
