# Thiết lập AI Hub để tối ưu hóa mô hình AI

Để tạo nguyên mẫu nhanh cho các mô hình trên phần cứng Qualcomm AI, AI Hub giúp tối ưu hóa, xác thực và triển khai mô hình học máy trên thiết bị cho các trường hợp xử lý hình ảnh, âm thanh và giọng nói

<?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" aria-label="../_images/ai-hub_QLI.svg">
  <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">Choose preoptimized </tspan><tspan x="0" y="19.2">Model from AI Hub</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">Scale (</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">Upload AI Model</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>
## Thiết lập môi trường

1. Thiết lập môi trường Python. Cài đặt [miniconda](https://docs.conda.io/projects/miniconda/en/latest/miniconda-install.html) trên máy.

Tab Windows
Tab macOS/Linux

Khi quá trình cài đặt hoàn tất, hãy mở Anaconda prompt từ menu Start.

Khi quá trình cài đặt hoàn tất, hãy mở một cửa sổ shell mới.

    Thiết lập môi trường Python ảo cho AI Hub.

conda activate
        Copy to clipboard

conda create python=3.10 -n qai_hub
        Copy to clipboard

conda activate qai_hub
        Copy to clipboard
2. Cài đặt git.

sudo apt-get install git
        Copy to clipboard
3. Cài đặt AI Hub Python client.

pip3 install qai-hub
        Copy to clipboard

pip3 install "qai-hub[torch]"
        Copy to clipboard
4. Đăng nhập vào AI Hub.

    Truy cập vào [AI Hub](https://aihub.qualcomm.com/) và đăng nhập bằng Qualcomm ID của bạn để xem thông tin về các tác vụ bạn tạo.

    Sau khi đăng nhập, hãy chuyển đến *Account &gt; Settings &gt; API Token* . Thao tác này sẽ cung cấp một API token mà bạn có thể dùng để đặt cấu hình client.
5. Đặt cấu hình client bằng API token của bạn thông qua lệnh sau trong cửa sổ dòng lệnh.

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

## Chọn một quy trình làm việc của AI Hub

### Dùng thử mô hình được tối ưu hóa sẵn

1. Truy cập vào [AI Hub Model Zoo](https://aihub.qualcomm.com/iot/models) để xem các mô hình được tối ưu hóa sẵn dành cho Qualcomm evaluation kits.
2. Lọc các mô hình dành cho EVK của bạn. Ví dụ: Bạn có thể tải xuống mô hình được tối ưu hóa sẵn cho RB3Gen2 bằng cách chọn *Qualcomm QCS6490* làm chipset trong ngăn bên trái.
3. Chọn một mô hình trong danh sách đã lọc để chuyển đến trang của mô hình đó.
4. Trên trang mô hình, chọn chipset trong danh sách thả xuống rồi chọn đường dẫn *TorchScript &gt; LiteRT* .
5. Chọn tải xuống để bắt đầu tải mô hình xuống. Mô hình đã tải xuống sẽ được tối ưu hóa sẵn và sẵn sàng triển khai. Hãy xem [Phát triển ứng dụng AI/ML của riêng bạn](https://docs.qualcomm.com/doc/80-70018-15BV/topic/develop-your-own-application.html) để biết thêm thông tin về cách triển khai mô hình.

![../_images/ai-hub-download.png](data:image/png;base64,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)

### Dùng mô hình của riêng bạn

1. Chọn một mô hình được huấn luyện sẵn ở định dạng PyTorch hoặc ONNX.
2. Gửi một mô hình để biên dịch hoặc tối ưu hóa lên AI Hub bằng các API Python.

    Khi gửi một tác vụ biên dịch, bạn phải chọn thiết bị hoặc chipset cho EVK và runtime mục tiêu để biên dịch mô hình. LiteRT runtime được hỗ trợ cho RB3Gen2.

    | **Chipset** | **Runtime** | **CPU** | **GPU** | **HTP** |
    | --- | --- | --- | --- | --- |
    | QCS6490 | LiteRT | INT8,FP16, FP32 | FP16,FP32 | INT8,INT16 |

    Sau khi bạn gửi, AI Hub sẽ tạo một ID riêng biệt cho tác vụ. Bạn có thể dùng ID tác vụ này để xem thông tin tác vụ.
3. AI Hub tối ưu hóa mô hình dựa trên lựa chọn thiết bị và runtime.

    - Bạn cũng có thể gửi tác vụ để phân tích hiệu năng hoặc suy luận mô hình được tối ưu hóa (bằng API Python) trên thiết bị thực được cung cấp từ một device farm.

        - Phân tích hiệu năng: Benchmark mô hình trên thiết bị được cung cấp và cung cấp số liệu thống kê, bao gồm thời gian suy luận trung bình ở mức layer, cấu hình runtime, v.v.
        - Suy luận:  Thực hiện suy luận thông qua mô hình được tối ưu hóa trên dữ liệu được gửi như một phần của tác vụ suy luận bằng cách chạy mô hình trên thiết bị được cung cấp.
4. Mỗi tác vụ được gửi sẽ có sẵn để xem xét trong cổng thông tin AI Hub. Một tác vụ biên dịch được gửi sẽ cung cấp link có thể tải xuống mô hình được tối ưu hóa. Sau đó, bạn có thể triển khai mô hình được tối ưu hóa này trên thiết bị phát triển tại chỗ như RB3Gen2.

Dưới đây là một ví dụ về quy trình làm việc được mô tả lấy từ [tài liệu AI Hub](https://aihub.qualcomm.com/iot/models). Trong ví dụ này, một mô hình MobileNet V2 được huấn luyện sẵn từ PyTorch được tải lên AI Hub và biên dịch thành mô hình LiteRT được tối ưu hóa để chạy trên mục tiêu 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

Ghi chú

Để hủy kích hoạt môi trường `qai_hub` đã được kích hoạt trước đó, hãy dùng lệnh sau.

conda deactivate
    Copy to clipboard

Bạn có thể dùng mô hình được tải xuống để [Phát triển ứng dụng AI/ML của riêng bạn](https://docs.qualcomm.com/doc/80-70018-15BV/topic/develop-your-own-application.html).

Để biết thêm chi tiết về quy trình làm việc trên AI Hub và API, hãy xem [tài liệu AI Hub](https://app.aihub.qualcomm.com/docs/hub/index.html#examples), khám phá [video hướng dẫn AI Hub](https://www.youtube.com/watch?v=V1CDWYZ7Shw&amp;list=PLxeazpXYyqtOowtUdvigvAgMV5_K1KIrh) hoặc xem video bên dưới về cách phân tích hiệu năng mô hình trong AI Hub.

<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewbox="0 0 800 500" width="800" height="500" style="cursor:auto !important" aria-label="../_images/ai-hub-video.svg" svgdefaultwidth="680">
    <defs>
      <style>@import url("https://fonts.googleapis.com/css2?family=Roboto+Flex:opsz,wght@8..144,100..1000&amp;display=swap");
.svg-2 .bg-fill { fill: var(--color-background) }
.svg-2 .fill-text { color: var(--color-content); fill: var(--color-content) }
.svg-2 .video-hoverbox { transition: opacity 0.15s ease-in-out }
.svg-2 .video-hoverbox:hover { opacity: 0.9 }</style>
  </defs>

  <foreignobject x="0" y="0" width="800" height="500">
    <body xmlns="http://www.w3.org/1999/xhtml">
        <iframe width="800" height="500" src="https://players.brightcove.net/1414329538001/4JiZQnWhg_default/index.html?videoId=6366848482112" allowfullscreen="" allow="encrypted-media"></iframe>
    <div class='topic-detail'><div class='topic-updated-date'><span> Last Published: </span>Oct 22, 2025</div><div class='prev-and-next-links'><span class='previous-topic-link'><span aria-hidden='true' class='disabled' data-tip='' data-effect='solid'></span></span></div></div></body>
    </foreignobject>
</svg>

Ghi chú

Video bên trên dùng Python 3.8 làm ví dụ.

Hỗ trợ Python 3.8 và Python 3.10.

Last Published: Oct 22, 2025

[Previous Topic
Biên dịch và tối ưu hóa mô hình AI](https://docs.qualcomm.com/bundle/publicresource/80-70018-15BV/topics/compile-and-optimize-model.md) [Next Topic
Dùng LiteRT để tối ưu hóa mô hình AI](https://docs.qualcomm.com/bundle/publicresource/80-70018-15BV/topics/tflite.md)