Speculative Decoding: Đạt Tốc Độ Suy Luận LLM Nhanh Hơn 2-3 Lần
Cập nhật ngày 11 tháng 12, 2025
Cập nhật tháng 12/2025: Speculative decoding đang trưởng thành từ nghiên cứu thành tiêu chuẩn sản xuất. NVIDIA chứng minh cải thiện thông lượng 3.6x trên GPU H200. vLLM và TensorRT-LLM tích hợp hỗ trợ native. Draft model đề xuất 5-8 token được xác minh song song—khai thác năng lực GPU chưa được sử dụng hết bởi việc sinh đơn token. Chất lượng đầu ra không đổi; độ trễ giảm 2-3x.
Các mô hình ngôn ngữ lớn sinh văn bản từng token một, và mỗi token yêu cầu một forward pass đầy đủ qua hàng tỷ tham số. Nút thắt tuần tự tạo ra độ trễ khiến người dùng chờ đợi phản hồi cảm thấy khó chịu, ngay cả khi GPU chỉ hoạt động một phần trong quá trình tính toán. Speculative decoding phá vỡ nút thắt bằng cách sử dụng các draft model nhỏ, nhanh để đề xuất nhiều token mà target model lớn hơn xác minh song song, đạt tốc độ nhanh hơn 2-3 lần mà không thay đổi chất lượng đầu ra.¹
Kỹ thuật này đã trưởng thành từ một nghiên cứu thú vị thành tiêu chuẩn sản xuất vào năm 2025. Cả vLLM và TensorRT-LLM đều tích hợp hỗ trợ speculative decoding native, với NVIDIA chứng minh cải thiện thông lượng 3.6x trên GPU H200.² Hiểu được khi nào speculative decoding hữu ích, cách chọn draft model, và framework nào cung cấp triển khai tốt nhất cho phép các tổ chức giảm đáng kể chi phí suy luận và độ trễ.
Cách speculative decoding hoạt động
Việc sinh autoregressive truyền thống tạo token tuần tự:
- Model nhận prompt, sinh logits cho token tiếp theo
- Lấy mẫu token từ phân phối
- Thêm token vào context, lặp lại forward pass
- Tiếp tục cho đến khi hoàn thành
Mỗi bước yêu cầu toàn bộ tính toán của model, nhưng GPU có năng lực lớn hơn nhiều so với việc sinh đơn token sử dụng. Speculative decoding khai thác năng lực chưa sử dụng:
Giai đoạn draft: Một model nhỏ, nhanh sinh K token suy đoán một cách nhanh chóng. Draft model có thể tạo ra 5-8 phần tiếp tục ứng viên trong thời gian target model mất cho một token.
Giai đoạn xác minh: Target model xử lý tất cả K token trong một forward pass song song duy nhất, tính toán xác suất cho mỗi vị trí đồng thời. Tính song song của GPU cho phép xác minh K token với chi phí tương tự như sinh một token.
Chấp nhận/từ chối: So sánh phân phối của draft và target tại mỗi vị trí. Chấp nhận token khi phân phối khớp; từ chối và lấy mẫu lại khi chúng khác nhau. Thuật toán đảm bảo đầu ra khớp chính xác với những gì target model sẽ tạo ra độc lập.³
Tốc độ cải thiện đến từ việc chấp nhận nhiều token trên mỗi forward pass của target model. Nếu tỷ lệ chấp nhận trung bình của draft model là 60% và đề xuất 8 token, mỗi pass xác minh tạo ra khoảng 5 token so với 1 khi không có speculation.
Benchmark hiệu năng
Các triển khai sản xuất chứng minh tốc độ cải thiện đáng kể trên các họ model:
Llama model trên vLLM:⁴ - Llama 3.1-70B với draft 1B: tốc độ nhanh hơn 2.31x - Llama 3.1-8B trên một A100: giảm độ trễ 1.8x - Llama 3.1-70B ở tỷ lệ request thấp: giảm độ trễ 1.6x
TensorRT-LLM trên H200:⁵ - Llama 3.1-405B với các draft model khác nhau: thông lượng >3x - Kết hợp với lượng tử hóa FP8: cải thiện tổng 3.6x
SGLang với SpecForge:⁶ - Llama 4 Maverick: tốc độ nhanh hơn 2.18x trên MT-Bench - Llama 4 Scout: tăng tốc 2.0x
Phương pháp EAGLE (hiệu năng cao nhất):⁷ - Độ chính xác draft khoảng 0.8 (80% chấp nhận) - Tốc độ nhanh hơn 2.5-2.8x điển hình - Dẫn đầu trên bảng xếp hạng Spec-Bench
Tốc độ cải thiện thay đổi đáng kể dựa trên đặc điểm workload. Các trường hợp sử dụng đồng bộ, nhạy cảm với độ trễ thấy lợi ích lớn nhất. Xử lý batch thông lượng cao hưởng lợi ít hơn khi GPU compute trở thành nút thắt thay vì sinh tuần tự.
Triển khai framework
vLLM speculative decoding
vLLM hỗ trợ nhiều phương pháp speculative decoding bao gồm draft model, ngram matching, và EAGLE:
# Bật draft model speculation
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
Tích hợp EAGLE (khuyến nghị):
# EAGLE đạt tỷ lệ chấp nhận cao hơn
vllm serve meta-llama/Llama-3.1-70B-Instruct \
--speculative-model yuhuili/EAGLE-LLaMA3.1-Instruct-70B \
--speculative-method eagle \
--num-speculative-tokens 8
Tích hợp Eagle 3 của vLLM mang lại tốc độ nhanh hơn đến 2.5x trên các kịch bản đa dạng.⁸ Framework tự động xử lý xác minh token và rejection sampling, duy trì tương đương đầu ra với sinh không speculation.
TensorRT-LLM speculative decoding
TensorRT-LLM cung cấp tối ưu hóa sâu hơn cho phần cứng NVIDIA:
# Build engine với speculative decoding
trtllm-build \
--speculative_decoding_mode draft_tokens_external \
--max_draft_len 8 \
--checkpoint_dir $TARGET_CHECKPOINT \
--output_dir $ENGINE_DIR
Đối với cấu hình draft model:
# Draft model với engine riêng
trtllm-build \
--checkpoint_dir $DRAFT_CHECKPOINT \
--output_dir $DRAFT_ENGINE \
--max_batch_size 256
Các kernel tùy chỉnh của TensorRT-LLM tối ưu hóa cả giai đoạn sinh draft và xác minh, khai thác hiệu năng tối đa từ Tensor Cores và băng thông bộ nhớ.
Tích hợp Triton Inference Server
NVIDIA Triton Inference Server hỗ trợ speculative decoding thông qua vLLM backend:⁹
model_repository/
└── speculative_llm/
├── config.pbtxt
└── 1/
└── model.py
Tích hợp Triton cho phép triển khai quy mô sản xuất với request batching, thu thập metrics, và scaling native Kubernetes trong khi duy trì lợi ích speculative decoding.
Lựa chọn draft model
Chất lượng draft model quyết định hiệu quả speculative decoding. Draft model kém lãng phí compute vào các đề xuất mà target model từ chối.
Tiêu chí lựa chọn
Căn chỉnh kiến trúc: Draft model từ cùng họ với target đạt tỷ lệ chấp nhận cao hơn. Llama 3.2-1B draft cho Llama 3.1-70B vượt trội hơn các model nhỏ chung chung vì dữ liệu huấn luyện và tokenization căn chỉnh.¹⁰
Tỷ lệ kích thước: Draft model thường dao động từ 1/10 đến 1/50 kích thước target. Draft nhỏ hơn sinh nhanh hơn nhưng có thể có tỷ lệ chấp nhận thấp hơn. Kiểm tra nhiều kích thước để tìm tỷ lệ tối ưu cho workload của bạn.
Ngưỡng tỷ lệ chấp nhận: Nhắm tới tỷ lệ chấp nhận 60%+. Dưới 50%, chi phí xác minh có thể triệt tiêu lợi ích speculation. Sử dụng profiling để đo tỷ lệ chấp nhận thực tế cho các prompt cụ thể của bạn.
Fine-tuning draft model
Draft model có sẵn thường hoạt động kém trên các tác vụ domain cụ thể. Fine-tuning cải thiện đáng kể tỷ lệ chấp nhận:¹¹
# Fine-tune draft model trên phân phối target
from transformers import Trainer, TrainingArguments
# Sinh dữ liệu huấn luyện bằng cách lấy mẫu từ target model
# Fine-tune draft để khớp phân phối đầu ra của 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()
Các tổ chức báo cáo cải thiện tỷ lệ chấp nhận 20-40% từ fine-tuning draft theo domain cụ thể. Đầu tư này mang lại lợi ích cho các workload suy luận khối lượng lớn.
SpecForge cho SGLang
SpecForge cung cấp hệ sinh thái chuyên dụng để huấn luyện draft model:¹²
- Tích hợp native SGLang
- Công thức huấn luyện tối ưu cho các biến thể Llama 4
- Speculator đã huấn luyện sẵn cho các model phổ biến
Dự án Speculators của Red Hat chuẩn hóa speculative decoding với định dạng Hugging Face thống nhất và tích hợp vLLM, đơn giản hóa việc khám phá và triển khai draft model.¹³
Kỹ thuật nâng cao
Self-speculative decoding (SWIFT)
SWIFT loại bỏ draft model riêng bằng cách bỏ qua thích ứng các layer trung gian của target LLM:¹⁴
- Không cần model phụ trợ
- Không cần huấn luyện thêm
- Tốc độ nhanh hơn 1.3x-1.6x trong khi bảo toàn phân phối đầu ra
Kỹ thuật hoạt động bằng cách dự đoán layer nào có thể bỏ qua dựa trên độ tin cậy token. Các phần tiếp tục đơn giản bỏ qua nhiều layer hơn; suy luận phức tạp sử dụng độ sâu model đầy đủ.
# Cấu hình SWIFT khái niệm
config = SwiftConfig(
skip_threshold=0.8, # Bỏ qua layer khi độ tin cậy > 0.8
min_layers=16, # Luôn sử dụng ít nhất 16 layer
adaptive=True # Điều chỉnh động theo token
)
SWIFT phù hợp với các kịch bản mà việc duy trì draft model riêng thêm phức tạp không mong muốn.
Ngram speculation
Đối với đầu ra có cấu trúc hoặc các pattern có thể dự đoán, ngram matching cung cấp speculation mà không cần mạng neural:
# vLLM ngram speculation
vllm serve meta-llama/Llama-3.1-70B-Instruct \
--speculative-model "[ngram]" \
--ngram-prompt-lookup-max 4 \
--num-speculative-tokens 4
Ngram speculation xác định các pattern lặp lại trong prompt hoặc lịch sử sinh, đề xuất token dựa trên các chuỗi đã quan sát. Cách tiếp cận này hoạt động tốt cho sinh code, dữ liệu có cấu trúc, và nội dung lặp lại.
Medusa heads
Medusa gắn thêm các prediction head vào target model, sinh nhiều token ứng viên song song:
# Medusa yêu cầu sửa đổi model
model = load_medusa_model("path/to/medusa_llama_70b")
# Các head bổ sung dự đoán token tại vị trí +1, +2, +3, ...
Medusa loại bỏ hoàn toàn draft model nhưng yêu cầu sửa đổi model và huấn luyện lại. Các tổ chức có triển khai model tùy chỉnh có thể thấy Medusa đáng giá mặc dù độ phức tạp tích hợp cao hơn.
Khi nào speculative decoding hữu ích
Speculative decoding mang lại lợi ích lớn nhất trong các điều kiện cụ thể:
Kịch bản thuận lợi: - Ứng dụng chat tương tác ưu tiên độ trễ - Suy luận đơn người dùng khi GPU sử dụng không hết cao - Sinh văn bản dài (truyện, tài liệu, code) - Workload với pattern token có thể dự đoán
Kịch bản ít thuận lợi: - Xử lý batch thông lượng cao đã bão hòa GPU - Phản hồi rất ngắn (ít token để suy đoán) - Sinh sáng tạo/ngẫu nhiên cao với tỷ lệ chấp nhận thấp - Triển khai hạn chế bộ nhớ khi draft model không vừa
Framework quyết định:
IF (GPU utilization < 50% trong quá trình sinh)
AND (độ dài phản hồi trung bình > 100 token)
AND (draft model vừa trong bộ nhớ)
→ Bật speculative decoding
IF (GPU utilization > 80%)
OR (áp lực bộ nhớ cao)
→ Tập trung vào tối ưu hóa batching thay thế
Cân nhắc hạ tầng
Speculative decoding giới thiệu các yêu cầu hạ tầng cụ thể:
Chi phí bộ nhớ: Draft model tiêu thụ bộ nhớ GPU bổ sung. Đảm bảo đủ dư địa: - Trọng số draft model: ~1-8GB tùy thuộc kích thước - KV cache bổ sung cho draft token - Cấp phát tensor xác minh
Pattern compute: Các giai đoạn xác minh tạo ra pattern compute bursty khác với sinh autoregressive ổn định. Giám sát biến động sử dụng GPU và điều chỉnh batch size phù hợp.
Serving draft model: Các tùy chọn bao gồm: - Co-located: Draft chạy trên cùng GPU với target - Separate: GPU riêng cho sinh draft - CPU-offloaded: Draft nhỏ có thể chạy trên CPU để tiết kiệm bộ nhớ
Các tổ chức triển khai speculative decoding quy mô lớn có thể tận dụng chuyên môn hạ tầng GPU của Introl để cấu hình phần cứng tối ưu và lập kế hoạch năng lực.
Checklist triển khai sản xuất
Trước khi bật speculative decoding trong sản xuất:
1. Đo baseline - Đo độ trễ và thông lượng hiện tại - Profile sử dụng GPU trong quá trình sinh - Xác định nút thắt (bộ nhớ, compute, giao tiếp)
2. Lựa chọn draft model - Kiểm tra nhiều kích thước draft với các prompt đại diện - Đo tỷ lệ chấp nhận cho phân phối cụ thể của bạn - Cân nhắc fine-tuning nếu tỷ lệ chấp nhận dưới 60%
3. Tinh chỉnh cấu hình - Thử nghiệm với num_speculative_tokens (thường 4-8) - Cân bằng tỷ lệ chấp nhận vs chi phí draft - Profile sử dụng bộ nhớ với target batch size
**4. Rollo
[Nội dung bị cắt ngắn cho dịch thuật]