LiteRT-LM을 사용하여 NPU에서 LLM 실행

신경망 처리 장치 (NPU)는 딥 러닝 워크로드에 최적화된 특수 하드웨어 블록을 제공합니다. 이러한 기능은 특히 휴대기기에서 최신 시스템온칩 (SoC)에서 점점 더 많이 제공되고 있습니다. 고성능 특성으로 인해 LLM 추론을 실행하는 데 적합합니다.

LiteRT-LM은 휴대전화부터 임베디드 시스템까지 다양한 기기에서 언어 모델 파이프라인을 효율적으로 실행하도록 설계된 C++ 라이브러리입니다. 개발자에게 정교한 언어 모델 워크플로를 만들고 배포하는 도구를 제공하며, 이제 원활한 NPU 통합이 지원됩니다.

NPU 공급업체

LiteRT-LM은 다음 공급업체와 함께 NPU 가속을 사용하여 LLM 실행을 지원합니다. 시도하려는 공급업체에 따라 안내를 선택하세요.

빠른 시작

  1. 기본 요건에 따라 환경과 저장소를 설정합니다.
  2. adb가 설치되어 있고 기기가 연결되어 있는지 확인합니다.
  3. 빠른 시작litert_lm_main 명령줄 데모를 참고하세요.

Qualcomm AI Engine Direct

1단계: .litertlm 모델 다운로드

SoC와 일치하는 .litertlm를 다운로드합니다 (아래 예 참고). 기기 SoC를 쿼리할 수 있습니다.

SOC_MODEL=$(adb shell getprop ro.soc.model | tr '[:upper:]' '[:lower:]')
echo "https://huggingface.co/litert-community/Gemma3-1B-IT/blob/main/Gemma3-1B-IT_q4_ekv1280_${SOC_MODEL}.litertlm"
모델 SoC 양자화 컨텍스트 크기 모델 크기 (MB) 다운로드
Gemma3-1B SM8750 채널당 4비트 1280 658 다운로드
Gemma3-1B SM8650 채널당 4비트 1280 658 다운로드
Gemma3-1B SM8550 채널당 4비트 1280 657 다운로드

2단계: QAIRT 라이브러리 다운로드 및 추출

QAIRT SDK를 다운로드하고 추출한 후 QAIRT_ROOT를 설정합니다.

unzip <your_file.zip> -d ~/
QAIRT_ROOT=~/qairt/2.34.0.250424

3단계: LiteRT-LM 런타임 / 라이브러리 빌드

Android NDK r28b 이상을 설치하고 빌드합니다.

bazel build --config=android_arm64 //runtime/engine:litert_lm_main
bazel build --config=android_arm64 \
    @litert//litert/vendors/qualcomm/dispatch:dispatch_api_so

4단계: 기기에서 모델 실행하기

기기 경로를 설정하고 애셋을 푸시합니다.

export DEVICE_FOLDER=/data/local/tmp/
adb shell mkdir -p $DEVICE_FOLDER
export MODEL_PATH=<path-to-model.litertlm>
adb push $MODEL_PATH $DEVICE_FOLDER/model.litertlm
adb push $QAIRT_ROOT/lib/aarch64-android/* $DEVICE_FOLDER/
adb push bazel-bin/runtime/engine/litert_lm_main $DEVICE_FOLDER/
adb shell chmod +x $DEVICE_FOLDER/litert_lm_main

실행:

adb shell "cd $DEVICE_FOLDER && \
  QAIRT_ROOT=$DEVICE_FOLDER \
  ./litert_lm_main --model=model.litertlm \
  --prompt='Explain the history of LiteRT in 3 bullet points' \
  --device=qualcomm_npu --rounds=1"

MediaTek NeuroPilot

단계 개요

MediaTek 흐름은 Qualcomm과 유사합니다. SoC용으로 빌드된 .litertlm를 사용하고, NeuroPilot 런타임 라이브러리를 포함하고, litert_lm_main를 빌드하고, 애셋을 푸시하고, --device=mediatek_npu로 실행합니다.