StableHLO

StableHLO エコシステム

StableHLO は、機械学習(ML)モデルの高レベル オペレーション(HLO)のオペレーション セットです。基本的に、これはさまざまな ML フレームワークと ML コンパイラ間のポータビリティ レイヤです。StableHLO プログラムを生成する ML フレームワークは、StableHLO プログラムを使用する ML コンパイラと互換性があります。

Google の目標は、さまざまな ML フレームワーク(TensorFlow、JAX、PyTorch など)と ML コンパイラ(XLA、IREE など)間の相互運用性を高めることで、ML 開発を簡素化し、加速させることです。

機能とスタートガイド

StableHLO の現在のリリースには、多くの注目すべき機能とマイルストーンが含まれています。

  • 完全に指定されている: StableHLO 仕様は、検証ツールと型推論、ダイナミズム量子化機能を含む約 100 個のオペレーションすべてについて定義されています。
  • 互換性保証: 下位互換性は 5 年間、上位互換性は 2 年間で、長期的なサーバー / エッジのデプロイと年間の更新サイクルを可能にします。
  • C++ と Python API など、静的オペレーションと動的オペレーションをサポートするリファレンス インタープリタ
  • コンポジット オペレーションとカスタム呼び出しによる拡張性。迅速なテストやベンダー固有のオペレーションのモデリングを可能にします。
  • コア機能用の C++/Python API と、オンボーディングを容易にする ナイトリー dev-wheel ファイル。
  • さまざまなフレームワークから StableHLO を抽出するための Python API とその他のユーティリティ関数を示す Colab チュートリアル
  • ベンダー統合テスト、上位互換性 / 下位互換性テスト、90% を超えるコードカバレッジのための動的および量子化されたプログラムとゴールド結果を含む 3,000 個のテストファイルテストデータ スイート
  • ハードウェアに依存しないプログラムの簡素化、具体的な入力引数を使用した動的シェイプのプログラムの洗練、linalg や tosa などのアップストリーム MLIR 方言への変換のためのプログラム変換
  • コミュニティ主導で、変換のための多くのエコシステムの貢献と、オペレーション セットの変更に関する RFC があります。新しい FP8 型、collective_broadcast、バッチ処理された集計 / 散布オペレーション、ハイブリッド量子化、インタープリタ API、CHLO 分解、StableHLO 簡素化変換など。

StableHLO または XLA を使用して ML プロジェクトをコンパイルするモデル デベロッパーは、ML フレームワークに対応するドキュメントをご覧ください。

StableHLO を統合するコンパイラ デベロッパーは、チュートリアルやデベロッパーの詳細など、このサイトのスタートガイドのドキュメントをご覧ください。オンボーディングのサポート、質問、問題については、このページのコミュニティ セクションをご覧ください。

ビルド手順

ビルド手順については、GitHub の StableHLO をご覧ください。

コミュニティ

ML フレームワークと ML コンパイラ間の優れたポータビリティ レイヤを構築するには、ML 業界全体のコラボレーションが必要です。StableHLO プロジェクトへのご協力をお待ちしております。

GitHub の Issues / pull リクエストを使用して開発を整理し、openxla-discuss を使用してより長いディスカッションを行っています。OpenXLA Discord サーバーにも #stablehlo チャネルがあります。