Las unidades de procesamiento neuronal (NPU) ofrecen bloques de hardware especializados y optimizados para cargas de trabajo de aprendizaje profundo. Cada vez están más disponibles en los sistemas en chip (SoC) modernos, especialmente en los dispositivos móviles. Su alto rendimiento los hace ideales para ejecutar la inferencia de LLM.
LiteRT-LM es una biblioteca de C++ diseñada para ejecutar de manera eficiente canalizaciones de modelos de lenguaje en una amplia variedad de dispositivos, desde teléfonos celulares hasta sistemas integrados. Proporciona a los desarrolladores las herramientas para crear e implementar flujos de trabajo sofisticados de modelos de lenguaje, ahora con una integración perfecta de la NPU.
Proveedores de NPU
LiteRT-LM admite la ejecución de LLM con aceleración de NPU con los siguientes proveedores. Elige las instrucciones según el proveedor que quieras probar:
Inicio rápido
- Sigue los requisitos previos para configurar el entorno y el repositorio.
- Asegúrate de que
adbesté instalado y de que haya un dispositivo conectado. - Consulta la Guía de inicio rápido y la demostración de la línea de comandos de
litert_lm_main.
Qualcomm AI Engine Direct
Paso 1: Descarga el modelo .litertlm
Descarga un archivo .litertlm que coincida con tu SoC (ejemplos a continuación). Puedes consultar el SoC de tu 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"
| Modelo | SoC | Cuantización | Tamaño del contexto | Tamaño del modelo (MB) | Descargar |
|---|---|---|---|---|---|
| Gemma3-1B | SM8750 | 4 bits por canal | 1280 | 658 | descargar |
| Gemma3-1B | SM8650 | 4 bits por canal | 1280 | 658 | descargar |
| Gemma3-1B | SM8550 | 4 bits por canal | 1280 | 657 | descargar |
Paso 2: Descarga y extrae las bibliotecas de QAIRT
Descarga el SDK de QAIRT, extráelo y configura QAIRT_ROOT:
unzip <your_file.zip> -d ~/
QAIRT_ROOT=~/qairt/2.34.0.250424
Paso 3: Compila el entorno de ejecución o las bibliotecas de LiteRT-LM
Instala Android NDK r28b o una versión posterior y compila de la siguiente manera:
bazel build --config=android_arm64 //runtime/engine:litert_lm_main
bazel build --config=android_arm64 \
@litert//litert/vendors/qualcomm/dispatch:dispatch_api_so
Paso 4: Ejecuta el modelo en el dispositivo
Configura la ruta de acceso del dispositivo y envía los recursos:
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
Ejecuta lo siguiente:
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
Descripción general de los pasos
El flujo de MediaTek refleja el de Qualcomm: usa un .litertlm compilado para tu SoC, incluye las bibliotecas de tiempo de ejecución de NeuroPilot, compila litert_lm_main, envía recursos y ejecuta con --device=mediatek_npu.