> ## 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 设备端部署的概述:

<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`),其中包含所有必需的资产(上下文二进制文件、配置、分词器)。

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

          <Steps>
            <Step>
              AI Hub 支持量化(通常内部为 4 位,不过为了兼容性,权重可能以 8 位存储)。
            </Step>

            <Step>
              导出脚本负责将大型模型拆分为提示处理器和令牌生成器组件。
            </Step>
          </Steps>
        </Note>
      </Step>
    </Steps>
  </Step>

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

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

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

      <Step title="使用 Genie 运行推理">
        使用 [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) 进行推理。
      </Step>

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

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

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

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

### 重要说明

* AI Hub 优势

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

* Genie

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

* 定制

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