Non-determinism and non-reproducibility present significant challenges in deep learning, leading to inconsistent results across runs and platforms. These issues stem from two origins: random number generation and floating-point computation. While randomness can be controlled through deterministic configurations, floating-point inconsistencies remain largely unresolved. To address this, we introduce RepDL, an open-source library that ensures deterministic and bitwise-reproducible deep learning training and inference across diverse computing environments. RepDL achieves this by enforcing correct rounding and order invariance in floating-point computation. The source code is available at https://github.com/microsoft/RepDL .
RepDL: Bit-level Reproducible Deep Learning Training and Inference
- Paper-ID: 2510.09180
- Titel: RepDL: Bit-level Reproducible Deep Learning Training and Inference
- Autoren: Peichen Xie, Xian Zhang, Shuo Chen (Microsoft Research)
- Klassifizierung: cs.LG cs.SE
- Veröffentlichungsdatum: 10. Oktober 2024
- Paper-Link: https://arxiv.org/abs/2510.09180
- Code-Link: https://github.com/microsoft/RepDL
Nichtdeterminismus und Nicht-Reproduzierbarkeit im Deep Learning führen zu inkonsistenten Ergebnissen über verschiedene Läufe und Plattformen hinweg. Diese Probleme entstehen aus zwei Grundursachen: Zufallszahlengenerierung und Gleitkommaarithmetik. Während Zufälligkeit durch deterministische Konfiguration kontrolliert werden kann, bleibt das Problem der Gleitkommainkonsistenz weitgehend ungelöst. Zu diesem Zweck stellen die Autoren RepDL vor, eine Open-Source-Bibliothek, die durch Erzwingung korrekter Rundung und Reihenfolgeninvarianz deterministische und bitweise reproduzierbare Deep-Learning-Training und -Inferenz über verschiedene Rechenumgebungen hinweg gewährleistet.
Deep Learning steht vor zwei kritischen Problemen:
- Nichtdeterminismus: Wiederholte Ausführung derselben Aufgabe mit identischen Eingaben und System erzeugt unterschiedliche Ergebnisse (Inkonsistenz zwischen Läufen)
- Nicht-Reproduzierbarkeit: Ausführung derselben Aufgabe auf verschiedenen Systemen erzeugt unterschiedliche Ergebnisse (plattformübergreifende Inkonsistenz)
Diese Probleme führen zu:
- Komplexität bei Bereitstellung und Debugging von Modellen in Produktionsumgebungen
- Beeinträchtigung der Korrektheit plattformübergreifender Anwendungen
- Verringerung der Glaubwürdigkeit veröffentlichter Ergebnisse
- Beeinträchtigung der Vertrauenswürdigkeit von KI-Systemen in sensiblen Bereichen
Obwohl Industrie und Wissenschaft viele Lösungen vorgeschlagen haben, bleibt numerische Inkonsistenz ein offenes Problem im Deep Learning. Bestehende Methoden konzentrieren sich hauptsächlich auf die Kontrolle von Zufallszahlengeneratoren, behandeln aber das Problem der Gleitkommaarithmetik unzureichend.
Die Autoren identifizieren zwei Grundursachen des Problems: Zufallszahlengeneratoren und Gleitkommaarithmetik. Im Vergleich zum bereits gut gelösten Zufallszahlenproblem ist das Gleitkommaproblem komplexer und erfordert spezialisierte Lösungen.
- Problemanalyse: Systematische Analyse der Ursachen von Nichtdeterminismus und Nicht-Reproduzierbarkeit im Deep Learning, klassifiziert in zwei Kategorien: Zufallszahlengenerierung und Gleitkommaarithmetik
- Designprinzipien: Vorschlag von zwei Kerndesignprinzipien: korrekte Rundung (correct rounding) und Reihenfolgeninvarianz (order invariance)
- RepDL-Bibliothek: Entwicklung einer Open-Source-Bibliothek RepDL, die bitweise reproduzierbare Deep-Learning-Training und -Inferenz implementiert
- PyTorch-Kompatibilität: Bereitstellung von PyTorch-kompatiblen APIs, die Deep-Learning-Operationen, differenzierbare Funktionen, neuronale Netzwerkmodule und Optimierer unterstützen
- Verwendung: Gewichtsinitialisierung, Datenmischung, Dropout-Regularisierung, Datenerweiterung usw.
- Problem: Unterschiedliche Seeds, inkonsistente RNG-Algorithmen, nichtdeterministische Aufrufreihenfolgen in Multi-Thread-Umgebungen
- Lösung: Verwendung reproduzierbarer RNG-Algorithmen (z.B. MT19937), Thread-sichere Implementierung, fester Basis-Seed
Ein komplexeres Problem, unterteilt in zwei Unterkategorien:
2.1 Präzision grundlegender Operationen
- Unterschiedliche Präzision grundlegender mathematischer Funktionsimplementierungen zwischen Systemen
- Hardwareinstruktionspräzisions-Unterschiede (z.B. Variationen der RCP-Instruktion zwischen x86-CPUs)
2.2 Berechnungsreihenfolge
- Reihenfolgeempfindlichkeit durch Nicht-Assoziativität von Gleitkommaoperationen
- Nichtdeterministische Faktoren: atomare Operationen, dynamische Code-Pfade, dynamische Batch-Verarbeitung und Caching
- Nicht-Reproduzierbare Faktoren: Software-Variabilität, Compiler-Optimierungen
- Einhaltung des IEEE-754-Standards für korrekte Rundung
- Verwendung standardisierter IEEE-754-Rundungsregeln zur Rundung von Ergebnissen mit unendlicher Präzision
- Beseitigung von Mehrdeutigkeiten in numerischer Präzision
- Beibehaltung der Reihenfolgeninvarianz für Kombinationen grundlegender Operationen
- Implementierung jeder Operation mit denselben Typen grundlegender Operationen und derselben Reihenfolge
- Zuweisung unterschiedlicher APIs für unterschiedliche Berechnungsreihenfolgen
- Verwendung von Mathematikbibliotheken mit korrekter Rundung oder Hochpräzisions-Algorithmen
- Implementierung von Versionen mit korrekter Rundung für arithmetische Operationen, Quadratwurzel, Exponential- und Logarithmusfunktionen usw.
- Vermeidung hardwareabhängiger Implementierungsunterschiede
Bereitstellung von zwei Summationsreihenfolgen:
- Sequenzielle Summation: Standard-Version, Cache-freundlich, für die meisten Fälle geeignet
- Paarweise Summation: Alternative Version, erhöhte Parallelität
Für die Analyse von vollständig verbundenen Schichten und zweidimensionalen Faltungsschichten:
- Vollständig verbundene Schicht:
t_fc = B × M unabhängige Summationsaufgaben, jede Aufgabe summiert n_fc = N Elemente - Faltungsschicht:
t_conv = B × O × W × H unabhängige Summationsaufgaben, jede Aufgabe summiert n_conv = I × K_w × K_h Elemente
- Explizite Definition der Berechnungsreihenfolge mittels Berechnungsgraph
- Zuweisung unterschiedlicher API-Namen für verschiedene Berechnungsgraphen derselben Funktion
- Vermeidung mathematisch äquivalenter, aber gleitkomma-unterschiedlicher Transformationen
- Deaktivierung von Optionen, die zu unsicheren mathematischen Optimierungen führen
- Aktivierung der Gleitkommaausdrucks-Kontraktionsoption (FMA-Operationen)
- Datentypen: Unterstützung für Einfachpräzisions-Gleitkomma (float32)
- Kompatibilität: PyTorch-kompatible APIs
- Operationsunterstützung: Deep-Learning-Operationen, differenzierbare Funktionen, neuronale Netzwerkmodule, Optimierer
Analyse am Beispiel von ResNet-50:
- Faltungsschichten dominieren die Rechenkomplexität
- Mehrere Faltungsschichten mit
t_conv = B × 256 × 56 × 56 = B × 802816 - NVIDIA A100 GPU mit 6912 CUDA-Kernen
- Selbst bei B=1 ist die Kernanzahl viel kleiner als t_conv, sequenzielle Summation ist effizient
RepDL erreicht bitweise konsistente Ergebnisse und gewährleistet:
- Konsistenz mehrfacher Ausführungen auf demselben System
- Konsistenz über verschiedene CPU- oder GPU-Systeme hinweg
- Vollständige Reproduzierbarkeit von Training und Inferenz
- Der Wechsel von nichtdeterministischen Bibliotheken zu RepDL führt zu leichten Leistungseinbußen
- Die Leistungsverschlechterung ist akzeptabel, zukünftige Optimierungen können diese lindern
Das Paper zitiert mehrere verwandte Forschungsbereiche:
- Reproduzierbare Gleitkomma-Summationsalgorithmen: Reihenfolgeunabhängige Summationsalgorithmen von Ahrens et al.
- Deep-Learning-Reproduzierbarkeit: Arbeiten von Chen et al. zum Training reproduzierbarer Deep-Learning-Modelle
- Mathematikbibliotheken mit korrekter Rundung: MPFR-Bibliothek und hochperformante Mathematikbibliotheken mit korrekter Rundung
- Numerische Präzisionsanalyse: Genauigkeitsforschung mathematischer Funktionen bei verschiedenen Präzisionen
RepDL bietet durch die Lösung des Gleitkommaproblems eine Grundlage für zuverlässige Modellentwicklung und konsistente Modellbereitstellung. Die Bibliothek implementiert erfolgreich deterministische und reproduzierbare Deep-Learning über verschiedene Rechenumgebungen hinweg.
- Unzureichende Leistungsoptimierung: Die aktuelle Version ist nicht vollständig optimiert und weist Leistungsverluste auf
- Begrenzte Präzisionsunterstützung: Nur Unterstützung für Einfachpräzision (float32), Unterstützung für niedrige Präzisionstypen ist herausfordernd
- Hardware-Spezifität: Nicht-Standard- und Hardware-spezifische Merkmale von Niedrigpräzisions-Berechnungen (z.B. Tensor Cores)
- Weitere Leistungsoptimierung zur Verringerung der Leistungsverschlechterung
- Unterstützung für Gleitkomma-Datentypen mit niedriger Präzision
- Standardisierung des numerischen Verhaltens von Niedrigpräzisions-Berechnungen
- Erweiterung von Community-Beiträgen und Funktionalität
- Genaue Problemidentifikation: Systematische Analyse der Ursachen von Reproduzierungsproblemen im Deep Learning
- Praktische Lösung: Bereitstellung einer praktikablen technischen Lösung, nicht nur theoretische Analyse
- Klare Designprinzipien: Zwei Prinzipien – korrekte Rundung und Reihenfolgeninvarianz – sind prägnant und effektiv
- Gute Kompatibilität: API-Kompatibilität mit PyTorch senkt die Einstiegshürde
- Open-Source-Beitrag: Open-Source-Implementierung fördert die Gemeinschaftsentwicklung
- Begrenzte experimentelle Verifikation: Mangel an umfangreicher experimenteller Verifikation und Leistungs-Benchmarks
- Unzureichende theoretische Analyse: Theoretische Analyse von Leistungsverlusten nicht ausreichend tiefgreifend
- Begrenzte Anwendbarkeit: Nur float32-Unterstützung, begrenzt moderne Deep-Learning-Anwendungen
- Fehlende Vergleichsexperimente: Mangel an Vergleichen mit anderen Reproduzierungslösungen
- Akademischer Wert: Bietet wichtige Referenz für Deep-Learning-Reproduzierungsforschung
- Praktischer Wert: Bietet Lösung für Anwendungsszenarien, die strikte Reproduzierbarkeit erfordern
- Brancheneinfluss: Könnte die Aufmerksamkeit von Deep-Learning-Frameworks auf Reproduzierbarkeit erhöhen
- Wissenschaftliche Forschung: Forschungsprojekte, die streng reproduzierbare Ergebnisse erfordern
- Finanz-KI: Finanzanwendungen mit extremen Anforderungen an numerische Konsistenz
- Medizin-KI: Medizinische Diagnosesysteme, die deterministische Ergebnisse erfordern
- Modellverifikation: Konsistenzverifikation bei plattformübergreifender Modellbereitstellung
Das Paper zitiert 15 verwandte Arbeiten, die folgende Bereiche abdecken:
- Reproduzierbare Gleitkomma-Summationsalgorithmen
- Deep-Learning-Reproduzierungsforschung
- Mathematikbibliotheken mit korrekter Rundung
- IEEE-Gleitkommastandard
- Analyse von Zufälligkeit und Nichtdeterminismus im Deep Learning
Gesamtbewertung: Dies ist ein praktisches Forschungspapier zur Reproduzierungsproblematik im Deep Learning. Obwohl es in experimenteller Verifikation und theoretischer Analyse Mängel aufweist, hat die vorgeschlagene Lösung erheblichen praktischen Wert, besonders für Anwendungsszenarien, die strikte numerische Konsistenz erfordern. Die Open-Source-Veröffentlichung der RepDL-Bibliothek bietet der Gemeinschaft ein wertvolles Werkzeug und wird voraussichtlich die Entwicklung der Deep-Learning-Reproduzierungsforschung fördern.