OpenCode.io.vn
Quay lại Blog
30 tháng 4, 2026OpenCode Vietnam14 phút đọc

Hiểu sâu về MoE (Mixture of Experts) - Kiến trúc đứng sau mọi LLM hàng đầu

Khám phá kiến trúc MoE từ gốc đến ngọn: cách Router định tuyến token, vì sao 1.000 tỷ tham số chỉ tốn compute như mô hình 32B, và các mô hình GPT-4, Kimi K2, DeepSeek V3, MiniMax M2.5 triển khai MoE ra sao.

#moe#mixture-of-experts#kien-truc-llm#deep-learning#kimi-k2#minimax-m2#deepseek#gpt-4

Hiểu sâu về MoE (Mixture of Experts) - Kiến trúc đứng sau mọi LLM hàng đầu

Từ GPT-4, Gemini, DeepSeek V3 đến Kimi K2, MiniMax M2.5 — tất cả đều dùng chung một kiến trúc: MoE (Mixture of Experts). Đây không còn là "tính năng" thử nghiệm nữa, mà là xương sống kiến trúc của mọi mô hình ngôn ngữ lớn hàng đầu hiện nay.

Nhưng MoE hoạt động thế nào? Tại sao nó cho phép mô hình 1.000 tỷ tham số chạy với chi phí chỉ bằng mô hình 32 tỷ? Router định tuyến token ra sao? Làm thế nào để tránh "chuyên gia chết"?

Bài viết này giúp bạn hiểu tận gốc kiến trúc MoE — từ nguyên lý cơ bản đến chi tiết triển khai, kèm ví dụ minh họa và so sánh thực tế giữa các mô hình.


Tổng quan nhanh: MoE là gì?

MoE (Mixture of Experts) là một kiến trúc cho phép tạo ra những mô hình siêu lớn nhưng vẫn chạy nhanh và tiết kiệm tài nguyên. Thay vì dùng toàn bộ bộ não cho mọi tác vụ, MoE chỉ kích hoạt một phần nhỏ phù hợp nhất — giống như bệnh viện có 100 bác sĩ nhưng với mỗi bệnh nhân, bạn chỉ gọi đúng 1-2 chuyên khoa.

Mô hình Dense (truyền thống)
TokenFFN KHỔNG LỒOutput

Toàn bộ tham số được kích hoạt cho MỌI token
→ Chậm, tốn compute, không scale được

Mô hình MoE (hiện đại)
Token
Router
Expert 1 (Toán)
Expert 2 (Code)
Expert 3 (Ngữ pháp)
Expert 4 (Dịch)
...
Expert 8 (Ngữ cảnh)
Tổng hợp
Output

Chỉ 1-2 expert được kích hoạt mỗi token
→ Nhanh, tiết kiệm, scale không giới hạn

Tại sao cần MoE? Đơn giản: muốn mô hình thông minh hơn thì cần nhiều tham số hơn. Nhưng với kiến trúc Dense, thêm tham số = thêm chi phí tính toán tuyến tính. MoE phá vỡ ràng buộc này: tham số tổng tăng vọt, nhưng chi phí mỗi token gần như không đổi.


Kiến trúc cốt lõi: 2 trụ cột

Một lớp MoE thay thế khối FFN (Feed-Forward Network) truyền thống trong Transformer bằng 2 thành phần:

1. Experts (Chuyên gia)

Mỗi expert là một mạng FFN nhỏ, độc lập, có cùng cấu trúc nhưng tham số khác nhau. Qua quá trình huấn luyện, mỗi expert tự học cách chuyên môn hóa vào một miền tri thức hoặc kiểu xử lý riêng:

ExpertCó thể chuyên vềVí dụ input phù hợp
E₁Toán học, logicx² + 2x + 1 = 0, O(n log n)
E₂Lập trình, codeasync function, SELECT * FROM
E₃Ngữ pháp, cấu trúc câumặc dù... nhưng..., however
E₄Dịch thuật đa ngôn ngữBonjour, 你好世界
E₅Kiến thức chung, ngữ cảnhHà Nội là thủ đô của

Quan trọng: Expert không được gán nhãn trước. Chúng tự học chuyên môn hóa một cách tự nhiên trong quá trình huấn luyện. Bạn không "dạy" E₁ giỏi toán — mô hình tự khám phá ra rằng việc gửi token toán học cho cùng một expert giúp giảm loss tốt nhất.

2. Router (Bộ định tuyến)

Router là một mạng neural nhỏ (thường chỉ là 1 lớp Linear + Softmax), có nhiệm vụ: nhận một token → tính điểm phù hợp cho từng expert → chọn ra Top-k expert có điểm cao nhất.

Với mỗi token x:
  1. scores = Softmax(W_router · x)       // vector [s₁, s₂, ..., sₙ] có tổng = 1
  2. top_k_indices = TopK(scores, k=2)     // chọn 2 expert điểm cao nhất
  3. outputs = [expert_i(x) for i in top_k_indices]
  4. final = Σ (scores[i] * outputs[i])    // tổng có trọng số

k thường bằng 1 hoặc 2. Với k=2, mỗi token được gửi đến 2 expert, tăng độ chính xác với chi phí gấp đôi. Hầu hết các mô hình lớn (GPT-4, Kimi K2, DeepSeek V3) dùng k=2 nhưng chỉ tính 1 lần FFN cho mỗi token (nhờ kỹ thuật load balancing nâng cao).


Hành trình của một token: Ví dụ từng bước

Hãy theo dõi câu "Tính đạo hàm của f(x) = x² + 2x" qua một lớp MoE có 8 expert (k=2):

Bước 1: Token "Tính" đến lớp MoE

Token "Tính"
E₁ Toán
0.02
E₂ Code
0.01
E₃ Ngữ pháp
0.05
E₄ Dịch
0.01
E₅ Ngữ cảnh
0.72 ← Top-1
E₆ Kiến thức
0.08
E₇ Văn phong
0.10 ← Top-2
E₈ Tên riêng
0.01
→ Chọn E₅E₇ → Output = 0.72 × E₅("Tính") + 0.10 × E₇("Tính")

Bước 2: Token "đạo hàm" đến lớp MoE

Token "đạo hàm"
E₁ Toán
0.68 ← Top-1
E₂ Code
0.05
E₃ Ngữ pháp
0.03
E₄ Dịch
0.01
E₅ Ngữ cảnh
0.15 ← Top-2
E₆ Kiến thức
0.06
E₇ Văn phong
0.01
E₈ Tên riêng
0.01
→ Chọn E₁E₅ → Output = 0.68 × E₁("đạo hàm") + 0.15 × E₅("đạo hàm")

Bước 3: Token "x²" đến lớp MoE

Token "x²"
E₁ Toán
0.81 ← Top-1
E₂ Code
0.03
E₃ Ngữ pháp
0.02
E₄ Dịch
0.01
E₅ Ngữ cảnh
0.04
E₆ Kiến thức
0.07 ← Top-2
E₇ Văn phong
0.01
E₈ Tên riêng
0.01
→ Chọn E₁E₆

Tổng kết

TokenExpert được chọnLý do
"Tính"E₅ (72%), E₇ (10%)Từ thông dụng, cần ngữ cảnh + văn phong
"đạo hàm"E₁ (68%), E₅ (15%)Toán học + một chút ngữ cảnh
"f(x)"E₁ (75%), E₂ (8%)Toán học + ký hiệu giống code
"x²"E₁ (81%), E₆ (7%)Thuần túy toán học
"+"E₁ (55%), E₂ (12%)Toán tử, cả toán lẫn code đều dùng
"2x"E₁ (78%), E₆ (9%)Biểu thức toán

Chỉ 2/8 expert làm việc mỗi token. Tổng compute ≈ 25% so với Dense model cùng kích thước.


MoE trong Transformer: Nó nằm ở đâu?

Trong kiến trúc Transformer chuẩn, mỗi block gồm 2 phần:

  1. Self-Attention: token nhìn nhau (không bị MoE thay thế)
  2. FFN: xử lý độc lập từng token → đây là nơi MoE thay thế
Transformer Block với MoE
InputMulti-Head Self-Attention
↕ Residual Connection
RouterExpert ₁,₂,₃...Combine→ Output
Chỉ FFN được "MoE hóa". Attention vẫn dùng chung toàn bộ tham số.

Mỗi Transformer layer có thể có một Router riêng với tập expert riêng — hoặc dùng chung expert cho tất cả layer (kiến trúc phổ biến hơn). Càng nhiều layer, router càng có cơ hội "tinh chỉnh" việc định tuyến cho từng tầng xử lý.


Ưu điểm của MoE: Tại sao ai cũng dùng

1. Scale không giới hạn

Đây là lợi thế lớn nhất. Với kiến trúc Dense, mô hình 100B tham số tốn 100B tham số compute mỗi token. Với MoE (active 2%), mô hình 1.000B tham số chỉ tốn ~20B tham số compute mỗi token.

Chi phí tính toán theo tham số
Dense model (1T params)
~1000B compute/token
MoE model (1T total, 20B active)
~20B compute/token
MoE: thêm tham số nhưng compute gần như không đổi — tiết kiệm ~50x!

Kimi K2 (1.000B params, 32B active) là ví dụ điển hình: huấn luyện chỉ tốn 4,6 triệu USD — rẻ hơn rất nhiều so với các mô hình cùng đẳng cấp nhưng dùng kiến trúc Dense.

2. Chuyên môn hóa tự nhiên

Các expert tự động phân công "lãnh địa". Kết quả: mỗi token được xử lý bởi một bộ tham số đã "thuộc lòng" miền tri thức đó — dẫn đến chất lượng cao hơn trên tác vụ hỗn hợp.

3. Hiệu quả inference

Trong quá trình inference (sinh văn bản), MoE đặc biệt nhanh hơn Dense với context dài. Tại 128K token, MiniMax M2.5 (MoE) giảm >90% chi phí so với Transformer thuần.


Nhược điểm và thách thức

1. VRAM khổng lồ

Dù chỉ kích hoạt 2-5% tham số, toàn bộ expert vẫn phải nằm trong bộ nhớ GPU. Kết quả: mô hình 1.000B tham số cần nhiều card GPU để chứa, dù mỗi card chỉ chạy một phần.

VRAM Requirement — Kimi K2 (1.000B params)
VRAM cần:~2.000 GB (FP16)
GPU A100-80GB:tối thiểu 25 card
Compute/token:64GB (chỉ 32B active)

2. Huấn luyện khó — "Chuyên gia chết"

Thách thức lớn nhất: load balancing. Nếu không kiểm soát, Router có xu hướng luôn chọn 1-2 expert "giỏi nhất" ban đầu, bỏ qua hẳn các expert khác. Hệ quả:

  • Expert được chọn nhiều → ngày càng giỏi → càng được chọn nhiều (vòng lặp dương)
  • Expert không được chọn → không học được gì → mãi mãi "chết" (dead expert)

3. Fine-tuning khó khăn

Khi fine-tune một mô hình MoE, bạn dễ phá vỡ cấu trúc chuyên môn hóa đã học. Router "quên" cách phân phối token, dẫn đến collapse — tất cả token dồn vào 1 expert. Đây là lý do fine-tuning MoE model cho domain-specific tasks khó hơn Dense model rất nhiều.


Giải pháp: Auxiliary Loss (Hàm mất mát phụ)

Để giải quyết vấn đề load balancing, hầu hết mô hình MoE sử dụng auxiliary loss — một hàm mất mát phạt mô hình nếu phân phối không đều:

# Pseudo-code cho auxiliary loss
def auxiliary_loss(router_probs, expert_mask):
    """
    router_probs: [batch, seq_len, num_experts] - điểm softmax của router
    expert_mask:  [batch, seq_len, num_experts] - expert nào được chọn (0/1)
    """
    # f_i: tần suất expert i được chọn (trung bình trên batch)
    f = expert_mask.float().mean(dim=[0, 1])  # [num_experts]

    # P_i: xác suất trung bình router gán cho expert i
    P = router_probs.mean(dim=[0, 1])         # [num_experts]

    # Loss = num_experts * Σ(f_i * P_i)
    # Khuyến khích f_i và P_i phân phối đều (đều = 1/num_experts)
    load_balance_loss = num_experts * torch.sum(f * P)

    return load_balance_loss

# Tổng loss = task_loss + α × load_balance_loss
total_loss = cross_entropy_loss + 0.01 * auxiliary_loss(probs, mask)

Cách hiểu trực quan: Hàm loss này nói với mô hình: "Nếu mày cứ gửi token cho cùng một expert, tao sẽ phạt. Phân phối đều ra!"

Trong thực tế, các mô hình lớn còn dùng thêm:

  • Expert capacity limits: Giới hạn số token tối đa mỗi expert xử lý mỗi batch
  • Load balancing via noise: Thêm nhiễu vào điểm router để tránh "đường mòn"
  • Switch Transformer routing: Chỉ gửi token đến đúng 1 expert, tăng hiệu quả

So sánh các mô hình MoE hàng đầu

Mô hìnhTổng tham sốActive paramsSố expertTop-kContext
GPT-4~1.800B~280B8-16 (ước tính)2128K
Gemini 2.5 ProKhông công bốKhông công bốKhông công bố-1M+
DeepSeek V3671B37B256 (1 shared)8128K
Kimi K21.000B32B~3808128K
MiniMax M2.5230B10BKhông công bố2 (ước tính)128K
MiniMax M2.7230B10BKhông công bố2 (ước tính)200K
Qwen2.5-MaxKhông công bốKhông công bốKhông công bố-128K

Điểm thú vị:

  • DeepSeek V3 dùng 256 expert nhưng mỗi token chỉ gọi 8 — tỷ lệ active chỉ 3,1%
  • Kimi K2 thậm chí còn "sparse" hơn: active rate 3,2% với ~380 expert, mỗi token gọi 8 expert
  • MiniMax M2.5 dùng tỷ lệ active cực thấp (4,3%) kết hợp với Linear Attention để xử lý context dài với chi phí thấp kỷ lục

Linear Attention + MoE: Bộ đôi tối ưu

MiniMax kết hợp MoE với Linear Attention — đây là ví dụ hoàn hảo cho việc hai công nghệ bổ trợ cho nhau:

Transformer cổ điểnMoE + Linear Attention
AttentionO(n² × d) - quadraticO(n × d²) - linear
FFNO(n × d_ff) - toàn bộO(n × k × d_ff / num_experts) - chỉ 4,3%
Context 128KRất chậmNhanh gấp 10x
Tổng chi phí~$15/1M token (Claude)~$0,3/1M token (MiniMax M2.5)

Kết quả: MiniMax M2.5 rẻ hơn Claude Sonnet ~25 lần nhưng vẫn đạt SWE-Bench 80,2% — hiệu năng coding gần tương đương.


Tương lai của MoE: Xu hướng & dự đoán

1. Self-Evolution (Tự tiến hóa)

MiniMax M2.7 đã chứng minh rằng MoE model có thể tự tham gia vào quá trình huấn luyện chính mình: model tự xây dựng agent harness, tự thu thập data chất lượng, và tự fine-tune qua RL. Đây là hướng đi mà cả OpenAI (Strawberry) và Anthropic đều đang theo đuổi.

2. Expert chuyên sâu hơn

Xu hướng rõ ràng: nhiều expert hơn, mỗi expert nhỏ hơn, chuyên môn hóa sâu hơn. DeepSeek V3 đã chứng minh 256 expert không phải là quá nhiều. Các mô hình tương lai có thể có hàng nghìn expert siêu nhỏ — mỗi expert chỉ 10-50M params — đủ để gói gọn kiến thức về một chủ đề cụ thể.

3. Dynamic Expert Creation

Thay vì cố định số lượng expert từ đầu, các mô hình tương lai có thể tự động tạo expert mới khi gặp domain tri thức mới, và prune expert không dùng. Điều này giúp mô hình liên tục mở rộng không giới hạn.

4. MoE trong Edge Devices

Apple Intelligence và Qualcomm đang nghiên cứu MoE on-device: mô hình nhỏ (vài tỷ params) nhưng dùng MoE để xử lý đa nhiệm (text, image, audio, code) trên một thiết bị duy nhất, không cần cloud.


Tổng kết

Khía cạnhTóm tắt
MoE là gìKiến trúc thay thế FFN bằng nhiều expert nhỏ + router thông minh
Tại sao cầnPhá vỡ giới hạn scale: tham số tăng nhưng compute gần như không đổi
Cơ chế cốt lõiRouter (Softmax) chọn Top-k expert → xử lý → tổng hợp có trọng số
Ưu điểm chínhScale không giới hạn, chuyên môn hóa tự nhiên, inference nhanh, chi phí thấp
Thách thứcVRAM lớn, load balancing, fine-tuning khó, dead experts
Giải phápAuxiliary loss, expert capacity, noise routing, switch transformer
Ai đang dùngGPT-4, Gemini, DeepSeek, Kimi, MiniMax, Qwen, Mixtral — hầu như tất cả
Tương laiSelf-evolution, dynamic experts, nhiều expert hơn, MoE on-device

MoE không phải là "một lựa chọn" nữa. Nó là nền tảng kiến trúc cho mọi mô hình AI thế hệ mới. Hiểu MoE = hiểu cách AI vận hành ở scale lớn nhất.


Bài viết tổng hợp từ các nguồn: báo cáo kỹ thuật của Kimi K2 (Moonshot AI), MiniMax M2 series, DeepSeek V3, và các phân tích từ cộng đồng AI/ML research.

Đọc tiếp

Một vài bài liên quan có thể bạn sẽ thích