1 points par GN⁺ 2025-05-01 | 1 commentaires | Partager sur WhatsApp
  • 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
  • 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
  • L’exemple d’inférence HuggingFace utilise AutoModelForCausalLM.from_pretrained et AutoTokenizer.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

 
GN⁺ 2025-05-01
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.

    • Existe-t-il des cas d’apprentissage par renforcement sans tests unitaires ? Si ce n’est pas le cas, cela voudrait dire que les autres créateurs de modèles ignorent l’exactitude, ce qui serait surprenant.
      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.

    • CommonCrawl est le plus grand jeu de données de crawl légal, facile d’accès, qui collecte des données depuis 2008. Presque tout le monde l’utilise comme jeu de données de base pour entraîner les grands modèles de langage fondamentaux, et comme il est majoritairement en anglais, les modèles deviennent bons en anglais.
      https://commoncrawl.org/
    • Dans la recherche scientifique, en particulier pour les benchmarks d’IA, l’anglais me semble être devenu de fait la langue standard.
      Tester directement quelque chose en chinois est manifestement impossible, il faut passer par la traduction.
    • Ce que j’ai trouvé intéressant dans cet article qui cherche à comprendre les LLM, c’est la partie selon laquelle les modèles relient les mots et concepts de différentes langues au moyen de circuits multilingues (Multilingual Circuits).
      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-...
    • Je pense qu’une grande partie des supports d’entraînement de qualité sont en anglais.
    • L’Internet chinois est presque entièrement constitué de quelques jardins clos fortement contrôlés par de grandes entreprises. Si chacune mobilise des armées d’ingénieurs pour protéger ses propres données, les crawlers ne fonctionnent pas correctement.
      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....

    • Quand Georgi Gerganov a conçu GGUF, l’un de ses objectifs principaux était justement d’éviter d’avoir besoin d’autres fichiers. Dès le premier point de la spécification, il s’agit littéralement d’une distribution en fichier unique
      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
    • Quand on fait 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 existant
      Dans mon workflow avec Open WebUI, je vérifie avec ollama show qwen3:30b-a3b-q8_0 --modelfile, je colle le contenu du Modelfile dans admin -> models -> OpenwebUI, je change le nom en quelque chose comme qwen3:30b-a3b-q8_0-monkversion-1, puis j’ajuste le nombre de couches avec un paramètre comme num_gpu 90, avant de conserver ou supprimer l’ancien fichier
      Dans le Modelfile, une indication explique que, pour créer un nouveau Modelfile, il faut modifier FROM en 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’Ollama
      J’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
    • En général, j’utilise les valeurs par défaut au début, puis le Modelfile si c’est un modèle que je compte continuer à utiliser. On doit aussi pouvoir dumper le Modelfile utilisé par Ollama et s’en servir comme modèle
  • 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

    • Ces modèles sont beaucoup, beaucoup plus gros et ce sont des modèles fermés. Leurs fournisseurs n’ont pas non plus identifié ni publié de versions distillées
      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
    • À mon avis, l’objectif est ici de comparer avec des modèles similaires optimisés pour tourner hors ligne ou sur du matériel mobile
  • 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

    • Je me demande s’il s’agit de Qwen 3 ou 2.5
  • 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

    • Le rapport technique couvre assez en profondeur la manière dont l’apprentissage par renforcement est utilisé, notamment une fonction objectif GRPO modifiée. Pour ce qui est du README, je pense que la plupart des personnes actives dans ce domaine comprennent ce que “RL” signifie dans le contexte des modèles de raisonnement
    • J’ai supposé que “RL” voulait dire apprentissage par renforcement, et même si cela fait environ dix ans que j’ai étudié l’IA à l’université, il me semble tout à fait valable d’écrire simplement RL. Je me demande si tu veux plus de précision, par exemple savoir s’ils ont utilisé Q-Learning ou un autre algorithme
  • 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

    • Les performances des petits modèles continuent de progresser petit à petit. Ils ne dépassent pas d’un coup les modèles grand public des grandes entreprises, donc ils ne font pas les gros titres, mais ils sont tous devenus assez compétents
      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
    • Si ces chiffres semblent irréalistes, il faut regarder les scores de benchmark de qwen3-4B
      https://qwenlm.github.io/blog/qwen3/
    • Mon intuition est qu’il y a eu surapprentissage sur les tests
    • Tous les LLM sont en pratique entraînés sur des benchmarks, donc le terme “benchmark” appliqué aux LLM perd pas mal de son sens
    • Le meilleur modèle d’aujourd’hui sera un modèle de plus en plus mauvais pour le reste de notre vie