AI Personal Learning
und praktische Anleitung
CyberKnife-Zeichenspiegel

MiMo: ein kleines Open-Source-Modell für effiziente mathematische Schlussfolgerungen und Codegenerierung

Allgemeine Einführung

MiMo ist ein von Xiaomi entwickeltes Open-Source-Projekt zur Modellierung großer Sprachen mit Schwerpunkt auf mathematischer Argumentation und Codegenerierung. Das Kernprodukt ist die MiMo-7B-Modellfamilie, die aus einem Basismodell (Base), einem überwachten Feinabstimmungsmodell (SFT), einem aus dem Basismodell trainierten Verstärkungslernmodell (RL-Zero) und einem aus dem SFT-Modell trainierten Verstärkungslernmodell (RL) besteht. Diese 7-Milliarden-Parameter-Modelle zeigen durch Optimierung der Pre-Training-Daten, Multi-Token-Vorhersage (MTP) und Verstärkungslernen eine mit größeren Modellen vergleichbare Denkleistung. miMo-7B-RL übertrifft OpenAI o1-mini bei mathematischen und Codierungsaufgaben. Modellunterstützung vLLM und SGLang Inferenz-Engines und steht bei Hugging Face und ModelScope zum Download bereit. Xiaomi hat MiMo als Open Source zur Verfügung gestellt, um die Entwicklung effizienter Inferenzmodelle voranzutreiben.

MiMo: Ein kleines Open-Source-Modell für effizientes mathematisches Reasoning und Codegenerierung-1


 

Funktionsliste

  • mathematische ArgumentationLösen Sie Mathematikwettbewerbe wie AIME, MATH-500 usw. und unterstützen Sie die Argumentation bei komplexen Problemen.
  • CodegenerierungGenerieren Sie hochwertigen Code in Python, C++ und mehr für LiveCodeBench-Programmieraufgaben.
  • Mehrfache Token-Vorhersage (MTP)Vorhersage mehrerer Token mit einer Akzeptanzrate von ~90%, wodurch Geschwindigkeit und Genauigkeit verbessert werden.
  • Unterstützung von Open-Source-ModellenMiMo-7B: Die Modelle der MiMo-7B-Serie (Base, SFT, RL-Zero, RL) werden Entwicklern zur freien Verwendung zur Verfügung gestellt.
  • Effiziente InferenzmaschineUnterstützung der von Xiaomi angepassten vLLM und SGLang zur Optimierung der Inferenzleistung.
  • Verbesserte LernoptimierungVerbesserte Modellinferenz auf der Grundlage von 130.000 Mathe- und Codeproblem-Datensätzen.
  • Nahtlose Rollback-EngineBeschleunigtes Reinforcement Learning Training mit 2,29x schnellerem Training und 1,96x schnellerer Validierung.
  • Flexibler EinsatzHugging Face Transformers, vLLM und SGLang werden unterstützt.

 

Hilfe verwenden

Installation und Einsatz

Für das MiMo-7B-Modell ist keine eigenständige Software-Installation erforderlich, jedoch muss die Inferenzumgebung konfiguriert werden. Detaillierte Einrichtungsschritte sind unten aufgeführt; Python 3.8 oder höher wird empfohlen.

1. die Vorbereitung der Umwelt

Stellen Sie sicher, dass Python und pip auf Ihrem System installiert sind. Um Abhängigkeitskonflikte zu vermeiden, wird eine virtuelle Umgebung empfohlen:

python3 -m venv mimo_env
source mimo_env/bin/activate

2. die Installation von Abhängigkeiten

MiMo empfiehlt die Verwendung des benutzerdefinierten vLLM-Zweigs von Xiaomi, der die MTP-Funktionalität unterstützt. Der Installationsbefehl lautet wie folgt:

pip install torch transformers
pip install "vllm @ git+https://github.com/XiaomiMiMo/vllm.git@feat_mimo_mtp_stable_073"

Wenn Sie SGLang verwenden, führen Sie aus:

python3 -m pip install "sglang[all] @ git+https://github.com/sgl-project/sglang.git@main#egg=sglang&subdirectory=python"

3. das Modell herunterladen

Das Modell MiMo-7B wird in Hugging Face und ModelScope gehostet, wobei MiMo-7B-RL als Beispiel dient:

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)

Die Modelldateien sind ca. 14 GB groß, stellen Sie also sicher, dass Sie über genügend Speicherplatz verfügen. modelScope wird auf ähnliche Weise heruntergeladen, wobei die model_id ist die entsprechende Adresse.

4. die Aktivierung des Argumentationsdienstes

Starten Sie den Inferenzserver mit vLLM (empfohlen):

python3 -m vllm.entrypoints.api_server --model XiaomiMiMo/MiMo-7B-RL --host 0.0.0.0 --trust-remote-code

oder SGLang verwenden:

python3 -m sglang.launch_server --model-path XiaomiMiMo/MiMo-7B-RL --host 0.0.0.0 --trust-remote-code

Sobald der Server gestartet ist, können Sie über die API oder die Befehlszeile mit dem Modell interagieren.

Hauptfunktionen

mathematische Argumentation

MiMo-7B-RL schneidet bei Aufgaben des mathematischen Denkens hervorragend ab, insbesondere bei den Datensätzen AIME und MATH-500. Die Benutzer können mathematische Fragen eingeben und das Modell generiert die Antworten. Beispiel:

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)

Betriebsanleitung::

  • ausnutzen temperature=0.6 Gleichgewicht zwischen generativer Qualität und Vielfalt.
  • Komplexe Probleme können schrittweise eingegeben werden, um eine klare Beschreibung zu gewährleisten.
  • AIME 2024 (68.2% Pass@1), AIME 2025 (55.4% Pass@1) und MATH-500 (95.8% Pass@1) werden unterstützt.

Codegenerierung

MiMo-7B-RL erzeugt hochwertigen Code mit Unterstützung für Python, C++ und andere Sprachen für LiveCodeBench v5 (57.8% Pass@1) und v6 (49.3% Pass@1). Beispiel:

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)

Betriebsanleitung::

  • Geben Sie spezifische Aufgabenbeschreibungen an, z. B. Anforderungen an die Funktionsein- und -ausgabe.
  • Überprüft die syntaktische Integrität des generierten Codes.
  • Geeignet für den Entwurf von Algorithmen und die Programmierung von Wettbewerbsaufgaben.

Mehrfache Token-Vorhersage (MTP)

MTP ist eine Kernfunktion von MiMo, die die Inferenz durch Vorhersage mehrerer Token mit einer Akzeptanzrate von etwa 90% beschleunigt. Die Aktivierung von MTP erfordert Xiaomis benutzerdefinierte vLLM:

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)

Betriebsanleitung::

  • aufstellen num_speculative_tokens=1 MTP einschalten.
  • MTP funktioniert am besten in Szenarien mit hohem Durchsatz.
  • Die MTP-Schicht wird in der Pre-Training- und SFT-Phase abgestimmt und in der RL-Phase eingefroren.

Nahtlose Rollback-Engine

MiMo hat eine nahtlose Rollback-Engine entwickelt, um das Reinforcement Learning Training zu optimieren. Die Benutzer müssen diese Funktion nicht direkt bedienen, aber ihre Wirkung spiegelt sich in der Modellleistung wider:

  • 2,29x schnelleres Training und 1,96x schnellere Validierung.
  • Reduzieren Sie die Leerlaufzeit der GPU mit integriertem kontinuierlichem Rollback, asynchroner Reward-Berechnung und frühzeitiger Beendigung.

Auswahl der Inferenzmaschine

  • vLLM (empfohlen)Xiaomi Custom vLLM (basierend auf vLLM 0.7.3) unterstützt MTP mit optimaler Leistung. Geeignet für hohe Leistung Argumentation Bedürfnisse.
  • SGLangUnterstützung für Mainstream-Darstellung, MTP-Unterstützung in Kürze. Geeignet für den schnellen Einsatz.
  • Umarmung Gesicht TransformersGeeignet für einfache Tests oder lokales Debugging, unterstützt aber kein MTP.

caveat

  • Systemwarnung: Für eine optimale Leistung werden leere Systemspitzen empfohlen.
  • Hardware-VoraussetzungEinzelne GPU empfohlen (z.B. NVIDIA A100 40GB), CPU-Inferenz erfordert mindestens 32GB RAM.
  • Aufbau der BewertungAlle Auswertungen verwenden temperature=0.6AIME und LiveCodeBench verwenden Durchschnittswerte für mehrere Durchläufe.
  • Unterstützung der GemeinschaftWenn Sie ein Problem haben, können Sie einen Fehler auf GitHub melden oder sich an den mimo@xiaomi.com.

 

Anwendungsszenario

  1. akademische Forschung
    Das MiMo-7B-Modell eignet sich für Forscher, die mathematische Argumente und Algorithmen zur Codegenerierung untersuchen. Entwickler können es auf der Grundlage des Open-Source-Modells feinabstimmen, um Pre-Training- und Reinforcement-Learning-Strategien zu untersuchen.
  2. Programmierausbildung
    Lehrer können MiMo verwenden, um Antworten auf Programmieraufgaben zu generieren, und Schüler können die Logik des Codes überprüfen oder etwas über die Implementierung von Algorithmen lernen.
  3. Wettbewerbstraining
    MiMo unterstützt AIME- und MATH-500-Wettbewerbsfragen für Schüler, die sich auf Mathe- und Programmierwettbewerbe vorbereiten.
  4. KI-Entwicklung
    Entwickler können auf der Grundlage von MiMo-7B maßgeschneiderte Anwendungen erstellen, z. B. automatische Code-Review-Tools oder mathematische Lösungsverfahren.

 

QA

  1. Welche Modelle gibt es in der MiMo-7B-Serie?
    MiMo-7B besteht aus einem Basismodell (Base), einem überwachten Feinabstimmungsmodell (SFT), einem aus dem Basismodell trainierten Verstärkungslernmodell (RL-Zero) und einem aus dem SFT-Modell trainierten Verstärkungslernmodell (RL). Die RL-Version hat die beste Leistung.
  2. Wie wählt man eine Inferenzmaschine aus?
    Empfohlenes Xiaomi Custom vLLM (unterstützt MTP, optimale Leistung), SGLang eignet sich für den schnellen Einsatz, Hugging Face Transformers ist für einfache Tests geeignet.
  3. Wie kann MTP die Leistung verbessern?
    MTP ist für Szenarien mit hohem Durchsatz geeignet, da es mehrere Token mit einer Inferenzakzeptanzrate von 90% vorhersagt, was die Geschwindigkeit deutlich erhöht.
  4. Unterstützt das Modell mehrere Sprachen?
    MiMo ist vor allem für mathematische und kodierende Aufgaben optimiert und unterstützt Englisch und einige chinesische Eingaben, ohne explizite Unterstützung für andere Sprachen.
  5. Welche Hardware-Anforderungen gibt es?
    Ein einzelner Grafikprozessor (z. B. NVIDIA A100 40GB) kann MiMo-7B-RL ausführen. Die CPU-Inferenz erfordert mindestens 32GB RAM, ist aber langsamer.
Darf nicht ohne Genehmigung vervielfältigt werden:Leiter des AI-Austauschkreises " MiMo: ein kleines Open-Source-Modell für effiziente mathematische Schlussfolgerungen und Codegenerierung
de_DEDeutsch