Penyajian Pra-Pengisian dan Dekode Terpilah
Arsitektur penyajian yang membagi inferensi model bahasa besar menjadi dua fase terpisah—pengisian awal dan dekode—dan menjalankannya pada kumpulan GPU yang berbeda.
Ikhtisar
It matters because these two phases have opposite hardware appetites, and forcing them onto the same machines wastes capacity and hurts latency.
Menyelam Lebih Dalam
Ketika LLM menjawab, ia bekerja dalam dua tahap. Pra-pengisian membaca seluruh prompt sekaligus dan membuat cache nilai kunci (KV); ini adalah ledakan besar, paralel, dan terikat komputasi yang memenuhi unit matematika GPU. Dekode kemudian menghasilkan token satu per satu, setiap langkah membaca seluruh cache KV—tetesan yang terikat pada bandwidth memori dan dihitung dengan ringan. Dijalankan bersama-sama, pengisian awal yang panjang menghentikan dekode semua orang (pemblokiran head-of-line), dan pengelompokan keduanya akan menimbulkan gangguan. Disagregasi menempatkan pra-pengisian pada satu kumpulan GPU dan mendekode pada kumpulan GPU lainnya, mentransfer cache KV di antara keduanya melalui interkoneksi cepat seperti NVLink atau InfiniBand. Setiap kumpulan disetel dan diskalakan secara independen, sehingga meningkatkan keluaran yang baik, memperlancar latensi ekor, dan memungkinkan operator mencapai target waktu-ke-token pertama dan waktu-per-token keluaran yang ketat secara bersamaan.
Wawasan Teknis
Kedua fase ini berbeda dalam hambatannya. Pra-pengisian memproses semua token cepat secara paralel, sehingga FLOP-nya berskala dengan panjang cepat dan memaksimalkan inti tensor. Dekode bersifat autoregresif: setiap token baru memerlukan satu forward pass yang membaca ulang cache KV lengkap dari HBM, sehingga throughput dibatasi oleh bandwidth memori, bukan komputasi. Disagregasi mengeksploitasi hal ini dengan mengukur, mengelompokkan, dan bahkan memilih paralelisme yang berbeda untuk setiap kumpulan, lalu mengirimkan cache KV dari pekerja pra-pengisian untuk mendekode pekerja.
Dampak Strategis
Cost and budget
Keputusan arsitektur mendorong kinerja dan biaya pengoperasian selama bertahun-tahun.
Clearer decisions
Pendidikan teknis membantu tim memilih tumpukan yang tepat, bukan hanya yang terbaru.
Quality control
Pilihan teknik yang lebih baik mengurangi insiden keandalan dalam produksi.
Masa Depan Penyajian Prefill dan Decode Terpilah
Harapkan disagregasi menjadi default di tumpukan produksi. Sistem seperti DistServe, Splitwise, dan Mooncake mempopulerkannya, dan vLLM serta NVIDIA Dynamo kini mengirimkan mode terpilah. Penelitian mendorong optimalisasi transfer cache KV, pengumpulan dan penggunaan kembali cache di seluruh permintaan, penyeimbangan ulang dinamis rasio pra-pengisian/dekode dalam lalu lintas yang berpindah, dan integrasi yang lebih erat dengan cache awalan dan pra-pengisian yang dipotong. Ketika jendela konteks berkembang menjadi jutaan token, pemisahan fase-fase ini menjadi semakin penting untuk penyajian latensi rendah dan hemat biaya.
Implementasi Dunia Nyata
Asisten obrolan merutekan perintah dokumen yang panjang ke kluster pra-pengisian yang banyak melakukan komputasi, lalu mengalirkan balasan dari kluster dekode yang memorinya dioptimalkan agar latensi pengetikan tetap lancar.
NVIDIA Dynamo dan vLLM memungkinkan operator menerapkan kelompok pekerja pra-pengisian dan dekode terpisah sehingga serangkaian perintah yang panjang tidak menghentikan generasi yang sedang berlangsung.
Mooncake (digunakan oleh Kimi dari Moonshot AI) memisahkan pra-pengisian dan dekode serta menambahkan kumpulan cache KV terdistribusi untuk memotong penghitungan ulang cepat yang berlebihan dalam skala besar.
Layanan penyelesaian kode mendedikasikan kumpulan pra-pengisian kecil untuk perintah singkat dan kumpulan dekode besar, karena sebagian besar biaya berasal dari streaming banyak token keluaran.
Risiko & Pagar Pembatas
Mengoptimalkan satu tolok ukur dapat menyembunyikan kelemahan sistem yang lebih luas.
Biaya infrastruktur dan pemeliharaan sering kali diremehkan.
Kesenjangan keamanan dan kemampuan observasi dapat tumbuh seiring dengan semakin kompleksnya sistem.
Peta Jalan Implementasi
Tentukan target latensi, kualitas, dan biaya sebelum penerapan.
Tolok ukur dalam kondisi beban dan data yang realistis.
Pemantauan instrumen untuk kesalahan, penyimpangan, dan dampak pengguna.
Siapkan jalur rollback dan respons insiden sebelum melakukan penskalaan.
Terus Menjelajah
Free newsletter
Get the daily AI briefing
Three verified AI stories every weekday morning, written in plain English. Free forever, no ads.
One email each weekday. Unsubscribe in one click. We never sell or share your address.
Test yourself
Take the Disaggregated Prefill and Decode Serving quiz
Instant feedback on every answer, and a shareable certificate with a verifiable ID once you pass a course.
Support free AI education. AI Understanding is a 501(c)(3) nonprofit — no ads, no paywall, ever. Make a donation
Next guide
KServe dan Penyajian Model di Kubernetes
Pertanyaan yang sering diajukan
What is Disaggregated Prefill and Decode Serving?
Arsitektur penyajian yang membagi inferensi model bahasa besar menjadi dua fase terpisah—pengisian awal dan dekode—dan menjalankannya pada kumpulan GPU yang berbeda. Hal ini penting karena kedua fase ini memiliki kebutuhan perangkat keras yang berlawanan, dan memaksa keduanya ke mesin yang sama akan membuang-buang kapasitas dan mengganggu latensi.
Apa alasan perangkat keras inti untuk memisahkan pra-pengisian dan dekode ke kumpulan GPU yang berbeda?
Pra-pengisian memproses seluruh prompt secara paralel dan menjenuhkan komputasi, sementara dekode membaca cache KV setiap langkah dan dibatasi oleh bandwidth memori—kebalikan dari kebutuhan yang membenarkan kumpulan yang terpisah dan disetel secara independen.
Struktur data apa yang harus ditransfer dari pekerja pra-pengisian ke pekerja dekode?
Pra-pengisian membuat cache KV untuk prompt; dekode memerlukan cache tersebut untuk terus dibuat, sehingga cache dikirimkan melalui interkoneksi cepat ke kumpulan dekode.
Masalah manakah yang secara khusus dikurangi oleh disagregasi dalam pengaturan GPU bersama?
Pada GPU bersama, ledakan pra-pengisian yang lama dapat memblokir langkah-langkah dekode yang sedang berlangsung; memisahkannya akan mencegah gangguan tersebut dan menstabilkan latensi ekor.
Mengapa pra-pengisian dapat dikelompokkan secara agresif tetapi dekode mendapat manfaat dari penyetelan yang berbeda?
Pra-pengisian memproses semua token cepat secara bersamaan, sehingga batch yang lebih besar memberi makan inti tensor dengan baik; decode menghasilkan satu token pada satu waktu dan dilindungi oleh memori, sehingga skalanya berbeda.
Interkoneksi mana yang biasanya digunakan untuk memindahkan cache KV antar kumpulan terpilah?
Tautan dengan bandwidth tinggi dan latensi rendah seperti NVLink (intra-node) dan InfiniBand (antar-node) diperlukan agar transfer KV-cache tidak menjadi hambatan baru.