PANDUAN Teknikal

Penyajian Praisi dan Nyahkod yang diasingkan

Seni bina penyajian yang membahagikan inferens model bahasa besar kepada dua fasa berasingan—praisi dan nyahkod—dan menjalankannya pada kumpulan GPU yang berbeza.

Dengar panduan iniAI-diceritakan · ~2 min

Pada halaman ini2 min dibaca
  1. Gambaran keseluruhan
  2. Menyelam dalam
  3. Pelaksanaan Dunia Sebenar
  4. Masa Depan Penyajian Praisi dan Nyahkod Terpisah
  5. Mempraktikkannya
  6. Teruskan Meneroka
  7. Soalan lazim

Gambaran keseluruhan

Ini penting kerana kedua-dua fasa ini mempunyai selera perkakasan yang bertentangan, dan memaksa mereka ke mesin yang sama membazir kapasiti dan menjejaskan kependaman.

Menyelam dalam

Apabila LLM menjawab, ia berfungsi dalam dua peringkat. Praisi membaca keseluruhan gesaan sekaligus dan membina cache nilai kunci (KV); ini adalah letusan besar, selari, terikat pengiraan yang memenuhi unit matematik GPU. Nyahkod kemudian menjana token satu demi satu, setiap langkah membaca keseluruhan cache KV—sebuah titisan yang dikira dengan jalur lebar memori dan mudah dikira. Berjalan bersama-sama, praisi yang panjang menghalang penyahkod semua orang (penyekatan ketua baris), dan menggabungkan kedua-duanya mewujudkan gangguan. Pengasingan meletakkan praisi pada satu kumpulan GPU dan menyahkod pada yang lain, memindahkan cache KV antara mereka melalui sambungan pantas seperti NVLink atau InfiniBand. Setiap kumpulan ditala dan diskalakan secara bebas, menambah baik goodput, melicinkan kependaman ekor, dan membiarkan operator mencapai sasaran masa-ke-pertama-token dan masa-setiap-output-token yang ketat secara serentak.

Pelaksanaan Dunia Sebenar

Pembantu sembang mengarahkan dokumen yang panjang menggesa ke gugusan praisi berat mengira, kemudian menstrim balasan daripada gugusan penyahkod yang dioptimumkan memori untuk memastikan kependaman menaip lancar.

NVIDIA Dynamo dan vLLM membenarkan pengendali menggunakan kumpulan pekerja praisi dan nyahkod yang berasingan supaya gesaan yang panjang tidak membekukan generasi yang sedang berjalan.

Mooncake (digunakan oleh Kimi Moonshot AI) mengasingkan praisi dan menyahkod serta menambahkan kumpulan cache KV yang diedarkan untuk mengurangkan pengiraan semula segera yang berlebihan pada skala.

Perkhidmatan pelengkapan kod mengkhususkan kumpulan praisi kecil untuk gesaan pendek dan kumpulan penyahkod yang besar, kerana kebanyakan kos datang daripada penstriman banyak token output.

Masa Depan Penyajian Praisi dan Nyahkod Terpisah

Jangkakan pengasingan menjadi lalai dalam susunan pengeluaran. Sistem seperti DistServe, Splitwise dan Mooncake mempopularkannya, dan vLLM dan NVIDIA Dynamo kini menghantar mod terpisah. Penyelidikan sedang mendorong pengoptimuman pemindahan cache KV, pengumpulan cache dan penggunaan semula merentas permintaan, pengimbangan semula dinamik nisbah praisi/nyahkod di bawah trafik peralihan dan penyepaduan yang lebih ketat dengan cache awalan dan praisi bongkah. Apabila tetingkap konteks berkembang menjadi berjuta-juta token, pemisahan fasa ini menjadi semakin penting untuk penyajian yang menjimatkan kos dan kependaman rendah.

Mempraktikkannya

Mengapa ia penting

  • Kos dan bajet. Keputusan seni bina memacu prestasi dan kos operasi selama bertahun-tahun.
  • Keputusan yang lebih jelas. Pendidikan teknikal membantu pasukan memilih timbunan yang betul, bukan hanya yang terbaharu.
  • Kawalan kualiti. Pilihan kejuruteraan yang lebih baik mengurangkan insiden kebolehpercayaan dalam pengeluaran.

Berhati-hati untuk

  • Mengoptimumkan satu penanda aras boleh menyembunyikan kelemahan sistem yang lebih luas.
  • Kos infrastruktur dan penyelenggaraan sering dipandang remeh.
  • Jurang keselamatan dan pemerhatian boleh berkembang apabila sistem menjadi lebih kompleks.

Langkah seterusnya

  1. Tentukan sasaran kependaman, kualiti dan kos sebelum pelaksanaan.
  2. Penanda aras di bawah beban realistik dan keadaan data.
  3. Pemantauan instrumen untuk ralat, drift dan kesan pengguna.
  4. Sediakan laluan balik dan tindak balas insiden sebelum penskalaan.

Teruskan Meneroka

Newsletter percuma

Dapatkan taklimat AI harian

Tiga cerita AI yang disahkan setiap pagi hari bekerja, ditulis dalam Bahasa Inggeris biasa. Percuma selamanya, tiada iklan.

Satu e-mel setiap hari bekerja. Berhenti melanggan dalam satu klik. Kami tidak pernah menjual atau berkongsi alamat anda.

Uji diri anda

Take the Disaggregated Prefill and Decode Serving quiz

Maklum balas segera pada setiap jawapan, dan sijil yang boleh dikongsi dengan ID yang boleh disahkan sebaik sahaja anda lulus kursus.

Mulakan kuiz

Sokong pendidikan AI percuma. AI Understanding ialah pertubuhan bukan keuntungan 501(c)(3) — tiada iklan, tiada bayaran dinding, selamanya. Buat derma

Soalan lazim

Apakah Penyajian Praisi dan Dekod Terpisah?

Seni bina penyajian yang membahagikan inferens model bahasa besar kepada dua fasa berasingan—praisi dan nyahkod—dan menjalankannya pada kumpulan GPU yang berbeza. Ini penting kerana kedua-dua fasa ini mempunyai selera perkakasan yang bertentangan, dan memaksa mereka ke mesin yang sama membazir kapasiti dan menjejaskan kependaman.

Apakah sebab perkakasan teras untuk memisahkan praisi dan nyahkod ke kumpulan GPU yang berbeza?

Praisi memproses keseluruhan gesaan secara selari dan tepu pengiraan, manakala penyahkod membaca cache KV setiap langkah dan dihadkan oleh lebar jalur memori—selera berlawanan yang mewajarkan kumpulan berasingan yang ditala secara bebas.

Apakah struktur data yang mesti dipindahkan daripada pekerja praisi kepada menyahkod pekerja?

Praisi membina cache KV untuk gesaan; nyahkod memerlukan cache itu untuk terus menjana, jadi cache dihantar melalui sambungan pantas ke kolam penyahkod.

Masalah manakah yang dikurangkan secara khusus dalam persediaan GPU kongsi?

Pada GPU kongsi, letusan praisi yang panjang boleh menyekat langkah penyahkod yang sedang berjalan; memisahkannya menghalang gangguan itu dan menstabilkan kependaman ekor.

Mengapakah praisi boleh dikumpulkan secara agresif tetapi menyahkod faedah daripada penalaan yang berbeza?

Praisi memproses semua token segera bersama-sama, jadi kelompok yang lebih besar memberi makan teras tensor dengan baik; nyahkod menjana satu token pada satu masa dan dikawal oleh ingatan, jadi skalanya berbeza.

Sambungan manakah yang biasanya digunakan untuk mengalihkan cache KV antara kumpulan terpisah?

Pautan jalur lebar tinggi, kependaman rendah seperti NVLink (intra-nod) dan InfiniBand (antara-nod) diperlukan supaya pemindahan KV-cache tidak menjadi kesesakan baharu.