1 điểm bởi GN⁺ 2025-05-01 | 1 bình luận | Chia sẻ qua WhatsApp
  • 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 HuggingFaceModelScope
  • 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
  • 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
  • Ví dụ suy luận trên HuggingFace dùng AutoModelForCausalLM.from_pretrainedAutoTokenizer.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

 
GN⁺ 2025-05-01
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ó trường hợp nào làm học tăng cường mà không có unit test không? Nếu không thì điều đó có nghĩa là các nhà làm mô hình khác đang bỏ qua độ chính xác, nên sẽ khá bất ngờ
      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ú ý

    • CommonCrawl là bộ dữ liệu crawl hợp pháp lớn nhất và dễ tiếp cận nhất, đã thu thập dữ liệu từ năm 2008. Gần như mọi người đều dùng nó làm bộ dữ liệu cơ bản để huấn luyện các mô hình ngôn ngữ lớn nền tảng, và vì phần lớn là tiếng Anh nên các mô hình trở nên giỏi tiếng Anh
      https://commoncrawl.org/
    • Trong nghiên cứu khoa học, đặc biệt là benchmark AI, có lẽ tiếng Anh thực tế đã trở thành ngôn ngữ tiêu chuẩn
      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
    • Điểm tôi thấy thú vị trong bài báo này về việc hiểu LLM là phần các mô hình kết nối từ ngữ và khái niệm giữa các ngôn ngữ khác nhau bằng mạch đa ngôn ngữ (Multilingual Circuits)
      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-...
    • Tôi cho rằng phần đáng kể của tài liệu huấn luyện chất lượng cao sẽ là tiếng Anh
    • Internet Trung Quốc gần như được cấu thành từ một số khu vườn đóng kín do các tập đoàn lớn kiểm soát chặt. Khi mỗi công ty đều huy động đội ngũ kỹ sư để bảo vệ dữ liệu của mình, crawler sẽ không hoạt động hiệu quả
      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....

    • Một trong những mục tiêu cốt lõi khi Georgi Gerganov thiết kế GGUF là không cần các file khác. Ngay mục đầu tiên của đặc tả đã đúng nghĩa là phân phối bằng một file duy nhất
      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
    • Khi chạy 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ào admin -> models -> OpenwebUI, đổi tên thành kiểu qwen3: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 FROM thà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ọng
      Nó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
    • Thường thì ban đầu tôi dùng mặc định, còn nếu là model sẽ dùng lâu dài thì dùng Modelfile. Có lẽ cũng có thể dump Modelfile mà Ollama đang dùng để làm template
  • 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ác model đó lớn hơn rất, rất nhiều và là model đóng. Các nhà cung cấp đó cũng không công khai phiên bản chưng cất đã được nhận diện
      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ố
    • Tôi nghĩ mục tiêu ở đây là so sánh với các model tương tự được tối ưu để chạy offline hoặc trên phần cứng di động
  • 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

    • Tôi tò mò đó là Qwen 3 hay 2.5
  • 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

    • Báo cáo kỹ thuật bàn khá sâu về cách dùng học tăng cường, chẳng hạn hàm mục tiêu GRPO đã chỉnh sửa. Còn về README, tôi nghĩ phần lớn những người hoạt động trong lĩnh vực này đều hiểu “RL” trong model suy luận nghĩa là gì
    • Tôi hiểu “RL” là học tăng cường, và dù đã khoảng 10 năm kể từ khi học AI ở đại học, tôi vẫn thấy chỉ viết RL cũng đủ hợp lý. Không rõ bạn muốn mức cụ thể như họ dùng Q-Learning hay thuật toán khác phải không
  • 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

    • Hiệu năng của các model nhỏ vẫn đang nhích lên từng chút một. Chúng không lập tức vượt qua các model chủ lực của các tập đoàn lớn nên không lên tiêu đề, nhưng tất cả đã trở nên khá có năng lực
      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
    • Nếu các con số này trông phi thực tế, bạn nên xem số benchmark của qwen3-4B
      https://qwenlm.github.io/blog/qwen3/
    • Theo tôi đoán thì có vẻ đã bị overfit vào bài test
    • Thực tế mọi LLM đều đang được huấn luyện theo benchmark, nên từ “benchmark” khi áp dụng cho LLM đã trở nên khá vô nghĩa
    • Model tốt nhất hôm nay sẽ tiếp tục trở thành model tệ hơn trong suốt phần đời còn lại của bạn