> ## Documentation Index
> Fetch the complete documentation index at: https://dragonwingdocs.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://mintlify.s3.us-west-1.amazonaws.com/qualcomm-prod/zh/AI-Developer-Workflow-Ubuntu/_images/genai-prepare-ai-hub.png" alt="使用 AI Hub 从准备到执行的 GenAI 模型高层工作流" />

以下是使用 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 端侧部署的概览:

<Steps>
  <Step title="准备模型">
    <Steps>
      <Step title="从所需的 LLM 开始">
        从 Hugging Face 或其他来源获取所需的 LLM(例如 Llama 3.x 系列)。
      </Step>

      <Step title="使用 qai_hub_models Python 软件包导出模型">
        使用 `qai_hub_models` Python 软件包导出模型。

        此过程会:

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

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

          1. AI Hub 支持量化(通常内部使用 4 位,但为兼容性权重可能以 8 位存储)。
          2. 导出脚本负责将大型模型拆分为 prompt processor 和 token generator 组件。
        </Note>
      </Step>
    </Steps>
  </Step>

  <Step title="部署模型">
    以下是部署过程的高层步骤。有关详细说明和命令,请参阅[使用 Genie 运行 LLM](https://github.com/qualcomm/ai-hub-apps/tree/main/tutorials/llm_on_genie#step-3-run-the-llm-on-device)。

    <Steps>
      <Step title="在目标设备上安装 Qualcomm AI Runtime (QAIRT) SDK">
        在目标设备(Android、Windows、Linux)上安装 Qualcomm AI Runtime (QAIRT) SDK。
      </Step>

      <Step title="将编译后的二进制文件和配置文件复制到设备">
        将编译后的二进制文件和配置文件复制到设备。
      </Step>

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

      <Step title="确保目标设备满足要求">
        本节中的步骤在使用 Hexagon 架构 V73 的 QCS9100 上已通过验证。

        * Hexagon 架构:v73 或更新版本
        * 所需 RAM:
          * 7B 模型 16 GB
          * 3B 模型 \~12 GB
      </Step>
    </Steps>
  </Step>

  <Step title="使用 Genie API 在端侧运行模型">
    使用与 [Qualcomm AI Engine Direct](https://docs.qualcomm.com/doc/80-63442-10/topic/index_QNN.html) 集成的 Genie API 在端侧运行模型。

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

### 重要说明

* AI Hub 优势

  * 自动处理模型编译、量化和拆分。
  * 提供预优化模型和 bring your own model(BYOM)支持。

* Genie

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

* 自定义

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