以下是使用 AI Hub 创建 LLM 模型二进制文件的步骤:
下面是 LLM 端侧部署的概览:
1
准备模型
1
从所需的 LLM 开始
从 Hugging Face 或其他来源获取所需的 LLM(例如 Llama 3.x 系列)。
2
使用 qai_hub_models Python 软件包导出模型
使用
qai_hub_models Python 软件包导出模型。此过程会:- 下载模型权重。
- 将其上传到 AI Hub 进行编译。
- 生成拆分为多个部分的 QNN 二进制文件,用于 NPU 执行。
- 创建一个可部署的文件夹(
genie_bundle),其中包含所需的全部资源(上下文二进制文件、配置、tokenizer)。
AI Hub 会将模型编译为面向 Qualcomm AI Runtime (QAIRT) SDK 的优化二进制文件:
- AI Hub 支持量化(通常内部使用 4 位,但为兼容性权重可能以 8 位存储)。
- 导出脚本负责将大型模型拆分为 prompt processor 和 token generator 组件。
2
部署模型
以下是部署过程的高层步骤。有关详细说明和命令,请参阅使用 Genie 运行 LLM。
1
在目标设备上安装 Qualcomm AI Runtime (QAIRT) SDK
在目标设备(Android、Windows、Linux)上安装 Qualcomm AI Runtime (QAIRT) SDK。
2
将编译后的二进制文件和配置文件复制到设备
将编译后的二进制文件和配置文件复制到设备。
3
使用 Genie CLI 工具或 Genie 对话 API 进行推理
使用 Qualcomm GenerativeAI Inference Extensions (Genie) CLI 工具(例如
genie-t2t-run)或 Genie 对话 API 进行推理。4
确保目标设备满足要求
本节中的步骤在使用 Hexagon 架构 V73 的 QCS9100 上已通过验证。
- Hexagon 架构:v73 或更新版本
- 所需 RAM:
- 7B 模型 16 GB
- 3B 模型 ~12 GB
3
使用 Genie API 在端侧运行模型
使用与 Qualcomm AI Engine Direct 集成的 Genie API 在端侧运行模型。
- Genie 管理多个二进制文件和执行顺序,以实现最佳的 NPU 利用率。
重要说明
-
AI Hub 优势
- 自动处理模型编译、量化和拆分。
- 提供预优化模型和 bring your own model(BYOM)支持。
-
Genie
- 通过抽象化复杂的执行步骤简化推理。
- 提供用于文本到文本和对话式交互的 API。
-
自定义
- 导出流程默认使用 4 位量化以提升运行时效率。
- 没有直接以 4 位存储权重的选项;它们仍以 8 位保存,但在执行时以 4 位加载。

