OpenArchLabOpen Architecture — From Models to Systems

L2 · Decode algorithm

Đề xuất token trước, rồi để mô hình chính xác minh

Kỹ thuật tăng tốc decode bằng cách dùng mô hình nhỏ đoán trước một cụm token rồi để mô hình chính kiểm tra trong một lượt.

LESSON ID spec GROUP Kiến trúc Inference
Mục lục bài học

1Định nghĩa

Speculative decoding là kỹ thuật giảm số vòng lặp tuần tự ở pha decode mà không làm thay đổi chất lượng đầu ra của mô hình chính (target model). Nó tận dụng thực tế là GPU thường dư thừa năng lực tính toán khi chỉ xử lý 1 token nhưng lại tốn nguyên một lượt đọc trọng số từ bộ nhớ.

Thay vì để mô hình lớn tự nhích từng bước, một cơ chế nháp nhẹ hơn (drafter hoặc MTP head) đoán nhanh một chuỗi ngắn K token ứng viên. Mô hình chính sau đó kiểm tra toàn bộ K token này song song trong một lượt chạy duy nhất: những token khớp phân phối xác suất được nhận ngay, vị trí sai đầu tiên được sửa lại từ điểm số của mô hình chính và phần KV cache dư thừa phía sau sẽ bị cắt bỏ.

Ví dụ đời thường: Speculative decoding giống như cách làm việc giữa một trợ lý tốc ký và một luật sư trưởng. Thay vì luật sư trưởng tự gõ từng chữ rất tốn thời gian, trợ lý viết nháp nhanh trước một cụm 4–5 từ; luật sư trưởng chỉ cần liếc mắt một lượt là duyệt luôn cả cụm từ đúng hoặc sửa ngay tại chữ đầu tiên chưa chuẩn, giúp tốc độ soạn văn bản tăng vọt mà chất lượng vẫn do luật sư trưởng quyết định.

2Luồng

Sơ đồ luồng (4 bước)
  1. Tạo ứng viên

    Đề xuất vài token theo context.

  2. Mô hình chính xác minh

    Tính các distributions cần kiểm tra.

  3. Chấp nhận và sửa state

    Giữ phần hợp lệ; xử lý phần bị từ chối.

  4. Xuất token và lặp

    Cập nhật context cho lượt đề xuất sau.

Mã Mermaid
flowchart TD
  step1["Tạo ứng viên"]
  step2["Mô hình chính xác minh"]
  step3["Chấp nhận và sửa state"]
  step4["Xuất token và lặp"]
  step1 --> step2
  step2 --> step3
  step3 --> step4

3Giải pháp

TensorRT-LLM cung cấp các đường speculative decoding. Chọn số token dự thảo và cơ chế đề xuất bằng workload thực tế, tính cả tài nguyên của drafter.

Muốn giữ đúng distribution của mô hình chính, cần thuật toán accept/reject tương ứng; không thể tùy tiện nhận mọi token chỉ vì chúng có vẻ hợp lý.

4Profiling

  • Token được chấp nhận mỗi lượt

    Đo số token output hữu ích trên một lượt xác minh, kèm thời gian đề xuất.

  • Hiệu quả toàn dịch vụ

    So latency và tổng tài nguyên bật/tắt cơ chế, giữ chất lượng, prompt và tải tương đương.

Mẹo đo lường: ghim số liệu trên workload thật, ghi cả p50/p95/p99 thay vì chỉ trung bình, và luôn ghi lại điều kiện chạy (batch, cache, đồng thời, phần cứng) trước và sau khi tối ưu. Số đo thiếu điều kiện chạy thì không so sánh được.

5Ví dụ

Sinh văn bản dễ đoán

Nếu drafter thường trùng target, một lượt xác minh có thể chấp nhận nhiều token.

Prompt khó với drafter

Nhiều ứng viên bị loại; overhead có thể khiến việc sinh chậm hơn decode thường.

6Thuật ngữ

Draft model / drafter
Mô hình hoặc cơ chế đề xuất token, thường rẻ hơn mô hình chính.
Acceptance rate
Tỷ lệ token đề xuất được chấp nhận sau khi xác minh.
Glossary (5)
Cache
Bộ nhớ giữ kết quả có thể dùng lại; trong attention thường giữ key/value vectors.
Runtime
Phần mềm quản lý việc thực thi, buffers và phụ thuộc giữa phép toán.
Latency
Thời gian chờ để nhận một kết quả hoặc một bước kết quả.
Overhead
Chi phí phụ như điều phối, chuyển đổi hoặc phát lệnh ngoài phép tính chính.
Context
Chuỗi token trước vị trí hiện tại mà model được phép sử dụng.

7Bài liên quan

8Nguồn