Home
Login

Ein Open-Source-Tool für das Nachtraining von KI-Modellen, das verschiedene Trainingsmethoden wie Feinabstimmung, LoRA, QLoRA usw. unterstützt.

Apache-2.0Python 9.7kaxolotl-ai-cloud Last Updated: 2025-06-19

Axolotl - Leistungsstarkes Tool zur Nachbearbeitung von KI-Modellen

Projektübersicht

Axolotl ist ein Open-Source-Tool, das speziell entwickelt wurde, um die Nachbearbeitung verschiedener KI-Modelle zu vereinfachen. Nachbearbeitung bezieht sich auf alle Modifikationen oder zusätzliches Training, die an einem vortrainierten Modell vorgenommen werden, einschließlich vollständiger Modellfeinabstimmung, parameter-effizienter Feinabstimmung (wie LoRA und QLoRA), überwachtem Feinabstimmen (SFT), Anweisungsabstimmung und Ausrichtungstechniken. Das Tool unterstützt verschiedene Modellarchitekturen und Trainingskonfigurationen, sodass Benutzer problemlos mit diesen fortschrittlichen Trainingstechniken beginnen können.

Kernfunktionen

Modellunterstützung

  • Vielfältige Modellarchitekturen: Unterstützt das Training verschiedener Hugging Face-Modelle, darunter LLaMA, Pythia, Falcon, MPT, Mistral, Mixtral und andere gängige große Sprachmodelle.
  • Flexible Trainingsmethoden: Unterstützt Full Fine-tuning, LoRA, QLoRA, ReLoRA, GPTQ und andere Trainingsmethoden.

Konfigurationsmanagement

  • YAML-Konfigurationsdateien: Verwendet einfache YAML-Dateien, die alle notwendigen Konfigurationen für die Datenvorverarbeitung, das Modelltraining/Feinabstimmung, die Modellinferenz oder -bewertung enthalten.
  • CLI-Überschreibung: Unterstützt das Überschreiben von Einstellungen in der Konfigurationsdatei über Befehlszeilenparameter.
  • Flexible Konfiguration: Ermöglicht die Anpassung verschiedener Trainingsparameter und Modelleinstellungen.

Datenverarbeitungskapazität

  • Mehrformatige Datensätze: Unterstützt das Laden von lokalen, HuggingFace- und Cloud-Datensätzen (S3, Azure, GCP, OCI).
  • Benutzerdefinierte Formate: Ermöglicht die Verwendung benutzerdefinierter Formate oder den direkten Import bereits tokenisierter Datensätze.
  • Datensatzvorverarbeitung: Integrierte leistungsstarke Datenvorverarbeitungsfunktionen.

Leistungsoptimierung

  • Fortschrittliche Optimierungstechniken: Integriert xformers, Flash Attention, Liger Kernel, Rope Scaling und Multi-Packing-Techniken.
  • Multi-GPU-Unterstützung: Unterstützt Single-GPU- oder Multi-GPU-Training über FSDP oder DeepSpeed.
  • Effizientes Training: Optimiert für NVIDIA-GPUs (Ampere oder neuer, unterstützt bf16 und Flash Attention) und AMD-GPUs.

Bereitstellung und Überwachung

  • Cloud-fähig: Bietet Docker-Images und PyPI-Pakete, die auf Cloud-Plattformen und lokaler Hardware verwendet werden können.
  • Ergebnisprotokollierung: Unterstützt das Protokollieren von Ergebnissen und Checkpoints in WandB, MLflow oder Comet.
  • Überwachungsunterstützung: Integriert verschiedene Tools zur Verfolgung und Überwachung von Experimenten.

Technische Anforderungen

Hardwareanforderungen

  • NVIDIA GPU (Ampere oder neuer, für bf16 und Flash Attention) oder AMD GPU
  • Ausreichend GPU-Speicher für das Modelltraining

Softwareanforderungen

  • Python 3.11
  • PyTorch ≥2.4.1
  • Zugehörige Abhängigkeitspakete

Installationsmethoden

Schnelle Installation

pip3 install -U packaging==23.2 setuptools==75.8.0 wheel ninja
pip3 install --no-build-isolation axolotl[flash-attn,deepspeed]

# Beispielkonfigurationsdateien herunterladen
axolotl fetch examples
axolotl fetch deepspeed_configs  # Optional

Installation aus dem Quellcode

git clone https://github.com/axolotl-ai-cloud/axolotl.git
cd axolotl
pip3 install -U packaging setuptools wheel ninja
pip3 install --no-build-isolation -e '.[flash-attn,deepspeed]'

Docker-Methode

docker run --gpus '"all"' --rm -it axolotlai/axolotl:main-latest

Verwendung

Grundlegender Arbeitsablauf

  1. Beispielkonfiguration abrufen:

    axolotl fetch examples
    
  2. Modell trainieren:

    axolotl train examples/llama-3/lora-1b.yml
    
  3. Konfiguration anpassen: Ändern Sie die Parameter in der YAML-Konfigurationsdatei nach Bedarf.

Konfigurationsdateistruktur

Axolotl verwendet YAML-Konfigurationsdateien, um den gesamten Trainingsprozess zu steuern, einschließlich:

  • Modellauswahl und Parameter
  • Datensatzkonfiguration und Vorverarbeitung
  • Trainingshyperparameter
  • Optimierereinstellungen
  • Überwachung und Protokollierung

Unterstützte Modellkompatibilitätsmatrix

Modell fp16/fp32 LoRA QLoRA GPTQ Flash Attn xformers
LLaMA
Mistral
Mixtral-MoE
Pythia
Falcon
Qwen
Gemma

✅: Unterstützt ❌: Nicht unterstützt ❓: Nicht getestet

Anwendungsbereiche

Forschungsbereich

  • Feinabstimmungsforschung für große Sprachmodelle
  • Experimente mit parameter-effizienten Trainingsmethoden
  • Modellausrichtung und Sicherheitsforschung

Industrielle Anwendung

  • Unternehmensspezifische Modellanpassung
  • Domänenspezifisches Modelltraining
  • Optimierung von Produktfunktionsmodellen

Aus- und Weiterbildung

  • KI/ML-Kursunterricht
  • Entwicklung von Praxisprojekten
  • Verbesserung der technischen Fähigkeiten

Projektvorteile

  1. Benutzerfreundlichkeit: Steuerung komplexer Trainingsprozesse durch einfache YAML-Konfigurationsdateien.
  2. Flexibilität: Unterstützt verschiedene Modellarchitekturen und Trainingsmethoden.
  3. Leistung: Integriert die neuesten Optimierungstechniken und bietet ein effizientes Trainingserlebnis.
  4. Skalierbarkeit: Unterstützt verschiedene Trainingsgrößen von Single-GPU bis Multi-Node.
  5. Open Source: Apache 2.0-Lizenz, vollständig Open Source und kostenlos nutzbar.