有关将 AI 与 Windows 配合使用的常见问题解答

常规

什么是 DirectML?

DirectML 是用于机器学习的底层 API,可针对范围广泛的受支持硬件和驱动程序(包括 AMD、Intel、NVIDIA 和 Qualcomm 等供应商所有支持 DirectX 12 的 GPU),为常见的机器学习任务提供 GPU 加速。 DirectML 是 WinML 的一个组件。

什么是 ONNX?

开放式神经网络交换 (ONNX) 是一种用于表示 ML 模型的开放标准格式。 PyTorch、TensorFlow、SciKit-Learn、Keras、Chainer 和 MATLAB 等流行的 ML 模型框架都可以导出或转换为标准的 ONNX 格式。 模型采用 ONNX 格式后,就可在各种平台和设备上运行它。 如果要以一种不同于训练格式的格式使用 ML 模型,ONNX 是很好的选择。

什么是 ORT?

ONNX 运行时 (ORT) 是一种统一的运行时工具,用于在支持硬件加速器(设备 CPU、GPU 或 NPU)的不同框架(PyTorch、TensorFlow 等)中执行模型。

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 助手运行时、ONNX 运行时或 REST API 等工具,并处理用户输入和模型输出。 每个角色都涉及不同的职责和技能,但需要这些角色之间的协作和沟通才能取得最佳效果。 根据项目的规模和复杂性,这些角色可以由同一个人执行,也可以由不同的团队执行。