Le NPU (Neural Processing Unit) offrono blocchi hardware specializzati ottimizzati per i carichi di lavoro di deep learning. Sono sempre più disponibili nei moderni system on a chip (SoC), soprattutto sui dispositivi mobili. Le loro prestazioni elevate le rendono ideali per l'esecuzione dell'inferenza LLM.
LiteRT-LM è una libreria C++ progettata per eseguire in modo efficiente pipeline di modelli linguistici su un'ampia gamma di dispositivi, dai cellulari ai sistemi incorporati. Fornisce agli sviluppatori gli strumenti per creare e implementare flussi di lavoro sofisticati per modelli linguistici, ora con un'integrazione perfetta della NPU.
Fornitori di NPU
LiteRT-LM supporta l'esecuzione di LLM utilizzando l'accelerazione NPU con i seguenti fornitori. Scegli le istruzioni a seconda del fornitore che vuoi provare:
Avvio rapido
- Segui i prerequisiti per configurare l'ambiente e il repository.
- Assicurati che
adbsia installato e che un dispositivo sia connesso. - Consulta la guida rapida e la
litert_lm_maindemo della riga di comando.
Qualcomm AI Engine Direct
Passaggio 1: scarica il .litertlmmodello
Scarica un .litertlm corrispondente al tuo SoC (esempi di seguito). Puoi eseguire una query sul SoC
del dispositivo:
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"
| Modello | SoC | Quantizzazione | Dimensioni del contesto | Dimensioni del modello (MB) | Scarica |
|---|---|---|---|---|---|
| Gemma3-1B | SM8750 | 4 bit per canale | 1280 | 658 | scaricare |
| Gemma3-1B | SM8650 | 4 bit per canale | 1280 | 658 | scaricare |
| Gemma3-1B | SM8550 | 4 bit per canale | 1280 | 657 | scaricare |
Passaggio 2: scarica ed estrai le librerie QAIRT
Scarica l'SDK QAIRT, estrailo e imposta QAIRT_ROOT:
unzip <your_file.zip> -d ~/
QAIRT_ROOT=~/qairt/2.34.0.250424
Passaggio 3: crea il runtime / le librerie LiteRT-LM
Installa Android NDK r28b+ e crea:
bazel build --config=android_arm64 //runtime/engine:litert_lm_main
bazel build --config=android_arm64 \
@litert//litert/vendors/qualcomm/dispatch:dispatch_api_so
Passaggio 4: esegui il modello sul dispositivo
Imposta il percorso del dispositivo e invia gli asset:
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
Esegui:
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
Panoramica dei passaggi
Il flusso di MediaTek è simile a quello di Qualcomm: utilizza un .litertlm creato per il tuo SoC, includi
le librerie di runtime NeuroPilot, crea litert_lm_main, invia gli asset ed esegui con
--device=mediatek_npu.