StableHLO

StableHLO 生态系统

StableHLO 是机器学习 (ML) 模型中高级操作 (HLO) 的操作集。本质上,它是不同机器学习框架和机器学习编译器之间的可移植性层:生成 StableHLO 程序的机器学习框架与使用 StableHLO 程序的机器学习编译器兼容。

我们的目标是通过在各种机器学习框架(例如 TensorFlow、JAX 和 PyTorch)和机器学习编译器(例如 XLA 和 IREE)之间实现更高的互操作性,从而简化和加速机器学习开发。

功能和使用入门

当前版本的 StableHLO 包含许多值得注意的功能和里程碑:

  • 完全指定StableHLO 规范定义了包含验证器和类型推理以及动态量化功能的所有大约 100 个运算。
  • 兼容性保证 5 年向后兼容性和 2 年向前兼容性,从而实现长期服务器 / 边缘部署和年度更新周期。
  • 引用解释器,支持静态和动态操作,包括 C++ 和 Python API。
  • 通过复合运算和自定义调用实现可扩展性,以便快速进行实验或对特定供应商的操作进行建模。
  • 用于核心功能的 C++/Python API夜间开发轮文件,可简化新手入门流程。
  • Colab 教程,演示用于从各种框架中提取 StableHLO 的 Python API,以及其他实用函数。
  • 测试数据套件包含 3,000 个测试文件,包括动态和量化程序以及用于供应商集成测试、向前 / 向后兼容性测试和代码覆盖率超过 90% 的标准结果。
  • 程序转换,用于实现硬件无关的程序简化、使用具体输入参数优化动态形状的程序,以及转换为上游 MLIR 方言(例如 linalg 或 tosa)。
  • 由社区驱动,包含许多生态系统贡献的转换,以及针对操作集更改的 RFC:新的 FP8 类型、collective_broadcast、批量收集 / 分散操作、混合量化、解释器 API、CHLO 分解、StableHLO 简化转换等!

如需使用 StableHLO 或 XLA 编译机器学习项目,请参阅相应机器学习框架的文档:模型开发者

如需集成 StableHLO,请参阅本网站上的入门文档,其中包括教程和开发者详细信息。编译器开发者如需获取新手入门方面的支持、解答问题或解决遇到的问题,请参阅本页的“社区”部分!

构建说明

如需了解构建说明,请参阅 GitHub 上的 StableHLO

社区

在机器学习框架和机器学习编译器之间构建出色的可移植性层需要整个机器学习行业的协作,因此我们很高兴您能参与 StableHLO 项目。

我们使用 GitHub 问题 / 拉取请求来整理开发工作,并使用 openxla-discuss 进行更深入的讨论。我们还在 OpenXLA Discord 服务器上开设了 #stablehlo 频道。