StableHLO ist ein Satz von High-Level-Operationen (HLO) in Modellen für maschinelles Lernen (ML). Im Grunde ist es eine Portabilitätsschicht zwischen verschiedenen ML-Frameworks und ML-Compilern: ML-Frameworks, die StableHLO-Programme generieren, sind mit ML-Compilern kompatibel, die StableHLO-Programme verwenden.
Unser Ziel ist es, die ML-Entwicklung zu vereinfachen und zu beschleunigen, indem wir die Interoperabilität zwischen verschiedenen ML-Frameworks (z. B. TensorFlow, JAX und PyTorch) und ML-Compilern (z. B. XLA und IREE) verbessern.
StableHLO basiert auf dem MHLO-Dialekt und erweitert ihn um zusätzliche Funktionen wie Serialization und Versionierung. Wir verwenden MLIR-Bytecode als Serialisierungsformat und bieten Abwärts- und Vorwärtskompatibilität. So wird die Kompatibilität zwischen Frameworks und Compilern sichergestellt, auch wenn StableHLO weiter entwickelt wird.
Dieses Repository enthält die StableHLO-Spezifikation sowie eine MLIR-basierte Implementierung in C++ und Python, mit der Sie StableHLO-Programme für Compiler wie XLA und IREE definieren können.
Anweisungen erstellen
Eine Anleitung zum Erstellen finden Sie unter StableHLO auf GitHub.
Community
Der Aufbau einer erstaunlichen Portabilitätsebene zwischen ML-Frameworks und ML-Compilern erfordert eine Zusammenarbeit in der gesamten ML-Branche. Daher freuen wir uns, Ihre Hilfe beim StableHLO-Projekt zu haben.
Wir nutzen GitHub-Probleme / Pull-Anfragen, um die Entwicklung zu organisieren, und openxla-discuss für längere Diskussionen. Wir haben auch einen #stablehlo
-Kanal auf dem OpenXLA-Discord-Server.