什么是 Windows ML?

Windows 机器学习(ML)使 C#、C++ 和 Python 开发人员能够通过 ONNX 运行时在本地在 Windows 电脑上运行 ONNX AI 模型,并为不同的硬件(CPU、GPU、NPU)自动执行提供程序管理。 ONNX 运行时可用于 PyTorch、Tensorflow/Keras、TFLite、scikit-learn 和其他框架中的模型。

演示 ONNX 模型的示意图,该模型通过 Windows ML 访问 NPU、GPU 和 CPU。

如果不熟悉 ONNX 运行时,建议阅读 ONNX 运行时文档。简言之,Windows ML 提供了 ONNX 运行时的共享 Windows 范围副本,以及动态下载执行提供程序(EP)的功能。

主要优势

  • 动态获取最新 IP - 自动下载和管理最新的硬件特定执行提供程序
  • 共享 ONNX 运行时 - 使用系统范围的运行时,而不是捆绑自己的运行时,从而减少应用大小
  • 较小的下载/安装 - 无需在应用中携带大型 EP 和 ONNX 运行时
  • 广泛的硬件支持 - 在 Windows 电脑(x64 和 ARM64)和具有任何硬件配置的 Windows Server 上运行

系统要求

什么是执行提供程序?

执行提供程序(EP)是一个组件,用于为机器学习(ML)作启用特定于硬件的优化。 执行提供程序抽象化不同的计算后端(CPU、GPU、专用加速器),并提供用于图形分区、内核注册和操作员执行的统一接口。 若要了解详细信息,请参阅 ONNX 运行时文档

在此处查看 Windows ML 支持的 EP 列表

工作原理

Windows ML 包含 ONNX 运行时 的副本,允许你动态下载特定于供应商 的执行提供程序 (EP),因此可以在 Windows 生态系统中的各种 CPU、GPU 和 NPU 中优化模型推理。

自动部署

  1. 应用安装 - Windows 应用 SDK 引导程序初始化 Windows ML
  2. 硬件检测 - 运行时标识可用的处理器
  3. EP 下载 - 自动下载最佳执行提供程序
  4. 准备好运行 - 你的应用可以立即使用 AI 模型

这样就无需:

  • 特定硬件供应商的捆绑执行提供程序
  • 为不同的执行提供程序创建单独的应用生成
  • 手动处理执行提供程序更新

注释

你仍负责优化不同硬件的模型。 Windows ML 处理执行提供程序分发,而不是模型优化。 有关优化的详细信息,请参阅 AI 工具包ONNX 运行时教程

性能优化

最新版本的 Windows ML 直接适用于 GPU 和 NPU 的专用执行提供程序,提供与过去专用 SDK 相同的金属性能,例如用于 RTX 的 TensorRT、AI 引擎直通和适用于 PyTorch 的 Intel 扩展。 我们已将 Windows ML 设计为具有一流的 GPU 和 NPU 性能,同时保留以前基于 DirectML 的解决方案提供的写入一次运行的任何位置优势。

将 Windows ML 与执行提供程序配合使用

Windows ML 运行时提供了一种灵活的方法来访问机器学习(ML)执行提供程序(EP),它可以优化不同硬件配置的 ML 模型推理。 这些 EP 作为单独的软件包进行分发,可以独立于操作系统进行更新。 有关动态下载和注册 EP 的详细信息,请参阅 使用 Windows ML 文档初始化执行提供程序

将模型转换为 ONNX

可以将模型从其他格式转换为 ONNX,以便可以将模型与 Windows ML 配合使用。 请参阅 Visual Studio Code AI 工具包的文档,了解如何 将模型转换为 ONNX 格式 以了解详细信息。 另请参阅 ONNX 运行时教程 ,详细了解如何将 PyTorch、TensorFlow 和 Hugging Face 模型转换为 ONNX。

模型管理

Windows ML 提供了用于管理 AI 模型的灵活选项:

  • 模型目录 - 从联机目录动态下载模型,而无需捆绑大型文件
  • 本地模型 - 直接在应用程序包中包含模型文件

与 Windows AI 生态系统集成

Windows ML 充当更广泛的 Windows AI 平台的基础:

  • Windows AI API - 常见任务的内置模型
  • Foundry Local - 随时可用的 AI 模型
  • 自定义模型 - 针对高级方案的直接 Windows ML API 访问

提供反馈

找到了问题或有建议? 在 Windows 应用 SDK GitHub 上搜索或创建问题。

后续步骤