LiteRT-LM kullanarak NPU'da LLM'leri yürütme

Sinirsel İşleme Birimleri (NPU'lar), derin öğrenme iş yükleri için optimize edilmiş özel donanım blokları sunar. Bu türler, özellikle mobil cihazlarda olmak üzere, modern çip üzerinde sistemlerde (SoC'ler) giderek daha fazla kullanılmaktadır. Yüksek performanslı yapıları nedeniyle LLM çıkarımı çalıştırmak için idealdirler.

LiteRT-LM, dil modeli işlem hatlarını cep telefonlarından yerleşik sistemlere kadar çeşitli cihazlarda verimli bir şekilde çalıştırmak için tasarlanmış bir C++ kitaplığıdır. Geliştiricilere, gelişmiş dil modeli iş akışları oluşturup dağıtmak için araçlar sunar. Artık sorunsuz NPU entegrasyonu da mevcuttur.

NPU Tedarikçileri

LiteRT-LM, aşağıdaki satıcılarla NPU hızlandırması kullanarak LLM'lerin çalıştırılmasını destekler. Hangi tedarikçiyi denemek istediğinize bağlı olarak aşağıdaki talimatları uygulayın:

Hızlı Başlangıç

  1. Ortamı ve depoyu ayarlamak için Ön koşullar bölümündeki adımları uygulayın.
  2. adb uygulamasının yüklü olduğundan ve bir cihazın bağlı olduğundan emin olun.
  3. Hızlı Başlangıç ve litert_lm_main komut satırı demosuna göz atın.

Qualcomm AI Engine Direct

1. adım: .litertlm modelini indirin

SoC'nize uygun bir .litertlm indirin (aşağıda örnekler verilmiştir). Cihazınızın SoC'si hakkında sorgu gönderebilirsiniz:

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 Çip üzerinde sistem (SoC) Kuantizasyon Bağlam boyutu Model Boyutu (MB) İndir
Gemma3-1B SM8750 Kanal başına 4 bit 1.280 658 download
Gemma3-1B SM8650 Kanal başına 4 bit 1.280 658 download
Gemma3-1B SM8550 Kanal başına 4 bit 1.280 657 download

2. adım: QAIRT kitaplıklarını indirip çıkarın

QAIRT SDK'sını indirip ayıklayın ve QAIRT_ROOT değerini ayarlayın:

unzip <your_file.zip> -d ~/
QAIRT_ROOT=~/qairt/2.34.0.250424

3. adım: LiteRT-LM çalışma zamanını / kitaplıklarını oluşturun

Android NDK r28b+ sürümünü yükleyin ve derleyin:

bazel build --config=android_arm64 //runtime/engine:litert_lm_main
bazel build --config=android_arm64 \
    @litert//litert/vendors/qualcomm/dispatch:dispatch_api_so

4. adım: Modeli cihazda çalıştırın

Cihaz yolunuzu ayarlayın ve öğeleri gönderin:

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

Çalıştır:

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

Adımlara genel bakış

MediaTek akışı, Qualcomm'u yansıtır: SoC'niz için .litertlm oluşturun, NeuroPilot çalışma zamanı kitaplıklarını ekleyin, litert_lm_main oluşturun, öğeleri gönderin ve --device=mediatek_npu ile çalıştırın.