MoE — 64 experts nhưng chỉ chạy 2, capacity lớn cost nhỏ
Hiểu bản chất Mixture of Experts: mô hình 47B tham số chạy nhanh như 12B bằng cách chỉ kích hoạt 2/8 chuyên gia mỗi token qua cơ chế conditional computation và top-k routing.
Bạn có thể đang dùng Mixtral 8x7B mà không biết rằng nó lớn gấp 6 lần Llama 2 13B về số tham số, nhưng lại nhanh hơn và chất lượng sánh ngang GPT-3.5. Bí mật nằm ở kiến trúc Mixture of Experts (MoE): thay vì bắt mọi token phải "đọc hết bách khoa toàn thư", mô hình chỉ triệu hồi đúng 2 chuyên gia phù hợp cho mỗi tình huống.
Vấn đề
Mô hình dày đặc (dense) là sự lãng phí tinh toán kinh điển. Trong kiến trúc Transformer, mỗi token sau khi qua Attention sẽ bị ép đi qua một Feed-Forward Network (FFN) duy nhất chứa toàn bộ "kiến thức" của mô hình. Dù bạn hỏi về luật hình sự, công thức hóa học, hay chỉ là từ điển định nghĩa, cả 70 tỷ tham số của LLaMA 2 70B đều phải được nạp vào VRAM và tính toán. Đây là lý do scaling mô hình dense gặp tường thành: để thông minh hơn, bạn phải tăng FLOPs tuyến tính, và băng thông bộ nhớ GPU nhanh chóng trở thành bottleneck.
Nhưng đây là điều kỳ lạ: một token thường chỉ cần một loại "tư duy" duy nhất tại một thời điểm. Token mang tính toán số học không cần kiến thức ngôn ngữ học sâu; token chứa từ khóa chuyên ngành y tế không cần luật pháp. Ép tất cả dữ liệu qua cùng một ma trận trọng số khổng lồ không chỉ tốn điện mà còn gây nhiễu (interference) — các quy tắc học được cho một lĩnh vực lại làm méo mó lĩnh vực khác.
Ý tưởng cốt lõi
MoE giải quyết vấn đề này bằng cách tách biệt capacity (sức chứa tổng thể) ra khỏi compute (chi phí tính toán thực tế). Thay vì một FFN khổng lồ, mỗi layer giờ có N chuyên gia nhỏ hơn (thường là 8 hoặc 64), mỗi người chuyên sâu vào một kiểu xử lý nhất định. Khi token đi qua, một "thủ thư" gọi là router (hay gating network) sẽ nhìn vào nội dung và chọn ra K chuyên gia phù hợp nhất (thường K=2) để xử lý token đó.
Đây là phép ẩn dụ chính xác: tưởng tượng thư viện nơi mỗi cuốn sách là một expert. Thay vì bắt bạn đọc toàn bộ bách khoa toàn thư 47 tỷ trang cho mọi câu hỏi, thủ thư chỉ giao cho bạn 2 cuốn sách liên quan — "Giải tích" cho bài toán và "Văn phong học thuật" cho cách diễn đạt. Bạn vẫn có quyền truy cập vào toàn bộ kiến thức của thư viện (capacity lớn), nhưng chỉ phải đọc 2 cuốn (cost nhỏ).
Conditional Computation là linh hồn của MoE. Nó nhận ra rằng không phải mọi neuron trong não bộ đều kích hoạt khi bạn nghĩ về một vấn đề cụ thể. Các expert được tách biệt vật lý (separate weight matrices), nên khi expert số 3 học về "toán học", nó không làm nhiễu trọng số của expert số 7 chuyên về "lịch sử". Sự tách biệt này cho phép mô hình scale lên hàng trăm tỷ tham số mà không bị "curse of multitudes" — hiện tượng các quy tắc học được chồng chéo lên nhau trong cùng một ma trận.
Top-k Gating là cơ chế làm điều kỳ diệu này hoạt động. Router là một mạng nhỏ (thường chỉ là một linear layer) output ra phân phối xác suất qua N experts. Ta chọn top K experts có score cao nhất. Ví dụ trong Mixtral 8x7B: có 8 experts, mỗi expert là một FFN cỡ 7B, nhưng chỉ 2 được chọn. Kết quả là bạn có 47B tham số tổng cộng (shared attention + 8 experts), nhưng chỉ tính toán qua ~12B tham số mỗi token.
Điểm then chốt khiến điều này khả thi là khả năng tính đạo hàm (differentiable). Mặc dù chỉ 2 expert được chọn để tính output, gradient vẫn flow về tất cả các expert thông qua trọng số của router. Expert nào được chọn nhiều lần sẽ nhận gradient mạnh hơn, tự nhiên dẫn đến sự chuyên môn hóa. Đây là "aha moment": bạn không cần label rõ ràng "expert này học toán" — sự cạnh tranh trong top-k selection tự tổ chức (self-organize) các chuyên gia dựa trên thống kê dữ liệu.
Tuy nhiên, có một cái bẫy: nếu không kiểm soát, router sẽ "lười biếng", luôn chọn 2 expert giỏi nhất ban đầu, khiến các expert khác "chết đói" (gradient starving) và sụp đổ. Điều này dẫn đến expert collapse — hiện tượng 90% token đổ vào 2 expert, biến MoE thành mô hình 14B bình thường. Các kỹ thuật như auxiliary load balancing loss (phạt router nếu phân phối không đều) và capacity factor (giới hạn số token mỗi expert xử lý) được dùng để ép buộc sự đa dạng. Chi tiết về cách router học và cân bằng tải được đào sâu trong bài MoE Routing.
Tại sao nó hoạt động
Về mặt toán học, output của một layer MoE là tổng trọng số của K experts được chọn:
y = Σ(i ∈ top-k) G(x)_i · E_i(x)Trong đó G(x) là hàm gating (softmax over logits), và E_i(x) là expert thứ i. Vì chỉ K giá trị của G(x) là khác 0, ta chỉ cần tính K experts thay vì N.
Trong thực thi phân tán (expert parallelism), các expert khác nhau nằm trên các GPU khác nhau. Token được gửi (all-to-all communication) đến GPU chứa expert được chọn, tính toán xong được gửi về. Điều này tạo ra overhead giao tiếp, nhưng với batch size đủ lớn, chi phí này bị che lấp bởi tính toán.
Một biến thể hiện đại là DeepSeekMoE, tách biệt experts thành "shared" (dùng chung cho mọi token, như kiến thức nền) và "routed" (chuyên biệt). Điều này giúp giảm số lượng routed experts cần thiết xuống còn 1-2 mà vẫn giữ chất lượng, nhưng core idea vẫn là conditional computation như đã mô tả.
Ý nghĩa thực tế
| Đặc điểm | Dense (LLaMA 2 70B) | MoE (Mixtral 8x7B) |
|---|---|---|
| Tổng tham số | 70B | 47B |
| Tham số kích hoạt/token | 70B (toàn bộ) | ~12B (2 experts) |
| VRAM cần thiết | ~140GB (FP16) | ~90GB (FP16) |
| Tốc độ inference | Tham chiếu | Nhanh hơn ~3-4x |
| Chất lượng | Baseline | Sánh ngang/Superior |
Benchmark thực tế: Mixtral 8x7B đạt hiệu suất sánh ngang LLaMA 2 70B và GPT-3.5 trên hầu hết benchmarks (MMLU, HumanEval) trong khi inference nhanh hơn đáng kể. DeepSeek-V2 (236B tổng, 21B active) đạt chất lượng GPT-4 với throughput gấp 5 lần mô hình dense tương đương.
Nhưng MoE không phải "bùa cứu sinh":
-
Memory Wall: Bạn vẫn phải load toàn bộ 47B (hoặc 236B) tham số vào VRAM, dù chỉ dùng 12B. Đây là lý do Mixtral 8x7B vẫn cần ~90GB VRAM cho inference FP16, không thể chạy trên RTX 4090 24GB nếu không quantize. Bạn trả tiền cho "tiềm năng" dù không dùng hết.
-
Fine-tuning khó khăn: Sparse activation khiến MoE dễ overfit trên dataset nhỏ. Khi fine-tune, các expert có xu hướng "quên" cách phối hợp với nhau, dẫn đến hiện tượng "catastrophic forgetting" nhanh hơn dense models.
-
Overhead giao tiếp: Với batch size nhỏ hoặc latency-sensitive applications (chat real-time), chi phí all-to-all communication giữa GPU có thể ăn mất lợi ích của sparse compute.
Ai đang dùng: Mistral AI (Mixtral), DeepSeek (V2/V3), Google (Gemini 1.5 Pro, Switch Transformer), Snowflake (Arctic), Alibaba (Qwen1.5-MoE), và có tin đồn GPT-4 cũng dùng MoE.
Đào sâu hơn
Paper gốc:
- "Outrageously Large Neural Networks: The Sparsely-Gated Mixture-of-Experts Layer" (Shazeer et al., 2017) — Nền tảng conditional computation.
- "Switch Transformers: Scaling to Trillion Parameter Models with Simple and Efficient Sparsity" (Fedus et al., 2021) — Top-1 routing và kỹ thuật load balancing hiện đại.
- "DeepSeekMoE: Towards Ultimate Expert Specialization" (DeepSeek, 2024) — Fine-grained routing và shared experts.
Bài liên quan TroiSinh:
Cùng cụm (Architecture & MoE):
- MoE Routing — Đi sâu vào toán học top-k gating, auxiliary loss, và cách router học phân phối token.
- Decoder-Only — Kiến trúc nền tảng mà MoE thường được gắn vào (FFN trong decoder-only transformers).
- Temperature & Sampling — Cách điều chỉnh độ ngẫu nhiên của output, tác động đến phân phối mà MoE phải xử lý.
Đọc tiếp:
- Sequence Modeling — Nền tảng về cách transformer xử lý chuỗi, prerequisite để hiểu MoE hoạt động trong decoder.
- New Architectures (Level 2) — Các kiến trúc thay thế như Mamba, RetNet, mở rộng bên cạnh MoE.
- Training Efficiency — Các kỹ thuật tối ưu compute khác như gradient checkpointing, mixed precision, bổ trợ cho việc train MoE khổng lồ.
External Resources:
- HuggingFace Blog: Mixture of Experts Explained — Minh họa trực quan về routing và expert selection.
- Mistral AI Paper — Mixtral 8x7B technical report với benchmark chi tiết.
Constrained Decoding — Ép output theo grammar, JSON luôn valid
Kỹ thuật ép buộc LLM luôn sinh output đúng cú pháp JSON/grammar bằng cách che chắn token không hợp lệ ngay trong vòng lặp sampling, biến hy vọng thành đảm bảo.
MoE Routing — Top-k gating, và bài toán load balancing
Tại sao Mixtral 8x7B chỉ 'chạy' 12B parameters nhưng lại cần VRAM cho 47B? Bí mật nằm ở cơ chế Top-k gating và cuộc chiến cân bằng tải giữa các experts.