神经处理单元 (NPU) 提供针对深度学习工作负载优化的专用硬件块。它们在现代片上系统 (SoC) 中越来越常见,尤其是在移动设备上。它们具有高性能,非常适合运行 LLM 推理。
LiteRT-LM 是一个 C++ 库,旨在在各种设备(从手机到嵌入式系统)上高效运行语言模型流水线。它为开发者提供了创建和部署复杂语言模型工作流的工具,现在还可实现无缝 NPU 集成。
NPU 供应商
LiteRT-LM 支持使用以下供应商的 NPU 加速运行 LLM。根据您想尝试的供应商选择相应说明:
快速入门
Qualcomm AI Engine Direct
第 1 步:下载 .litertlm 模型
下载与您的 SoC 匹配的 .litertlm(见下例)。您可以查询设备的 SoC:
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"
| 型号 | SoC | 量化 | 上下文长度 | 模型大小 (MB) | 下载 |
|---|---|---|---|---|---|
| Gemma3-1B | SM8750 | 每个通道 4 位 | 1280 | 658 | 下载 |
| Gemma3-1B | SM8650 | 每个通道 4 位 | 1280 | 658 | 下载 |
| Gemma3-1B | SM8550 | 每个通道 4 位 | 1280 | 657 | 下载 |
第 2 步:下载并提取 QAIRT 库
下载 QAIRT SDK,将其解压缩,然后设置 QAIRT_ROOT:
unzip <your_file.zip> -d ~/
QAIRT_ROOT=~/qairt/2.34.0.250424
第 3 步:构建 LiteRT-LM 运行时 / 库
安装 Android NDK r28b+ 并构建:
bazel build --config=android_arm64 //runtime/engine:litert_lm_main
bazel build --config=android_arm64 \
@litert//litert/vendors/qualcomm/dispatch:dispatch_api_so
第 4 步:在设备上运行模型
设置设备路径并推送资源:
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
运行以下命令:
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
步骤概览
MediaTek 流程与 Qualcomm 流程类似:使用为 SoC 构建的 .litertlm,包含 NeuroPilot 运行时库,构建 litert_lm_main,推送资源,并使用 --device=mediatek_npu 运行。