让你的混合式人工智能在 Windows on Snapdragon 上使用
发表于 2023-10-19 11:16:33

Snapdragon Qualcomm 品牌产品是 高通技术公司和/或其子公司的产品。

如今,人工智能无处不在,而 生成式人工智能 被寄予厚望,成为人工智能领域的杀手锏。我们正在看到 大型语言模型 (LLM),比如 ChatGPT(一种 生成式预训练转换模型,正在以全新的和创造性的方式得到应用。

虽然 LLM 曾经被部署到功能强大的云服务器,但往返延迟导致用户体验不佳,而且在云端处理此类大模型的成本与日俱增。例如,随着模型变得更加复杂,搜索查询(生成人工智能的常见用例)的成本预计会比传统搜索方法增加十倍。在此类搜索中使用的基础通用型 LLM,比如 GPT-4 laMDA,使用 1 千亿个参数,实现了前所未有的语言理解、生成能力和世界知识水平。

由于隐私、个性化、延迟和不断增加的成本等问题,催生出了混合式 AI,开发人员在设备和云端之间分配推理任务。混合式 AI 取得成功的一个关键因素是现代化专用 AI 引擎,它可以在边缘处理大型模型。例如,Snapdragon®8cx Gen3 计算平台为许多在 Snapdragon 上运行 Windows 的设备提供支持,采用 Qualcomm®Hexagon™ NPU,可以在边缘运行AI。搭配提供高级量化和压缩技术的工具和SDK,开发人员可以在其 Windows 应用中为具有数十亿参数的模型处理硬件加速推理。同时,该平台通过 5G Wi-Fi 6 实现了始终连接的功能,可以在几乎任何位置访问云推理。

借助这些可供使用的工具,下面我们将详细探讨混合式 AI,以及我们如何加以利用。

混合式 AI

混合式 AI 充分利用本地和云端推理的优势,两者协同工作,以提供更强大、更高效及高度优化的人工智能。此外,它还在设备上本地运行简单(又名轻量级)模型,而更复杂(又名完整)模型可以在本地运行和/或卸载到云端

开发人员根据模型或查询复杂性(例如模型规模、提示词和生成长度)以及可接受的准确性,选择不同的卸载方式。其他考虑因素包括隐私或个性化(例如,将数据保留在设备端),获取结果的延迟和可用带宽,以及平衡能耗与发热。

混合式 AI 具有一定的灵活性,包括三种通用分配方式:

  1. 以设备为中心:对于在设备端收集的数据提供足够推理性能的模型在本地运行。如果性能不足(例如,最终用户对推理结果不满意),设备端神经网络或 仲裁器 可以决定将推理任务卸载至云端。
  2. 设备感应:轻模型在设备端运行,处理较为简单的推理任务(例如,自动语音识别(ASR))。设备端模型的输出预测随后被发送到云端,并用作完整模型的输入。然后,模型执行额外的复杂推理(例如,根据检测到的语音数据形成的生成式 AI),并将结果传输回设备。
  3. 联合处理:由于 LLM 受制于内存,因此在加载数据时,硬件通常处于空闲状态。当需要多个 LLM 生成文字标记时,可以有针对性地并行运行 LLM 并将准确性检查卸载到云端 LLM

有关混合式 AI 的更多信息,请查看 AI 的未来是混合式AI

边缘堆栈

在边缘平台利用 NPU 需要强大的引擎和开发堆栈。这就是Qualcomm® AI 堆栈(如图 1 所示)的用武之地。

图 1 – 高通人工智能堆栈为所有 Snapdragon 平台的边缘人工智能提供硬件和软件组件。

高通技术公司的一系列平台均支持 Qualcomm AI 堆栈,包括 Snapdragon 上的 Windows 和为当今许多智能手机提供支持的 Snapdragon 移动平台。

堆栈的最高层是用于生成式模型的流行 AI 框架(例如 TensorFlow)。然后,开发人员可以从几个选项中进行选择,将这些模型集成到 Windows on Snapdragon 应用。注:Windows on Snapdragon 不支持 TFLite TFLite Micro

Qualcomm®  AI 神经处理 SDK 提供了高级端到端解决方案,包括将模型转换为Hexagon 格式 (DLC) 的管道和执行它们的运行时,如图 2 所示。

图 2 – 使用我们的端到端解决方案(面向 AI 的 Qualcomm 神经处理 SDK)的概述。

Qualcomm® AI 神经处理 SDK  基于Qualcomm AI Engine Direct SDK 构建。Qualcomm AI Engine Direct SDK 提供更低级别的 API,通过单个后端库在特定加速器上运行推理。此 SDK 正成为与 Qualcomm AI Engine 搭配使用的首选方案。

下图(图 3)显示了不同框架中的模型如何与AI Engine Direct SDK 配合使用。

3AI 堆栈概览,包括其运行时框架支持和后端库。

后端库将不同的硬件内核进行抽象化处理,提供了在不同版本的 Hexagon NPU(适用于 Snapdragon 8cx Gen3 的 HTP)中最合适的核心上运行模型的选项。

4 显示了开发人员如何使用 Qualcomm AI Engine Direct SDK

4–将模型转换为Qualcomm AI Engine Direct 表示的工作流程,优化在 Hexagon NPU 上的执行。

模型经过训练,然后传递到与框架相关的模型转换工具,以及包含自定义操作定义的运算包 。转换工具生成两个组件:

  • model.cpp,包含 Qualcomm AI Engine Direct API 调用,以构建网络图
  • model.bin (二进制)文件,包含网络权重和偏差(默认为 32 位浮点数)

注:开发人员可以选择生成量化数据

然后,SDK 生成器工具构建运行时模型库,同时生成任何运算包代码在目标上运行。

文档 提供有关如何将这些组件集成到 Windows 应用程序中的更多信息。

我们已经为其他几个跨移动、物联网和汽车等垂直领域的 Snapdragon 平台实施了高通 AI 堆栈。这意味着您仅需开发一次人工智能模型,就可以在这些不同的平台上运行。

马上尝试!

在您准备构建 Windows on Snapdragon 边缘 AI 之前,不妨先看一看下面几个示例应用:

  • Qualcomm AI Stack Stable Diffusion :使用 AI 模型效率工具包 (AIMET) (我们用于优化模型的工具包)优化 Stable Diffusion  模型,然后使用Qualcomm AI Engine Direct SDK 准备并运行。
  • 应用程序示例:将 Qualcomm AI Engine Direct SDK 集成到 C++ 应用程序中。虽然基于典型的 Linux Android 工作流程,但是包含标注,帮助您构建 Windows 应用。

其他资源

无论您的 Windows on Snapdragon 应用仅在边缘运行人工智能,还是使用混合式架构,我们都有相关的如何使用人工智能解决方案的学习资源:

请务必注册我们的 Windows on Snapdragon 时事通讯 ,了解最新的相关新闻和公告。



 

Snapdragon Qualcomm 品牌产品是高通技术公司和/或其子公司的产品。AIMET 高通创新中心的产品。

CSDN官方微信
扫描二维码,向CSDN吐槽
微信号:CSDNnews
微博关注
【免责声明:CSDN本栏目发布信息,目的在于传播更多信息,丰富网络文化,稿件仅代表作者个人观点,与CSDN无关。其原创性以及文中陈述文字和文字内容未经本网证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本网不做任何保证或者承诺,请读者仅作参考,并请自行核实相关内容。您若对该稿件有任何怀疑或质疑,请立即与CSDN联系,我们将迅速给您回应并做处理。】