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.
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
- 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
True
Ist dies nicht der Fall, müssen Sie die entsprechende PyTorch-Version installieren. - Installieren Sie Git zum Klonen von Code.
- Klonprojekt
Geben Sie ihn in das Terminal ein:
git clone https://github.com/jingyaogong/minimind.git
cd minimind
- 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
.
- 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) undsft_mini_512.jsonl
(1,2 GB).
Ausbildungsmodelle
- vor der Ausbildung
- Führen Sie das Skript aus, um das Vortraining zu starten:
python train_pretrain.py
- Standardmäßige Verwendung
pretrain_hq.jsonl
Die Ausgangsgewichte werden gespeichert alspretrain_*.pth
. - Multi-Card-Beschleunigung:
torchrun --nproc_per_node 2 train_pretrain.py
- Befehls-Feinabstimmung
- Führen Sie das Feinabstimmungsskript aus:
python train_full_sft.py
- Standardmäßige Verwendung
sft_mini_512.jsonl
Die Ausgangsgewichte werden gespeichert alsfull_sft_*.pth
. - Das Gleiche gilt für die Unterstützung mehrerer Karten.
- 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
.
- DSB Verbessertes Lernen
- ausnutzen
dpo.jsonl
Daten, Lauf:python train_dpo.py
- Die Ausgangsgewichte werden gespeichert als
rlhf_*.pth
.
- Visualisierungstraining
- Parameter hinzufügen
--use_wandb
Als:python train_pretrain.py --use_wandb
- Sehen Sie sich die Trainingskurven auf der offiziellen wandb-Website an.
Mit Modellen argumentieren
- 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.
- Webchat
- Installieren Sie Streamlit:
pip install streamlit
- Startup-Schnittstelle:
cd scripts streamlit run web_demo.py
- Zugriff über einen Browser
localhost:8501
Sie können einen Dialog führen.
- 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
vielleichtn_layers
). - Befolgen Sie die oben genannten Schritte.
caveat
- Wenn der Videospeicher nicht ausreicht, stellen Sie den
batch_size
oder erhöhenaccumulation_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
- KI-Lernen
MiniMind bietet Anfängern einen vollständigen Satz von Code und Daten, um den Trainingsprozess für große Modelle zu studieren. - Anpassung der Domäne
Trainieren Sie Modelle mit privaten Daten, z. B. medizinischen Fragen und Antworten oder Dialogen im Kundendienst. - Kostengünstiger Einsatz
Das parametrische Modell 26M eignet sich für eingebettete Geräte wie Smart Homes. - Demonstration der Lehre
Lehrer können damit den KI-Trainingsprozess demonstrieren und Schüler können ihn üben.
QA
- 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. - 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. - Ist sie im Handel erhältlich?
Ja, das Projekt steht unter der Apache 2.0-Lizenz, die die freie Nutzung und Veränderung erlaubt. - 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.