Les NPU (Neural Processing Units) sont des blocs matériels spécialisés optimisés pour les charges de travail de deep learning. Elles sont de plus en plus disponibles dans les systèmes sur puce (SoC) modernes, en particulier sur les appareils mobiles. Leur nature très performante les rend particulièrement adaptés à l'exécution de l'inférence LLM.
LiteRT-LM est une bibliothèque C++ conçue pour exécuter efficacement des pipelines de modèles de langage sur un large éventail d'appareils, des téléphones mobiles aux systèmes embarqués. Il fournit aux développeurs les outils nécessaires pour créer et déployer des workflows de modèles de langage sophistiqués, désormais avec une intégration NPU fluide.
Fournisseurs de NPU
LiteRT-LM permet d'exécuter des LLM à l'aide de l'accélération NPU avec les fournisseurs suivants. Choisissez les instructions en fonction du fournisseur que vous souhaitez essayer :
Démarrage rapide
- Suivez les prérequis pour configurer l'environnement et le dépôt.
- Assurez-vous que
adbest installé et qu'un appareil est connecté. - Consultez le guide de démarrage rapide et la démonstration de la ligne de commande
litert_lm_main.
Qualcomm AI Engine Direct
Étape 1 : Téléchargez le modèle .litertlm
Téléchargez un .litertlm correspondant à votre SoC (voir les exemples ci-dessous). Vous pouvez interroger le SoC de votre appareil :
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"
| Modèle | SoC (System on Chip) | Quantification | Taille du contexte | Taille du modèle (Mo) | Télécharger |
|---|---|---|---|---|---|
| Gemma3-1B | SM8750 | 4 bits par canal | 1 280 | 658 | télécharger |
| Gemma3-1B | SM8650 | 4 bits par canal | 1 280 | 658 | télécharger |
| Gemma3-1B | SM8550 | 4 bits par canal | 1 280 | 657 | télécharger |
Étape 2 : Téléchargez et extrayez les bibliothèques QAIRT
Téléchargez le SDK QAIRT, extrayez-le et définissez QAIRT_ROOT :
unzip <your_file.zip> -d ~/
QAIRT_ROOT=~/qairt/2.34.0.250424
Étape 3 : Créez le runtime / les bibliothèques LiteRT-LM
Installez Android NDK r28b+ et compilez :
bazel build --config=android_arm64 //runtime/engine:litert_lm_main
bazel build --config=android_arm64 \
@litert//litert/vendors/qualcomm/dispatch:dispatch_api_so
Étape 4 : Exécutez le modèle sur l'appareil
Définissez le chemin d'accès à votre appareil et transférez les composants :
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
Exécutez la commande suivante :
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
Présentation des étapes
Le flux MediaTek est identique à celui de Qualcomm : utilisez un .litertlm conçu pour votre SoC, incluez les bibliothèques d'exécution NeuroPilot, compilez litert_lm_main, transférez les composants et exécutez avec --device=mediatek_npu.