# AI Hub

Source: [https://docs.qualcomm.com/doc/80-70015-15BY/topic/ai-hub.html](https://docs.qualcomm.com/doc/80-70015-15BY/topic/ai-hub.html)

为了在 Qualcomm AI 硬件上快速构建模型原型，AI Hub 提供了一种方法，帮助开发者针对视觉、音频和语音用例在设备上对机器学习模型进行优化、验证和部署

<?xml version="1.0" encoding="utf-8"?>
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewbox="0 0 1152 269.6" width="1152px">
  <defs>
    <style>.svg-1 .cls-1,.svg-1 .cls-2,.svg-1 .cls-3 { font-family: Roboto-Medium, Roboto; font-size: 16px; font-weight: 500; isolation: isolate }
.svg-1 .cls-1,.svg-1 .cls-4,.svg-1 .cls-5 { fill: #000 }
.svg-1 .cls-3,.svg-1 .cls-6 { text-decoration: underline }
.svg-1 .cls-3,.svg-1 .cls-6,.svg-1 .cls-7 { fill: #2a2aea }
.svg-1 .cls-8 { fill: none; stroke: #000 }
.svg-1 .cls-8,.svg-1 .cls-9 { stroke-miterlimit: 10; stroke-width: 2px }
.svg-1 .cls-4,.svg-1 .cls-7 { stroke-width: 0px }
.svg-1 .cls-9 { fill: #fff; stroke: #d4d8e3 }
.svg-1 .hoverbox { transition: opacity 0.15s ease-in-out }
.svg-1 .hoverbox:hover { opacity: 0.8 }
.svg-1 .hoverbox:hover text { text-decoration: underline }
.svg-1 .hoverbox-simple { transition: opacity 0.15s ease-in-out }
.svg-1 .hoverbox-simple:hover { opacity: 0.8; visibility: visible }
.svg-1 .hoverbox-simple text { transition: fill 0.15s ease-in-out }
.svg-1 .hoverbox-simple:hover text { fill: #2a2aea; text-decoration: underline }
.svg-1 .mouse-none { user-select: none }</style>
  </defs>
  <g id="arrow2">
    <line class="cls-8" x1="693.3" y1="137.4" x2="730.1" y2="137.4"></line>
    <polygon class="cls-4" points="729.6 142.5 738.2 137.4 729.6 132.2 729.6 142.5"></polygon>
  </g>
  <g id="arrow1">
    <line class="cls-8" x1="430" y1="182.3" x2="412.8" y2="182.3"></line>
    <polygon class="cls-4" points="449 142.5 457.6 137.4 449 132.2 449 142.5"></polygon>
    <line class="cls-8" x1="448.7" y1="137.8" x2="430" y2="137.8"></line>
    <line class="cls-8" x1="431.2" y1="87.3" x2="414" y2="87.3"></line>
    <line class="cls-8" x1="430.2" y1="86.4" x2="430.2" y2="183.4"></line>
  </g>
  <g id="choose-preoptimized-model">
    <rect class="cls-9" x="180" y="55.1" width="234" height="64.5" rx="8" ry="8"></rect><text class="cls-1" transform="translate(240.4 82.5)"><tspan x="0" y="0">从 AI Hub 中选择预优化 </tspan><tspan x="0" y="19.2">模型</tspan></text><g>
      <path class="cls-7" d="M227.5,85.1l-10.6-2.7c-.7-.2-1.2-.7-1.4-1.4l-2.7-10.6c-.2-.8-.8-1.4-1.6-1.6-.6-.2-1.2,0-1.8.2-.5.3-.9.8-1.1,1.5l-2.7,10.6c-.2.7-.7,1.2-1.4,1.4l-10.6,2.7c-.8.2-1.4.8-1.6,1.6-.2.6,0,1.2.2,1.8.3.6.8.9,1.5,1.1l10.6,2.7c.7.2,1.2.7,1.4,1.4l2.7,10.6c.2.8.8,1.4,1.6,1.6.2,0,.4,0,.6,0,1,0,2-.7,2.3-1.8l2.7-10.6c.2-.7.7-1.2,1.4-1.4l10.6-2.7c.8-.2,1.4-.9,1.6-1.6.3-1.3-.4-2.6-1.7-2.9ZM216.2,89.5c-1.7.4-3.1,1.8-3.6,3.6l-2.1,8.1-2.1-8.1h0c-.4-1.7-1.8-3.1-3.6-3.6l-8.1-2.1,8.1-2.1c1.7-.4,3.1-1.8,3.6-3.5l2.1-8.1,2.1,8.1c.4,1.7,1.8,3.1,3.6,3.6l8.1,2.1-8.1,2.1Z"></path>
      <path class="cls-7" d="M220.8,76.8h1.9v1.9c0,.8.7,1.5,1.5,1.5s1.5-.7,1.5-1.5v-1.9h1.9c.8,0,1.5-.7,1.5-1.5s-.7-1.5-1.5-1.5h-1.9v-1.9c0-.8-.7-1.5-1.5-1.5s-1.5.7-1.5,1.5v1.9h-1.9c-.8,0-1.5.7-1.5,1.5s.7,1.5,1.5,1.5Z"></path>
      <path class="cls-7" d="M198.5,96.2h-.2v-.2c0-.8-.7-1.5-1.5-1.5s-1.5.7-1.5,1.5v.2h-.2c-.8,0-1.5.7-1.5,1.5s.7,1.5,1.5,1.5h.2v.2c0,.8.7,1.5,1.5,1.5s1.5-.7,1.5-1.5v-.2h.2c.8,0,1.5-.7,1.5-1.5s-.7-1.5-1.5-1.5Z"></path>
    </g>
  </g>
  <a target="blank" href="https://docs.qualcomm.com/bundle/publicresource/topics/80-70014-15B/tflite.html" class="xref cursorpointer" onclick="Window.BookmapComponent.navigateExternalFile('https://docs.qualcomm.com/bundle/publicresource/topics/80-70014-15B/tflite.html')">
    <g id="scale-tflite" class="hoverbox-simple">
      <rect class="cls-9" x="739.2" y="105" width="234" height="64.5" rx="8" ry="8"></rect>
      <a target="blank" href="https://docs.qualcomm.com/bundle/publicresource/topics/80-70014-15B/tflite.html" class="xref cursorpointer" onclick="Window.BookmapComponent.navigateExternalFile('https://docs.qualcomm.com/bundle/publicresource/topics/80-70014-15B/tflite.html')">
        <text class="cls-2" transform="translate(801.5 141.9)"><tspan class="cls-5" x="0" y="0">扩展 (</tspan><tspan class="cls-6" x="48.9" y="0">TFLite</tspan><tspan class="cls-5" x="94.1" y="0">)</tspan></text>
      </a>
      <g>
        <rect class="cls-7" x="752.5" y="143.6" width="9.2" height="12.6" rx="1" ry="1"></rect>
        <rect class="cls-7" x="764.2" y="134.3" width="9.2" height="22" rx="1" ry="1"></rect>
        <path class="cls-7" d="M789.6,127.9l-8.3-9.3c-.4-.4-1.1-.4-1.5,0l-8.3,9.3c-.6.6-.1,1.7.7,1.7h3.7v25.6c0,.6.4,1,1,1h7.2c.6,0,1-.4,1-1v-25.6h3.7c.9,0,1.3-1,.7-1.7Z"></path>
      </g>
    </g>
  </a>
  <g id="upload-ai-model">
    <rect class="cls-9" x="178.8" y="150" width="234" height="64.5" rx="8" ry="8"></rect><text class="cls-1" transform="translate(240.8 186.9)"><tspan x="0" y="0">上传 AI 模型</tspan></text><g>
      <path class="cls-7" d="M219.6,174.7l-8.3-9.3c-.4-.4-1.1-.4-1.5,0l-8.3,9.3c-.6.6-.1,1.7.7,1.7h3.7v13.3c0,.6.4,1,1,1h7.2c.6,0,1-.4,1-1v-13.3h3.7c.9,0,1.3-1,.7-1.7Z"></path>
      <path class="cls-7" d="M222.5,189.5v6h-24v-6c0-.6-.4-1-1-1h-2c-.6,0-1,.4-1,1v9c0,.6.4,1,1,1h30c.6,0,1-.4,1-1v-9c0-.6-.4-1-1-1h-2c-.6,0-1,.4-1,1Z"></path>
    </g>
  </g>
  <a target="blank" href="https://app.aihub.qualcomm.com/docs/" class="xref cursorpointer" onclick="Window.BookmapComponent.navigateExternalFile('https://app.aihub.qualcomm.com/docs/')">
    <g id="ai-hub" class="hoverbox-simple">
      <rect class="cls-9" x="459.6" y="105.2" width="234" height="64.5" rx="8" ry="8"></rect>
      <a target="blank" href="https://app.aihub.qualcomm.com/docs/" class="xref cursorpointer" onclick="Window.BookmapComponent.navigateExternalFile('https://app.aihub.qualcomm.com/docs/')">
        <text class="cls-3" transform="translate(521.1 142.1)"><tspan x="0" y="0">AI Hub</tspan></text>
      </a>
      <g>
        <path class="cls-7" d="M477.5,136.2c-.4-1-1.4-1.7-2.6-1.7s-2.8,1.3-2.8,2.8,1.3,2.8,2.8,2.8,2.1-.7,2.6-1.7h6c0-.4,0-.8,0-1.2s0-.8,0-1.2h-6Z"></path>
        <path class="cls-7" d="M495.5,140.3c.3-.5.6-1.1.7-1.8,0-.4.1-.8.1-1.2s0-.8-.1-1.2c-.1-.6-.4-1.3-.7-1.8-.4-.7-1-1.2-1.6-1.6h0c-.5-.3-1.1-.6-1.8-.7h0c-.4,0-.8-.1-1.2-.1s-.8,0-1.2.1c-.6.1-1.3.4-1.8.7h0c-.7.4-1.2,1-1.6,1.6h0c-.3.5-.6,1.1-.7,1.8,0,.4-.1.8-.1,1.2s0,.8.1,1.2c.1.6.4,1.3.7,1.8.4.7,1,1.2,1.6,1.6h0c.5.3,1.1.6,1.8.7.4,0,.8.1,1.2.1s.8,0,1.2-.1h0c.6-.1,1.3-.4,1.8-.7h0c.7-.4,1.2-1,1.6-1.6h0Z"></path>
        <path class="cls-7" d="M504.3,138.6c.4,1,1.4,1.7,2.6,1.7s2.8-1.3,2.8-2.8-1.3-2.8-2.8-2.8-2.1.7-2.6,1.7h-6c0,.4,0,.8,0,1.2s0,.8,0,1.2h6Z"></path>
        <path class="cls-7" d="M495.3,131.4c.6.5,1.2,1,1.6,1.6l6.6-6.6c.6.3,1.3.5,2,.5,2.3,0,4.2-1.9,4.2-4.2,0-2.3-1.9-4.2-4.2-4.2s-4.2,1.9-4.2,4.2.2,1.4.5,2l-6.6,6.6Z"></path>
        <path class="cls-7" d="M476.2,127c.7,0,1.4-.2,2-.5l6.6,6.6c.5-.6,1-1.2,1.6-1.6l-6.6-6.6c.3-.6.5-1.3.5-2,0-2.3-1.9-4.2-4.2-4.2-2.3,0-4.2,1.9-4.2,4.2s1.9,4.2,4.2,4.2Z"></path>
        <path class="cls-7" d="M489.7,124v6c.4,0,.8,0,1.2,0s.8,0,1.2,0v-6c1-.4,1.7-1.4,1.7-2.6s-1.3-2.8-2.8-2.8-2.8,1.3-2.8,2.8.7,2.1,1.7,2.6Z"></path>
        <path class="cls-7" d="M505.5,147.8c-.7,0-1.4.2-2,.5l-6.6-6.6c-.5.6-1,1.2-1.6,1.6l6.6,6.6c-.3.6-.5,1.3-.5,2,0,2.3,1.9,4.2,4.2,4.2,2.3,0,4.2-1.9,4.2-4.2s-1.9-4.2-4.2-4.2Z"></path>
        <path class="cls-7" d="M492,150.8v-6c-.4,0-.8,0-1.2,0s-.8,0-1.2,0v6c-1,.4-1.7,1.4-1.7,2.6s1.3,2.8,2.8,2.8,2.8-1.3,2.8-2.8-.7-2.1-1.7-2.6Z"></path>
        <path class="cls-7" d="M486.5,143.4c-.6-.5-1.2-1-1.6-1.6l-6.6,6.6c-.6-.3-1.3-.5-2-.5-2.3,0-4.2,1.9-4.2,4.2s1.9,4.2,4.2,4.2,4.2-1.9,4.2-4.2-.2-1.4-.5-2l6.6-6.6Z"></path>
      </g>
    </g>
  </a>
</svg>

有关设置和入门指南，可参见 [AI Hub](https://app.aihub.qualcomm.com/docs/hub/getting_started.html#installation) documentation。

## 设置

1. 设置 Python 环境。
    在计算机上安装 [miniconda](https://docs.conda.io/projects/miniconda/en/latest/miniconda-install.html)。

    **Windows：**安装完成后，通过 Start 菜单打开 Anaconda 提示符窗口。

    **macOS/Linux：**安装完成后，打开一个新的 shell 窗口。

    为 Qualcomm^®^ AI Hub 设置 Python 虚拟环境：

        source <path>/miniconda3/bin/activate
        conda create python=3.8 -n qai_hub
        conda activate qai_hubCopy to clipboard
2. 安装 AI Hub Python 客户端。

        pip3 install qai-hub
        pip3 install "qai-hub[torch]"Copy to clipboard
3. 登录 AI Hub。
    前往 [AI Hub](https://aihub.qualcomm.com/) 并使用 Qualcomm ID 登录，查看所创建的作业的相关信息。

    登录后，导航至 *Account &gt; Settings &gt; API Token*。此时应提供一个可用于配置客户端的 API 令牌。
4. 在终端，使用以下命令通过 API 令牌配置客户端。

        qai-hub configure --api_token <INSERT_API_TOKEN>Copy to clipboard

## AI Hub 工作流程

**使用预优化模型。**

1. 导航到 [AI Hub Model Zoo](https://aihub.qualcomm.com/iot/models) 以访问可用于 Qualcomm Linux 开发套件的预优化模型。
2. 从左侧窗格中选择 *Qualcomm QCS6490* 作为芯片组，来筛选适用于 RB3Gen2 的模型。
3. 从筛选结果视图中选择一个模型以导航到模型页面。
4. 在模型页面上，从下拉列表中选择 *Qualcomm QCS6490*，然后选择 *TorchScript &gt; TFLite* 路径。
5. 点击下载按钮后开始模型下载。下载的模型已经过预先优化，可直接 [部署](https://docs.qualcomm.com/doc/80-70015-15BY/topic/develop-own-app.html)。

![](data:image/jpeg;base64,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)

**引入用户自己的模型**

1. 选择 PyTorch 或 Onnx 格式的预训练模型。
2. 使用 Python API 将模型提交至 AI Hub 以进行编译或优化。
    提交编译作业时，您必须选择设备或芯片组以及目标 runtime 才能编译模型。RB3Gen2 支持 TFLite runtime。

| 芯片组 | Runtime | CPU | GPU | HTP |
    | --- | --- | --- | --- | --- |
    | QCS6490 | TFLite | INT8,FP16, FP32 | FP16,FP32 | INT8,INT16 |

    提交后，AI Hub 会为该作业生成一个唯一的 ID。用户可以使用此作业 ID 查看作业详情。
3. AI Hub 会根据选择的设备和 runtime 对模型进行优化。
    - 或者，也可以提交作业以便在源自设备集群且已经过配置的实际设备上对优化模型进行分析或推理（使用 Python API）。
        - 性能分析：在已配置的设备上对模型进行基准测试并提供统计数据，包括层级的平均推理时间、runtime 配置等。
        - 推理：作为推理作业执行过程中的一部分，基于提交的数据使用优化模型在已配置的设备上运行该模型进行推理通过。
4. 提交的每项作业都可以在 AI Hub 门户中进行审核。提交编译作业时，将提供优化模型的可下载链接。然后，该优化模型可以部署在 RB3Gen2 等本地开发设备上。

下方所示为从 [AI Hub documentation](https://aihub.qualcomm.com/iot/models) 中获取的所述工作流程的示例。在本示例中，会将源自 PyTorch 的 MobileNet V2 预训练模型上传到 AI Hub，并编译为优化的 TFLite 模型以便在 RB3Gen2 芯片组上运行。

    import qai_hub as hub
    import torch
    from torchvision.models import mobilenet_v2
    import numpy as np
    
    # Using pre-trained MobileNet
    torch_model = mobilenet_v2(pretrained=True)
    torch_model.eval()
    
    # Trace model (for on-device deployment)
    input_shape = (1, 3, 224, 224)
    example_input = torch.rand(input_shape)
    traced_torch_model = torch.jit.trace(torch_model, example_input)
    
    # Compile and optimize the model for a specific device
    compile_job = hub.submit_compile_job(
        model=traced_torch_model,
        device=hub.Device("QCS6490 (Proxy)"),
        input_specs=dict(image=input_shape),
        #compile_options="--target_runtime tflite",
    )
    
    # Profiling Job
    profile_job = hub.submit_profile_job(
        model=compile_job.get_target_model(),
        device=hub.Device("QCS6490 (Proxy)"),
    )
    
    sample = np.random.random((1, 3, 224, 224)).astype(np.float32)
    
    # Inference Job
    inference_job = hub.submit_inference_job(
        model=compile_job.get_target_model(),
        device=hub.Device("QCS6490 (Proxy)"),
        inputs=dict(image=[sample]),
    )
    
    # Download model
    compile_job.download_target_model(filename="/tmp/mobilenetv2.tflite")Copy to clipboard

Note: 要停用先前激活的 qai\_hub 环境，可使用以下命令。

    conda deactivateCopy to clipboard

模型下载完毕后，即可直接 [部署](https://docs.qualcomm.com/doc/80-70015-15BY/topic/develop-own-app.html)。

有关 AI Hub 工作流程和 API 的更多详细信息，可参见 [AI Hub Documentation](https://app.aihub.qualcomm.com/docs/hub/index.html#examples)。

Last Published: Jan 26, 2026

[Previous Topic
编译并优化模型](https://docs.qualcomm.com/bundle/publicresource/80-70015-15BY/topics/compile-optimize.md) [Next Topic
TFLite](https://docs.qualcomm.com/bundle/publicresource/80-70015-15BY/topics/tflite.md)