Home
Login

🤗 PEFT ist eine von Hugging Face entwickelte, hochmoderne Bibliothek für parameter-effizientes Fine-Tuning, die Technologien wie LoRA und AdaLoRA verwendet, um das kostengünstige Fine-Tuning großer Modelle zu ermöglichen.

Apache-2.0Python 18.8khuggingface Last Updated: 2025-06-19

🤗 PEFT - Detaillierte Einführung in die Bibliothek für parameter-effizientes Fine-Tuning

Projektübersicht

PEFT (Parameter-Efficient Fine-Tuning) ist eine fortschrittliche Bibliothek für parameter-effizientes Fine-Tuning, die von Hugging Face entwickelt wurde. Das Projekt zielt darauf ab, die hohen Rechenkosten und den enormen Speicherbedarf beim Fine-Tuning großer vortrainierter Modelle zu lösen.

GitHub-Adresse: https://github.com/huggingface/peft

Kernwerte und Vorteile

1. Kosteneffizienz

  • Deutliche Reduzierung der Rechenkosten: Im Vergleich zum traditionellen Fine-Tuning mit allen Parametern müssen PEFT-Methoden nur einen kleinen Teil der Modellparameter trainieren.
  • Signifikante Reduzierung des Speicherbedarfs: Die Checkpoint-Dateien der feinabgestimmten Modelle sind in der Regel nur wenige MB groß, anstatt mehrere GB.
  • Optimierung der Speichernutzung: Ermöglicht die Verarbeitung größerer Modelle unter gleichen Hardwarebedingungen.

2. Leistungserhalt

  • Vergleichbar mit Fine-Tuning mit allen Parametern: Erreicht in den meisten Aufgaben eine vergleichbare Leistung wie das vollständige Fine-Tuning.
  • Vermeidung von katastrophalem Vergessen: Schützt das ursprüngliche Wissen des Basismodells und reduziert das Risiko der Überanpassung.

3. Flexibilität und Komfort

  • Anpassung an mehrere Aufgaben: Ermöglicht das Training mehrerer leichtgewichtiger Adapter für verschiedene Aufgaben.
  • Nahtlose Integration: Perfekte Integration in das Ökosystem von Transformers, Diffusers, Accelerate usw.

Unterstützte Fine-Tuning-Methoden

Wichtige PEFT-Technologien

  1. LoRA (Low-Rank Adaptation)
  • Die beliebteste Methode für parameter-effizientes Fine-Tuning.
  • Reduziert die Anzahl der trainierbaren Parameter durch Low-Rank-Matrixfaktorisierung erheblich.
  • In typischen Szenarien müssen nur 0,1%-1% der ursprünglichen Parameter trainiert werden.
  1. AdaLoRA
  • Eine verbesserte Version von LoRA.
  • Passt die Ranggröße adaptiv an, um die Effizienz weiter zu optimieren.
  1. Prefix Tuning
  • Fügt der Eingabesequenz ein lernbares Präfix hinzu.
  • Geeignet für generative Aufgaben.
  1. P-Tuning v2
  • Eine verbesserte Methode zur Prompt-Optimierung.
  • Fügt lernbare Parameter in mehreren Schichten hinzu.
  1. IA³ (Infused Adapter by Inhibiting and Amplifying Inner Activations)
  • Passt das Modell durch Hemmung und Verstärkung interner Aktivierungen an.

Tatsächliche Anwendungseffekte

Vergleich der Speichernutzung (A100 80GB GPU)

Modell Vollständiges Fine-Tuning PEFT-LoRA PEFT-LoRA + DeepSpeed CPU-Auslagerung
T0_3B (3 Milliarden Parameter) 47,14 GB GPU / 2,96 GB CPU 14,4 GB GPU / 2,96 GB CPU 9,8 GB GPU / 17,8 GB CPU
mt0-xxl (120 Milliarden Parameter) Speicherüberlauf 56 GB GPU / 3 GB CPU 22 GB GPU / 52 GB CPU
bloomz-7b1 (7 Milliarden Parameter) Speicherüberlauf 32 GB GPU / 3,8 GB CPU 18,1 GB GPU / 35 GB CPU

Leistung

Vergleich der Genauigkeit bei der Twitter-Beschwerdeklassifizierung:

  • Menschliche Baseline: 89,7%
  • Flan-T5: 89,2%
  • LoRA-T0-3B: 86,3%

Installation und Schnellstart

Installation

pip install peft

Grundlegendes Nutzungsbeispiel

from transformers import AutoModelForSeq2SeqLM
from peft import get_peft_config, get_peft_model, LoraConfig, TaskType

# PEFT konfigurieren
model_name_or_path = "bigscience/mt0-large"
peft_config = LoraConfig(
    task_type=TaskType.SEQ_2_SEQ_LM, 
    inference_mode=False, 
    r=8, 
    lora_alpha=32, 
    lora_dropout=0.1
)

# Modell laden und verpacken
model = AutoModelForSeq2SeqLM.from_pretrained(model_name_or_path)
model = get_peft_model(model, peft_config)

# Trainierbare Parameter anzeigen
model.print_trainable_parameters()
# Ausgabe: trainable params: 2359296 || all params: 1231940608 || trainable%: 0.19

Inferenz verwenden

from peft import AutoPeftModelForCausalLM
from transformers import AutoTokenizer

# Feinabgestimmtes Modell laden
model = AutoPeftModelForCausalLM.from_pretrained("ybelkada/opt-350m-lora").to("cuda")
tokenizer = AutoTokenizer.from_pretrained("facebook/opt-350m")

# Inferenz durchführen
model.eval()
inputs = tokenizer("Dein Eingabetext", return_tensors="pt")
outputs = model.generate(input_ids=inputs["input_ids"].to("cuda"), max_new_tokens=50)

Ökosystemintegration

1. Transformers-Integration

  • Unterstützt verschiedene vortrainierte Modellarchitekturen
  • Nahtlose Trainings- und Inferenzabläufe
  • Automatische Modellkonfiguration und -optimierung

2. Diffusers-Integration

  • Unterstützt das effiziente Fine-Tuning von Diffusionsmodellen
  • Geeignet für Aufgaben wie Bildgenerierung und -bearbeitung
  • Deutliche Reduzierung des Trainingsspeicherbedarfs

3. Accelerate-Integration

  • Unterstützt verteiltes Training
  • Optimierung des Trainings mit mehreren GPUs und TPUs
  • Benutzerfreundlich für Consumer-Hardware

4. TRL (Transformer Reinforcement Learning)-Integration

  • Unterstützt RLHF (Reinforcement Learning from Human Feedback)
  • DPO (Direct Preference Optimization)
  • Ausrichtungstraining großer Modelle

Anwendungsbereiche

1. Fine-Tuning großer Sprachmodelle

  • Befehlsgesteuertes Fine-Tuning
  • Optimierung von Dialogsystemen
  • Anpassung an bestimmte Bereiche

2. Multimodale Modelle

  • Fine-Tuning von visuellen Sprachmodellen
  • Anpassung von Audioverarbeitungsmodellen

3. Diffusionsmodelle

  • Personalisierung von Stable Diffusion
  • DreamBooth-Training
  • Stilübertragung

4. Reinforcement Learning

  • Fine-Tuning von Strategiemodellen
  • Training von Belohnungsmodellen
  • Ausrichtung auf menschliche Präferenzen

Technische Vorteile und Innovationen

1. Parametereffizienz

  • Nur 0,1%-1% der ursprünglichen Parameter werden trainiert
  • Beibehaltung von über 95% der Leistung
  • Checkpoint-Dateien werden auf 1/100 der ursprünglichen Größe reduziert

2. Speicheroptimierung

  • Deutliche Reduzierung des GPU-Speicherbedarfs
  • Unterstützt das Training großer Modelle auf Consumer-Hardware
  • Gradienten-Checkpointing zur weiteren Optimierung des Speichers

3. Quantisierungskompatibilität

  • Perfekte Kombination mit 8-Bit- und 4-Bit-Quantisierung
  • QLoRA-Technologie-Unterstützung
  • Weitere Senkung der Hardwareanforderungen

4. Modulares Design

  • Unterstützt verschiedene PEFT-Methoden
  • Flexible Konfigurationsoptionen
  • Einfache Erweiterung um neue Methoden

Community und Ökosystem

Offizielle Ressourcen

Zusammenfassung

🤗 PEFT ist eine revolutionäre Bibliothek für parameter-effizientes Fine-Tuning, die nicht nur die Kostenprobleme des Fine-Tunings großer Modelle löst, sondern auch eine hervorragende Leistung beibehält. Ob Forscher oder Entwickler in der Industrie, PEFT bietet eine kostengünstige Lösung zur Anpassung großer Modelle und fördert so die Demokratisierung der KI-Technologie.