什么是Windows ML(Windows Machine Learning)

AI解读 2个月前 硕雀
40 0

Windows MLWindows Machine Learning)概述

Windows ML 是 Microsoft 为 Windows 生态打造的本地机器学习推理运行时,旨在让开发者能够在 Windows 设备上高效、低延迟地运行 ONNX 格式的 AI 模型,并自动利用 CPUGPUNPU 等多种硬件加速器。它基于 ONNX Runtime 与 DirectML,通过统一的 WinRT API(C#、C++、Python 等)对硬件抽象,实现“一次编写、随处运行”。


1. 核心组成

组件 作用 关键特性
ONNX Runtime 统一的模型执行引擎,负责加载、绑定(binding)和评估(evaluation)ONNX 模型。 支持跨平台、跨硬件的统一行为;微软与硬件厂商共同维护执行提供者(Execution Provider,EP)。
DirectML DirectX 12 上的低层硬件加速抽象层,提供 GPU、AI 加速器的高性能算子实现。 与 Windows 图形栈深度集成,适用于实时、低延迟场景。
Execution Provider (EP) 针对特定硬件(CPU、GPU、NPU)优化的插件,负责把算子映射到硬件指令。 Windows ML 自动检测硬件并在后台下载/更新最优 EP,开发者无需手动管理依赖。
WinML API(WinRT) 面向 C#、C++、Python 的高级语言绑定,提供 LearningModelLearningModelDeviceLearningModelSession 等对象。 与 UWP、WinUI、Win32、.NET 等框架无缝集成。

2. 支持的语言与平台

语言 开发方式
C# / .NET 通过 Microsoft.AI.MachineLearning NuGet 包,直接在 UWP、WinUI、WinForms、WPF 中使用。
C++ (WinRT) 使用 winrt::Windows::AI::MachineLearning 命名空间,适合高性能原生应用。
Python 通过 winmltools 或 onnxruntime 的 Windows‑specific 绑定,实现脚本化推理。
JavaScript/TypeScript(通过 WebView2) 可在 Web 应用中调用 WinML 的 WinRT 接口。

这些 API 在 Windows 11 24H2 及以上(包括 x64 与 ARM64)以及 Windows 10(1809 及更高)‍、Windows Server 2019/2022 中均可使用。


3. 硬件加速覆盖

硬件 对应 EP 说明
CPU CPUExecutionProvider 基础推理,兼容所有 Windows 设备。
GPU(DX12 支持) DirectMLExecutionProvider 利用显卡的并行计算,适合大模型和实时推理。
NPU / AI 加速器(如 Intel Myriad, Qualcomm Snapdragon, AMD Radeon Instinct) 各厂商提供的专属 EP 自动下载并注册,提供比 GPU 更高的能效比。
混合模式 多 EP 组合 Windows ML 可在同一会话中根据算子自动选择最优硬件。

硬件抽象的核心是 Execution Provider,它们由 Microsoft 与硬件合作伙伴共同维护,确保新芯片上市后能够快速获得支持。


4. 开发流程(从模型到应用)

  1. 模型准备
    • 在任意深度学习框架PyTorchTensorFlow、ONNX‑compatible)中训练模型。
    • 使用 WinMLTools 或 onnxconverter 将模型导出为 ONNX(.onnx)文件。
  2. 模型验证
    • 在本地使用 onnxruntime 或 winmltools 进行离线推理验证,确保模型兼容性。
  3. 项目集成
    • 在 Visual Studio 中添加 .onnx 文件,IDE 会自动生成对应的 LearningModel 类代码(C# 或 C++)。
    • 通过 LearningModelDevice 选择目标硬件(LearningModelDeviceKind::Default 自动选择最佳 EP)。
  4. 运行时管理
    • Windows ML 在首次运行时会检查系统硬件,下载所需的 EP(如 DirectML、NPU EP),并在后台保持更新。
    • 开发者可通过 LearningModelSession 控制推理批次、输入/输出绑定等细节。
  5. 部署
    • 生成的应用不需要额外捆绑 ONNX Runtime 或硬件驱动,系统自带运行时。
    • 支持离线使用,满足隐私与低带宽需求。

完整的入门教程与示例代码均在官方文档中提供。


5. 主要优势

维度 说明
硬件抽象 开发者只写一次代码,Windows ML 自动适配 CPU、GPU、NPU,降低平台碎片化成本。
低延迟 本地推理避免网络往返,适用于实时图像/视频、语音、交互式 AI 场景。
隐私保护 数据不离开设备,符合企业与个人对数据安全的要求。
统一模型格式 采用行业标准 ONNX,兼容主流训练框架,生态成熟。
自动依赖管理 EP 的下载与更新由系统负责,应用体积更小,部署更简洁。
跨语言跨平台 支持 C#、C++、Python 等多语言,覆盖桌面、UWP、WinUI、Win32 等多种应用类型。

6. 发展历程与最新状态

时间 里程碑
2018 年 3 月 Windows ML(当时称 WinML)首次在 Windows 开发者日亮相,提供本地 GPU 推理能力。
2020 年 与 DirectML 深度整合,提升 GPU 加速效率。
2023 年 支持更多硬件(NPU)并加入 Windows AI Foundry 生态。
2025 年 5 月 正式对外发布 Windows ML GA(Generally Available)‍,标志着该技术进入生产环境,提供完整的硬件加速、跨平台 SDK 与 AI Toolkit。
2025 年 7 月 更新文档,明确支持 Windows 11 24H2 及以上所有硬件,强化 EP 自动管理机制。

7. 典型使用场景

场景 示例
图像/视频分析 本地人脸识别、物体检测、实时视频滤镜(如在 HoloLens、Copilot + PC 上)。
语音/自然语言 本地语音转文字、意图识别、离线聊天机器人。
工业/边缘计算 机器视觉检测、预测性维护模型在工控 PC 上运行。
游戏/交互 AI 驱动的 NPC 行为、实时动作捕捉与姿态估计
企业安全 本地恶意软件检测、文件分类,避免将敏感数据上传云端。

8. 限制与注意事项

  • 模型必须是 ONNX:其他格式需先转换(WinMLTools 支持多种转换路径)。
  • 预览阶段功能:虽然 2025 年已 GA,但部分高级特性(如自定义 EP)仍在持续迭代。
  • 硬件兼容性:极旧的 GPU 或缺乏 DirectX 12 支持的设备只能使用 CPU EP,性能受限。
  • 调试工具:目前官方提供的调试主要是日志与 Visual Studio 的诊断工具,复杂模型的性能调优仍需手动分析。

9. 快速入门代码示例(C#)

using Microsoft.AI.MachineLearning;
using Windows.Storage;

// 1. 加载 ONNX 模型
var modelFile = await StorageFile.GetFileFromApplicationUriAsync(new Uri("ms-appx:///Assets/model.onnx"));
var learningModel = await LearningModel.LoadFromStorageFileAsync(modelFile);

// 2. 创建默认设备(自动选择最佳 EP)
var device = LearningModelDevice.GetDefault();

// 3. 创建会话
var session = new LearningModelSession(learningModel, device);

// 4. 绑定输入(假设模型接受一张 224x224 RGB 图像)
var binding = new LearningModelBinding(session);
binding.Bind("input", imageTensor);

// 5. 运行推理
var result = await session.EvaluateAsync(binding, "run1");

// 6. 读取输出
var outputTensor = result.Outputs["output"] as TensorFloat;

该示例展示了 加载模型 → 选择硬件 → 绑定输入 → 评估 → 读取输出 的完整流程,适用于 Windows 桌面或 UWP 应用。


10. 小结

Windows ML 通过 ONNX Runtime + DirectML + 自动 EP 管理,为 Windows 开发者提供了“一次编写、随处运行”的本地 AI 推理解决方案。它兼顾 高性能跨硬件抽象隐私安全 与 易用性,已在 2025 年正式进入 GA,成为 Windows 生态中部署机器学习模型的首选平台。开发者只需准备 ONNX 模型,即可利用统一的 WinRT API 将 AI 能力嵌入到桌面、UWP、WinUI、甚至 HoloLens 等多种 Windows 设备上。

来源:www.aiug.cn
声明:文章均为AI生成,请谨慎辨别信息的真伪和可靠性!