Pernah penasaran kenapa jawaban AI itu munculnya ketik-satu-satu (streaming), bukan langsung brukk muncul satu paragraf?
Arpit Bhayani menjelaskan proses di balik layar “LLM Inference” yang ternyata sangat kompleks tapi logis. Ini bedahannya:
1. ⚠️ Problem Statement (Masalah)
* The Black Box: Kita mengetik prompt, lalu jawaban keluar. Tapi apa yang terjadi di antaranya?
* Resource Heavy: Menjalankan model seperti Llama-3 atau GPT-4 butuh GPU mahal. Kenapa? Apa yang bikin dia berat?
* Latency vs Throughput: Kenapa kadang respon pertama (Time to First Token) cepat, tapi sisanya lambat?
2. 🛠️ Metodologi & Proses (The “How”)
Inference LLM bukan sekadar “baca database”. Ini adalah proses Probabilistik yang berjalan dalam dua fase utama:
* Fase 1: Prefill (Reading): Model membaca seluruh prompt kamu sekaligus (paralel). Ini butuh tenaga komputasi (Compute Bound) besar.
* Fase 2: Decode (Writing): Model memprediksi kata (token) berikutnya satu per satu. Token baru digabung ke input lama, lalu diproses ulang. Ini butuh kecepatan memori (Memory Bound).
* KV Cache (The Secret Sauce): Agar tidak menghitung ulang dari nol setiap kali ngetik satu kata, sistem menyimpan hasil perhitungan sebelumnya di memori (VRAM). Ini teknik optimasi paling krusial.
3. 📈 Findings & Hasil
* 🧠 Next Token Prediction: LLM sebenarnya tidak “tahu” jawaban. Dia hanya menebak “kata apa yang paling mungkin muncul setelah kata ini?” dengan probabilitas tertinggi.
* 🐌 Memory Wall: Kecepatan generate teks seringkali bukan dibatasi oleh seberapa pintar chip GPU-mu, tapi seberapa cepat memory bandwidth (VRAM) bisa mengirim data ke chip.
* 💾 Trade-off: KV Cache mempercepat proses drastis, tapi memakan VRAM sangat besar. Makanya GPU dengan VRAM kecil (seperti 8GB) sering out of memory saat konteks percakapan makin panjang.
4. 💡 Key Takeaways
* Stateless to Stateful: Berkat KV Cache, inferensi jadi terasa punya “memori”, padahal aslinya stateless.
* Cost of Context: Semakin panjang chat history kamu, semakin berat beban memori (VRAM) yang dibutuhkan untuk KV Cache.
* Serial Nature: Generasi teks itu sekuensial (berurutan). Kita belum bisa men-generate bab 2 sebelum bab 1 selesai ditulis.
💻 How to Use / Implementation (Sizing Guide)
Buat kamu yang mau run LLM sendiri (Local LLM), pemahaman ini penting buat milih hardware.
Rumus Kasar Kebutuhan VRAM:
Kamu butuh VRAM untuk 2 hal: Bobot Model + KV Cache.
* Bobot Model (Weights):
* Model 7 Billion Parameter (7B) @ 16-bit (FP16) ≈ 14 GB VRAM.
* Model 7B @ 4-bit (Quantized) ≈ 3.5 – 4 GB VRAM.
* KV Cache (Context):
* Semakin panjang Context Window (misal 8k atau 16k token), kamu butuh ekstra VRAM beberapa GB.
Cara Jalanin di Lokal:
Gunakan tool yang sudah mengoptimalkan Inference ini secara otomatis:
* Ollama: Paling gampang, just works.
ollama run llama3
* vLLM: Untuk production/server, karena manajemen KV Cache-nya (PagedAttention) paling efisien.
pip install vllm
🔗 Baca Penjelasan Visualnya:
https://arpitbhayani.me/blogs/how-llm-inference-works
#LLM #ArtificialIntelligence #MachineLearning #SystemDesign #Engineering #GPU #DeepLearning #TechEducation