# AI Hub를 설정하여 AI 모델 최적화

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" 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>
## 환경 설정

1. Python 환경을 설정합니다. 컴퓨터에 [miniconda](https://docs.conda.io/projects/miniconda/en/latest/miniconda-install.html) 를 설치합니다.

Tab Windows
Tab macOS/Linux

설치가 완료되면 Start(시작) 메뉴에서 Anaconda 프롬프트를 엽니다.

설치가 완료되면 새로운 셸 창을 엽니다.

    AI Hub의 Python 가상 환경을 설정합니다.

conda activate
        Copy to clipboard

conda create python=3.10 -n qai_hub
        Copy to clipboard

conda activate qai_hub
        Copy to clipboard
2. git을 설치합니다.

sudo apt-get install git
        Copy to clipboard
3. AI Hub Python 클라이언트를 설치합니다.

pip3 install qai-hub
        Copy to clipboard

pip3 install "qai-hub[torch]"
        Copy to clipboard
4. AI Hub에 로그인합니다.

    [AI Hub](https://aihub.qualcomm.com/) 로 이동하고 Qualcomm ID로 로그인하여 생성한 작업에 대한 정보를 확인합니다.

    로그인되면 *Account &gt; Settings &gt; API Token* 으로 이동합니다. 그러면 클라이언트를 구성하는 데 사용할 수 있는 API 토큰이 제공됩니다.
5. 다음 명령어를 터미널에 입력하여 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 평가 키트에 사용할 수 있는 사전 최적화된 모델에 접근합니다.
2. EVK에 사용할 수 있는 모델을 필터링합니다. 예를 들어 왼쪽 창에서 *Qualcomm QCS6490* 을 칩셋으로 선택하여 RB3Gen2에 사전 최적화된 모델을 다운로드할 수 있습니다.
3. 필터링된 보기에서 모델을 선택하여 모델 페이지로 이동합니다.
4. 모델 페이지의 드롭다운 목록에서 칩셋을 선택하고 *TorchScript &gt; LiteRT* 경로를 선택합니다.
5. 다운로드를 선택하여 모델 다운로드를 시작합니다. 다운로드한 모델은 사전 최적화되어 배포 준비를 마친 상태입니다. 모델 배포에 대한 자세한 내용은 [자체 AI/ML 애플리케이션 개발](https://docs.qualcomm.com/doc/80-70018-15BK/topic/develop-your-own-application.html) 을 참조하세요.

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

### 자체 모델 가져오기

1. PyTorch 또는 ONNX 형식의 사전 학습된 모델을 선택합니다.
2. python API를 사용하여 컴파일 또는 최적화할 모델을 AI Hub에 제출합니다.

    컴파일 작업을 제출할 때 반드시 EVK용 기기 또는 칩셋과 모델을 컴파일할 타겟 런타임을 선택해야 합니다. RB3Gen2의 경우 LiteRT 런타임이 지원됩니다.

    | **칩셋** | **런타임** | **CPU** | **GPU** | **HTP** |
    | --- | --- | --- | --- | --- |
    | QCS6490 | LiteRT | INT8, FP16, FP32 | FP16, FP32 | INT8, INT16 |

    제출하면 AI Hub에서 작업의 고유 ID가 생성됩니다. 이 작업 ID를 사용하여 작업 세부 정보를 확인할 수 있습니다.
3. AI Hub는 선택한 기기와 런타임에 기반하여 모델을 최적화합니다.

    - 선택 사항으로, 기기 팜에서 프로비저닝된 실제 기기에서 Python API를 사용하여 최적화된 모델을 프로파일링하거나 추론하는 작업을 제출할 수 있습니다.

        - 프로파일링: 프로비저닝된 기기에서 모델을 벤치마크하고, 계층 수준의 평균 추론 시간, 런타임 구성 등을 포함한 통계를 제공합니다.
        - 추론: 프로비저닝된 기기에서 모델을 실행하여 추론 작업의 일부로 제출된 데이터에 대해 최적화된 모델을 사용하여 추론을 수행합니다.
4. 제출된 각 작업은 AI Hub 포털에서 검토할 수 있습니다. 제출된 컴파일 작업은 최적화된 모델을 다운로드할 수 있는 링크를 제공합니다. 그러면 이 최적화된 모델을 RB3Gen2와 같은 로컬 개발 기기에 배포할 수 있습니다.

다음은 설명한 워크플로우의 예시로, [AI Hub 문서](https://aihub.qualcomm.com/iot/models) 에서 가져온 것입니다. 이 예시에서는 PyTorch의 사전 학습된 모델 MobileNet V2를 AI Hub에 업로드하고, 최적화된 LiteRT 모델로 컴파일하여 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

참고

이전에 활성화된 `qai_hub` 환경을 비활성화하려면 다음 명령어를 사용하세요.

conda deactivate
    Copy to clipboard

모델이 다운로드되면 [자체 AI/ML 애플리케이션 개발](https://docs.qualcomm.com/doc/80-70018-15BK/topic/develop-your-own-application.html) 에 사용할 수 있습니다.

AI Hub 워크플로우 및 API에 대한 자세한 내용은 [AI Hub 문서](https://app.aihub.qualcomm.com/docs/hub/index.html#examples) 를 참조하거나, [AI Hub 튜토리얼 비디오](https://www.youtube.com/watch?v=V1CDWYZ7Shw&amp;list=PLxeazpXYyqtOowtUdvigvAgMV5_K1KIrh) 를 살펴보거나, 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 15, 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>

참고

위의 비디오에서는 Python 3.8을 예시로 사용합니다.

Python 3.8과 Python 3.10이 지원됩니다.

Last Published: Oct 15, 2025

[Previous Topic
AI 모델 컴파일 및 최적화](https://docs.qualcomm.com/bundle/publicresource/80-70018-15BK/topics/compile-and-optimize-model.md) [Next Topic
LiteRT를 사용하여 AI 모델 최적화](https://docs.qualcomm.com/bundle/publicresource/80-70018-15BK/topics/tflite.md)