- MiMo-7B de Xiaomi est une série de modèles de langage 7B entraînés depuis zéro pour les tâches de raisonnement, avec des checkpoints des modèles Base, SFT et RL publiés en open source
- Dans la mise à jour du 30 mai 2025, le jeu de données SFT a été porté d’environ 500 000 à 6 millions d’exemples, et la fenêtre d’entraînement RL étendue de 32K à 48K, ce qui a permis à MiMo-7B-RL-0530 d’atteindre 80,1 sur AIME 2024
- Le préentraînement utilise environ 25 000 milliards de tokens et une stratégie de mélange des données en trois étapes, avec filtrage des données, données de raisonnement synthétiques et Multiple-Token Prediction pour augmenter la densité des schémas de raisonnement
- Le post-entraînement utilise 130 000 problèmes de mathématiques et de code, un vérificateur fondé sur des règles, une récompense d’exactitude fondée sur des règles, une récompense basée sur la difficulté des tests pour les problèmes de code et une stratégie de rééchantillonnage des problèmes faciles
- Le déploiement fournit SGLang, un fork vLLM de Xiaomi et des exemples HuggingFace ; la validation de MiMo sur d’autres moteurs d’inférence n’est pas encore terminée et les contributions sont acceptées
Objectif et périmètre de publication de la série MiMo-7B
- MiMo-7B est une série de modèles visant à exploiter le potentiel de raisonnement des modèles de langage, du préentraînement au post-entraînement
- Les checkpoints publiés sont les quatre suivants
- MiMo-7B-Base : modèle de base doté d’un potentiel de raisonnement
- MiMo-7B-RL-Zero : modèle entraîné par RL à partir du modèle de base
- MiMo-7B-SFT : modèle entraîné par SFT à partir du modèle de base
- MiMo-7B-RL : modèle entraîné par RL à partir du modèle SFT
- Les modèles sont disponibles sur HuggingFace et ModelScope
- Le rapport technique est publié sur arXiv
Mise à jour du 30 mai 2025
- MiMo-7B-RL-0530 reflète l’extension du jeu de données SFT d’environ 500 000 à 6 millions d’exemples, ainsi que la poursuite de l’extension de la fenêtre d’entraînement RL de 32K à 48K
- Sur AIME 2024, MiMo-7B-RL-0530 obtient 80,1, dépassant les 79,8 de DeepSeek R1
- Les principales évolutions de benchmarks sont les suivantes
- 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, évaluation GPT-4.1 : 6,9 → 7,4
Préentraînement : un modèle de base pour le raisonnement
- MiMo-7B-Base est un modèle de base entraîné depuis zéro pour les tâches de raisonnement
- Le préentraînement utilise environ 25 000 milliards de tokens
- Dans le traitement des données, les outils d’extraction de texte ont été améliorés et un filtrage multidimensionnel des données a été appliqué afin d’augmenter la densité des schémas de raisonnement dans les données de préentraînement
- Plusieurs stratégies sont utilisées pour générer divers volumes importants de données de raisonnement synthétiques
- Une stratégie de mélange des données en trois étapes est appliquée au préentraînement
- Multiple-Token Prediction est ajouté comme objectif d’entraînement supplémentaire afin d’améliorer les performances du modèle et la vitesse d’inférence
Post-entraînement et méthode d’entraînement RL
- Le post-entraînement utilise 130 000 problèmes de mathématiques et de code vérifiables par un vérificateur fondé sur des règles comme données d’entraînement RL
- Chaque problème passe par une étape de nettoyage et d’évaluation de la difficulté afin de garantir la qualité
- Pour éviter un éventuel reward hacking, seule une récompense d’exactitude fondée sur des règles est utilisée
- Pour atténuer le problème des récompenses rares sur les problèmes de code difficiles, une récompense de code basée sur la difficulté des tests est introduite
- Des scores plus granulaires sont attribués à des cas de test de difficultés différentes
- La politique peut être optimisée avec un signal de récompense plus dense
- Pour les problèmes faciles, une stratégie de rééchantillonnage des données est appliquée afin d’améliorer l’efficacité de l’échantillonnage des rollouts et, en particulier, de stabiliser les mises à jour de politique en fin d’entraînement RL
Infrastructure RL et architecture du modèle
- Seamless Rollout Engine a été développé pour accélérer l’entraînement RL et la validation
- Sa conception combine rollouts continus, calcul asynchrone des récompenses et arrêt anticipé afin de réduire le temps d’inactivité des GPU
- Les gains de performance sont les suivants
- Vitesse d’entraînement améliorée de 2,29×
- Vitesse de validation améliorée de 1,96×
- La couche MTP de MiMo-7B est ajustée pendant le préentraînement et le SFT, puis figée pendant le RL
- Lorsqu’une couche MTP est utilisée pour le décodage spéculatif, le taux d’acceptation est d’environ 90 %
- vLLM prend en charge MTP et renforce la robustesse du moteur d’inférence du système RL
Résultats d’évaluation
- MiMo-7B-RL est présenté comme offrant des performances comparables à OpenAI o1-mini sur les tâches de raisonnement en mathématiques et en code
- Dans la comparaison des principaux modèles, les résultats de MiMo-7B-RL en mathématiques et en code sont les suivants
- 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
- Dans la comparaison interne de la série MiMo-7B, les performances augmentent fortement après application du 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
- Le réglage d’évaluation est
temperature=0.6 - Les conditions d’évaluation répétée sont les suivantes
- AIME24 et AIME25 : moyenne de 32 répétitions
- LiveCodeBench v5, LiveCodeBench v6, GPQA-Diamond et IF-Eval : moyenne de 8 répétitions
- MATH500 et SuperGPQA : une seule exécution
Déploiement et usage en inférence
- SGLang prend en charge MiMo en mainline via la prise en charge du modèle MiMo et de MTP
- PR associés : MiMo model support, MTP
- La documentation d’utilisation est disponible dans les SGLang documents
- Pour l’inférence vLLM, l’utilisation du fork vLLM de Xiaomi est recommandée
- Fork recommandé : XiaomiMiMo/vllm
- Ce fork est développé sur la base de vLLM 0.7.3
- Il est aussi possible d’enregistrer le loader vLLM de façon à ne pas charger les paramètres MTP
- Fichier d’enregistrement : registry/register_mimo_in_vllm.py
- L’exemple d’inférence HuggingFace utilise
AutoModelForCausalLM.from_pretrainedetAutoTokenizer.from_pretrained - Le réglage de prompt recommandé est un system prompt vide
- La validation de MiMo sur d’autres moteurs d’inférence n’est pas encore terminée, et les contributions basées sur la définition du modèle dans le dépôt HuggingFace sont acceptées
1 commentaires
Avis sur Hacker News
J’ai trouvé intéressant la manière dont l’article traite l’étape d’apprentissage par renforcement pour les données de code. Ils ont entraîné le modèle sur des tâches de génération de code difficiles mais résolubles, exécutées avec des tests unitaires, et je me demande si d’autres modèles passent aussi par ce type d’étape d’entraînement.
L’article indique qu’ils suppriment les problèmes sans cas de test, excluent ceux dont le code de référence ne passe pas tous les tests, et, pour les problèmes sans code de référence, écartent ceux pour lesquels aucun test n’est résolu parmi 16 échantillonnages par un modèle de raisonnement avancé. Les problèmes faciles sont également filtrés avec la version SFT de MiMo-7B, pour aboutir à 30 000 problèmes de code au final.
Il explique aussi qu’à chaque itération d’apprentissage par renforcement, il faut évaluer des milliers de problèmes et des centaines de cas de test par problème ; ils ont donc créé un environnement d’online judge capable d’exécuter en parallèle une très grande quantité de tests unitaires afin d’éviter les temps morts des GPU.
C’est sans doute possible pour de petits problèmes modulaires, mais cette approche peut être difficile pour des problèmes dont l’entrée fait 200 000 tokens.
Je me demande pourquoi autant de modèles d’IA venus de Chine sont des modèles orientés d’abord vers l’anglais. Je ne sais pas s’ils n’ont pas l’intention de viser les utilisateurs locaux, ou si c’est parce qu’un modèle orienté d’abord vers le chinois aurait du mal à attirer l’attention en Occident.
https://commoncrawl.org/
Tester directement quelque chose en chinois est manifestement impossible, il faut passer par la traduction.
Les exemples suivent le schéma où l’antonyme de “small” en anglais est big, celui de “petit” en français est grand, et celui de “小” en chinois est “大”. Le schéma associé est d’ailleurs plutôt impressionnant.
L’anglais est la lingua franca d’Internet et représente le plus grand corpus, mais les modèles dominants peuvent utiliser les jeux de données en anglais pour construire des associations entre langues. Cela peut donc apporter une IA et des capacités de raisonnement bien plus puissantes à des communautés linguistiques qui manquent de données, de technologies et de ressources pour créer leurs propres modèles locaux.
https://www.anthropic.com/research/tracing-thoughts-language...
https://www.anthropic.com/_next/image?url=https%3A%2F%2Fwww-...
Beaucoup de sites populaires sont aussi réservés aux apps, ce qui rend impossible la constitution du corpus nécessaire pour entraîner de bons LLM.
Pour un modèle 7B, ses performances en code sont presque incroyablement fortes. Le Gemini Pro 2.5 que j’utilise est à 67,8, alors que ce modèle est à 57,8, et il est aussi très proche de Gemini 2.5 Flash, qui est à 60,6.
Après ce que j’ai vu autour de llama4, je suis devenu assez sceptique vis-à-vis des résultats d’évaluation, donc il faudra voir où il se situe dans des évaluations privées, mais les chiffres actuels sont très impressionnants.
Version GGUF utilisable avec LM Studio, Ollama, etc. : https://huggingface.co/jedisct1/MiMo-7B-RL-GGUF
Je me demande si, lorsqu’on utilise des fichiers gguf avec Ollama, on crée et utilise généralement soi-même le Modelfile qui va avec, ou si l’on s’attend à ce que les valeurs par défaut d’Ollama conviennent aussi aux nouveaux modèles
https://github.com/ollama/ollama/blob/main/docs%2Fmodelfile....
Toutes les informations nécessaires pour charger le modèle se trouvent dans le fichier du modèle, et l’utilisateur n’a pas besoin de fournir d’informations supplémentaires
https://github.com/ggml-org/ggml/blob/master/docs/gguf.md
C’est dommage : à peine avait-on supprimé la confusion des fichiers multiples qu’Ollama l’a réintroduite
ollama pull, le Modelfile est aussi téléchargé avec les blobs. Pour modifier durablement un modèle, on peut copier le Modelfile dans un éditeur de texte, y apporter les changements nécessaires, puis créer un nouveau modèle à partir du Modelfile existantDans mon workflow avec Open WebUI, je vérifie avec
ollama show qwen3:30b-a3b-q8_0 --modelfile, je colle le contenu du Modelfile dansadmin -> models -> OpenwebUI, je change le nom en quelque chose commeqwen3:30b-a3b-q8_0-monkversion-1, puis j’ajuste le nombre de couches avec un paramètre commenum_gpu 90, avant de conserver ou supprimer l’ancien fichierDans le Modelfile, une indication explique que, pour créer un nouveau Modelfile, il faut modifier
FROMen quelque chose comme# FROM qwen3:30b-a3b-q8_0, et il faut aussi vérifier que le chemin est correct. C’est important dans mon cas, car je stocke les modèles sur un gros disque NVMe plutôt qu’à l’emplacement par défaut d’OllamaJ’ajouterais que je déteste le workflow Modelfile : il est vraiment pénible et relève d’un très mauvais pattern. Certains modèles font 30 à 60 Go, et copier l’ensemble juste pour changer un paramètre est une façon stupide de procéder
Cela dit, Ollama fait aussi beaucoup de choses bien et facilite la prise en main. vLLM, SGLang, Mistral.rs et llama.cpp demandent bien plus de travail de configuration
C’est un peu drôle de voir que les benchmarks omettent les modèles haut de gamme actuellement en tête de plusieurs évaluations, comme O3, Gemini Pro ou Claude 3.7
Il faut voir que la plupart des modèles de comparaison sont des modèles 7B. L’exception est Qwen-2.5-32B-RL-Zero, qui est aussi un modèle à poids ouverts, et MiMo-7B fait mieux qu’un modèle à 32B paramètres
MiMo-7B affirme dépasser, avec un modèle 7B entraîné depuis zéro, des modèles plus grands comme Qwen-32B, et égaler OpenAI o1-mini sur des benchmarks de maths et de code. Je me demande si c’est le signe que la pré-entraînement + optimisation RLHF commence enfin à prendre le dessus sur la force brute de l’échelle, ou si c’est seulement qu’on devient meilleur pour benchmarker des capacités étroites
Le README ne précise pas de quel type d’apprentissage par renforcement il s’agit, il dit simplement RL. Je sais que les chercheurs sont occupés et qu’une bonne rédaction prend du temps, mais j’aimerais que ce genre de détail ne soit pas omis
Je me demande si ce modèle sera utilisé dans l’assistant IA des téléphones de la série Xiaomi 15. Cela paraît probablement très probable, mais je ne sais pas vraiment quel résultat cela donnera
Il est difficile de croire qu’un modèle 7B puisse atteindre de tels scores de benchmark
Il y a quelque temps, j’ai lancé un modèle 12B quelconque sur Ollama, et vu la machine que j’utilisais, j’ai été surpris de le trouver aussi bon et rapide. Il y a environ un an, cela n’aurait pas été le cas
https://qwenlm.github.io/blog/qwen3/