TL;DR
Muon không phải Kimi tạo ra. Optimizer này do Keller Jordan (OpenAI) phát minh và đẩy lên repo modded-nanogpt ngày 04/10/2024 để phá kỷ lục speedrun nanoGPT của Andrej Karpathy — kéo thời gian train từ 31.4 phút xuống 24.9 phút trên 8×H100. Đến tháng 02/2025, đội Kimi tại Moonshot AI mới là bên đầu tiên chứng minh Muon scale được lên LLM-class qua paper arxiv 2502.16982 và mô hình Moonlight 3B/16B MoE. Hai vai trò khác nhau, đừng nhầm.
Gốc của Muon: nanoGPT speedrun
Tháng 5/2024, Andrej Karpathy lập baseline cho nanoGPT speedrun: train một LM về validation loss 3.28 trên FineWeb dùng 8×H100, mất 45 phút bằng llm.c. Speedrun này thành sân chơi cộng đồng — ai cải tiến được thuật toán/kiến trúc thì set kỷ lục mới.
Keller Jordan tham gia, thử nghiệm với CIFAR-10 speedrun trước đó, rồi áp dụng kinh nghiệm sang LLM. Ngày 04/10/2024, Keller push một optimizer tên Muon (MomentUm Orthogonalized by Newton-Schulz) lên repo. Kết quả: kỷ lục nanoGPT từ 31.4 phút rơi xuống 24.9 phút ngay lập tức.
Đến 15/10/2024, kỷ lục official ghi nhận Muon cải thiện 35% so với AdamW tuned. Từ đó đến nay, qua hơn 70 kỷ lục mới do 7+ researcher khác nhau set, Muon vẫn là optimizer mặc định. Đến 08/04/2026, kỷ lục hiện tại là 1.406 phút — vẫn là Muon (với tweak orthogonalize Q/K theo cặp head).
Blog post chính thức của Keller Jordan công bố ngày 08/12/2024 trên kellerjordan.github.io. Tác giả phụ: Jeremy Bernstein, Yuchen Jin, Vlado Boza, Jiacheng You, Franz Cesista, Laker Newhouse.
Muon hoạt động thế nào
Muon chỉ áp dụng cho weights 2D ở hidden layers (Linear, conv flatten). Embeddings, classifier head, biases, gains vẫn dùng AdamW.
Bốn bước:
- Tính update G bằng SGD với Nesterov momentum.
- Chuẩn hoá:
G ← G / ‖G‖_F. - Chạy 5 vòng Newton-Schulz iteration với polynomial bậc 5:
G ← a·G + b·(GGᵀ)G + c·(GGᵀ)²G, hệ số tuned(3.4445, −4.7750, 2.0315). Toàn bộ trong bfloat16. - Apply update. Kết quả xấp xỉ U·Vᵀ trong SVD U·S·Vᵀ của G — giữ singular vectors, vứt singular values.
Nền tảng lý thuyết (do Jeremy Bernstein & Laker Newhouse trong paper Modular Duality in Deep Learning): Muon là steepest descent dưới RMS-to-RMS operator norm. Khác với Adam vốn có gốc heuristic.
So sánh với AdamW
| Metric | Muon | AdamW |
|---|---|---|
| NanoGPT speedrun (10/2024) | 35% nhanh hơn | baseline |
| Sample efficiency (1.5B) | ~1.5×–2× | baseline |
| FLOPs để đạt GPT-2 XL HellaSwag | ~52% | 100% |
| Wallclock (1.5B trên 8×H100) | 10 giờ | 13.3 giờ |
| CIFAR-10 → 94% (A100-sec) | 2.6 | 3.3 |
| FLOP overhead/step | <1% (0.7% NanoGPT, 0.5% Llama 405B) | — |
| Wallclock overhead/step | <2% | — |
| Memory | Thấp hơn (1 momentum buffer) | Cao hơn (2 moments) |
Tóm gọn: Muon chậm hơn ~2% mỗi step nhưng cần ít step hơn, tổng thể nhanh hơn 30–50% và tốn ít memory hơn AdamW.
Kimi/Moonshot đã làm gì
Đây là phần dễ nhầm nhất. Tháng 02/2025, đội Kimi tại Moonshot AI publish paper Muon is Scalable for LLM Training. Họ không tạo ra Muon. Họ là bên đầu tiên chứng minh Muon scale được lên LLM-class. Cụ thể:
- Hai fix để scale: (1) thêm weight decay — Muon gốc không có và sẽ vỡ ở scale lớn; (2) per-parameter update scale — giữ update RMS đồng đều giữa matrix và non-matrix params, ổn định training.
- Distributed implementation: phiên bản ZeRO-1 style, memory-optimal, communication-efficient, giữ nguyên tính chất toán học của Muon. Open-source ở MoonshotAI/Moonlight.
- Scaling-law validation: so sánh nghiêm túc với AdamW baseline mạnh, xác nhận Muon đạt ~2× compute efficiency / ~52% FLOPs.
- Moonlight model: MoE 3B activated / 16B total params, train trên 5.7T tokens hoàn toàn bằng Muon. Cùng kiến trúc DeepSeek-V3.
Sau đó, Moonshot tiếp tục dùng biến thể MuonClip trong training Kimi K2 (trillion-param) — extend Muon bằng cách rescale Q/K sau mỗi update để chống attention logit nổ.
Benchmark Moonlight
| Benchmark | Llama3.2-3B | Qwen2.5-3B | DSV2-Lite | Moonlight |
|---|---|---|---|---|
| Activated params | 2.81B | 2.77B | 2.24B | 2.24B |
| Training tokens | 9T | 18T | 5.7T | 5.7T |
| Optimizer | AdamW | — | AdamW | Muon |
| MMLU | 54.75 | 65.6 | 58.3 | 70.0 |
| MMLU-pro | 25.0 | 34.6 | 25.5 | 42.4 |
| HumanEval | 28.0 | 42.1 | 29.9 | 48.1 |
| MATH | 8.5 | 42.6 | 17.1 | 45.3 |
| BBH | 46.8 | 56.3 | 44.1 | 65.2 |
Train với chỉ 5.7T tokens (so với 9T của Llama3.2 và 18T của Qwen2.5) mà vượt rõ rệt — đó là minh chứng cho hiệu quả compute của Muon ở scale lớn.
Tại sao chuyện này quan trọng
Khoa học mở vận hành dựa trên credit attribution chính xác. Gọi Muon là "optimizer của Kimi" làm:
- Mất công lao của Keller Jordan và đội nanoGPT speedrun cộng đồng, những người đã làm hàng nghìn experiment để tinh chỉnh hệ số Newton-Schulz, chiến lược momentum, và toàn bộ thiết kế.
- Mất nền tảng lý thuyết của Bernstein & Newhouse về modular duality.
- Hiểu sai bản chất đóng góp thực sự của Moonshot — vốn cũng rất giá trị: scaling, distributed implementation, và validation ở LLM-class.
Cách hiểu đúng: Keller Jordan phát minh. Moonshot scale-up và validate. Cả hai đều cần thiết để có Muon hôm nay.
Timeline
- 2024-05-28 — Karpathy lập baseline llm.c (45 phút)
- 2024-10-04 — Keller Jordan push Muon vào modded-nanogpt
- 2024-10-15 — Muon set kỷ lục nanoGPT chính thức (-35%)
- 2024-12-08 — Blog post Muon của Keller Jordan
- 2025-02-24 — Moonshot AI publish paper Moonlight
- 2025-03-07 — Bernstein publish "Deriving Muon"
- 2026-04-08 — Kỷ lục NanoGPT speedrun đạt 1.406 phút (vẫn Muon)
Nguồn: Keller Jordan blog, modded-nanogpt, arxiv 2502.16982, MoonshotAI/Moonlight, Deriving Muon.