StableHLO

StableHLO 生態系統

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 頻道。