StableHLO 是機器學習 (ML) 模型中高階運算 (HLO) 的運算集。基本上,這是不同機器學習架構和機器學習編譯器之間的可移植性層:產生 StableHLO 程式的機器學習架構,與使用 StableHLO 程式的機器學習編譯器相容。
我們的目標是透過在各種機器學習架構 (例如 TensorFlow、JAX 和 PyTorch) 與機器學習編譯器 (例如 XLA 和 IREE) 之間建立更多互通性,簡化機器學習開發流程並加快開發速度。
功能與開始使用
目前的 StableHLO 版本包含許多重要功能和里程碑:
- 完整指定:StableHLO 規格已定義約 100 個運算,包括驗證器和類型推論,以及動態和量化功能。
- 相容性保證 5 年回溯相容性和 2 年前瞻相容性,可進行長期伺服器 / 邊緣部署作業,並提供年度更新週期。
- 參考解譯器,支援靜態和動態運算子,包括 C++ 和 Python API。
- 透過複合運算和自訂呼叫進行擴充功能,以便快速進行實驗,或模擬特定供應商的作業。
- 提供核心功能的 C++/Python API,以及每晚開發人員輪檔案,方便您導入。
- Colab 教學課程:示範如何使用 Python API 從各種架構擷取 StableHLO 以及其他公用程式函式。
- 測試資料套件包含 3,000 個測試檔案,其中包含動態和量化程式,以及供應商整合測試、前向 / 後向相容性測試的黃金結果,以及超過 90% 的程式碼涵蓋率。
- 程式轉換可用於硬體獨立程式簡化,使用具體輸入引數來改善動態形狀的程式,以及轉換至上游 MLIR 方言,例如 linalg 或 tosa。
- 社群主導,許多生態系統貢獻者提供轉換功能,以及RFC 針對 opset 變更:新 FP8 類型、collective_broadcast、批次收集 / 散布作業、混合量化、轉譯器 API、CHLO 分解、StableHLO 簡化轉換等!
模型開發人員如要使用 StableHLO 或 XLA 編譯機器學習專案,請參閱機器學習架構的對應說明文件:
如要整合 StableHLO,請參閱編譯器開發人員的入門說明文件,其中包含教學課程和開發人員詳細資訊。如有任何上線支援、問題或疑問,請參閱本頁的社群部分!
建構指示
如需建構操作說明,請參閱 GitHub 上的 StableHLO。
社群
在 ML 架構和 ML 編譯器之間建立出色的可移植性層,需要整個 ML 產業的合作,因此我們很高興能獲得您在 StableHLO 專案方面的協助。
我們會使用 GitHub 問題 / 提取要求來安排開發作業,並使用 openxla-discuss 進行較長的討論。我們也在 OpenXLA Discord 伺服器上設有 #stablehlo
頻道。