Home
Login

Leichtgewichtiges GPT-Trainingsframework, das in 2 Stunden ein kleines Sprachmodell mit 26 Millionen Parametern vollständig von Grund auf trainiert.

Apache-2.0Python 22.6kjingyaogongminimind Last Updated: 2025-04-30

MiniMind - Ultraleichtes GPT-Trainingsframework

Projektübersicht

MiniMind ist ein extrem leichtgewichtiges Trainingsframework für große Sprachmodelle. Die kleinste Version ist nur 1/7000 der Größe von GPT-3 und kann schnell auf einer normalen persönlichen GPU trainiert werden. Dieses Projekt ermöglicht es, ein kleines GPT-Modell mit 26 Millionen Parametern innerhalb von 2 Stunden vollständig von Grund auf neu zu trainieren.

Kernfunktionen

🚀 Ultraleichtes Design

  • Extrem geringe Parameteranzahl: Das kleinste Modell benötigt nur 26 Millionen (0,02 Milliarden) Parameter, um flüssige Gesprächsfähigkeiten zu realisieren.
  • Effizientes Training: Unterstützt das Training auf einer einzelnen 3090-Grafikkarte innerhalb von 2 Stunden.
  • Ressourcenschonend: Kann auf einer normalen persönlichen GPU ausgeführt werden, was die Trainingshürde erheblich senkt.

🧠 Vollständiges Trainingsökosystem

Das Projekt stellt eine Open-Source-Version der minimalistischen Struktur großer Modelle bereit, die folgende Kernfunktionen umfasst:

  1. Vorabtraining (Pretraining) - Training eines grundlegenden Sprachmodells von Grund auf.
  2. Überwachtes Feintuning (SFT) - Überwachtes Befehls-Feintuning.
  3. LoRA-Feintuning - Low-Rank-Adaptation-Feintuning-Technologie.
  4. DPO-Algorithmus - Direct Preference Optimization-Algorithmus.
  5. Modelldestillation - Wissensdestillationsalgorithmus.
  6. MoE-Erweiterung - Unterstützung für Mixture-of-Experts-Modelle.

🎯 Technische Architektur

Framework-Unterstützung

  • PyTorch Native: Basiert auf dem nativen PyTorch-Framework und unterstützt die Beschleunigung durch mehrere GPUs.
  • Hohe Kompatibilität: Kompatibel mit Mainstream-Frameworks wie transformers, accelerate, trl und peft.
  • Flexible Bereitstellung: Unterstützt Einzel-GPU- und Multi-GPU-Trainingseinstellungen (DDP, DeepSpeed).

Trainingsmerkmale

  • Fortsetzung des Trainings nach Unterbrechung: Der Trainingsprozess unterstützt das jederzeitige Anhalten und Wiederaufnehmen.
  • Multi-Card-Training: Unterstützt DDP-verteiltes Training, das auf Multi-Machine-Multi-Card-Cluster erweitert werden kann.
  • Überwachungsintegration: Unterstützt die Aufzeichnung und Visualisierung des Wandb-Trainingsprozesses.

🌟 Multimodale Erweiterung

MiniMind-V Visuelle Multimodale Version

  • Visuelles Verständnis: Erweiterung auf visuelles multimodales VLM: MiniMind-V.
  • Einheitliche Architektur: Basierend auf dem MiniMind-Sprachmodell als Grundlage, Hinzufügen von visuellen Codierungsfähigkeiten.

📊 Modellfähigkeiten

MiniMind kann verschiedene Aufgaben ausführen, darunter Textgenerierung, Dialoginteraktion und Wissensabruf. Es kann Text basierend auf gegebenen Hinweisen oder Kontext generieren, Dialoginteraktionen durchführen und Wissen zu verschiedenen Themen abrufen.

Hauptfunktionen

  • Textgenerierung: Generierung von kohärenten Textinhalten basierend auf Hinweisen.
  • Dialoginteraktion: Unterstützt mehrfache Dialog- und Frage-Antwort-Runden.
  • Wissensabruf: Verfügt über eine gewisse Fähigkeit zur Wissensbefragung.
  • Codeverständnis: Unterstützt grundlegende Codegenerierung und -verständnis.

🎓 Bildungswert

Ziel dieses Projekts ist es, die Lernhürde für LLMs zu senken, sodass jeder, angefangen beim Verständnis jeder Codezeile, ein sehr kleines Sprachmodell trainieren kann. Das Projekt verfolgt das Konzept "Flugzeug aus Bausteinen bauen", das es Benutzern ermöglicht, die zugrunde liegende Implementierung von LLMs eingehend zu verstehen, anstatt durch High-Level-Kapselung isoliert zu werden.

💻 Verwendungsmethode

Umgebungsvoraussetzungen

  • PyTorch 2.1.2+
  • CUDA 12.2+
  • Flash Attention 2
  • RTX 3090 oder leistungsstärkere GPU (empfohlen)

Schnellstart

# Projekt klonen
git clone https://github.com/jingyaogong/minimind.git
cd minimind

# Abhängigkeiten installieren
pip install -r requirements.txt

# Einzel-GPU-Training
python train.py

# Multi-GPU-Training (N>1)
torchrun --nproc_per_node N train.py

Trainingskonfiguration

# Wandb-Überwachung aktivieren
wandb login
python train.py --use_wandb

# Projektnamen angeben
python train.py --wandb_project "my_minimind" --wandb_run_name "experiment_1"

🔄 Trainingsablauf

  1. Datenvorbereitung: Datensatzbereinigung und Vorverarbeitung.
  2. Vorabtraining: Unüberwachtes Training auf großen Textdaten.
  3. Befehls-Feintuning: Überwachtes Feintuning mit Befehlsdaten.
  4. Präferenzoptimierung: Optimierung der Modellausgabepräferenzen durch den DPO-Algorithmus.
  5. Modellbewertung: Testen der Leistung auf Benchmark-Datensätzen wie Ceval.

📈 Leistung

  • Trainingsgeschwindigkeit: Getestet auf RTX 3090 GPU mit Torch 2.1.2, CUDA 12.2 und Flash Attention 2.
  • Dialogqualität: 26 Millionen Parameter reichen aus, um einen flüssigen Dialog zu realisieren.
  • Ressourcenverbrauch: Geringe Speichernutzung, geeignet für einzelne Entwickler.

🌍 Community-Ökosystem

  • Open Source und kostenlos: Vollständig Open Source, der gesamte Kernalgorithmuscode ist öffentlich.
  • Vollständige Dokumentation: Bietet detaillierte Dokumentation in Chinesisch und Englisch.
  • Kontinuierliche Aktualisierung: Aktive Entwicklungsgemeinschaft, kontinuierliche Funktionsiteration.
  • Bildungsfreundlich: Geeignet für Lern- und Lehrzwecke.

🔗 Verwandte Projekte

Zusammenfassung

MiniMind ist ein bahnbrechendes, leichtgewichtiges LLM-Trainingsframework, das beweist, dass auch mit begrenzten Rechenressourcen Sprachmodelle mit praktischen Dialogfähigkeiten trainiert werden können. Das Projekt bietet nicht nur eine vollständige Trainings-Toolchain, sondern vor allem eine hervorragende Plattform für KI-Lernende und -Forscher, um die internen Mechanismen von LLMs zu verstehen. Durch das Konzept "von Grund auf neu, jede Codezeile verstehen" demokratisiert MiniMind die künstliche Intelligenz und ermöglicht es mehr Menschen, sich an der Entwicklung und Forschung großer Modelle zu beteiligen.

Star History Chart