Axolotl Universelles Fine-Tuning

YAML-gesteuertes LLM-Fine-Tuning mit Axolotl auf Clore.ai — LoRA, QLoRA, DPO, Multi-GPU

Axolotl fasst HuggingFace Transformers, PEFT, TRL und DeepSpeed in einer einzigen YAML-gesteuerten Schnittstelle zusammen. Sie definieren Ihr Modell, Dataset, die Trainingsmethode und Hyperparameter in einer Konfigurationsdatei — und starten dann mit einem einzigen Befehl. Für Standard-Workflows ist kein Python-Scripting erforderlich.

circle-check

Hauptmerkmale

  • Nur YAML-Konfiguration — alles in einer Datei definieren, kein Python nötig

  • Alle Trainingsmethoden — LoRA, QLoRA, vollständiges Fine-Tuning, DPO, ORPO, KTO, RLHF

  • Multi-GPU sofort einsatzbereit — DeepSpeed ZeRO 1/2/3 und FSDP mit einer Option

  • Sample-Packing — kurze Beispiele aneinandersetzen, um die Sequenzlänge zu füllen, 3–5× Durchsatzsteigerung

  • Flash Attention 2 — automatische VRAM-Einsparungen auf unterstützter Hardware

  • Breite Modellunterstützung — Llama 3.x, Mistral, Qwen 2.5, Gemma 2, Phi-4, DeepSeek, Falcon

  • Eingebaute Datensatzformate — alpaca, sharegpt, chat_template, completion und benutzerdefiniert

Anforderungen

Komponente
Minimum
Empfohlen

GPU

RTX 3060 12 GB

RTX 4090 24 GB (×2+)

VRAM

12 GB

24+ GB

RAM

16 GB

64 GB

Festplatte

50 GB

100 GB

CUDA

11.8

12.1+

Python

3.10

3.11

Clore.ai-Preise: RTX 4090 ≈ $0.5–2/Tag · RTX 3090 ≈ $0.3–1/Tag · RTX 3060 ≈ $0.15–0.3/Tag

Schnellstart

1. Axolotl installieren

Oder verwenden Sie das Docker-Image (für Reproduzierbarkeit empfohlen):

2. Eine Konfigurationsdatei erstellen

Speichern Sie dies als config.yml:

3. Training starten

Trainingsfortschrittsprotokolle werden an stdout und optional an Weights & Biases ausgegeben.

Konfigurations-Deep-Dive

Datensatzformate

Axolotl unterstützt nativ mehrere Eingabeformate:

Multi-GPU mit DeepSpeed

Erstelle deepspeed_zero2.json:

Fügen Sie Ihrer Konfiguration hinzu:

Dann starten:

DPO / ORPO Ausrichtung

Vollständiges Fine-Tuning (kein LoRA)

Beispielanwendungen

Inference nach dem Training

LoRA in Basismodell mergen

Datensatz vorverarbeiten (vor dem Training validieren)

Dies tokenisiert und validiert den Datensatz. Nützlich, um Formatfehler vor einem langen Traininglauf zu erkennen.

VRAM-Nutzungsreferenz

Modell
Methode
GPUs
VRAM/GPU
Konfiguration

Llama 3.1 8B

QLoRA 4bit

1

~12 GB

r=32, seq_len=2048

Llama 3.1 8B

LoRA 16bit

1

~20 GB

r=16, seq_len=2048

Llama 3.1 8B

Vollständig

2

~22 GB

DeepSpeed ZeRO-3

Qwen 2.5 14B

QLoRA 4bit

1

~16 GB

r=16, seq_len=2048

Llama 3.3 70B

QLoRA 4bit

2

~22 GB

r=16, seq_len=2048

Llama 3.3 70B

Vollständig

4

~40 GB

DeepSpeed ZeRO-3+Offload

Tipps

  • Immer aktivieren sample_packing: true — größte einzelne Durchsatzverbesserung (3–5× bei kurzen Datensätzen)

  • Verwenden Sie flash_attention: true auf Ampere+-GPUs für 20–40% VRAM-Einsparungen

  • Beginnen Sie mit QLoRA für Experimente; auf vollständiges Fine-Tuning wechseln Sie nur, wenn die LoRA-Qualität stagniert

  • Setze val_set_size: 0.02 um Überanpassung während des Trainings zu überwachen

  • Zuerst vorverarbeiten — führen Sie aus axolotl.cli.preprocess um die Datenformatierung zu validieren, bevor Sie sich auf einen langen Lauf festlegen

  • Verwenden Sie das Docker-Image für reproduzierbare Umgebungen — vermeidet Abhängigkeitskonflikte

  • lora_target_linear: true wendet LoRA auf alle linearen Schichten an, im Allgemeinen besser als nur die Aufmerksamkeit zu adressieren

Fehlerbehebung

Problem
Lösung

OutOfMemoryError

Niedriger micro_batch_size auf 1, aktivieren Sie gradient_checkpointing

Datensatzformatfehler

Ausführen python -m axolotl.cli.preprocess config.yml zum Debuggen

sample_packing langsam in der ersten Epoche

Normal — die anfängliche Packing-Berechnung ist einmalig

Multi-GPU-Training hängt

Überprüfen Sie NCCL: export NCCL_DEBUG=INFO, stellen Sie sicher, dass alle GPUs sichtbar sind

flash_attention Importfehler

Installieren: pip install flash-attn --no-build-isolation

Loss fällt nicht ab

LR auf 1e-4 senken, Warmup erhöhen, Datensatzqualität prüfen

WandB-Verbindungsfehler

Ausführen wandb login oder setzen Sie wandb_project: auf leeren String

Ressourcen

Zuletzt aktualisiert

War das hilfreich?