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
チャネルがあります。