Ein effizientes, flexibles und voll ausgestattetes Toolkit für das Feinabstimmen großer Sprachmodelle, das verschiedene Modelle und Trainingsalgorithmen unterstützt.

Apache-2.0PythonxtunerInternLM 4.7k Last Updated: August 13, 2025

XTuner - Effizientes Toolkit für das Feinabstimmen großer Sprachmodelle

Projektübersicht

XTuner ist ein effizientes, flexibles und voll ausgestattetes Toolkit für das Feinabstimmen großer Sprachmodelle, das vom InternLM-Team entwickelt wurde. Das Projekt zielt darauf ab, Benutzern ein einfach zu bedienendes und dennoch leistungsstarkes Werkzeug zum Feinabstimmen verschiedener großer Sprachmodelle bereitzustellen, darunter InternLM, Llama, Qwen, ChatGLM, Baichuan und andere Mainstream-Modelle.

Kernfunktionen

1. Effizienz (Efficient)

  • Geringer Ressourcenbedarf: Unterstützt das Feinabstimmen großer Sprachmodelle mit 7B Parametern auf einer einzelnen 8GB GPU
  • Multi-Node-Skalierung: Unterstützt Multi-Node-Feinabstimmung mit über 70B Parametern
  • Leistungsoptimierung: Automatische Planung von Hochleistungsoperatoren wie FlashAttention und Triton-Kernels zur Verbesserung des Trainingsdurchsatzes
  • DeepSpeed-Integration: Kompatibel mit dem DeepSpeed-Framework, einfache Verwendung verschiedener ZeRO-Optimierungstechniken

2. Flexibilität (Flexible)

  • Multi-Modell-Unterstützung: Unterstützt eine Vielzahl großer Sprachmodelle
    • InternLM-Serie (InternLM, InternLM2, InternLM2.5, InternLM3)
    • Meta Llama-Serie (Llama 2, Llama 3)
    • Andere Mainstream-Modelle: Mixtral-8x7B, ChatGLM, Qwen, Baichuan, Gemma, DeepSeek usw.
  • Multimodale Unterstützung: Unterstützt visuelle Sprachmodelle (VLM), insbesondere Modelle, die auf der LLaVA-Architektur basieren
  • Datenpipeline: Sorgfältig gestaltete Datenpipeline, die verschiedene Datenformat unterstützt
  • Verschiedene Trainingsalgorithmen: Unterstützt QLoRA, LoRA, vollständige Parameter-Feinabstimmung und andere Trainingsstrategien

3. Vollständigkeit (Full-featured)

  • Verschiedene Trainingsmodi:
    • Kontinuierliches Vortraining
    • Befehlsgesteuerte Feinabstimmung
    • Agenten-Feinabstimmung
  • Dialogfunktion: Unterstützt die Verwendung vordefinierter Vorlagen für die Konversation mit großen Modellen
  • Nahtlose Integration: Ausgabemodelle können nahtlos in Deployment- und Service-Toolkits (LMDeploy) sowie in groß angelegte Evaluierungs-Toolkits (OpenCompass, VLMEvalKit) integriert werden

Unterstützte Modelle

XTuner unterstützt eine breite Palette von Modellfamilien, einschließlich, aber nicht beschränkt auf:

Modellserie Spezifisches Modell Merkmale
InternLM InternLM, InternLM2, InternLM2.5, InternLM3 Chinesisch optimiert, hervorragende Leistung
Llama Llama 2, Llama 3 Meta Open-Source-Modell
Qwen Qwen 1.5 usw. Alibaba Open-Source-Modell
ChatGLM ChatGLM3-6B usw. Tsinghua University Open-Source-Modell
Baichuan Baichuan2 usw. Baichuan Intelligence Open-Source-Modell
Mixtral Mixtral 8x7B Mistral AI's Mixture-of-Experts-Modell
Andere Gemma, DeepSeek, MiniCPM usw. Open-Source-Modelle verschiedener Unternehmen

Multimodale Fähigkeiten

XTuner zeichnet sich im multimodalen Bereich aus, insbesondere im Bereich der visuellen Sprachmodelle:

  • LLaVA-Architekturunterstützung: Vollständige Unterstützung für das Vortraining und die Feinabstimmung der LLaVA-v1.5-Architektur
  • Hervorragende Leistung: Das LLaVA-InternLM2-20B-Modell bietet eine herausragende Leistung
  • Verschiedene Kombinationen: Unterstützt verschiedene Kombinationen von visuellen Encodern und Sprachmodellen
  • Neueste Veröffentlichungen:
    • LLaVA-Llama-3-8B
    • LLaVA-Llama-3-8B-v1.1
    • LLaVA-Phi-3-mini

Installation und Verwendung

Umgebung vorbereiten

# Erstellen einer virtuellen Python 3.10-Umgebung
conda create --name xtuner-env python=3.10 -y
conda activate xtuner-env

Installationsmethoden

Methode 1: Installation über pip

pip install -U xtuner

Methode 2: DeepSpeed integrieren

pip install -U 'xtuner[deepspeed]'

Methode 3: Installation aus dem Quellcode

git clone https://github.com/InternLM/xtuner.git
cd xtuner
pip install -e '.[all]'

Schnellstart

1. Konfigurationsdatei vorbereiten

# Alle verfügbaren Konfigurationen anzeigen
xtuner list-cfg

# Konfigurationsdatei zum Anpassen kopieren
xtuner copy-cfg ${CONFIG_NAME} ${SAVE_PATH}

2. Feinabstimmung starten

# Single-GPU-Feinabstimmung
xtuner train internlm2_5_chat_7b_qlora_oasst1_e3 --deepspeed deepspeed_zero2

# Multi-GPU-Feinabstimmung
NPROC_PER_NODE=${GPU_NUM} xtuner train internlm2_5_chat_7b_qlora_oasst1_e3 --deepspeed deepspeed_zero2

3. Modellkonvertierung

# Konvertieren des PTH-Modells in das Hugging Face-Format
xtuner convert pth_to_hf ${CONFIG_NAME_OR_PATH} ${PTH} ${SAVE_PATH}

4. Dialogtest

# Dialog mit dem feinabgestimmten Modell
xtuner chat ${NAME_OR_PATH_TO_LLM} --adapter ${NAME_OR_PATH_TO_ADAPTER}

Erweiterte Funktionen

1. Sequenzparallelität

  • Unterstützt das Training extrem langer Sequenzen
  • Effiziente und skalierbare Trainingsmethode
  • Geeignet für Szenarien, in denen lange Texte verarbeitet werden müssen

2. DPO/ORPO-Training

  • Unterstützt Direct Preference Optimization (DPO)
  • Unterstützt Odds Ratio Preference Optimization (ORPO)
  • Unterstützt das Training von Reward-Modellen
  • Unterstützt gepackte Daten und Sequenzparallelität

3. Optimierung des mathematischen Denkens

  • Unterstützt OREAL (eine neue Methode des Reinforcement Learning)
  • Speziell für mathematische Denkaufgaben optimiert

Leistung

Trainingsgeschwindigkeit

  • Llama2 7B: Bietet eine hervorragende Trainingsgeschwindigkeit auf einer einzelnen GPU
  • Llama2 70B: Unterstützt paralleles Multi-GPU-Training mit hervorragender Geschwindigkeit
  • DeepSeek V2: 2-fache Steigerung der Trainingsgeschwindigkeit im Vergleich zur vorherigen Version

Speichereffizienz

  • Geringer Speicherbedarf: 20 GB GPU-Speicher reichen für die QLoRA-Feinabstimmung aus
  • Vollständige Parameter-Feinabstimmung: 4x80 GB GPU können für die vollständige Parameter-Feinabstimmung verwendet werden
  • Speicheroptimierung: Deutliche Reduzierung des Speicherverbrauchs durch verschiedene Optimierungstechniken

Ökosystemintegration

XTuner ist ein wichtiger Bestandteil des InternLM-Ökosystems und eng in andere Tools integriert:

  • LMDeploy: Toolkit für Modellbereitstellung und -service
  • OpenCompass: Toolkit für groß angelegte Evaluierung
  • VLMEvalKit: Toolkit zur Bewertung visueller Sprachmodelle
  • Lagent: Agenten-Framework
  • AgentLego: Multifunktionale Tool-API-Bibliothek

Anwendungsbereiche

1. Akademische Forschung

  • Forschung zur Feinabstimmung großer Sprachmodelle
  • Entwicklung multimodaler Modelle
  • Validierung neuer Algorithmen

2. Industrielle Anwendungen

  • Kundenspezifische Chatbots
  • Entwicklung domänenspezifischer Modelle
  • KI-Assistenten für Unternehmen

3. Aus- und Weiterbildung

  • KI-Kursunterricht
  • Aufbau von Experimentierumgebungen
  • Kompetenztraining

Fazit

XTuner ist ein umfassendes und leistungsstarkes Toolkit für das Feinabstimmen großer Sprachmodelle. Es unterstützt nicht nur eine breite Palette von Modellen und Trainingsalgorithmen, sondern bietet auch eine vollständige Toolchain von der Datenvorbereitung bis zur Modellbereitstellung und bietet Benutzern eine Komplettlösung. Ob akademische Forschung oder industrielle Anwendung, XTuner kann die Anforderungen verschiedener Szenarien erfüllen und ist die ideale Wahl für die Feinabstimmung großer Sprachmodelle.

Star History Chart