Uruchamianie modeli LLM na NPU za pomocą LiteRT-LM

Jednostki Neural Processing Unit (NPU) to specjalistyczne bloki sprzętowe zoptymalizowane pod kątem zadań związanych z uczeniem głębokim. Są one coraz częściej dostępne w nowoczesnych systemach na chipie (SoC), zwłaszcza na urządzeniach mobilnych. Dzięki wysokiej wydajności doskonale nadają się do przeprowadzania wnioskowania LLM.

LiteRT-LM to biblioteka C++ zaprojektowana do wydajnego uruchamiania potoków modeli językowych na szerokiej gamie urządzeń, od telefonów komórkowych po systemy wbudowane. Zapewnia deweloperom narzędzia do tworzenia i wdrażania zaawansowanych przepływów pracy z modelami językowymi, teraz z bezproblemową integracją z NPU.

Dostawcy NPU

LiteRT-LM obsługuje uruchamianie LLM z użyciem akceleracji NPU w przypadku tych dostawców: Wybierz instrukcje w zależności od tego, którego dostawcę chcesz wypróbować:

Szybki start

  1. Aby skonfigurować środowisko i repozytorium, wykonaj czynności opisane w sekcji Wymagania wstępne.
  2. Sprawdź, czy adb jest zainstalowany i czy urządzenie jest połączone.
  3. Zapoznaj się z przewodnikiem dla początkującychlitert_lm_main demonstracją wiersza poleceń.

Qualcomm AI Engine Direct

Krok 1. Pobierz .litertlmmodel

Pobierz .litertlm pasujący do Twojego układu SoC (przykłady poniżej). Możesz wysłać zapytanie o SoC urządzenia:

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"
Model SOC Kwantyzacja Rozmiar kontekstu Rozmiar modelu (MB) Pobierz
Gemma3-1B SM8750 4-bitowy na kanał 1280 658 download
Gemma3-1B SM8650 4-bitowy na kanał 1280 658 download
Gemma3-1B SM8550 4-bitowy na kanał 1280 657 download

Krok 2. Pobierz i wyodrębnij biblioteki QAIRT

Pobierz pakiet QAIRT SDK, wyodrębnij go i ustaw QAIRT_ROOT:

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

Krok 3. Skompiluj środowisko wykonawcze / biblioteki LiteRT-LM

Zainstaluj Android NDK w wersji r28b lub nowszej i skompiluj:

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

Krok 4. Uruchom model na urządzeniu

Ustaw ścieżkę urządzenia i prześlij komponenty:

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

Uruchomienie:

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

Omówienie kroków

Proces MediaTek jest podobny do procesu Qualcomm: użyj .litertlm utworzonego dla Twojego układu SoC, uwzględnij biblioteki środowiska wykonawczego NeuroPilot, utwórz litert_lm_main, prześlij komponenty i uruchom --device=mediatek_npu.