EAGLE — Draft head gắn vào internal layer, 3x speedup
Thay vì dùng draft model riêng, EAGLE gắn lightweight head vào layer giữa của chính LLM để 'đọc suy nghĩ dở' của model, đạt 3x speedup inference với chỉ 100MB overhead.
Speculative decoding đã chứng minh có thể tăng tốc inference LLM gấp 2-3 lần bằng cách dùng model nhỏ đoán trước token rồi để model lớn verify. Nhưng việc triển khai một "model nhỏ" song song tốn VRAM, khó align phân phối, và đôi khi draft model đoán sai khiến verification thành công cốc. EAGLE giải quyết vấn đề này bằng cách không dùng model riêng nữa — mà trực tiếp "đọc suy nghĩ dở" từ chính layer giữa của model đang chạy.
Vấn đề
Standard speculative decoding hoạt động như thuê một "thực tập sinh" (draft model, thường là 7B params) viết bản nháp, rồi "kỹ sư cao cấp" (target model, 70B params) kiểm tra. Cách tiếp cận này có ba vấn đề chết người trong production:
1. Chi phí VRAM đôi: Bạn phải load cả hai model cùng lúc. Llama-2 70B cần ~140GB FP16, thêm draft 7B lại tốn thêm ~14GB. Với consumer hardware (48GB VRAM), điều này là không thể.
2. Distribution mismatch: Draft model được train riêng biệt, nên phân phối token của nó khác xa target model. Khi draft đoán "Paris" nhưng target model muốn "Lyon", bạn mất cả chuỗi token sau đó. Acceptance rate thấp khiến speedup biến mất.
3. Training overhead: Cần train và maintain một model riêng chỉ để draft. Với mỗi architecture mới (Llama 3, Mistral, Qwen), bạn phải train lại draft model tương thích.
Vấn đề cốt lõi: Tại sao phải thuê người ngoài để đoán ý định của model, khi chính model đó đã có "nửa suy nghĩ" sẵn trong hidden states?
Ý tưởng cốt lõi
EAGLE (Efficient and Accurate Large Language Model Decoding) bỏ hoàn toàn khái niệm "draft model riêng biệt". Thay vào đó, nó gắn một "draft head" siêu nhẹ (1-2 layer MLP) vào một layer giữa của target model (thường layer 20-24 trong stack 32 layer), dùng chính hidden states đã tính để dự đoán token tiếp theo.
Đây là insight "đọc chính mình": Khi model đang xử lý token hiện tại đến layer 24, nó đã tạo ra representation giàu thông tin về "cái gì sẽ đến tiếp theo". Hidden state tại đây không phải là embedding thô — nó đã trải qua 24 layer self-attention và FFN, đã "suy luận" xong phần lớn ngữ cảnh. EAGLE chỉ thêm một "miệng nhỏ" để diễn đạt suy nghĩ đó thành token.
Feature Grafting: Quá trình này gọi là feature grafting — cấy ghép đầu ra từ layer giữa. Draft head nhìn vào hidden state tại layer , rồi autoregressively sinh ra 3-4 token dự đoán trong khi model chính vẫn đang tính nốt các layer đến cho token hiện tại. Khi model chính xong, nó verify cả chuỗi draft token trong một forward pass duy nhất.
Tree Speculation: EAGLE không chỉ sinh một chuỗi thẳng, mà tạo "cây" các candidate (tree speculation). Draft head có thể sinh nhiều nhánh khả thi, và target model verify song song tất cả các nhánh để tìm longest accepted prefix. EAGLE-2 còn thêm dynamic context-aware tree để tối ưu branching factor theo độ khó của từng vị trí.
Sự tiến hóa: Feature → Token Prediction: EAGLE-1 và EAGLE-2 dự đoán feature (embedding vector) thay vì token trực tiếp, vì nghĩ rằng không gian embedding ít entropy hơn không gian token (50k classes). Nhưng điều này tạo ra "compounding geometric error" — lỗi 5% ở embedding tích lũy qua nhiều bước draft. EAGLE-3 chuyển sang dự đoán token trực tiếp với objective training chuyên biệt, khắc phục vấn đề này và scale tốt hơn.
That's it. Không cần model riêng, không cần train một LLM 7B. Chỉ cần 100-300MB parameters gắn vào model hiện có, nhưng acceptance rate đạt 70-75% với text thông thường (code thấp hơn chút, ~50-60%, vì entropy cao).
Tại sao nó hoạt động
EAGLE hoạt động vì nó khai thác causal invariance của transformer: hidden state tại layer giữa đã chứa đủ thông tin để dự đoán tương lai gần, nhưng chưa bị "quyết định" bởi các layer cuối.
Khi bạn gõ "Paris là thủ đô của", model bắt đầu "nghĩ" đến "Pháp" ngay tại layer 15-20, nhưng phải đợi đến layer 32 để "nói ra". EAGLE intercept suy nghĩ dở này: nếu hidden state tại layer 20 đã point về hướng "quốc gia châu Âu", draft head có thể predict "Pháp" ngay lập tức.
Không có distribution shift: Vì draft head nhìn vào chính representation của target model, nó không bị "lệch" như draft model bên ngoài. Khi target model thay đổi behavior qua fine-tuning, draft head tự động thay đổi theo vì nó dùng chính features đó.
Băng thông bộ nhớ: VRAM chỉ tăng ~100-300MB cho draft head (vài layer MLP), so với 5-15GB cho draft model 7B. Điều này biến speculative decoding từ "giải pháp data center" thành khả thi trên consumer GPU.
Xác suất verify: Cơ chế verification vẫn là rejection sampling như standard speculative decoding — nếu draft head đoán sai, target model resample từ phân phối đúng. Điều này đảm bảo output distribution giống hệt autoregressive gốc, không có quality degradation.
Ý nghĩa thực tế
EAGLE biến speculative decoding thành "free lunch" thực sự cho production inference:
Speedup thực tế: 2.5x–3.5x trên Llama-2 7B/13B/70B, giảm 50-65% end-to-end latency tại batch size 1. Đặc biệt hiệu quả với chat và long-context generation nơi token sinh ra tuần tự chiếm thời gian.
So sánh với prompt lookup: Khác với Prompt Lookup Decoding (dùng n-gram từ input), EAGLE không phụ thuộc vào việc output có copy từ input. Nó generalize tốt hơn cho creative writing và reasoning, nơi model cần tạo token mới hoàn toàn.
Giới hạn:
- Warmup training: Cần ~tens of MB training data sampled từ chính target model để train draft head — không thể plug-and-play ngay lập tức với model bất kỳ.
- High-entropy tasks: Math và code có acceptance rate thấp hơn (50-60%) vì token tiếp theo khó đoán hơn. Tuy nhiên vẫn tốt hơn standard speculative decoding.
- Batch size: Hiệu quả giảm khi batch size cao (vì GPU đã compute-bound), nhưng vẫn hữu ích cho interactive serving.
Ai đang dùng: Integrated vào vLLM và SGLang, được nhiều API provider dùng để giảm latency cho Llama 3 và Mistral series. Đặc biệt phù hợp với KV Cache Quantization — khi bạn đã tiết kiệm memory bằng INT4 KV cache, việc thêm 300MB draft head không đáng kể.
Đào sâu hơn
Paper gốc:
- "EAGLE-3: Scaling up Inference Acceleration of Large Language Models" (2025) — Phiên bản mới nhất với token prediction thay vì feature prediction.
- "EAGLE-2: Faster Inference of Language Models with Dynamic Draft Trees" (2024) — Tree speculation động.
- "EAGLE: Speculative Sampling Requires Rethinking Feature Uncertainty" (2024) — Bài gốc.
Cùng cụm inference-frontier:
- TurboQuant — Nén KV cache xuống 3-bit bằng random rotation, kết hợp tốt với EAGLE để tối đa hóa throughput.
- KV Cache Quantization — Nén cache INT4/INT3 để mở khóa ultra-long context, giải phóng VRAM cho draft head.
- Prompt Lookup Decoding — Phiên bản "không cần training" của speculative decoding, dùng n-gram từ input thay vì draft head.
Đọc tiếp:
- Speculative Decoding (Level 1) — Nền tảng về draft-verify paradigm, cần nắm vững trước khi hiểu EAGLE.
- KV Cache — Hiểu về memory bottleneck mà EAGLE giải quyết.
- Continuous Batching — Xem EAGLE hoạt động trong hệ thống serving thực tế với dynamic batching.
TurboQuant — Random rotation trước khi quantize, 3-bit KV cache không mất accuracy
Tại sao 3-bit quantization có thể giữ nguyên độ chính xác? Bí mật nằm ở việc xoay ngẫu nhiên vector trước khi nén, biến dữ liệu 'phức tạp' thành 'đồng nhất' để quantization đơn giản hoạt động tối ưu.
KV Cache Quantization — Nén cache INT4/INT3, mở khóa ultra-long context
Giải thích bản chất KV Cache Quantization: tại sao nén Key-Value từ FP16 xuống 3-4 bit vẫn giữ được độ chính xác, và cách mở khóa context window 10 triệu token trên consumer hardware.