Der Accelerate Memory Estimator approximiert nur das Laden des Modells; echtes Training benötigt mehr VRAM wegen Activations, Gradients und Optimizer States.
VRAM für 7B, 8B, 14B, 32B und 70B bei Full Fine-Tuning, LoRA und QLoRA anhand Weights, Gradients, Optimizer, Activations und Context abschätzen.
Der Accelerate Memory Estimator approximiert nur das Laden des Modells; echtes Training benötigt mehr VRAM wegen Activations, Gradients und Optimizer States.
Gradient Checkpointing senkt Activation-Speicher, indem Activations im Backward neu berechnet werden.
4-Bit-QLoRA reduziert Base-Weights stark, aber Adapter, Optimizer, Activations und temporäre Buffer benötigen weiterhin VRAM.
Checkpoint-Größe allein reicht nicht. VRAM enthält Weights, Gradients, Optimizer States, Activations und temporäre Workspaces. Full Fine-Tuning hält diese für viele Parameter; LoRA/QLoRA reduzieren den trainierbaren Anteil.
Dasselbe 8B-Modell benötigt bei Batch 1/Context 2048 ganz anderen Speicher als bei Batch 4/8192. Activations wachsen mit Batch und Sequenzlänge.
Beim Full Fine-Tuning erhalten alle Parameter Gradients. AdamW hält zusätzliche States; selbst bei Mixed Precision bleibt der Speicherbedarf deutlich über der reinen FP16-Weight-Größe.
Selbst 7B/8B Full Fine-Tuning passt oft nicht auf eine Consumer-GPU; Sharding, ZeRO/FSDP oder mehrere GPUs werden nötig.
LoRA friert das Basismodell ein und trainiert Low-Rank-Adapter. QLoRA lädt zusätzlich das Basismodell quantisiert in 4 Bit.
4 Bit bedeutet nicht, dass der gesamte Training-Speicher auf ein Viertel fällt. Activations und Workspaces laufen meist weiter in BF16/FP16.
Mit 24 GB sind 7B/8B QLoRA meist komfortabel, 14B oft machbar. 32B kann mit strengen Einstellungen funktionieren, aber Activations und langer Context werden schnell kritisch.
Vor der Entscheidung Weight-Basis mit `accelerate estimate-memory` schätzen und anschließend echtes Peak-VRAM mit Mini-Batch messen.
accelerate estimate-memory MODEL_ID --library_name transformers
nvidia-smi
python - <<'PY'
import torch
print(torch.cuda.get_device_name())
print(round(torch.cuda.get_device_properties(0).total_memory/1024**3,2),'GB')
PY
Sequenzlänge erzeugt Activations in jeder Layer. Von 2K auf 8K wächst nicht die Weight-Größe, aber der Activation-Speicher kann stark steigen.
Gradient Accumulation hält Micro-Batches klein, Checkpointing berechnet Activations im Backward neu. Gemeinsam sparen sie VRAM, kosten aber Zeit.
Effektiver Batch entspricht ungefähr per-device Batch × Accumulation × GPU-Anzahl.
Mit Batch 1 und nötigem Context starten, dann BF16/FP16, Checkpointing, Accumulation, 8-Bit-Optimizer und QLoRA testen. Falls weiterhin zu groß: kleineres Modell oder FSDP/DeepSpeed/Offload.
12-16 GB: kleine/mittlere QLoRA und Diffusion-LoRA. 24 GB: stark für 7B-14B. 32-48 GB: mehr Spielraum für 14B-32B. 80 GB: professionelle Klasse. Keine Garantie; echte Konfiguration testen.
| VRAM | Komfortabler Start | Grenzbereich/fortgeschritten |
|---|---|---|
| 12-16 GB | 3B-8B QLoRA | 14B sehr knapp |
| 24 GB | 7B-14B QLoRA | 32B knapp |
| 32-48 GB | 14B-32B QLoRA | 70B nur stark optimiert |
| 80 GB | 32B komfortabel | 70B Adapter-Training |
In einer funktionierenden Trainingsumgebung Pakete nicht blind aktualisieren. GPU, Treiber, CUDA/PyTorch-Runtime, Transformers, Accelerate, PEFT, TRL, bitsandbytes/Diffusers, Modellrevision und Dataset-Fingerprint pro Run protokollieren.
Meist nicht bequem auf einer einzelnen 24-GB-GPU; Offload oder verteiltes Training ist nötig.
Nein. Training benötigt zusätzliche Activations, Gradients, Optimizer States und Buffer.
Modellgröße, Precision, Context, Batch, LoRA/QLoRA oder Full Fine-Tuning und Multi-GPU gemeinsam bewerten.