Mô hình suy luận Xiaomi MiMo
(github.com/XiaomiMiMo)- MiMo-7B của Xiaomi là một dòng mô hình ngôn ngữ 7B được huấn luyện từ đầu cho các tác vụ suy luận, đồng thời công bố mã nguồn mở các checkpoint model base, SFT và RL
- Trong bản cập nhật ngày 30/5/2025, tập dữ liệu SFT được mở rộng từ khoảng 500 nghìn lên 6 triệu mẫu và cửa sổ huấn luyện RL được tăng từ 32K lên 48K, giúp MiMo-7B-RL-0530 đạt 80.1 trên AIME 2024
- Tiền huấn luyện sử dụng khoảng 25 nghìn tỷ token cùng chiến lược trộn dữ liệu 3 giai đoạn, bao gồm lọc dữ liệu, dữ liệu suy luận tổng hợp và Multiple-Token Prediction để tăng mật độ mẫu suy luận
- Hậu huấn luyện sử dụng 130 nghìn bài toán toán học và code, bộ kiểm chứng dựa trên luật, phần thưởng độ chính xác dựa trên luật, cùng phần thưởng dựa trên độ khó test cho bài toán code và chiến lược lấy mẫu lại bài dễ
- Triển khai cung cấp ví dụ với SGLang, bản fork vLLM của Xiaomi và HuggingFace; việc xác minh MiMo trên các engine suy luận khác vẫn chưa hoàn tất và đang nhận đóng góp
Mục tiêu và phạm vi công bố của dòng MiMo-7B
- MiMo-7B là một dòng model nhằm khai thác tiềm năng suy luận của mô hình ngôn ngữ từ giai đoạn tiền huấn luyện đến hậu huấn luyện
- Các checkpoint được công bố gồm 4 loại sau
- MiMo-7B-Base: model base có tiềm năng suy luận
- MiMo-7B-RL-Zero: model được huấn luyện bằng RL từ model base
- MiMo-7B-SFT: model được huấn luyện bằng SFT từ model base
- MiMo-7B-RL: model được huấn luyện bằng RL từ model SFT
- Model được cung cấp trên HuggingFace và ModelScope
- Báo cáo kỹ thuật được công bố trên arXiv
Cập nhật ngày 30/5/2025
- MiMo-7B-RL-0530 phản ánh kết quả sau khi mở rộng tập dữ liệu SFT từ khoảng 500 nghìn lên 6 triệu mẫu, đồng thời tiếp tục tăng kích thước cửa sổ huấn luyện RL từ 32K lên 48K
- Trên AIME 2024, MiMo-7B-RL-0530 đạt 80.1, vượt mức 79.8 của DeepSeek R1
- Các thay đổi benchmark chính như sau
- MATH500 Pass@1: 95.8 → 97.2
- AIME 2024 Pass@1: 68.2 → 80.1
- AIME 2025 Pass@1: 55.4 → 70.2
- LiveCodeBench v5 Pass@1: 57.8 → 60.9
- LiveCodeBench v6 Pass@1: 49.3 → 52.2
- GPQA-Diamond Pass@1: 54.4 → 60.6
- Alignbench1.1, đánh giá GPT-4.1: 6.9 → 7.4
Tiền huấn luyện: model base cho suy luận
- MiMo-7B-Base là model base được huấn luyện từ đầu cho các tác vụ suy luận
- Tiền huấn luyện sử dụng khoảng 25 nghìn tỷ token
- Trong xử lý dữ liệu, nhóm phát triển cải tiến công cụ trích xuất văn bản và áp dụng lọc dữ liệu đa chiều để tăng mật độ mẫu suy luận trong dữ liệu tiền huấn luyện
- Nhiều chiến lược được sử dụng để tạo ra các bộ dữ liệu suy luận tổng hợp quy mô lớn đa dạng
- Tiền huấn luyện áp dụng chiến lược trộn dữ liệu 3 giai đoạn
- Multiple-Token Prediction được thêm làm mục tiêu huấn luyện bổ sung để cải thiện hiệu năng model và tốc độ suy luận
Hậu huấn luyện và phương pháp huấn luyện RL
- Hậu huấn luyện sử dụng 130 nghìn bài toán toán học và code có thể được kiểm tra bằng bộ kiểm chứng dựa trên luật làm dữ liệu huấn luyện RL
- Mỗi bài toán đều trải qua bước tinh lọc và đánh giá độ khó để đảm bảo chất lượng
- Phần thưởng chỉ sử dụng phần thưởng độ chính xác dựa trên luật nhằm tránh khả năng reward hacking
- Để giảm vấn đề phần thưởng thưa với các bài toán code khó, hệ thống đưa vào phần thưởng code dựa trên độ khó của test
- Các test case với độ khó khác nhau được gán điểm chi tiết
- Policy có thể được tối ưu với tín hiệu phần thưởng dày hơn
- Với các bài toán dễ, chiến lược lấy mẫu lại dữ liệu được áp dụng để tăng hiệu quả lấy mẫu rollout, đặc biệt giúp ổn định cập nhật policy ở giai đoạn cuối của huấn luyện RL
Hạ tầng RL và cấu trúc model
- Seamless Rollout Engine được phát triển để tăng tốc huấn luyện RL và xác minh
- Thiết kế kết hợp rollout liên tục, tính phần thưởng bất đồng bộ và dừng sớm để giảm thời gian GPU nhàn rỗi
- Các chỉ số cải thiện hiệu năng như sau
- Tốc độ huấn luyện tăng 2.29 lần
- Tốc độ xác minh tăng 1.96 lần
- Lớp MTP của MiMo-7B được tinh chỉnh trong giai đoạn tiền huấn luyện và SFT, và được cố định trong giai đoạn RL
- Khi dùng 1 lớp MTP cho speculative decoding, tỷ lệ chấp nhận vào khoảng 90%
- Hỗ trợ MTP được thêm vào vLLM, đồng thời tăng cường độ ổn định của engine suy luận trong hệ thống RL
Kết quả đánh giá
- MiMo-7B-RL được giới thiệu là cho hiệu năng tương đương OpenAI o1-mini trên các tác vụ suy luận toán học và code
- Trong so sánh giữa các model chính, kết quả toán học và code của MiMo-7B-RL như sau
- MATH-500 Pass@1: 95.8
- AIME 2024 Pass@1: 68.2
- AIME 2025 Pass@1: 55.4
- LiveCodeBench v5 Pass@1: 57.8
- LiveCodeBench v6 Pass@1: 49.3
- Trong so sánh nội bộ dòng MiMo-7B, hiệu năng tăng mạnh sau khi áp dụng RL
- MATH500: Base 37.4 → RL-Zero 93.6 → SFT 93.0 → RL 95.8
- AIME 2024: Base 32.9 → RL-Zero 56.4 → SFT 58.7 → RL 68.2
- LiveCodeBench v5: Base 32.9 → RL-Zero 49.1 → SFT 52.3 → RL 57.8
- Thiết lập đánh giá là
temperature=0.6 - Điều kiện đánh giá lặp lại như sau
- AIME24 và AIME25 là trung bình của 32 lần chạy
- LiveCodeBench v5, LiveCodeBench v6, GPQA-Diamond, IF-Eval là trung bình của 8 lần chạy
- MATH500 và SuperGPQA là chạy đơn
Triển khai và sử dụng suy luận
- SGLang hỗ trợ MiMo theo hướng chính thống thông qua hỗ trợ model MiMo và hỗ trợ MTP
- PR liên quan: MiMo model support, MTP
- Tài liệu sử dụng có tại SGLang documents
- Với suy luận bằng vLLM, khuyến nghị dùng bản fork vLLM của Xiaomi
- Bản fork khuyến nghị: XiaomiMiMo/vllm
- Bản fork này được phát triển dựa trên vLLM 0.7.3
- Cũng có thể đăng ký loader vLLM theo cách không nạp tham số MTP
- File đăng ký: registry/register_mimo_in_vllm.py
- Ví dụ suy luận trên HuggingFace dùng
AutoModelForCausalLM.from_pretrainedvàAutoTokenizer.from_pretrained - Thiết lập prompt được khuyến nghị là system prompt rỗng
- Việc xác minh MiMo trên các engine suy luận khác vẫn chưa hoàn tất, và dự án đang nhận đóng góp dựa trên định nghĩa model trong kho HuggingFace
1 bình luận
Các ý kiến trên Hacker News
Điều thú vị là trong bài báo họ đã xử lý giai đoạn học tăng cường cho dữ liệu code như thế nào. Họ huấn luyện bằng cách chạy unit test trên các bài toán sinh code khó nhưng có thể giải được, và tôi tò mò liệu các mô hình khác cũng trải qua giai đoạn huấn luyện như vậy hay không
Bài báo nói rằng họ loại bỏ các bài không có test case, loại cả những bài có code đáp án nhưng không vượt qua được toàn bộ test, còn với các bài không có code đáp án thì họ bỏ nếu không có test nào được giải trong 16 lần lấy mẫu bằng một mô hình suy luận cao cấp. Các bài dễ cũng được lọc bằng phiên bản SFT của MiMo-7B, cuối cùng tạo ra 30.000 bài toán code
Ngoài ra, vì mỗi vòng lặp học tăng cường phải đánh giá hàng nghìn bài toán và hàng trăm test case cho mỗi bài, họ nói đã xây dựng một môi trường online judge chạy song song lượng unit test cực lớn để loại bỏ thời gian GPU nhàn rỗi
Cách này có thể khả thi với các bài toán nhỏ, dạng mô-đun, nhưng có lẽ khó áp dụng cho những bài có đầu vào 200.000 token
Tôi thắc mắc vì sao trong các mô hình AI đến từ Trung Quốc lại có nhiều mô hình ưu tiên tiếng Anh đến vậy. Không rõ họ không định nhắm tới người dùng trong nước, hay vì nếu công bố mô hình ưu tiên tiếng Trung thì khó được phương Tây chú ý
https://commoncrawl.org/
Rõ ràng không thể trực tiếp thử nghiệm thứ gì đó bằng tiếng Trung, nên cần dịch
Ví dụ là từ trái nghĩa của “small” trong tiếng Anh dẫn tới big, từ trái nghĩa của “petit” trong tiếng Pháp dẫn tới grand, và từ trái nghĩa của “小” trong tiếng Trung dẫn tới “大”. Hình minh họa liên quan cũng khá ấn tượng
Tiếng Anh là lingua franca của Internet và chiếm kho ngữ liệu lớn nhất, nhưng các mô hình chủ lưu có thể dùng bộ dữ liệu tiếng Anh để xây dựng liên kết giữa các ngôn ngữ. Vì vậy, những cộng đồng ngôn ngữ thiếu dữ liệu, công nghệ và tài nguyên, khó tự xây mô hình địa phương, cũng có thể có năng lực AI và suy luận mạnh hơn nhiều
https://www.anthropic.com/research/tracing-thoughts-language...
https://www.anthropic.com/_next/image?url=https%3A%2F%2Fwww-...
Khá nhiều website phổ biến cũng chỉ dành riêng cho ứng dụng, nên không thể thu thập được kho ngữ liệu cần thiết cho việc huấn luyện LLM tốt
Với một mô hình 7B, hiệu năng lập trình mạnh đến mức khó tin. Gemini Pro 2.5 tôi đang dùng đạt 67.8, còn mô hình này là 57.8, rất gần với Gemini 2.5 Flash ở mức 60.6
Sau khi xem câu chuyện liên quan đến llama4, tôi đã khá hoài nghi về kết quả đánh giá, nên vẫn phải xem nó đứng ở đâu trong các đánh giá kín, nhưng con số hiện tại rất ấn tượng
Phiên bản GGUF có thể dùng trong LM Studio, Ollama, v.v.: https://huggingface.co/jedisct1/MiMo-7B-RL-GGUF
Tôi thắc mắc khi dùng file gguf trong Ollama, mọi người thường tự tạo và dùng Modelfile đi kèm, hay kỳ vọng các giá trị mặc định của Ollama cũng phù hợp với model mới
https://github.com/ollama/ollama/blob/main/docs%2Fmodelfile....
Tức là mọi thông tin cần để tải model đều nằm trong file model, và người dùng không cần cung cấp thêm thông tin
https://github.com/ggml-org/ggml/blob/master/docs/gguf.md
Vừa mới loại bỏ được mớ hỗn loạn nhiều file thì Ollama lại thêm nó trở lại, nên hơi tiếc
ollama pull, Modelfile cũng được tải xuống cùng với blob. Nếu muốn chỉnh sửa model một cách lâu dài, có thể sao chép Modelfile vào trình soạn thảo văn bản, thêm các thay đổi cần thiết rồi tạo model mới từ Modelfile hiện cóQuy trình của tôi khi dùng Open WebUI là kiểm tra bằng
ollama show qwen3:30b-a3b-q8_0 --modelfile, dán nội dung Modelfile vàoadmin -> models -> OpenwebUI, đổi tên thành kiểuqwen3:30b-a3b-q8_0-monkversion-1, điều chỉnh số layer bằng tham số nhưnum_gpu 90, rồi giữ hoặc xóa file cũTrong Modelfile có hướng dẫn rằng nếu muốn tạo Modelfile mới thì hãy đổi
FROMthành kiểu# FROM qwen3:30b-a3b-q8_0, và cũng cần kiểm tra đường dẫn có đúng không. Tôi lưu model trên một ổ NVMe lớn chứ không phải vị trí mặc định của Ollama, nên điều này rất quan trọngNói thêm thì tôi ghét quy trình Modelfile vì nó thật sự rườm rà và là một pattern tệ. Có model nặng 30–60GB, mà chỉ để đổi một tham số lại phải sao chép toàn bộ thì đúng là cách làm ngớ ngẩn
Dù vậy Ollama cũng có nhiều điểm làm tốt, giúp việc bắt đầu dễ dàng. vLLM, SGLang, Mistral.rs, llama.cpp cần nhiều công sức cấu hình hơn hẳn
Nhìn benchmark mà lại bỏ qua các model hàng đầu hiện đang đạt hiệu năng cao nhất trong nhiều đánh giá như O3, Gemini Pro hay Claude 3.7 thì hơi buồn cười
Cần nhìn vào thực tế là phần lớn đối tượng so sánh là model 7B. Ngoại lệ cũng là model trọng số mở Qwen-2.5-32B-RL-Zero, và MiMo-7B còn làm tốt hơn cả model 32B tham số
MiMo-7B được tuyên bố là đã huấn luyện một model 7B từ đầu, vượt các model lớn hơn như Qwen-32B, và ngang OpenAI o1-mini trong benchmark toán học/lập trình. Tôi tò mò liệu đây có phải dấu hiệu cho thấy tiền huấn luyện + tối ưu RLHF cuối cùng đã bắt đầu vượt qua sức mạnh của quy mô, hay chỉ là kỹ năng benchmark các năng lực hẹp đã tốt hơn
README không nói rõ là loại học tăng cường nào, chỉ ghi là RL. Tôi biết các nhà nghiên cứu bận và việc viết tốt cũng tốn thời gian, nhưng mong họ đừng bỏ sót những chi tiết như vậy
Tôi tò mò liệu model này có được dùng trong trợ lý AI của dòng điện thoại Xiaomi 15 hay không. Có lẽ khả năng cao là có, nhưng không rõ kết quả sẽ ra sao
Thật khó tin khi một model 7B lại có các con số benchmark như vậy
Gần đây tôi thử chạy một model 12B bất kỳ trên Ollama, và xét đến chiếc máy đang dùng, tôi ngạc nhiên vì nó làm quá tốt và nhanh. Khoảng một năm trước thì có lẽ không được như vậy
https://qwenlm.github.io/blog/qwen3/