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
- Aby skonfigurować środowisko i repozytorium, wykonaj czynności opisane w sekcji Wymagania wstępne.
- Sprawdź, czy
adbjest zainstalowany i czy urządzenie jest połączone. - Zapoznaj się z przewodnikiem dla początkujących i
litert_lm_maindemonstracją 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.