> ## Documentation Index
> Fetch the complete documentation index at: https://dragonwingdocs-staging.qualcomm.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 使用 AI Hub 准备 GenAI 模型

> 使用 Qualcomm AI Hub,通过 Genie 框架在 Qualcomm Dragonwing IoT 平台上准备和部署大语言模型(LLM)。

Qualcomm AI Hub 提供了简化的工作流,可使用
Qualcomm GenerativeAI Inference Extensions(Genie)在 Qualcomm Dragonwing™ 产品上
准备和部署大语言模型(LLM)。

这种方法通过利用神经处理单元(NPU)和优化的二进制文件,
实现生成式 AI 模型的高效设备端执行。

下图展示了从准备到执行的高层 GenAI 模型工作流。

<img src="https://mintcdn.com/qualcomm-staging/uWQLnBcS9sxlZhgB/Key-Documents/AI-Developer-Workflow/_images/genai-prepare-ai-hub.png?fit=max&auto=format&n=uWQLnBcS9sxlZhgB&q=85&s=acf54d1eec9c632d7bd1b5c4e143d821" alt="使用 AI Hub 从准备到执行的高层 GenAI 模型工作流" width="2929" height="411" data-path="Key-Documents/AI-Developer-Workflow/_images/genai-prepare-ai-hub.png" />

以下是使用 AI Hub 创建 LLM 模型二进制文件的步骤:

* [前提条件](https://github.com/qualcomm/ai-hub-apps/tree/main/tutorials/llm_on_genie#requirements)

* [详细说明](https://github.com/qualcomm/ai-hub-apps/tree/main/tutorials/llm_on_genie#step-2-prepare-a-genie-bundle-on-the-host-machine)

以下是 LLM 设备端部署的概述:

1. 准备模型:

   a. 从 Hugging Face 或其他来源获取所需的 LLM(例如 Llama 3.x 系列)。

   b. 使用 `qai_hub_models` Python 包导出模型。

   此过程会:

   * 下载模型权重。<br />
   * 将其上传到 AI Hub 进行编译。<br />
   * 生成拆分为多个部分的 QNN 二进制文件,以便在 NPU 上执行。<br />
   * 创建一个可部署的文件夹(`genie_bundle`),其中包含所有必需的资产(上下文二进制文件、配置、分词器)。

   <Note>
     AI Hub 将模型编译为针对 [Qualcomm AI Runtime (QAIRT) SDK](https://docs.qualcomm.com/doc/80-63442-10/) 优化的二进制文件:

     1. AI Hub 支持量化(通常内部为 4 位,不过为了兼容性,权重可能以 8 位存储)。
     2. 导出脚本负责将大型模型拆分为提示处理器和令牌生成器组件。
   </Note>

2. 部署模型:

   以下是部署过程的高层步骤。有关详细说明
   和命令,请参阅 [Run LLMs with Genie](https://github.com/qualcomm/ai-hub-apps/tree/main/tutorials/llm_on_genie#step-3-run-the-llm-on-device)。

   a. 在目标设备(Android、Windows、Linux)上安装 Qualcomm AI Runtime(QAIRT)SDK。

   b. 将编译好的二进制文件和配置文件复制到设备上。

   c. 使用 [Qualcomm GenerativeAI Inference Extensions (Genie) CLI 工具](https://docs.qualcomm.com/doc/80-63442-10/topic/tools_tools.html)
   (例如 `genie-t2t-run`)或 [Genie dialog API](https://docs.qualcomm.com/doc/80-63442-10/topic/api-rst_file_include_Genie_GenieDialog_h.html#file-include-Genie-GenieDialog.h) 进行推理。

   d. 确保目标设备满足以下要求。本节中的步骤已在使用 Hexagon 架构 V73 的 QCS9100 上验证。

   * Hexagon 架构:v73 或更新版本
   * 所需 RAM:
     * 7B 模型需要 16 GB
     * 3B 模型约需 12 GB

3. 使用与 [Qualcomm AI Engine Direct](https://docs.qualcomm.com/doc/80-63442-10/topic/index_QNN.html) 集成的 Genie API 在设备上运行模型:

   * Genie 管理多个二进制文件和执行顺序,以实现最佳的 NPU 利用率。

### 重要说明

* AI Hub 优势

  * 自动处理模型编译、量化和拆分。
  * 提供预先优化的模型和自带模型(BYOM)支持。

* Genie

  * 通过抽象复杂的执行步骤来简化推理。
  * 提供用于文本到文本和基于对话的交互的 API。

* 定制

  * 导出流程默认使用 4 位量化以提高运行时效率。
  * 没有直接将权重存储为 4 位的选项;权重仍为 8 位,但在执行期间以 4 位加载。
