Windows 上的 AI 入门
在 Windows 上及与 Windows 配合构建智能 AI 体验的能力正在迅速发展。 Windows Copilot Runtime 在 Copilot+ PC 上提供 AI 支持的功能和 APIs。 这些功能处于活动开发阶段,并随时在后台本地运行。 详细了解 Windows Copilot Runtime。
除了 Windows Copilot Runtime,Microsoft还提供各种 AI 服务、支持和指导。 若要开始并了解如何安全地集成 AI 以满足业务需求,请浏览 Windows AI 文档中的指南,包括:
- 如何在 Windows 应用中使用 AI?
- 在基于云的和本地 AI 服务之间进行选择
- 使用 Windows Copilot Runtime
- 使用基于云的 APIs
- 在本地计算机上使用自定义模型
- 使用负责任的 AI 做法
- 常见问题解答
如何在 Windows 应用中使用 AI?
Windows 应用可以利用机器学习(ML)模型增强其功能和 AI 用户体验的几种方法,包括:
- 应用可以使用生成 AI 模型来了解复杂主题,以汇总、重写、报告或展开。
- 应用可以使用模型将自由格式内容转换为应用可以理解的结构化格式。
- 应用可以使用语义搜索模型,允许用户通过含义搜索内容并快速查找相关内容。
- 应用可以使用自然语言处理模型来推理复杂的自然语言要求,并规划和执行作来完成用户的要求。
- 应用可以使用图像作模型智能修改图像、擦除或添加主题、纵向扩展或生成新内容。
- 应用可以使用预测诊断模型来帮助识别和预测问题,并帮助指导用户或为其执行此作。
在基于云的和本地 AI 服务之间进行选择
可以通过两个主要方法(本地模型或基于云的模型)将 AI 集成到 Windows 应用程序中。 确定适合需求的选项时,需要考虑几个方面。
资源可用性
- 本地设备: 运行模型取决于所使用的设备上的可用资源,包括 CPU、GPU、NPU、内存和存储容量。 如果设备没有较高的计算能力或足够的存储,则可以限制这种情况。 小型语言模型(SLM),如 Phi,更适合在设备上本地使用。 Copilot + PC 提供由 Windows Copilot Runtime 运行的内置模型,具有即用型 AI 功能。
- 云: 云平台(例如 Azure AI Services)提供可缩放的资源。 可以根据需要使用尽可能多的计算能力或存储,并且只需为使用的内容付费。 大型语言模型(LLM),如 OpenAI 语言模型,需要更多的资源,但也更强大。
数据隐私和安全性
- 本地设备: 由于数据保留在设备上,因此在本地运行模型可以提供有关安全和隐私的好处,而数据安全由用户负责。
- 云: 云提供商提供可靠的安全措施,但需要将数据传输到云,在某些情况下,这可能会引发业务或应用服务维护者的数据隐私问题。
辅助功能和协作
- 本地设备: 除非手动共享,否则只能在设备上访问模型和数据。 这有可能使对模型数据进行协作更具挑战性。
- 云: 可以通过 Internet 连接从任何位置访问模型和数据。 这可能更适用于协作方案。
成本
- 本地设备: 在设备硬件的初始投资之外,不会产生额外的费用。
- 云: 虽然云平台在即用即付模式下运行,但成本可以根据使用的资源和使用情况持续时间累积。
维护和更新
- 本地设备: 用户负责维护系统和安装更新。
- 云: 维护、系统更新和新功能更新由云服务提供商处理,从而减少用户的维护开销。
使用 Windows Copilot Runtime
当本地 AI 模型是正确的解决方案时,可以使用 Windows Copilot Runtime 功能为 Copilot+ 电脑上的用户集成 AI 服务。 可从 Windows 应用访问的一些现成 AI 功能包括:
- 皮硅:一种本地现成的语言模型。
- Recall:一种 UserActivity API,它使用 AI 来帮助你搜索过去的活动,由点击操作支持,该功能使用 Phi Silica 将操作连接到 Recall 找到的内容(文本或图像)。
- AI 图像:使用 AI 缩放和锐化图像(图像超分辨率),以及识别图像中的对象(图像分段)。
- Windows Studio Effects:将 AI 效果应用于设备相机或内置麦克风。
详细了解 Windows Copilot Runtime Oveview中提供的功能。
使用基于云的 APIs
如果基于云的解决方案适用于 Windows 应用方案,你可能对下面的一些教程感兴趣。
许多 APIs 可用于访问基于云的模型,以在 Windows 应用中为 AI 功能提供支持,无论这些模型是自定义的还是随时可用的。 使用基于云的模型,应用可以通过将资源密集型任务委派给云来保持简化。 Microsoft 或 OpenAI 提供的一些资源可以帮助你添加基于云的 AI 支持的 APIs,包括:
将 OpenAI 聊天完成添加到 WinUI 3/Windows App SDK 桌面应用:有关如何将基于云的 OpenAI ChatGPT 完成功能集成到 WinUI 3/Windows 应用 SDK 桌面应用中的教程。
将 DALL-E 添加到 WinUI 3/Windows 应用 SDK 桌面应用:有关如何将基于云的 OpenAI DALL-E 映像生成功能集成到 WinUI 3/Windows 应用 SDK 桌面应用中的教程。
使用 .NET MAUI 和 ChatGPT 创建建议应用:有关如何创建将基于云的 OpenAI ChatGPT 完成功能集成到 .NET MAUI 应用的示例建议应用的教程。
将 DALL-E 添加到 .NET MAUI Windows 桌面应用:有关如何将基于云的 OpenAI DALL-E 映像生成功能集成到 .NET MAUI 应用中的教程。
Azure OpenAI 服务:如果希望 Windows 应用访问 OpenAI 模型,例如 GPT-4、GPT-4 Turbo with Vision、GPT-3.5-Turbo、DALLE-3 或 Embeddings 模型系列,以及 Azure 的附加安全性和企业功能,可以在此 Azure OpenAI 文档中找到指导。
Azure AI 服务:Azure 提供一个完整的 AI 服务套件,可以通过常用开发语言的 REST APIs 和客户端库 SDK 使用。 有关详细信息,请参阅各服务的相关文档。 这些基于云的服务可帮助开发人员和组织快速创建智能、前沿、市场就绪和负责任的应用程序,采用开箱即用的、预构建和可自定义的 APIs 和模型。 应用程序示例包括对话、搜索、监视、翻译、语音、视觉和决策的自然语言处理。
在本地计算机上使用自定义模型
如果你有能力使用自己的私有数据在 TensorFlow 或 PyTorch 等平台上训练自己的模型。 可以使用适用于 Visual Studio Code 的 ONNX Runtime 和 AI Toolkit 在本地在设备硬件上运行该自定义模型,将其集成到 Windows 应用程序中。
AI Toolkit for Visual Studio Code 是一种 VS Code 扩展,可用于在本地下载和运行 AI 模型,包括通过 DirectML 访问硬件加速以提高性能和进行缩放。 AI Tookit 还可以帮助你:
- 使用 REST API 在直观的测试环境或应用程序中测试模型。
- 微调 AI 模型(在本地或云中)以创建新技能,提高响应的可靠性,设置响应的基调和格式。
- 微调流行的小型语言模型(SLM),如 Phi-3 和 Mistral。
- 将 AI 功能部署到云或使用在设备上运行的应用程序。
- 使用 DirectML 利用硬件加速提高 AI 功能的性能。 DirectML 是一种低级别 API,使 Windows 设备硬件能够使用设备 GPU 或 NPU 加速 ML 模型的性能。 将 DirectML 与 ONNX Runtime 配对通常是开发人员大规模为用户带来硬件加速 AI 的最直接方法。 了解详细信息:DirectML 概述。
你可能还想要了解这些模型微调概念,调整预先训练的模型以更好地适应数据。
查找开源模型
可以在 Web 上找到开源 ML 模型,其中一些最常用的包括:
- Hugging Face:一个拥有超过 10,000 个用于自然语言处理的预训练机器学习模型的平台,由 Transformers 库提供支持。 你可以查找文本分类、问答、摘要、翻译、生成等模型。
- ONNX Model Zoo:ONNX 格式的预训练 ML 模型的集合,涵盖各种域和任务,例如计算机视觉、自然语言处理、语音等。
- 高通 AI 中心:一个平台,可用于访问针对 Qualcomm Snapdragon 设备优化的各种 ML 模型和工具。 可以找到用于图像、视频、音频和传感器处理的模型,以及用于在移动设备上生成和部署 ML 应用程序的框架、库和 SDK。 Qualcomm AI Hub 还为开发人员和研究人员提供教程、指南和社区支持。
- Pytorch Hub:一个预先训练的模型存储库,旨在促进研究的可重复性并支持进行新研究。 它是一个简单的 API 和工作流,提供用于改进机器学习研究可重现性的基本构建基块。 PyTorch 中心由预先训练的模型存储库组成,专为促进研究可再现性而设计。
- TensorFlow 中心:TensorFlow 预训练的 ML 模型和可重用组件的存储库,这是用于生成和训练 ML 模型的常用框架。 你可以查找图像、文本、视频和音频处理模型,以及传输学习和微调。
- Model Zoo:一个平台,可为各种框架和任务策展和排名最佳开源 ML 模型。 可以按类别、框架、许可证和分级浏览模型,并查看每个模型的演示、代码和论文。
某些模型库并非旨在通过应用程序进行定制和分发,而是作为开发生命周期过程中进行实践探索和发现的有用工具,例如:
- Ollama:Ollama 是各种任务的现成 ML 模型市场,例如人脸检测、情绪分析或语音识别。 只需单击几下鼠标即可浏览、测试和集成模型。
- LM Studio:Lmstudio 是一种工具,可用于使用拖放接口根据自己的数据创建自定义 ML 模型。 可以从不同的 ML 算法中进行选择,预处理和可视化数据,并训练和评估模型。
使用负责任的 AI 做法
每当在 Windows 应用中集成 AI 功能时,我们强烈建议你遵循在 Windows 上开发负责任的生成式 AI 应用程序和功能指南。
本指南将帮助你了解治理策略、做法和流程、识别风险、推荐测试方法、利用审查器和筛选器等安全措施,并在选择安全且负责处理的模型时调用特定注意事项。
Windows Copilot Runtime 设备上的生成 AI 模型可以帮助你强制实施本地内容安全功能,例如用于有害内容的设备分类引擎和默认阻止列表。 Microsoft优先支持开发人员使用 Windows 上的本地模型构建安全、可信的 AI 体验。
其他资源
Phi Silica,小而强大的设备内 SLM (Windows 博客)
Windows 示例库中的 AI:这些示例将演示如何将 AI 集成到 Windows 应用中。
有关如何将 AI 与 Windows 配合使用的常见问题解答:有关在 Windows 环境中使用 AI 时涉及的术语和概念的常见问题问题,包括“什么是 DirectML?”、“什么是 ONNX?”、“什么是 ORT?”、“什么是 NPU?”、“什么是 SLM?”、“什么是推理?”、“什么是微调?”等等。
ONNX:表示和交换跨不同框架和平台的 ML 模型的开放标准。 如果在 ONNX 格式中找到预先训练的 ML 模型,则可以使用 ONNX Runtime (ORT) 在 Windows 应用中加载和运行模型。 ORT 允许你访问设备的硬件加速推理功能并优化 ML 模型的性能。 如果具有采用不同格式(如 PyTorch 或 TensorFlow)的预训练 ML 模型,则可以使用模型优化工具(如 Olive)将其转换为 ONNX。 有关使用 Olive 的帮助,请参阅使用 Microsoft Olive 微调 SLM(生成式 AI 应用程序架构之旅系列)。 有关创建和使用 ONNX 模型的教程,请参阅 GitHub 上的ONNX 教程。 有关演示如何在 Windows 应用中使用 ONNX 模型的示例,请参阅 Windows 示例库中的 AI。
在 Windows 应用中使用 ONNX Runtime 生成式 AI 来入门 Phi3 和其他语言模型。
Web 应用的 WebNN API:基于 WebIDL 和 JavaScript APIs在浏览器中访问神经网络硬件加速的 Web 标准。 它使 Web 开发人员能够在客户端高效创建和运行机器学习模型,而无需依赖云服务或本机库。 GitHub 上的 WebNN 示例。 在 Windows 示例库上的 AI 中使用 ONNX Runtime 的 WebNN 示例。
PyTorch:一种非常受欢迎的开源深度学习框架,可用于 Python 和C++接口。 这可能是你为 ML 模型找到的最常见格式。 如果要在 Windows(C# 或 C++) 应用中或在 Web 应用中使用 PyTorch ML 模型,可以使用 TorchSharp 和 LibTorch,它们是 PyTorch 库的 .NET 和C++绑定。 TorchSharp 和 LibTorch 允许你创建、加载和作张量、生成和运行神经网络,以及使用 PyTorch 格式保存和加载模型。 有关示例,请查看 TorchSharp 示例、用于部署的 TorchScript、PyTorch C++示例。 对于 Web 应用,请查看 使用 ONNX Runtime生成 Web 应用程序。 有关如何使用 DirectML 运行 PyTorch 模型的示例,请参阅 Windows 示例库中的 AI。
TensorFlow 是机器学习和人工智能的另一个常用开源软件库,用于为各种任务生成和部署机器学习模型。