ONNX - 生态系统

ONNX(开放神经网络交换)生态系统是一系列工具、平台和服务,旨在使用 ONNX 作为标准格式促进机器学习模型的开发、部署和优化。ONNX 提供了一种表示机器学习模型的开放格式,从而实现了不同框架和工具之间的互操作性。

一般而言,生态系统是指在特定环境中相互作用的复杂网络或互连组件系统。ONNX 生态系统旨在增强互操作性、优化性能并简化机器学习模型在各种环境和应用程序中的部署。

ONNX 生态系统的关键组件

以下是 ONNX 生态系统的关键组件 −

ONNX 运行时

ONNX 运行时是一种高性能引擎,旨在高效运行 ONNX 模型。它是一种有助于更快、更高效地运行机器学习模型的工具。 ONNX Runtime 支持来自 PyTorch、TensorFlow 和 scikit-learn 等流行框架的模型,从而可以轻松地在不同环境之间移动模型。

模型转换和导出工具

ONNX 提供各种可用的工具 −

  • ONNX 导出器:将来自流行框架(如 PyTorch、TensorFlow 和 scikit-learn)的模型转换为 ONNX 格式的工具,允许模型互操作性和部署。
  • ONNX 导入器:支持将 ONNX 模型导入不同框架或环境以进行进一步处理或部署的工具。

集成平台

我们可以将 ONNX 与各种平台集成,其中一些列在下面 −

  • Azure 机器学习:提供在云中训练、部署和管理 ONNX 模型的服务,并与各种 Azure 服务集成以增强可扩展性和性能。
  • Azure Custom Vision:允许用户将自定义视觉模型导出为 ONNX 格式,使其准备好在不同平台上部署。
  • Azure SQL Edge:支持在边缘设备上使用 ONNX 模型进行机器学习预测,从而能够在 Azure SQL Edge 中推断机器学习模型。
  • Azure Synapse Analytics:在 Synapse SQL 中集成 ONNX 模型。

推理服务器

NVIDIA Triton 推理服务器:支持 ONNX Runtime 作为后端的服务器,可在 NVIDIA GPU 上实现高效且可扩展的模型推理。 Triton 提供高性能推理并支持多种模型格式,包括 ONNX。

自动化机器学习

ML.NET:这是一个开源、跨平台的框架,用于在 .NET 生态系统中构建机器学习模型。ML.NET 支持 ONNX 模型进行推理,允许 .NET 开发人员将高级 ML 功能集成到他们的应用程序中。

它是一个自动化 ML (AutoML) 开放神经网络交换 (ONNX) 模型,可使用 ML.NET 在 C# 控制台应用程序中进行预测。