Um ein Charaktermodell für den Dienst zu erstellen, habe ich das FLUX 1-dev(12B) Modell fein abgestimmt. Ich teile die gesammelten Daten und Erfahrungen, die beim Training dieses 12 Milliarden Parameter Modell auf dem energieeffizienten, ARM-basierten DGX Spark entstanden sind.

1. Lernumgebung und Einstellungen



  • Hardware: DGX Spark (120GB Unified Memory)

  • Modell: FLUX 1-dev (12B Parameter)

  • Dataset: 40 Charakterbilder (1024px Auflösung)

  • Trainingseinstellungen:

    • Batch-Größe: 1

    • Gradientenakkumulation: 4

    • Epochen: 100

    • Gesamt-Schritte: 1000

2. Erwartung vs Realität: Das Scheitern des Zeitmanagements

In den NVIDIA-Referenzen wurde angegeben: "Bei 13 Bildern benötigt das Training bei 1000 Schritten etwa 90 Minuten". Daraus schloss ich, dass es bei 40 Bildern großzügig 4–5 Stunden, im besten Fall 2–3 Stunden dauern würde.

Doch die tatsächliche Zeit betrug etwa 8 Stunden.

Analyse: > Anzahl und Auflösung der Bilder: Das Dataset von 40 Bildern und die Einstellung auf 1024px hohe Auflösung haben die Last erhöht.

  • Zeit pro Schritt: Die Verarbeitung einer Epoche (10 Schritte) dauerte im Durchschnitt 28 Sekunden. Das bedeutet, dass das Lernen eines Bildes etwa 7 Sekunden in Anspruch nahm.

3. OOM (Out Of Memory) und Speichermanagement



Mein erster Fehler war, mich auf die 120GB Unified Memory zu verlassen.

Die bestehenden Dienste, die auf dem Server liefen, waren problematisch.

  1. GPT-OSS (20B): 32GB reserviert

  2. ComfyUI: 16GB zugewiesen

Als ich in diesem Zustand mit dem Training begann, hat der Linux-Kernel den Prozess zwangsweise beendet (Kill). Mit etwa 66GB verfügbaren Speicher war es unzureichend für das Training des 12B Modells (Gradientenberechnungen usw.). Letztendlich war ein stabiler Trainingsbetrieb nur nach dem Herunterfahren aller Hintergrunddienste möglich.

  • Tatsächliche Speicherauslastung während des Trainings: ca. 71.4GB (dauerhaft)

GPU-Zustand während LoRA-Training

4. Die erstaunliche Energieeffizienz der ARM-Architektur

Wäre es ein x86-basiertes Hochleistungs-GPU gewesen, hätte der Energieverbrauch erheblich höher sein können, aber die Effizienz von DGX Spark war erstaunlich.

  • Spitzenleistung: 89–90W

  • Temperatur: 84–86°C (nach Verwendung eines Mini-Ventilators stabilisierte sich die Temperatur auf 81–83°C)

Die Tatsache, dass das 12B Modell selbst bei Vollauslastung nur 90W verbraucht, ist ein ermutigender Wert, der das Potenzial als Edge- oder On-Device AI Server zeigt.

5. Entdeckung des Flaschenhalses: CPU-Überlastung des Textencoders (TE)

Ich habe eine entscheidende Ursache entdeckt, warum die Trainingszeit länger als erwartet war.

Das FLUX-Modell verwendet zwei Text-Encoder, CLIP-L und T5-XXL, und aus den Überwachungsdaten ging hervor, dass einer von ihnen auf der CPU und nicht auf CUDA zugewiesen war.

  • Phänomen: 1 TE auf CUDA, 1 TE auf CPU zugewiesen

  • Auswirkung: Flaschenhals aufgrund der Geschwindigkeitsunterschiede zwischen CPU und GPU beim Datenaustausch und den Berechnungen

Obwohl es keine OOM-Situation gab, ist eine Analyse der Gründe für das Abladen auf die CPU erforderlich. Bei der nächsten Schulung werde ich beide Encoder zwangsweise auf CUDA zuweisen, um eine Geschwindigkeitsverbesserung zu erzielen.

6. Fazit und zukünftige Pläne

Beim Test habe ich erkannt, dass 100 Epochen / 1000 Schritte eine übermäßige Einstellung sind.

  • Verbesserungsrichtung: Es erscheint effizient, die Anzahl der Bilder auf etwa 30 zu reduzieren oder die Anzahl beizubehalten und die Lernmenge auf 300–400 Schritte anzupassen.

  • Hardware: Die Tatsache, dass das Fine-Tuning eines großen Modells mit 90W Energie möglich ist, ist sehr attraktiv, jedoch sind Kühlungslösungen (z.B. Mini-Ventilatoren) unerlässlich. Es ist etwas beängstigend, 8 Stunden bei 86–87°C zu laufen.


Nächster Schritt: Es bleiben noch etwa 2 Stunden und 30 Minuten bis zum Abschluss des Trainings. Sobald das Training abgeschlossen ist, werde ich den generierten LoRA-Adapter an FLUX anbringen und die tatsächlichen Leistungstests teilen. Bitte freuen Sie sich auf den nächsten Beitrag.