在 Windows 应用中使用机器学习模型

本指南将通过解决常见问题,分享基本概念和资源,以及提供有关如何在 Windows 应用中使用 AI 和 ML 模型的建议,帮助应用开发人员使用人工智能 (AI) 和机器学习 (ML) 模型。

机器学习 (ML) 是人工智能 (AI) 的一个分支,使计算机能够从数据中学习并做出预测或决策。

ML 模型是可以针对数据进行训练的算法,然后部署这些算法来执行各种任务,例如内容生成、内容推理、图像识别、自然语言处理、情绪分析等。

Windows 应用程序如何利用 ML 模型?

Windows 应用程序可以利用 ML 模型增强其功能和用户体验的几种方法包括:

  • 应用可以使用生成式 AI 模型来理解复杂的主题,以进行汇总、重写、报告或扩展。
  • 应用可以使用模型将自由格式的内容转换为应用能理解的结构化格式。
  • 应用可以使用语义搜索模型,该模型允许用户通过含义搜索内容并快速查找相关内容。
  • 应用可以使用自然语言处理模型来推理复杂的自然语言要求,并且规划和执行操作来完成用户要求的任务。
  • 应用可以使用图像处理模型智能地修改图像、擦除或添加主题、纵向扩展或生成新内容。
  • 应用可以使用预测性诊断模型来帮助识别和预测问题,并帮助指导用户或为用户诊断问题。

支持 AI 的 API 中的 ML 模型

Windows Copilot Runtime 将与利用 AI 的操作系统交互的多种方式集成到一起。 这包括支持 AI 的现成功能和 API,我们称之为 Windows Copilot Library。 有关支持上列部分应用场景的现成功能和 API 的指导,请参阅开始在 Windows 应用中使用支持 AI 的 API

Windows Copilot Library 库模型直接在 Windows 设备上本地运行,不过你也可以选择通过现成 API 使用基于云的模型。 无论它们是在本地还是在云端运行,这些 API 都抽象出基础 ML 模型,因此无需进行任何优化、格式设置或微调。

但是,你可能想要查找自己的 ML 模型,以便在 Windows 上本地使用。 此时,可能需要优化此模型,使其在 Windows 设备上正常运行或;或者微调模型,以便使用特定于特殊用例或公司的自定义数据对其进行训练。 本文将介绍一些概念、工具和开放源代码库,以帮助指导你完成此过程。

在本地运行小型语言模型与在云端运行大型语言模型

小型语言模型 (SLM) 旨在设计得更为紧凑和高效,通常针对较小数据集上的特定任务或领域进行训练,可在本地存储和运行模型,推理性能更卓越且推理速度更快。 SLM 受到训练数据量的限制,不提供大型语言模型 (LLM) 所需的广泛知识或复杂推理能力。 然而,在本地使用时,SLM 可以提供比 LLM 更安全、更经济高效的替代方案,因为它们需要更少的计算能力来运行,并通过将聊天信息安全地保存在设备本地来提高数据隐私性。

SLM 更适合本地使用,因为在设备上运行 ML 模型意味着大小不得超过运行该模型的设备的存储和处理能力。 大多数 LLM 太大,无法在本地运行。

Microsoft Phi-2Phi-3 模型是 SLM 的示例。

大型语言模型 (LLM) 经过了具有更多参数的大量数据的训练,因此更为复杂,所需的存储空间也更大。 由于其规模更大,LLM 可能更有能力捕捉语言中错综复杂的模式和细微差别,涵盖更广泛的知识范围,并能够处理更复杂的模式。 它们还需要更多的计算资源来训练和推理。 大多数 LLM 无法在本地设备上运行。

OpenAI 语言模型 GPT-4o、GPT-4 Turbo、GPT-3.5 Turbo、DALL-E 和 Whisper 都是 LLM 的示例。

有关在本地使用 SLM 与在云端使用 LLM 之间的差异的进一步指导,请参阅在 Windows 应用中使用本地 API 与基于云的支持 AI 的 API 时的注意事项

查找网页版开放源代码 ML 模型

开放源代码 ML 模型可以是现成的,也可以根据自己的数据或偏好进行定制,你可以在各种位置找到该模型,一些最常见的示例包括:

  • Hugging Face:有超过 10,000 个用于自然语言处理的预训练 ML 模型的中心,由 Transformers 库提供支持。 你可以查找文本分类、问题解答、摘要、翻译、生成等模型。
  • ONNX Model Zoo:ONNX 格式的预训练 ML 模型集合,涵盖广泛的领域和任务,例如计算机视觉、自然语言处理、语音识别等。
  • Qualcomm AI Hub:一个平台,可用于访问针对 Qualcomm Snapdragon 设备进行优化的各种 ML 模型和工具。 可以找到用于图像、视频、音频和传感器处理的模型,以及用于在移动设备上生成和部署 ML 应用程序的框架、库和 SDK。 Qualcomm AI Hub 还为开发人员和研究人员提供教程、指南和社区支持。
  • Pytorch Hub:预训练模型存储库,旨在促进研究的可重现性并实现新的研究。 它是一个简单的 API 和工作流,提供基本的构建模块从而可以改善机器学习研究的可重现性。 PyTorch Hub 由预训练模型存储库组成,专为促进研究的可重现性而设计。
  • TensorFlow Hub:TensorFlow 的预训练 ML 模型和可重用组件的存储库,这是用于构建和训练 ML 模型的常用框架。 你可以查找图像、文本、视频和音频处理模型,并进行迁移学习和微调。
  • Model Zoo:为各种框架和任务精选最适合的开放源代码 ML 模型并对模型进行排名的平台。 可以按类别、框架、许可证和评分浏览模型,并查看每个模型的演示、代码和相关文件。

某些模型库并非旨在通过应用程序进行定制和分发,而是作为开发生命周期过程中进行实践探索和发现的有用工具,例如:

  • Ollama:Ollama 是提供适用于各种任务的现成 ML 模型的平台,例如人脸检测、情绪分析或语音识别。 只需单击几下鼠标即可浏览和测试模型并将其集成到应用中。
  • LM Studio:Lmstudio 是一种工具,可让你使用拖放接口根据自己的数据创建自定义 ML 模型。 可以从不同的 ML 算法中进行选择,对数据进行预处理和可视化,并且训练和评估模型。

每当在 Windows 应用中找到符合使用目标的 ML 模型时,我们强烈建议你遵循在 Windows 上开发负责任的生成式 AI 应用程序和功能指南。 本指南将帮助你了解治理策略、实践和流程,识别风险,推荐测试方法,利用审查器和筛选器等安全措施,并在选择安全且以负责任方式处理的模型时调用特定注意事项。

如何优化 ML 模型以在 Windows 上运行?

在 Windows 应用中有多种方式使用 ML 模型,具体取决于模型的类型、来源和格式以及应用的类型。

你将在其中找到 ML 模型的一些格式包括:

如何使用自定义数据微调 ML 模型,以便在 Windows 上运行?

AI Toolkit适用于 Visual Studio Code 的 是一个 VS Code 扩展,可用于在本地下载和运行 AI 模型。 AI 工具包还可以帮助你:

  • 使用 REST API 在直观的操场或应用程序中测试模型。
  • 在本地或云端(虚拟机上)微调 AI 模型,以创建新技能,提高响应的可靠性,设定响应的语调和格式。
  • 微调常用的小型语言模型 (SLM),如 Phi-3Mistral
  • 将 AI 功能部署到云端或在设备上运行的应用程序。

如何利用 AI 功能通过硬件加速来提高性能

DirectML 是一种低级别 API,使 Windows 设备硬件能够使用设备 GPU 或 NPU 加快 ML 模型的性能。 当大规模为用户提供硬件加速的 AI 时,开发人员采用的最直接方法通常是将 DirectML 与 ONNX Runtime 配对。 了解详细信息:DirectML 概述