HeadlinesBriefing favicon HeadlinesBriefing.com

Speculative decoding vLLM AMD

Hacker News •
×

Ringkasan: Speculative decoding memungkinkan vLLM untuk memverifikasi beberapa token draft dalam satu pass model target. Pada uji coba kami, pengaruhnya terhadap output-token throughput bervariasi mengikut kaedah draft dan panjang proposal, serta juga bergantung kepada keluarga model, checkpoint draft, beban kerja, dan perilaku penerimaan.

Pengenalan: Bahasa moden besar menampung pelbagai aplikasi, tetapi melayangkannya pada skala besar memerlukan optimasi yang cekal. Autoregressive decoding standard adalah asas yang digunakan oleh kebanyakan sistem LLM servicing: model menghasilkan satu token, menambahkannya kepada rangkaian, kemudian menggunakan rangkaian yang diperbaharui untuk menghasilkan token seterusnya. Proses ini sederhana dan bolehandalan, tetapi perkhidmatan loop masih maju satu token yang dikommit setiap kali, kerana output token mestilah dihasilkan dalam tertib kiri ke kanan. Speculative decoding [1] membina asas ini melalui mekanisme draft-and-verify. Komponen draft ringkas ini menghasilkan candidate masa depan token, dan model target mengesahkan candidate ini sebelum dikommit. Apabila pelbagai token draft diterima, sistem boleh beberapa output token dari satu pass model target dikommit sementara mempertahankan perilaku output model target. Post ini menyeliduri bagaimana speculative decoding berfungsi dalam vLLM dan membagikan pengukuran daripada alam ujian kami. Kami pertama kali mengkaji autoregressive decoding asas dan proses draft-and-verify. Kemudian kami mengkaji lima kaedah speculative-drafting: native MTP, Gemma 4 MTP, EAGLE-3, DFlash, dan DSpark. Kaedah-kaedah ini berbeza bagaimana komponen draft menerima maklumat daripada model target dan sama ada candidate token dihasilkan secara berurutan, autoregressif, selari, atau pendekatan hibrid. Akhirnya, kami menunjukkan cara mengaktifkan kaedah yang diuji dalam alam kami, melaporkan pengukuran daripada eksperimen kami di GPU AMD Instinct↓ MI300X dan MI355X menggunakan platform perisian terbuka ROCm↓, dan membincangkan aspek praktikal penyesuaian dan observability.

Autoregressive decoding asas: Dalam autoregressive decoding standard, setiap decode step menghasilkan dan mengkommit satu token baru. Contohnya, menghasilkan empat output token memerlukan empat decode step berurutan: Step 1:context→model→T1 Step 2:context + T1→model→T2 Step 3:context + T1 T2→model→T3 Step 4:context + T1 T2 T3→model→T4 Selepas setiap step, token yang dihasilkan ditambah kepada rangkaian dan menjadi input untuk step seterusnya. Ini membuat decode loop sederhana, tetapi juga memerlukan satu decode step model untuk setiap output token. Pada generasi yang panjang, decode loop token-by-token ini boleh mendominasi latensi dan membatasi throughput perkhidmatan.

Pertanyaan utama di belakang speculative decoding adalah: Adakah kita boleh mempertahankan perilaku output model asal mengurangkan frekuensi di mana pembaharuan hanya maju satu token pada satu waktu? Speculative decoding menyelesaikan masalah ini dengan memisahkan proposal daripada verify. Seorang komponen draft pertama-tama menghasilkan candidate masa depan token. Asli model, menjadi model target, kemudian mengesahkan candidate ini sebelum dikommit.

Idea inciptaive speculative decoding: Speculative decoding tidak menggantikan model asal. Sebagai gantinya, ia memegang model asal sebagai model target, yang masih bertanggungjawab untuk output akhir, dan menambah tahap proposal yang lebih cepat di hadapannya. Proses ini mempunyai dua bahagian: Draft: menghasilkan candidate masa depan token. Verify: menggunakan model target untuk mengesahkan candidate.

Pada setiap ronde speculative decoding, seperti digambarkan dalam Rajah 1, ringkas komponen draft menghasilkan satu atau lebih masa depan token. Token ini hanya candidate dan tidak segera dikommit. Model target kemudian menilai urutan candidate token dalam satu pass verify. Verify dari kiri ke kanan. Setiap draft token diuji menggunakan hasil model target pada posisi yang sesuai. Token yang diterima dikommit kepada urutan output. Apabila draft token ditolak, candidate seterusnya...