AI Personal Learning
und praktische Anleitung
讯飞绘镜

MiniMind: 2 Stunden Training von Grund auf 26M Parameter GPT Open Source Tool

Allgemeine Einführung

MiniMind ist ein Open-Source-Projekt, das vom Entwickler jingyaogong ins Leben gerufen wurde. Das Hauptziel von MiniMind ist es, normalen Menschen die Möglichkeit zu geben, schnell ihre eigenen KI-Modelle zu trainieren. Das Hauptmerkmal von MiniMind ist, dass es 2 Stunden dauert, um ein GPT-Modell mit 26 Mio. Parametern von Grund auf auf einer einzigen NVIDIA 3090-Grafikkarte zu trainieren, und das bei Kosten von nur etwa 3 RMB. Das Projekt bietet Full-Flow-Code vom Pre-Training bis zur Feinabstimmung, einschließlich Datensatzbereinigung, Pre-Training, Befehlsfeinabstimmung, LoRA, DPO und Modelldestillation, sowie Unterstützung für die visuelle multimodale Erweiterung MiniMind-V. Der gesamte Code wurde von Grund auf auf der Basis von PyTorch überarbeitet, ohne auf Abstraktionsschnittstellen von Drittanbietern zurückzugreifen. Seit Februar 2025 ist MiniMind in mehreren Versionen mit einer minimalen Modellgröße von 25,8 Mio. Parametern veröffentlicht worden und hat eine überwältigende Resonanz in der Community erfahren.

MiniMind:2小时从零训练26M参数GPT的开源工具-1


 

Funktionsliste

  • Unterstützung für das Training von GPT-Modellen mit 26 Mio. Parametern in weniger als 2 Stunden, die auf einer einzigen 3090-Grafikkarte laufen.
  • Bietet einen vollständigen Ablaufcode für Pre-Training, Feinabstimmung von Anweisungen, LoRA, DPO und Modelldestillation.
  • Enthält die visuelle multimodale Erweiterung MiniMind-V für die Bild- und Textverarbeitung.
  • Unterstützt Einzel- und Multikartentraining, kompatibel mit DeepSpeed und wandb Visualisierungen.
  • Bereitstellung eines OpenAI API-Protokollservers für den einfachen Zugriff auf Chat-Schnittstellen von Drittanbietern.
  • Hochwertige Open-Source-Datensätze und Modellgewichte zum direkten Download oder zur Weiterverarbeitung.
  • Unterstützt Tokeniser-Training und benutzerdefinierte Wortlisten zur flexiblen Anpassung der Modellstruktur.

 

Hilfe verwenden

Die Verwendung von MiniMind gliedert sich in drei Schritte: Installation, Schulung und Argumentation. Nachfolgend finden Sie eine detaillierte Anleitung, die den Benutzern einen schnellen Einstieg ermöglicht.

Einbauverfahren

  1. Vorbereitung der Umwelt
    • Benötigt Python 3.10 oder höher.
    • Überprüfen Sie, ob die Grafikkarte CUDA unterstützt, indem Sie den folgenden Code ausführen:
      import torch
      print(torch.cuda.is_available())
      

      Wenn die Rückgabe TrueIst dies nicht der Fall, müssen Sie die entsprechende PyTorch-Version installieren.

    • Installieren Sie Git zum Klonen von Code.
  2. Klonprojekt
    Geben Sie ihn in das Terminal ein:
git clone https://github.com/jingyaogong/minimind.git
cd minimind
  1. Installation von Abhängigkeiten
    Beschleunigte Installation mit Tsinghua-Spiegeln:
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

Wenn Sie Probleme haben, können Sie es auch manuell installieren torch vielleicht flash_attn.

  1. Datensatz herunterladen
  • Laden Sie den Datensatz auf GitHub README oder https://www.modelscope.cn/datasets/gongjy/minimind_dataset/files herunter.
  • einrichten. ./dataset entpacken Sie die Dateien in dieses Verzeichnis.
  • Empfohlene Downloads pretrain_hq.jsonl(1,6 GB) und sft_mini_512.jsonl(1,2 GB).

Ausbildungsmodelle

  1. vor der Ausbildung
  • Führen Sie das Skript aus, um das Vortraining zu starten:
    python train_pretrain.py
    
  • Standardmäßige Verwendung pretrain_hq.jsonlDie Ausgangsgewichte werden gespeichert als pretrain_*.pth.
  • Multi-Card-Beschleunigung:
    torchrun --nproc_per_node 2 train_pretrain.py
    
  1. Befehls-Feinabstimmung
  • Führen Sie das Feinabstimmungsskript aus:
    python train_full_sft.py
    
  • Standardmäßige Verwendung sft_mini_512.jsonlDie Ausgangsgewichte werden gespeichert als full_sft_*.pth.
  • Das Gleiche gilt für die Unterstützung mehrerer Karten.
  1. LoRA-Feinabstimmung
  • Bereiten Sie Domänendaten vor (z. B. lora_medical.jsonl), laufen:
    python train_lora.py
    
  • Die Ausgangsgewichte werden gespeichert als lora_xxx_*.pth.
  1. DSB Verbessertes Lernen
  • ausnutzen dpo.jsonl Daten, Lauf:
    python train_dpo.py
    
  • Die Ausgangsgewichte werden gespeichert als rlhf_*.pth.
  1. Visualisierungstraining
  • Parameter hinzufügen --use_wandbAls:
    python train_pretrain.py --use_wandb
    
  • Sehen Sie sich die Trainingskurven auf der offiziellen wandb-Website an.

Mit Modellen argumentieren

  1. Befehlszeilenargumentation
  • Modellgewichte herunterladen (z. B. MiniMind2):
    git clone https://huggingface.co/jingyaogong/MiniMind2
    
  • Running Reasoning:
    python eval_model.py --load 1 --model_mode 2
    
  • Parameter Beschreibung:--load 1 Im Format der Transformatoren ist die--model_mode 2 Mit MiniMind2.
  1. Webchat
  • Installieren Sie Streamlit:
    pip install streamlit
    
  • Startup-Schnittstelle:
    cd scripts
    streamlit run web_demo.py
    
  • Zugriff über einen Browser localhost:8501Sie können einen Dialog führen.
  1. API-Dienste
  • Starten Sie den Server:
    python serve_openai_api.py
    
  • Testen Sie die Schnittstelle:
    curl http://localhost:8000/v1/chat/completions -H "Content-Type: application/json" -d '{"model": "MiniMind2", "messages": [{"role": "user", "content": "你好"}], "max_tokens": 512}'
    

Featured Function Bedienung

  • Visuelle Multimodalität (MiniMind-V)
  • Laden Sie das Modell MiniMind-V herunter:
git clone https://huggingface.co/jingyaogong/MiniMind2-V
  • Laden Sie das CLIP-Visualisierungsmodell herunter unter ./model/vision_model::
git clone https://huggingface.co/openai/clip-vit-base-patch16
  • Laufen:
python eval_vlm.py --load 1
  • Geben Sie Text und Bilder ein, und das Modell erstellt eine Beschreibung.
  • Maßgeschneiderte Ausbildung
  • Organisieren Sie die Daten als .jsonl Format in das ./dataset.
  • Änderungen ./model/LMConfig.py Parameter (z.B. d_model vielleicht n_layers).
  • Befolgen Sie die oben genannten Schritte.

caveat

  • Wenn der Videospeicher nicht ausreicht, stellen Sie den batch_size oder erhöhen accumulation_steps.
  • Verarbeiten Sie große Datensätze in Stapeln, um einen Speicherüberlauf zu vermeiden.
  • Ultra-lange Kontexte unterstützen die Anpassung von RoPE-Parametern bis zu 2048.

 

Anwendungsszenario

  1. KI-Lernen
    MiniMind bietet Anfängern einen vollständigen Satz von Code und Daten, um den Trainingsprozess für große Modelle zu studieren.
  2. Anpassung der Domäne
    Trainieren Sie Modelle mit privaten Daten, z. B. medizinischen Fragen und Antworten oder Dialogen im Kundendienst.
  3. Kostengünstiger Einsatz
    Das parametrische Modell 26M eignet sich für eingebettete Geräte wie Smart Homes.
  4. Demonstration der Lehre
    Lehrer können damit den KI-Trainingsprozess demonstrieren und Schüler können ihn üben.

 

QA

  1. Wie viel Hardware braucht MiniMind?
    Eine einzelne NVIDIA 3090-Grafikkarte ist für das Training ausreichend, eine CPU kann es ausführen, ist aber langsam.
  2. Sind 2 Stunden Ausbildung zuverlässig?
    Ja, basierend auf dem 3090 Einzelkartentest benötigt das parametrische 26M-Modell nur etwa 2 Stunden, um von Grund auf zu trainieren.
  3. Ist sie im Handel erhältlich?
    Ja, das Projekt steht unter der Apache 2.0-Lizenz, die die freie Nutzung und Veränderung erlaubt.
  4. Wie lässt sich die Kontextlänge verlängern?
    Passen Sie die RoPE-Parameter an oder nehmen Sie eine Feinabstimmung mit längeren Daten vor, um bis zu 2048 zu unterstützen.
Darf nicht ohne Genehmigung vervielfältigt werden:Leiter des AI-Austauschkreises " MiniMind: 2 Stunden Training von Grund auf 26M Parameter GPT Open Source Tool
de_DEDeutsch