Windows 机器学习(ML)使 C#、C++ 和 Python 开发人员能够通过 ONNX 运行时在本地在 Windows 电脑上运行 ONNX AI 模型,并为不同的硬件(CPU、GPU、NPU)自动执行提供程序管理。 ONNX 运行时可用于 PyTorch、Tensorflow/Keras、TFLite、scikit-learn 和其他框架中的模型。
如果不熟悉 ONNX 运行时,建议阅读 ONNX 运行时文档。简言之,Windows ML 提供了 ONNX 运行时的共享 Windows 范围副本,以及动态下载执行提供程序(EP)的功能。
主要优势
- 动态获取最新 IP - 自动下载和管理最新的硬件特定执行提供程序
- 共享 ONNX 运行时 - 使用系统范围的运行时,而不是捆绑自己的运行时,从而减少应用大小
- 较小的下载/安装 - 无需在应用中携带大型 EP 和 ONNX 运行时
- 广泛的硬件支持 - 在 Windows 电脑(x64 和 ARM64)和具有任何硬件配置的 Windows Server 上运行
系统要求
- OS:Windows 应用 SDK 支持的 Windows 版本
- 体系结构:x64 或 ARM64
- 硬件:任何电脑配置(CPU、集成/离散 GPU、NPU)
什么是执行提供程序?
执行提供程序(EP)是一个组件,用于为机器学习(ML)作启用特定于硬件的优化。 执行提供程序抽象化不同的计算后端(CPU、GPU、专用加速器),并提供用于图形分区、内核注册和操作员执行的统一接口。 若要了解详细信息,请参阅 ONNX 运行时文档。
工作原理
Windows ML 包含 ONNX 运行时 的副本,允许你动态下载特定于供应商 的执行提供程序 (EP),因此可以在 Windows 生态系统中的各种 CPU、GPU 和 NPU 中优化模型推理。
自动部署
- 应用安装 - Windows 应用 SDK 引导程序初始化 Windows ML
- 硬件检测 - 运行时标识可用的处理器
- EP 下载 - 自动下载最佳执行提供程序
- 准备好运行 - 你的应用可以立即使用 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 上搜索或创建问题。
后续步骤
- 入门: Windows ML 入门
- 模型管理: 模型目录概述
- 了解详细信息: ONNX 运行时文档
- 转换模型: VS Code AI 工具包模型转换