常规
我如何将人工智能集成到我的 Windows 客户端应用程序中?
将 AI 集成到您的 Windows 应用程序中可以通过两种主要方法实现:本地模型或基于云的模型。 对于本地模型选项,您可以利用现有模型或使用像 TensorFlow 或 PyTorch 这样的平台训练自己的模型,然后通过OnnxRuntime. Windows Copilot Runtime提供各种功能的 API,包括 OCR 或利用 Phi Silica 模型。 另一方面,将您的模型托管在云端并通过REST API访问它,可以通过将资源密集型任务委托给云来使您的应用程序保持简洁。 查看在您的 Windows 应用程序中使用机器学习模型以获取更多信息。
在 Windows 客户端应用程序中开发 AI 最好使用哪些编程语言?
您可以使用任何您喜欢的编程语言。 例如,C# 广泛用于创建 Windows 客户端应用程序。 如果您需要对低级细节有更多控制,C++ 是一个很好的选择。 或者,您可以考虑使用Python. 您也可以使用Windows Subsystem for Linux (WSL) 在 Windows 上运行基于 Linux 的 AI 工具。
适用于 Windows 客户端应用程序的最佳 AI 框架有哪些?
我们建议使用OnnxRuntime.
如何在使用 Windows 客户端应用程序中的人工智能时处理数据隐私和安全性?
在开发人工智能驱动的应用程序时,尊重用户数据的隐私和安全性是至关重要的。 您应该遵循数据处理的最佳实践,例如加密敏感数据、使用安全连接,以及在收集数据之前获得用户的同意。 您还应该对如何使用数据保持透明,并让用户掌控他们的数据。 确保阅读在 Windows 上开发负责任的生成式 AI 应用程序和功能也
在Windows客户端应用中运行人工智能的系统要求是什么?
使用人工智能的 Windows 应用程序的系统要求取决于人工智能模型的复杂性和所使用的硬件加速。 对于简单模型,现代 CPU 可能足够,但对于更复杂的模型,可能需要 GPU 或 NPU。 你还应该考虑应用程序的内存和存储需求,以及基于云的人工智能服务所需的网络带宽。
如何优化Windows客户端应用中的人工智能性能?
为了优化Windows应用中的人工智能性能,您应该考虑使用硬件加速,例如GPU或NPU,以加快模型推理速度。 Windows Copilot+ 笔记本电脑经过优化,适用于人工智能工作负载,能够为人工智能任务提供显著的性能提升。 另见Visual Studio Code 人工智能工具包概述.
我可以在我的Windows客户端应用程序中使用预训练的人工智能模型吗?
是的,您可以在Windows应用中使用预训练的人工智能模型。 你可以从互联网下载预训练的模型,或使用基于云的 AI 服务来访问预训练的模型。 你可以使用像 OnnxRuntime 这样的框架将这些模型集成到你的应用程序中。
什么是 DirectML?
DirectML 是用于机器学习的底层 API,可针对范围广泛的受支持硬件和驱动程序(包括 AMD、Intel、NVIDIA 和 Qualcomm 等供应商所有支持 DirectX 12 的 GPU),为常见的机器学习任务提供 GPU 加速。
什么是 ONNX?
开放式神经网络交换 (ONNX) 是一种用于表示 ML 模型的开放标准格式。 PyTorch、TensorFlow、SciKit-Learn、Keras、Chainer 和 MATLAB 等流行的 ML 模型框架都可以导出或转换为标准的 ONNX 格式。 模型采用 ONNX 格式后,就可在各种平台和设备上运行它。 如果要以一种不同于训练格式的格式使用 ML 模型,ONNX 是很好的选择。
什么是 ORT?
OnnxRuntime(ORT)是一个统一的运行时工具,用于执行不同框架(如PyTorch、TensorFlow等)中的模型,支持硬件加速器(设备CPU、GPU或NPU)。
ONNX 与 PyTorch 或 TensorFlow 等其他 ML 框架有何不同?
PyTorch 和 TensorFlow 用于开发、训练和运行在 AI 应用程序中使用的深度学习模型。 PyTorch 通常用于研究,TensorFlow 通常用于行业部署,而 ONNX 则是一种标准化的模型交换格式,它弥合了两者的差距,允许你根据需要在不同框架之间进行切换,并实现了跨平台兼容。
什么是 NPU? 它与 CPU 或 GPU 有什么不同?
神经网络处理单元 (NPU) 是专门为执行 AI 任务而设计的专用 AI 芯片。 NPU 的关注点与 CPU 或 GPU 不同。 中心处理单元 (CPU) 是计算机中的主要处理器,负责执行指令和常规用途的计算。 图形处理单元 (GPU) 是专门用于渲染图形的处理器,并对并行处理进行了优化。 它能够为视频编辑和游戏任务渲染复杂的图像。
NPU 专为加速深度学习算法而设计,可以分担计算机 CPU 或 GPU 的部分工作,从而提高设备的工作效率。 NPU 专门用于加速神经网络任务。 它们擅长并行处理大量数据,是图像识别或自然语言处理等常见 AI 任务的理想选择。 例如,在图像识别任务中,NPU 可以负责对象检测或图像加速,而 GPU 则负责图像渲染。
如何了解我的设备具有哪种类型的 CPU、GPU 或 NPU?
要检查 Windows 设备上 CPU、GPU 或 NPU 的类型及其性能,请打开任务管理器 (Ctrl + Alt + Delete),然后选择“性能”选项卡,就能看到它列出了计算机 CPU、内存、Wi-Fi、GPU 和/或 NPU,以及有关速度、利用率和其他数据的信息。
什么是 WinML?
WinML(即 Windows 机器学习)是一种高级 API,用于在 Windows 设备上部署硬件加速的机器学习 (ML) 模型,使开发人员能够利用设备的功能执行模型推理。 其关注的重点是模型的加载、绑定和评估。 WinML 使用 ONNX 模型格式。
有用的 AI 概念
什么是大型语言模型 (LLM)?
LLM 是一种机器学习 (ML) 模型,以实现通用语言生成和理解的能力而闻名。 LLM 是一种人工神经网络,它在计算密集的自我监督和半监督训练过程中,通过从海量文本文档中学习统计关系获得能力。 LLM 是一种生成式 AI,通常用于生成文本,给定输入文本后,它会相应地生成单词(称为“令牌”),而这些单词极有可能产生连贯性,并组成与上下文相关联的句子。 还有一些小型语言模型 (SLM),它们参数较少,容量有限,但可能更高效(所需的计算资源更少)、更具成本效益,是特定领域的理想选择。
什么是 ML 模型训练?
在机器学习中,模型训练包括将数据集馈入模型(LLM 或 SLM),让它从数据中学习,从而使模型能够识别模式,根据数据做出预测或判定。 这个过程可能还涉及反复调整模型参数,以优化其性能。
什么是推理?
“推理”是指,使用经过训练的机器学习模型对未见过的新数据进行预测或分类。 基于数据集训练语言模型后,它将了解数据集的底层模式和关系,并随时可将这些知识应用到实际应用场景中。 对 AI 模型而言,推理是一个决定性时刻,将测试模型能够在多大程度上利用通过训练学到的信息,做出预测,或解决任务。 使用现有模型进行推理的过程不同于训练阶段,后者需要使用训练和验证数据来完善模型并微调其参数。
什么是 ML 模型微调?
微调是机器学习中的关键步骤,在这一过程中,预先训练好的模型将得到调整,以执行特定任务。 微调不是从头开始训练模型,而是从现有模型(通常是基于大型数据集训练的模型)开始,这个过程将利用较小的特定任务数据集调整模型参数。 通过微调,在保留预训练期间获得的一般知识的同时,模型还可以学到特定于任务的功能,从而提高在特定应用场景中的表现。
什么是提示工程?
提示工程是一种与生成式 AI 搭配使用的策略性方法,用于塑造语言模型的行为和响应方式。 它涉及精心设计输入提示或查询,以便从语言模型(如 GPT-3 或 GPT-4)中获得所需的结果。 通过设计有效的提示,你可以引导 ML 模型生成所需的那类响应。 其中的手段包括调整措辞、指定上下文或使用控制代码来影响模型输出。
什么是硬件加速(就 ML 模型训练而言)?
硬件加速是指使用专门的计算机硬件,加快 AI 应用程序的速度,使其超越通用 CPU 所能实现的性能。 对于机器学习任务,例如训练模型、进行预测,或将计算卸载到擅长并行处理深度学习工作负载的专用硬件组件上,硬件加速可以提升其速度、能效和整体性能。 GPU 和 NPU 都属于硬件加速器。
想要在其应用中应用 AI 功能的数据科学家、ML 工程师和应用开发人员之间有何区别?
创建和使用 ML 模型的过程涉及三个主要角色:数据科学家:负责定义问题,收集和分析数据,选择和训练 ML 算法,以及评估和解释结果。 它们使用 Python、R、Jupyter Notebook、TensorFlow、PyTorch 和 scikit-learn 等工具执行这些任务。 ML 工程师:负责在生产环境中部署、监视和维护 ML 模型。 它们使用 Docker、Kubernetes、Azure ML、AWS SageMaker 和 Google Cloud AI Platform 等工具确保 ML 模型的可伸缩性、可靠性和安全性。 应用开发人员:负责将 ML 模型集成到应用逻辑、UI 和 UX 中。 他们使用诸如Windows Copilot Runtime、OnnxRuntime或REST API等工具,处理用户输入和模型输出。 每个角色都涉及不同的职责和技能,但需要这些角色之间的协作和沟通才能取得最佳效果。 根据项目的规模和复杂性,这些角色可以由同一个人执行,也可以由不同的团队执行。