Ressourcen/Modelltraining/Was während des Trainings passiert

Best Practice

Passt das Modell? Speicherbedarf für das Training

Das Training benötigt Platz für die Gewichte des Modells, seine Gradienten und den Zustand des Optimizers sowie für den Arbeitsspeicher. Eine einfache Faustregel – etwa 2 GB pro Milliarde Parameter für LoRA und 12 GB für vollständiges Fine-Tuning – sagt Ihnen vor dem Start, ob ein Modell auf Ihre Maschine passt.

Kapitel 64 Min. Lesezeit4 Quellen

Warum das Training mehr Speicher erfordert als der Download

Das Ausführen eines Modells erfordert kaum mehr als seine Gewichte: Ein 7B-Modell in 16-Bit ist etwa 14 GB groß. Das Training erfordert mehr, da jedes Gewicht, das lernt, auch einen Gradienten (in welche Richtung es bewegt werden soll) und einen Optimizer-Status (Adams gleitende Durchschnitte, die festlegen, wie weit) benötigt. Hinzu kommen die Aktivierungen aus dem Forward Pass, die mit der Batch-Größe und der Beispiellänge wachsen. Welche davon für welche Gewichte existieren, unterscheidet vollständiges Fine-Tuning von LoRA.

Die Faustregel

Eine Faustregel für den Trainingsspeicher
LoRA   ≈ 2 GB per billion parameters  + ~3 GB
         frozen 16-bit weights            adapter, activations, overhead

full   ≈ 12 GB per billion parameters + ~4 GB
         16-bit weight          2 bytes
         16-bit gradient        2 bytes
         Adam moment 1 (fp32)   4 bytes
         Adam moment 2 (fp32)   4 bytes
                              ─────────
                               12 bytes per weight
         (+ 4 bytes for a 32-bit master copy = 16)
  • LoRA hält die Basis in 16-Bit eingefroren: 2 Bytes pro Gewicht, also 2 GB pro Milliarde Parameter. Der Adapter ist winzig, und die ~3 GB decken ihn, seinen Optimizer-Status, Aktivierungen bei moderaten Längen und das Framework selbst ab.
  • Vollständiges Fine-Tuning trainiert jedes Gewicht: ein 16-Bit-Gewicht und ein Gradient plus Adams zwei 32-Bit-Momentenschätzungen, insgesamt 12 Bytes pro Gewicht.
  • QLoRA speichert die eingefrorene Basis in 4 Bit, was den Speicherbedarf auf etwa ein Drittel von LoRA reduziert: Ein 8B-Modell benötigt etwa 9 GB statt 19.

Die Seite für vollständiges Fine-Tuning rechnet mit 16 Bytes pro Gewicht, nicht mit 12. Der Unterschied ist die 32-Bit-Masterkopie der Gewichte, die das klassische Mixed-Precision-Rezept neben den 16-Bit-Gewichten vorhält. Diese Faustregel geht von einem Training ohne diese zusätzliche Kopie aus; ein Setup, das eine solche behält, benötigt etwa 16 GB pro Milliarde Parameter. Beides sind Schätzungen vor langen Beispielen: Aktivierungen kommen noch hinzu und wachsen mit maximaler Länge und Batch-Größe.

Vollständiges Fine-Tuning16-Bit + Adam≈ 112 GBLoRA16-Bit-Basis, eingefroren≈ 15 GBQLoRA4-Bit-Basis, eingefroren≈ 4–5 GBAdam + fp32-Kopieeingefrorene Gewichtetrainierbare GewichteGradientenOptimierer-Status
Ungefährer GPU-Speicherbedarf für das Fine-Tuning eines Modells mit 7 Milliarden Parametern, vor Aktivierungen. Vollständiges Fine-Tuning mit Adam benötigt etwa 16 Byte für jedes Gewicht: die Gewichte, ihre Gradienten, eine Masterkopie in voller Genauigkeit und zwei Optimierer-Statistiken. LoRA hält das Basismodell eingefroren, sodass Gradienten und Optimierer-Status nur für den kleinen Adapter existieren (hier etwa 40 Millionen Gewichte).
ModellgrößeLoRAVollständiges Fine-Tuning
0.5B~4 GB~10 GB
1.5B~6 GB~22 GB
3B~9 GB~40 GB
7B~17 GB~88 GB
14B~31 GB~172 GB

Aktivierungen sind der Teil, den die Regel nur annähern kann. Sie wachsen mit der Anzahl der gleichzeitig vorgehaltenen Token, also Batch-Größe mal Beispiellänge. Eine Verdopplung der maximalen Länge verdoppelt sie also in etwa, und Attention kann bei sehr langen Beispielen noch mehr hinzufügen. Der feste Overhead in der Regel geht von moderaten Längen aus. Wenn Ihre Beispiele lang sind, sollten Sie zusätzlichen Spielraum einplanen, anstatt bis auf das letzte Gigabyte zu kalkulieren.

Wie viel Speicher Ihnen tatsächlich zur Verfügung steht

Auf Laptops mit Unified Memory, wie Macs mit Apple Silicon, teilt sich die GPU den Hauptspeicher, sodass ein 36-GB-Laptop einem Modell mehr Platz bieten kann als eine typische Gaming-GPU. Aber das Betriebssystem und Ihre anderen Apps benötigen ihren Anteil, planen Sie also damit, dass etwa drei Viertel davon für das Training frei sind. Auf einem PC mit einer separaten Grafikkarte ist das Limit der eigene Speicher der GPU, nicht der RAM des Computers.

36-GB-Laptop27 GB nutzbarBetriebssystem, Apps1.5B · LoRA≈ 6 GB · passt7B · LoRA≈ 17 GB · passt14B · LoRA≈ 31 GB · zu groß32B · QLoRA≈ 22–26 GB · passt1,5B · vollständig≈ 22 GB · passt3B · vollständig≈ 40 GB · zu groß
Was nach der Faustregel auf dieser Seite auf einen 36-GB-Laptop mit gemeinsam genutztem Speicher passt. Etwa 27 GB bleiben für das Training übrig, nachdem das Betriebssystem und Ihre anderen Apps ihren Anteil beansprucht haben. Anschauliche Schätzungen: lange Beispiele und große Batches benötigen mehr.
Was auf einen 36-GB-Laptop passt (zur Veranschaulichung)
  1. Nutzbarer Speicher: nach Betriebssystem und Apps etwa 27 GB.
  2. 1.5B-Modell: LoRA 2 × 1,5 + 3 ≈ 6 GB, vollständiges Fine-Tuning 12 × 1,5 + 4 ≈ 22 GB. Beides passt.
  3. LoRA, größere Modelle: ein 7B-Modell benötigt etwa 17 GB und passt; ein 14B-Modell benötigt über 30 GB und passt nicht. In der Praxis eignet sich LoRA für Modelle bis zu etwa 10B.
  4. Vollständiges Fine-Tuning, größere Modelle: ein 3B-Modell benötigt etwa 40 GB, daher liegt die Obergrenze bei etwa 1.5B.
  5. QLoRA: ein 27–32B-Modell benötigt etwa 22–26 GB, was passt.
Das 1.5B-Modell, beide Methoden
1.5B · LoRA    2 × 1.5 + 3   ≈  6 GB
1.5B · full   12 × 1.5 + 4   ≈ 22 GB

Auf einer 16-GB-NVIDIA-GPU besagt dieselbe Regel, dass ein 8B-Modell mit LoRA etwa 19 GB benötigt – zu viel –, aber mit QLoRA etwa 9 GB, was passt und noch Platz für längere Beispiele lässt.

Wenn der Speicher bei einem Durchlauf nicht ausreicht

  1. Reduzieren Sie die maximale Länge. Der Speicherbedarf wächst mit der Länge der Beispiele, daher bringt dies am meisten zurück. Prüfen Sie zuerst, ob Ihre typischen Beispiele noch passen.
  2. Reduzieren Sie die Batch-Größe. Weniger Beispiele pro Schritt bedeuten weniger gleichzeitig vorgehaltene Aktivierungen.
  3. Wechseln Sie zu QLoRA. Die 4-Bit-Basis benötigt etwa ein Viertel des Speichers einer 16-Bit-Basis.
  4. Verwenden Sie Gradient Checkpointing. Es tauscht etwa 20–30 % Geschwindigkeit gegen deutlich weniger Aktivierungsspeicher ein, und viele Rezepte aktivieren es bereits standardmäßig.
  5. Wählen Sie ein kleineres Modell, oder verwenden Sie LoRA anstelle von vollständigem Fine-Tuning.

Häufige Fehler

  • Sich nach der Downloadgröße richten. Vollständiges Fine-Tuning benötigt das Sechs- bis Achtfache der 16-Bit-Gewichte, zuzüglich Aktivierungen.
  • Den gesamten RAM eines Laptops mit gemeinsam genutztem Speicher als verfügbar ansehen. Das Betriebssystem und andere Apps benötigen ihren Anteil.
  • Den RAM eines PCs anstelle des Speichers seiner Grafikkarte zählen.
  • Die maximale Länge oder Batch-Größe erhöhen, nachdem ein Durchlauf gepasst hat, und erwarten, dass der nächste Durchlauf ebenfalls passt.
  • Die maximale Länge unter die Länge Ihrer typischen Beispiele kürzen, sodass das Modell nie das Ende der Antworten sieht, die es lernen soll.

Quellen und weiterführende Literatur

Externe Quellen werden in einem neuen Tab geöffnet.

  1. 01ZeRO: Memory Optimizations Toward Training Trillion Parameter ModelsRajbhandari et al., 2019 · arXiv · arxiv.orgDie Standardberechnung von Gewichten, Gradienten und Optimizer-Status pro Parameter.
  2. 02GPU memory usageHugging Face Transformers docs · huggingface.co
  3. 03Model memory estimatorHugging Face Accelerate docs · huggingface.coEin Tool zur Schätzung des Speicherbedarfs eines spezifischen Hugging Face-Modells für Ausführung und Training.
  4. 04Unified MemoryMLX docs · ml-explore.github.ioWie sich CPU und GPU bei Apple Silicon einen gemeinsamen Speicherpool teilen.

Verwandeln Sie wochenlange Expertenarbeit in Minuten

Erfahren Sie, wie Scalata zu Ihrem Team, Ihren Daten und Ihren Kontrollen passt.

Vertrieb kontaktieren