MiMo : un petit modèle open source pour un raisonnement mathématique efficace et la génération de code
Introduction générale
MiMo est un projet open source de modélisation de grands langages développé par Xiaomi, qui se concentre sur le raisonnement mathématique et la génération de code. Le produit principal est la famille de modèles MiMo-7B, qui se compose d'un modèle de base (Base), d'un modèle de réglage fin supervisé (SFT), d'un modèle d'apprentissage par renforcement formé à partir du modèle de base (RL-Zéro) et d'un modèle d'apprentissage par renforcement formé à partir du modèle SFT (RL). Ces modèles à 7 milliards de paramètres démontrent une puissance de raisonnement comparable à celle de modèles plus grands en optimisant les données de pré-entraînement, la prédiction multi-token (MTP) et l'apprentissage par renforcement. miMo-7B-RL surpasse OpenAI o1-mini dans les tâches mathématiques et de codage. support du modèle vLLM et SGLang, et peut être téléchargé sur Hugging Face et ModelScope. Xiaomi a mis MiMo en open-source dans le but d'encourager le développement de modèles d'inférence efficaces.

Liste des fonctions
- raisonnement mathématiqueLes candidats doivent être capables de résoudre des concours mathématiques tels que AIME, MATH-500, etc. et d'étayer leur raisonnement sur des problèmes complexes.
- génération de codesLes tâches de programmation de LiveCodeBench : générez du code de haute qualité en Python, C++ et autres pour les tâches de programmation de LiveCodeBench.
- Prédiction de jetons multiples (MTP)Prédire plusieurs tokens avec un taux d'acceptation d'inférence de ~90%, en améliorant la vitesse et la précision.
- Prise en charge des modèles open sourceLes modèles de la série MiMo-7B (Base, SFT, RL-Zero, RL) sont mis à la disposition des développeurs pour qu'ils les utilisent librement.
- Moteur d'inférence efficaceSupport du vLLM et du SGLang de Xiaomi pour optimiser les performances de l'inférence.
- Optimisation de l'apprentissage renforcéLa recherche d'un modèle amélioré est basée sur 130 000 ensembles de données de problèmes de mathématiques et de code.
- Moteur de retour en arrière sans failleFormation accélérée à l'apprentissage par renforcement avec une formation 2,29 fois plus rapide et une validation 1,96 fois plus rapide.
- Déploiement flexibleLes transformateurs Hugging Face, vLLM et SGLang sont pris en charge.
Utiliser l'aide
Installation et déploiement
Le modèle MiMo-7B ne nécessite pas l'installation d'un logiciel autonome, mais requiert la configuration de l'environnement d'inférence. Les étapes détaillées du déploiement sont présentées ci-dessous ; il est recommandé d'utiliser Python 3.8 ou une version plus récente.
1. préparation à l'environnement
Assurez-vous que Python et pip sont installés sur votre système. Il est recommandé d'utiliser un environnement virtuel pour éviter les conflits de dépendance :
python3 -m venv mimo_env
source mimo_env/bin/activate
2. installation des dépendances
MiMo recommande d'utiliser la branche vLLM personnalisée de Xiaomi, qui prend en charge la fonctionnalité MTP. La commande d'installation est la suivante :
pip install torch transformers
pip install "vllm @ git+https://github.com/XiaomiMiMo/vllm.git@feat_mimo_mtp_stable_073"
Si vous utilisez SGLang, exécutez :
python3 -m pip install "sglang[all] @ git+https://github.com/sgl-project/sglang.git@main#egg=sglang&subdirectory=python"
3. télécharger le modèle
Le modèle MiMo-7B est hébergé dans Hugging Face et ModelScope, avec MiMo-7B-RL comme exemple :
from transformers import AutoModelForCausalLM, AutoTokenizer
model_id = "XiaomiMiMo/MiMo-7B-RL"
model = AutoModelForCausalLM.from_pretrained(model_id, trust_remote_code=True)
tokenizer = AutoTokenizer.from_pretrained(model_id)
Les fichiers du modèle représentent environ 14 Go, assurez-vous donc que vous disposez de suffisamment d'espace de stockage. modelScope est téléchargé de la même manière, en remplaçant le fichier model_id
est l'adresse correspondante.
4) Activation du service de raisonnement
Démarrer le serveur d'inférence en utilisant vLLM (recommandé) :
python3 -m vllm.entrypoints.api_server --model XiaomiMiMo/MiMo-7B-RL --host 0.0.0.0 --trust-remote-code
ou utiliser SGLang :
python3 -m sglang.launch_server --model-path XiaomiMiMo/MiMo-7B-RL --host 0.0.0.0 --trust-remote-code
Une fois le serveur démarré, vous pouvez interagir avec le modèle via l'API ou la ligne de commande.
Principales fonctions
raisonnement mathématique
MiMo-7B-RL excelle dans les tâches de raisonnement mathématique, en particulier sur les ensembles de données AIME et MATH-500. Les utilisateurs peuvent saisir des questions mathématiques et le modèle génère les réponses. Exemple :
from vllm import LLM, SamplingParams
llm = LLM(model="XiaomiMiMo/MiMo-7B-RL", trust_remote_code=True)
sampling_params = SamplingParams(temperature=0.6)
outputs = llm.generate(["Solve: 2x + 3 = 7"], sampling_params)
print(outputs[0].outputs[0].text)
Mode d'emploi: :
- utiliser
temperature=0.6
Équilibrer la qualité et la diversité de la génération. - Les problèmes complexes peuvent être introduits par étapes afin de garantir une description claire.
- AIME 2024 (68,2% Pass@1), AIME 2025 (55,4% Pass@1) et MATH-500 (95,8% Pass@1) sont pris en charge.
génération de codes
MiMo-7B-RL génère un code de haute qualité avec prise en charge de Python, C++ et d'autres langages pour LiveCodeBench v5 (57.8% Pass@1) et v6 (49.3% Pass@1). Exemple :
from vllm import LLM, SamplingParams
llm = LLM(model="XiaomiMiMo/MiMo-7B-RL", trust_remote_code=True)
sampling_params = SamplingParams(temperature=0.6)
outputs = llm.generate(["Write a Python function to calculate factorial"], sampling_params)
print(outputs[0].outputs[0].text)
Mode d'emploi: :
- Fournir des descriptions de tâches spécifiques, telles que les exigences en matière d'entrée et de sortie des fonctions.
- Vérifie l'intégrité syntaxique du code généré.
- Convient à la conception d'algorithmes et aux concours de programmation.
Prédiction de jetons multiples (MTP)
MTP est une fonctionnalité centrale de MiMo qui accélère l'inférence en prédisant plusieurs jetons avec un taux d'acceptation d'environ 90%. L'activation de MTP nécessite la vLLM personnalisée de Xiaomi :
from vllm import LLM, SamplingParams
llm = LLM(model="XiaomiMiMo/MiMo-7B-RL", trust_remote_code=True, num_speculative_tokens=1)
sampling_params = SamplingParams(temperature=0.6)
outputs = llm.generate(["Write a Python script"], sampling_params)
print(outputs[0].outputs[0].text)
Mode d'emploi: :
- mettre en place
num_speculative_tokens=1
Activer MTP. - Le MTP fonctionne mieux dans les scénarios à haut débit.
- La couche MTP est réglée dans les phases de pré-entraînement et SFT et gelée dans la phase RL.
Moteur de retour en arrière sans faille
MiMo a développé un moteur de retour en arrière transparent pour optimiser l'apprentissage par renforcement. Les utilisateurs n'ont pas besoin d'utiliser directement cette fonction, mais son effet se reflète dans les performances du modèle :
- Une formation 2,29 fois plus rapide et une validation 1,96 fois plus rapide.
- Réduisez le temps d'inactivité du GPU grâce au retour en arrière continu intégré, au calcul asynchrone des récompenses et à l'arrêt anticipé.
Sélection du moteur d'inférence
- vLLM (recommandé)vLLM : Le vLLM personnalisé de Xiaomi (basé sur le vLLM 0.7.3) prend en charge le MTP avec des performances optimales. Convient aux besoins de raisonnement à haute performance.
- SGLangPrise en charge du raisonnement courant, prise en charge MTP à venir. Convient pour un déploiement rapide.
- Transformateurs à visage embrassantLa fonction de test : convient pour les tests simples ou le débogage local, mais ne prend pas en charge le protocole MTP.
mise en garde
- alerte systèmeLes conseils : Il est recommandé de vider le système pour obtenir des performances optimales.
- exigences en matière de matérielLes données de l'inférence par le CPU nécessitent au moins 32 Go de mémoire vive.
- Mise en place de l'évaluationToutes les évaluations utilisent
temperature=0.6
AIME et LiveCodeBench utilisent des moyennes d'exécution multiples. - Soutien communautaireSi vous avez un problème, vous pouvez déposer un problème sur GitHub ou contacter l'équipe de développement.
mimo@xiaomi.com
.
scénario d'application
- recherche universitaire
Le modèle MiMo-7B convient aux chercheurs qui étudient le raisonnement mathématique et les algorithmes de génération de code. Les développeurs peuvent l'affiner en se basant sur le modèle open-source pour étudier les stratégies de pré-entraînement et d'apprentissage par renforcement. - l'éducation à la programmation
Les enseignants peuvent utiliser MiMo pour générer des réponses à des exercices de programmation, et les étudiants peuvent vérifier la logique du code ou s'informer sur la mise en œuvre des algorithmes. - Entraînement à la compétition
MiMo prend en charge les questions des concours de mathématiques AIME et MATH-500 pour les étudiants qui préparent les concours de mathématiques et de programmation. - Développement de l'IA
Les développeurs peuvent créer des applications personnalisées basées sur MiMo-7B, telles que des outils d'examen automatisé du code ou des solveurs mathématiques.
QA
- Quels sont les modèles disponibles dans la série MiMo-7B ?
MiMo-7B se compose d'un modèle de base (Base), d'un modèle de réglage fin supervisé (SFT), d'un modèle d'apprentissage par renforcement formé à partir du modèle de base (RL-Zéro) et d'un modèle d'apprentissage par renforcement formé à partir du modèle SFT (RL). - Comment choisir un moteur d'inférence ?
SGLang est adapté à un déploiement rapide, Hugging Face Transformers est adapté à des tests simples. - Comment le PSG peut-il améliorer les performances ?
Le MTP convient aux scénarios à haut débit en prédisant plusieurs jetons avec un taux d'acceptation de l'inférence de 90%, ce qui améliore considérablement la vitesse. - Le modèle prend-il en charge plusieurs langues ?
MiMo est principalement optimisé pour les tâches mathématiques et de codage, et prend en charge la saisie en anglais et dans une certaine mesure en chinois, sans prise en charge explicite d'autres langues. - Quelles sont les exigences en matière de matériel ?
Un seul GPU (par exemple, NVIDIA A100 40GB) peut faire fonctionner MiMo-7B-RL. L'inférence par le CPU nécessite au moins 32GB de RAM, mais est plus lente.
© déclaration de droits d'auteur
L'article est protégé par le droit d'auteur et ne doit pas être reproduit sans autorisation.
Articles connexes
Pas de commentaires...