Speculative Decoding: Mencapai Percepatan Inferensi LLM 2-3x
Diperbarui 11 Desember 2025
Pembaruan Desember 2025: Speculative decoding berkembang dari riset menjadi standar produksi. NVIDIA mendemonstrasikan peningkatan throughput 3,6x pada GPU H200. vLLM dan TensorRT-LLM menyertakan dukungan native. Draft model mengusulkan 5-8 token yang diverifikasi secara paralel—memanfaatkan kapasitas GPU yang kurang terpakai oleh generasi single-token. Kualitas output tidak berubah; latensi berkurang 2-3x.
Large language model menghasilkan teks satu token per satu waktu, dan setiap token memerlukan forward pass penuh melalui miliaran parameter. Bottleneck sekuensial ini menciptakan latensi yang membuat frustrasi pengguna yang menunggu respons, bahkan ketika GPU sebagian menganggur selama komputasi. Speculative decoding memecahkan bottleneck ini dengan menggunakan draft model yang kecil dan cepat untuk mengusulkan beberapa token yang diverifikasi target model secara paralel, mencapai percepatan 2-3x tanpa mengubah kualitas output.¹
Teknik ini telah matang dari keingintahuan riset menjadi standar produksi pada 2025. Baik vLLM maupun TensorRT-LLM menyertakan dukungan speculative decoding native, dengan NVIDIA mendemonstrasikan peningkatan throughput 3,6x pada GPU H200.² Memahami kapan speculative decoding membantu, cara memilih draft model, dan framework mana yang menawarkan implementasi terbaik memungkinkan organisasi mengurangi biaya dan latensi inferensi secara dramatis.
Cara kerja speculative decoding
Generasi autoregresif tradisional menghasilkan token secara sekuensial:
- Model menerima prompt, menghasilkan logits untuk token berikutnya
- Sampel token dari distribusi
- Tambahkan token ke konteks, ulangi forward pass
- Lanjutkan hingga selesai
Setiap langkah memerlukan komputasi model penuh, tetapi GPU memiliki kapasitas jauh lebih besar daripada yang digunakan oleh generasi single-token. Speculative decoding memanfaatkan kapasitas yang tidak terpakai:
Fase draft: Model kecil dan cepat menghasilkan K token spekulatif dengan cepat. Draft model mungkin menghasilkan 5-8 kandidat kelanjutan dalam waktu yang diperlukan target model untuk satu token.
Fase verifikasi: Target model memproses semua K token dalam satu forward pass paralel, menghitung probabilitas untuk setiap posisi secara bersamaan. Paralelisme GPU memungkinkan verifikasi K token dengan biaya serupa untuk menghasilkan satu.
Terima/tolak: Bandingkan distribusi draft dan target di setiap posisi. Terima token di mana distribusi selaras; tolak dan resampel di mana mereka berbeda. Algoritma menjamin output cocok persis dengan apa yang akan dihasilkan target model secara independen.³
Percepatan berasal dari menerima beberapa token per forward pass target model. Jika tingkat penerimaan draft model rata-rata 60% dan mengusulkan 8 token, setiap pass verifikasi menghasilkan sekitar 5 token versus 1 tanpa spekulasi.
Benchmark kinerja
Deployment produksi mendemonstrasikan percepatan substansial di seluruh keluarga model:
Model Llama di vLLM:⁴ - Llama 3.1-70B dengan draft 1B: percepatan 2,31x - Llama 3.1-8B pada single A100: pengurangan latensi 1,8x - Llama 3.1-70B pada tingkat request rendah: pengurangan latensi 1,6x
TensorRT-LLM di H200:⁵ - Llama 3.1-405B dengan berbagai draft model: >3x throughput - Dikombinasikan dengan kuantisasi FP8: peningkatan total 3,6x
SGLang dengan SpecForge:⁶ - Llama 4 Maverick: percepatan 2,18x pada MT-Bench - Llama 4 Scout: akselerasi 2,0x
Metode EAGLE (performa terbaik):⁷ - Sekitar 0,8 akurasi draft (80% penerimaan) - Percepatan tipikal 2,5-2,8x - State-of-the-art pada leaderboard Spec-Bench
Percepatan bervariasi secara signifikan berdasarkan karakteristik workload. Kasus penggunaan sinkron dan sensitif latensi melihat keuntungan terbesar. Pemrosesan batch throughput tinggi kurang diuntungkan karena komputasi GPU menjadi bottleneck daripada generasi sekuensial.
Implementasi framework
Speculative decoding vLLM
vLLM mendukung beberapa metode speculative decoding termasuk draft model, ngram matching, dan EAGLE:
# Aktifkan spekulasi draft model
vllm serve meta-llama/Llama-3.1-70B-Instruct \
--speculative-model meta-llama/Llama-3.2-1B-Instruct \
--num-speculative-tokens 5 \
--speculative-draft-tensor-parallel-size 1
Integrasi EAGLE (direkomendasikan):
# EAGLE mencapai tingkat penerimaan lebih tinggi
vllm serve meta-llama/Llama-3.1-70B-Instruct \
--speculative-model yuhuili/EAGLE-LLaMA3.1-Instruct-70B \
--speculative-method eagle \
--num-speculative-tokens 8
Integrasi Eagle 3 vLLM memberikan percepatan hingga 2,5x di berbagai skenario.⁸ Framework secara otomatis menangani verifikasi token dan rejection sampling, mempertahankan kesetaraan output dengan generasi non-spekulatif.
Speculative decoding TensorRT-LLM
TensorRT-LLM menawarkan optimisasi lebih dalam untuk hardware NVIDIA:
# Build engine dengan speculative decoding
trtllm-build \
--speculative_decoding_mode draft_tokens_external \
--max_draft_len 8 \
--checkpoint_dir $TARGET_CHECKPOINT \
--output_dir $ENGINE_DIR
Untuk konfigurasi draft model:
# Draft model dengan engine terpisah
trtllm-build \
--checkpoint_dir $DRAFT_CHECKPOINT \
--output_dir $DRAFT_ENGINE \
--max_batch_size 256
Kernel kustom TensorRT-LLM mengoptimalkan fase generasi draft dan verifikasi, mengekstrak kinerja maksimum dari Tensor Cores dan bandwidth memori.
Integrasi Triton Inference Server
NVIDIA Triton Inference Server mendukung speculative decoding melalui backend vLLM:⁹
model_repository/
└── speculative_llm/
├── config.pbtxt
└── 1/
└── model.py
Integrasi Triton memungkinkan deployment skala produksi dengan request batching, pengumpulan metrik, dan scaling native Kubernetes sambil mempertahankan manfaat speculative decoding.
Pemilihan draft model
Kualitas draft model menentukan efektivitas speculative decoding. Draft model yang buruk membuang komputasi pada proposal yang ditolak target model.
Kriteria pemilihan
Keselarasan arsitektur: Draft model dari keluarga yang sama dengan target mencapai penerimaan lebih tinggi. Llama 3.2-1B yang melakukan draft untuk Llama 3.1-70B mengungguli model kecil generik karena data pelatihan dan tokenisasi selaras.¹⁰
Rasio ukuran: Draft model biasanya berkisar dari 1/10 hingga 1/50 ukuran target. Draft lebih kecil menghasilkan lebih cepat tetapi mungkin memiliki penerimaan lebih rendah. Uji beberapa ukuran untuk menemukan rasio optimal untuk workload Anda.
Ambang tingkat penerimaan: Targetkan tingkat penerimaan 60%+. Di bawah 50%, overhead verifikasi dapat meniadakan manfaat spekulasi. Gunakan profiling untuk mengukur penerimaan aktual untuk prompt spesifik Anda.
Fine-tuning draft model
Draft model out-of-box sering berkinerja kurang baik pada tugas spesifik domain. Fine-tuning secara dramatis meningkatkan penerimaan:¹¹
# Fine-tune draft model pada distribusi target
from transformers import Trainer, TrainingArguments
# Hasilkan data pelatihan dengan sampling dari target model
# Fine-tune draft untuk mencocokkan distribusi output target
training_args = TrainingArguments(
output_dir="./draft_finetuned",
per_device_train_batch_size=8,
num_train_epochs=3,
learning_rate=2e-5,
)
trainer = Trainer(
model=draft_model,
args=training_args,
train_dataset=target_samples,
)
trainer.train()
Organisasi melaporkan peningkatan tingkat penerimaan 20-40% dari fine-tuning draft spesifik domain. Investasi ini memberikan hasil untuk workload inferensi volume tinggi.
SpecForge untuk SGLang
SpecForge menyediakan ekosistem yang dibangun khusus untuk melatih draft model:¹²
- Integrasi native SGLang
- Resep pelatihan teroptimasi untuk varian Llama 4
- Speculator pra-latih untuk model umum
Proyek Speculators Red Hat menstandarkan speculative decoding dengan format Hugging Face terpadu dan integrasi vLLM, menyederhanakan penemuan dan deployment draft model.¹³
Teknik lanjutan
Self-speculative decoding (SWIFT)
SWIFT menghilangkan draft model terpisah dengan secara adaptif melewati layer intermediate dari target LLM:¹⁴
- Tidak memerlukan model tambahan
- Tidak memerlukan pelatihan tambahan
- Percepatan 1,3x-1,6x sambil mempertahankan distribusi output
Teknik ini bekerja dengan memprediksi layer mana yang dapat dilewati berdasarkan kepercayaan token. Kelanjutan sederhana melewati lebih banyak layer; penalaran kompleks menggunakan kedalaman model penuh.
# Konfigurasi SWIFT konseptual
config = SwiftConfig(
skip_threshold=0.8, # Lewati layer saat confidence > 0.8
min_layers=16, # Selalu gunakan minimal 16 layer
adaptive=True # Sesuaikan secara dinamis per token
)
SWIFT cocok untuk skenario di mana memelihara draft model terpisah menambah kompleksitas yang tidak diinginkan.
Spekulasi ngram
Untuk output terstruktur atau pola yang dapat diprediksi, ngram matching menyediakan spekulasi tanpa neural network:
# Spekulasi ngram vLLM
vllm serve meta-llama/Llama-3.1-70B-Instruct \
--speculative-model "[ngram]" \
--ngram-prompt-lookup-max 4 \
--num-speculative-tokens 4
Spekulasi ngram mengidentifikasi pola berulang dalam prompt atau riwayat generasi, mengusulkan token berdasarkan urutan yang diamati. Pendekatan ini bekerja dengan baik untuk generasi kode, data terstruktur, dan konten repetitif.
Medusa heads
Medusa menambahkan head prediksi tambahan ke target model, menghasilkan beberapa kandidat token secara paralel:
# Medusa memerlukan modifikasi model
model = load_medusa_model("path/to/medusa_llama_70b")
# Head tambahan memprediksi token di posisi +1, +2, +3, ...
Medusa menghilangkan draft model sepenuhnya tetapi memerlukan modifikasi model dan retraining. Organisasi dengan deployment model kustom mungkin menganggap Medusa bermanfaat meskipun kompleksitas integrasi lebih tinggi.
Kapan speculative decoding membantu
Speculative decoding memberikan hasil terbaik dalam kondisi spesifik:
Skenario menguntungkan: - Aplikasi chat interaktif yang memprioritaskan latensi - Inferensi single-user di mana underutilisasi GPU tinggi - Generasi bentuk panjang (cerita, dokumen, kode) - Workload dengan pola token yang dapat diprediksi
Skenario kurang menguntungkan: - Pemrosesan batch throughput tinggi yang sudah menyaturasi GPU - Respons sangat pendek (sedikit token untuk dispekulasi) - Generasi sangat kreatif/random dengan tingkat penerimaan rendah - Deployment dengan keterbatasan memori di mana draft model tidak muat
Kerangka keputusan:
IF (utilisasi GPU < 50% selama generasi)
AND (panjang respons rata-rata > 100 token)
AND (draft model muat di memori)
→ Aktifkan speculative decoding
IF (utilisasi GPU > 80%)
OR (tekanan memori tinggi)
→ Fokus pada optimisasi batching sebagai gantinya
Pertimbangan infrastruktur
Speculative decoding memperkenalkan persyaratan infrastruktur spesifik:
Overhead memori: Draft model mengkonsumsi memori GPU tambahan. Pastikan headroom yang cukup: - Bobot draft model: ~1-8GB tergantung ukuran - KV cache tambahan untuk draft token - Alokasi tensor verifikasi
Pola komputasi: Fase verifikasi menciptakan pola komputasi bursty yang berbeda dari generasi autoregresif stabil. Monitor variabilitas utilisasi GPU dan sesuaikan ukuran batch sesuai kebutuhan.
Serving draft model: Opsi termasuk: - Co-located: Draft berjalan di GPU yang sama dengan target - Terpisah: GPU dedicated untuk generasi draft - CPU-offloaded: Draft kecil dapat berjalan di CPU untuk penghematan memori
Organisasi yang men-deploy speculative decoding dalam skala besar dapat memanfaatkan keahlian infrastruktur GPU Introl untuk konfigurasi hardware dan perencanaan kapasitas optimal.
Checklist deployment produksi
Sebelum mengaktifkan speculative decoding di produksi:
1. Pengukuran baseline - Ukur latensi dan throughput saat ini - Profil utilisasi GPU selama generasi - Identifikasi bottleneck (memori, komputasi, komunikasi)
2. Pemilihan draft model - Uji beberapa ukuran draft dengan prompt representatif - Ukur tingkat penerimaan untuk distribusi spesifik Anda - Pertimbangkan fine-tuning jika penerimaan di bawah 60%
3. Tuning konfigurasi - Eksperimen dengan num_speculative_tokens (biasanya 4-8) - Seimbangkan tingkat penerimaan vs overhead draft - Profil penggunaan memori dengan ukuran batch target
**4. Rollo
[Konten dipotong untuk terjemahan]