LiteRT-LM, dil modeli işlem hatlarını cep telefonlarından yerleşik sistemlere kadar çok çeşitli cihazda verimli bir şekilde çalıştırmak için tasarlanmış platformlar arası bir kitaplıktır. Geliştiricilere, gelişmiş dil modeli iş akışları oluşturup dağıtmak için araçlar sunar. Artık sorunsuz NPU entegrasyonuyla.
CPU ve GPU'da LLM'leri çalıştırma
Platformlar arası geliştirme ve CPU/GPU donanım hızlandırmasıyla ilgili ayrıntılı talimatlar için LiteRT-LM GitHub deposuna bakın.
LLM'leri NPU'da çalıştırma
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ı olmaları, LLM çıkarımı çalıştırmak için idealdir.
NPU Tedarikçileri
LiteRT-LM, aşağıdaki satıcılarla NPU hızlandırması kullanarak LLM'lerin çalıştırılmasını destekler. Denemek istediğiniz tedarikçiye bağlı olarak aşağıdaki talimatları uygulayın:
Hızlı Başlangıç
Başlamak için önce ortamı ve depoyu ayarlamak üzere Ön koşullar bölümündeki talimatları uygulayın.
Ayrıca Android cihazınızla etkileşimde bulunabilmek için Android Debug Bridge'i doğru şekilde yüklediğinizden ve adb kullanılarak erişilebilen bağlı bir cihazınız olduğundan emin olun.
Daha ayrıntılı talimatlar için LiteRT-LM deposundaki Hızlı Başlangıç bölümüne göz atın ve litert_lm_main
komut satırı demosu hakkında daha fazla bilgi edinin.
Google Tensor
Google Tensor'da LLM'leri çalıştırmak için aşağıdaki adımları uygulayın:
1. adım: .litertlm modelini indirin
LiteRT-LM çalışma zamanı, .litertlm biçimindeki modellerle çalışmak üzere tasarlanmıştır.
Uyumlu modelleri aşağıdaki tabloda bulup indirebilirsiniz:
| Model | Çip üzerinde sistem (SoC) | Kuantizasyon | Bağlam boyutu | Model Boyutu (Mb) | İndirme bağlantısı |
|---|---|---|---|---|---|
| Gemma3-1B | Tensor_G5 | Kanal başına 8 bit | 1.280 | 1704 | download |
Aşağıda, telefonunuzun çip üzerinde sistemine uygun modeli indirmenize yardımcı olabilecek bir komut örneği verilmiştir (Dosyayı indirme iznine sahip olmak için giriş yapmanız ve formu onaylamanız gerektiğini unutmayın). adb kullanılarak erişilebilen bağlı bir cihaz olduğundan emin olmanız gerekir.
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_Google_${SOC_MODEL}.litertlm"
$SOC_MODEL'in destek tablosunda listelendiğini doğrulayın. Oluşturulan bağlantı, desteklenmeyen modellerde çalışmaz. NPÜ'ler için düzenli olarak yeni destekler eklenmektedir. Cihazınızın desteklenip desteklenmediğini öğrenmek için daha sonra tekrar kontrol edin.
2. adım: LiteRT-LM çalışma zamanını / kitaplıklarını oluşturun
Linux'ta geliştirme
Android için ikili program oluşturabilmek üzere En Son Kararlı Sürüm'den NDK r28b veya daha yeni bir sürümün yüklenmesi gerekir.
Şu adımları uygulayın:
- En Son Kararlı Sürüm sayfasından en son kararlı NDK paketini (
zipdosyası) indirin. zipdosyasını tercih ettiğiniz konuma (örneğin,/path/to/AndroidNDK/) çıkarın.ANDROID_NDK_HOME, NDK dizinini gösterecek şekilde ayarlayın. Şuna benzer bir şey olmalıdır:
export ANDROID_NDK_HOME=/path/to/AndroidNDK/
Bu kurulumla, aşağıdaki komutu kullanarak litert_lm_main ikilisini oluşturun:
bazel build --config=android_arm64 //runtime/engine:litert_lm_main
Ayrıca, LiteRT-LM çalışma zamanının NPU ile etkileşim kurmasını sağlamak için dağıtım API kitaplığını oluşturun:
bazel build --config=android_arm64 \
@litert//litert/vendors/google_tensor/dispatch:dispatch_api_so
3. adım: Modeli cihazda çalıştırma
İkili dosya başarıyla oluşturulduktan sonra modeli cihazda çalıştırmayı deneyebiliriz.DEVICE_FOLDER için yazma erişiminiz olduğundan emin olun:
İkili programı Android cihazınızda çalıştırmak için birkaç öğe/ikili program göndermemiz gerekiyor. Öncelikle DEVICE_FOLDER cihazınızı ayarlayın ve cihaza yazma erişiminiz olduğundan emin olun (genellikle /data/local/tmp/ altına öğe yerleştirebilirsiniz):
export DEVICE_FOLDER=/data/local/tmp/
adb shell mkdir -p $DEVICE_FOLDER
export MODEL_PATH=<path to your downloaded .litertlm >
.litertlm dosyasını gönderin.
adb push $MODEL_PATH $DEVICE_FOLDER/model.litertlm
2. adımda derlenen gönderme API'sini ve ana ikili dosyayı gönderin.
adb push bazel-bin/external/litert/litert/vendors/google_tensor/*/*.so \
$DEVICE_FOLDER
adb push prebuilt/android_arm64/*.so $DEVICE_FOLDER
adb push bazel-bin/runtime/engine/litert_lm_main $DEVICE_FOLDER
Artık ikili dosyayı çalıştırabilirsiniz.
adb shell LD_LIBRARY_PATH=$DEVICE_FOLDER \
$DEVICE_FOLDER/litert_lm_main \
--backend=npu \
--model_path=$DEVICE_FOLDER/model.litertlm
Qualcomm AI Engine Direct
Qualcomm NPU'da LLM'leri çalıştırma adımları şunlardır:
1. adım: .litertlm modelini indirin
LiteRT-LM çalışma zamanı, .litertlm biçimindeki modellerle çalışmak üzere tasarlanmıştır.
Uyumlu modelleri aşağıdaki tabloda bulup indirebilirsiniz.
| Model | Çip üzerinde sistem (SoC) | Kuantizasyon | Bağlam boyutu | Model Boyutu (Mb) | İndirme bağlantısı |
|---|---|---|---|---|---|
| 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 |
Çip üzerinde sisteminize karşılık gelen modeli indirmeniz gerekir.
Aşağıda, telefonunuzun çip üzerinde sistemi için doğru modeli indirmenize yardımcı olabilecek Hugging Face bağlantısını almanıza yardımcı olabilecek örnek bir komut verilmiştir (Dosyayı indirme iznine sahip olmak için giriş yapmanız ve formu onaylamanız gerektiğini unutmayın). adb kullanılarak erişilebilen bağlı bir cihaz olduğundan emin olmanız gerekir.
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_MODEL'in destek tablosunda listelendiğini doğrulayın. Oluşturulan bağlantı, desteklenmeyen modellerde çalışmaz. NPÜ'ler için düzenli olarak yeni destekler eklenmektedir. Cihazınızın desteklenip desteklenmediğini öğrenmek için daha sonra tekrar kontrol edin.
2. adım: QAIRT kitaplıklarını indirip ayıklayın
Modeli Qualcomm NPU kullanarak çalıştırmak için cihazda ilişkili çalışma zamanı kitaplıklarının olması gerekir. QAIRT SDK'sını bağlantıdan indirip dosyayı çıkarabilirsiniz. Sürüm numarasını içeren, açılmış klasöre işaret edecek şekildeQAIRT_ROOT değişkenini ayarlayın (sonraki adımlarda kullanılacaktır). Örneğin:
unzip <your_file.zip> -d ~/
QAIRT_ROOT=~/qairt/2.42.0.251225
3. adım: LiteRT-LM çalışma zamanını / kitaplıklarını oluşturun
Linux'ta geliştirme
Android için ikili program oluşturabilmek üzere https://developer.android.com/ndk/downloads#stable-downloads adresinden NDK r28b veya daha yeni bir sürümün yüklenmesi gerekir. Belirli adımlar şunlardır:
- https://developer.android.com/ndk/downloads#stable-downloads adresinden
zipdosyasını indirin. zipdosyasını tercih ettiğiniz konuma (örneğin,/path/to/AndroidNDK/) çıkarın.ANDROID_NDK_HOMEöğesini NDK dizinine yönlendirin. Şuna benzer bir şey olmalıdır:
export ANDROID_NDK_HOME=/path/to/AndroidNDK/
İpuçları: ANDROID_NDK_HOME işaretinin, README.md içeren dizini gösterdiğinden emin olun.
Kurulumla birlikte litert_lm_main ikili dosyasını oluşturmayı deneyin:
bazel build --config=android_arm64 //runtime/engine:litert_lm_main
Ayrıca, LiteRT-LM çalışma zamanının NPU ile etkileşimde bulunabilmesi için dispatch API kitaplığını oluşturmamız gerekir:
bazel build --config=android_arm64 \
@litert//litert/vendors/qualcomm/dispatch:dispatch_api_so
macOS'te geliştirme
Xcode komut satırı araçları clang'i içerir. Daha önce yüklenmediyse xcode-select --install'ı çalıştırın.
Android için ikili program oluşturabilmek üzere https://developer.android.com/ndk/downloads#stable-downloads adresinden NDK r28b veya daha yeni bir sürümün yüklenmesi gerekir. Belirli adımlar şunlardır:
- https://developer.android.com/ndk/downloads#stable-downloads adresinden
.dmgdosyasını indirin. .dmgdosyasını açın veAndroidNDK*dosyasını tercih ettiğiniz konuma (örneğin/path/to/AndroidNDK/) taşıyın.ANDROID_NDK_HOMEöğesini NDK dizinine yönlendirin. Şuna benzer bir şey olmalıdır:
export ANDROID_NDK_HOME=/path/to/AndroidNDK/AndroidNDK*.app/Contents/NDK/
İpuçları: ANDROID_NDK_HOME işaretinin, README.md içeren dizini gösterdiğinden emin olun.
Kurulumla birlikte litert_lm_main ikili dosyasını oluşturmayı deneyin:
bazel build --config=android_arm64 //runtime/engine:litert_lm_main
Ayrıca, LiteRT-LM çalışma zamanının NPU ile etkileşimde bulunabilmesi için dispatch API kitaplığını oluşturmamız gerekir:
bazel build --config=android_arm64 \
@litert//litert/vendors/qualcomm/dispatch:dispatch_api_so
4. adım: Modeli cihazda çalıştırma
İkili dosya başarıyla oluşturulduktan sonra modeli cihazda çalıştırmayı deneyebiliriz.DEVICE_FOLDER için yazma erişiminiz olduğundan emin olun:
İkili programı Android cihazınızda çalıştırmak için birkaç öğe/ikili program göndermemiz gerekiyor. Öncelikle DEVICE_FOLDER cihazınızı ayarlayın ve cihaza yazma erişiminiz olduğundan emin olun (genellikle /data/local/tmp/ altına öğe yerleştirebilirsiniz):
export DEVICE_FOLDER=/data/local/tmp/
adb shell mkdir -p $DEVICE_FOLDER
export MODEL_PATH=<path to your downloaded .litertlm >
.litertlm dosyasını gönderin. İpucu: Bu öğeleri yalnızca bir kez göndermeniz gerekir.
adb push $MODEL_PATH $DEVICE_FOLDER/model.litertlm
QAIRT kitaplıklarını gönderin. Bu dosyaları, 2. adımda $QAIRT_ROOT/lib/aarch64-android/ bulunan, sıkıştırılmamış klasörde bulabilirsiniz. QAIRT_ROOT öğesinin sürüm numarasını (ör. 2.42.0.251225) içermesi gerektiğini unutmayın.
adb push $QAIRT_ROOT/lib/aarch64-android/libQnnHtp*Stub.so $DEVICE_FOLDER
adb push $QAIRT_ROOT/lib/aarch64-android/libQnnHtp.so $DEVICE_FOLDER
adb push $QAIRT_ROOT/lib/aarch64-android/libQnnSystem.so $DEVICE_FOLDER
adb push $QAIRT_ROOT/lib/aarch64-android/libQnnHtpPrepare.so $DEVICE_FOLDER
adb push $QAIRT_ROOT/lib/hexagon-*/unsigned/libQnnHtp*Skel.so $DEVICE_FOLDER
3. adımda derlenen dağıtım API'sini ve ana ikili dosyayı gönderin.
adb push bazel-bin/external/litert/litert/vendors/qualcomm/*/*.so \
$DEVICE_FOLDER
adb push prebuilt/android_arm64/*.so $DEVICE_FOLDER
adb push bazel-bin/runtime/engine/litert_lm_main $DEVICE_FOLDER
Artık ikili dosyayı çalıştırabilirsiniz.
adb shell LD_LIBRARY_PATH=$DEVICE_FOLDER ADSP_LIBRARY_PATH=$DEVICE_FOLDER \
$DEVICE_FOLDER/litert_lm_main \
--backend=npu \
--model_path=$DEVICE_FOLDER/model.litertlm
MediaTek NeuroPilot
MediaTek NPU'da LLM'leri çalıştırma adımları şunlardır:
1. adım: .litertlm modelini indirin
LiteRT-LM çalışma zamanı, .litertlm biçimindeki modellerle çalışmak üzere tasarlanmıştır.
Uyumlu modelleri aşağıdaki tabloda bulup indirebilirsiniz.
| Model | Çip üzerinde sistem (SoC) | Kuantizasyon | Bağlam boyutu | Model Boyutu (Mb) | İndirme bağlantısı |
|---|---|---|---|---|---|
| Gemma3-1B | MT6989 | Kanal başına 4 bit | 1.280 | 985 | download |
| Gemma3-1B | MT6991 | Kanal başına 4 bit | 1.280 | 986 | download |
Çip üzerinde sisteminize karşılık gelen modeli indirmeniz gerekir.
Aşağıda, telefonunuzun çip üzerinde sistemi için doğru modeli indirmenize yardımcı olabilecek Hugging Face bağlantısını almanıza yardımcı olabilecek örnek bir komut verilmiştir (Dosyayı indirme iznine sahip olmak için giriş yapmanız ve formu onaylamanız gerektiğini unutmayın). adb kullanılarak erişilebilen bağlı bir cihaz olduğundan emin olmanız gerekir.
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_MODEL'in destek tablosunda listelendiğini doğrulayın. Oluşturulan bağlantı, desteklenmeyen modellerde çalışmaz. NPÜ'ler için düzenli olarak yeni destekler eklenmektedir. Cihazınızın desteklenip desteklenmediğini öğrenmek için daha sonra tekrar kontrol edin.
2. adım: LiteRT-LM çalışma zamanını / kitaplıklarını oluşturun
Linux'ta geliştirme
Android için ikili program oluşturabilmek üzere https://developer.android.com/ndk/downloads#stable-downloads adresinden NDK r28b veya daha yeni bir sürümün yüklenmesi gerekir. Belirli adımlar şunlardır:
- https://developer.android.com/ndk/downloads#stable-downloads adresinden
zipdosyasını indirin. zipdosyasını tercih ettiğiniz konuma (örneğin,/path/to/AndroidNDK/) çıkarın.ANDROID_NDK_HOMEöğesini NDK dizinine yönlendirin. Şuna benzer bir şey olmalıdır:
export ANDROID_NDK_HOME=/path/to/AndroidNDK/
İpuçları: ANDROID_NDK_HOME işaretinin, README.md içeren dizini gösterdiğinden emin olun.
Kurulumla birlikte litert_lm_main ikili dosyasını oluşturmayı deneyin:
bazel build --config=android_arm64 //runtime/engine:litert_lm_main
Ayrıca, LiteRT-LM çalışma zamanının NPU ile etkileşimde bulunabilmesi için dispatch API kitaplığını oluşturmamız gerekir:
bazel build --config=android_arm64 \
@litert//litert/vendors/mediatek/dispatch:dispatch_api_so
macOS'te geliştirme
Xcode komut satırı araçları clang'i içerir. Daha önce yüklenmediyse xcode-select --install'ı çalıştırın.
Android için ikili program oluşturabilmek üzere https://developer.android.com/ndk/downloads#stable-downloads adresinden NDK r28b veya daha yeni bir sürümün yüklenmesi gerekir. Belirli adımlar şunlardır:
- https://developer.android.com/ndk/downloads#stable-downloads adresinden
.dmgdosyasını indirin. .dmgdosyasını açın veAndroidNDK*dosyasını tercih ettiğiniz konuma (örneğin/path/to/AndroidNDK/) taşıyın.ANDROID_NDK_HOMEöğesini NDK dizinine yönlendirin. Şuna benzer bir şey olmalıdır:
export ANDROID_NDK_HOME=/path/to/AndroidNDK/AndroidNDK*.app/Contents/NDK/
İpuçları: ANDROID_NDK_HOME işaretinin, README.md içeren dizini gösterdiğinden emin olun.
Kurulumla birlikte litert_lm_main ikili dosyasını oluşturmayı deneyin:
bazel build --config=android_arm64 //runtime/engine:litert_lm_main
Ayrıca, LiteRT-LM çalışma zamanının NPU ile etkileşimde bulunabilmesi için dispatch API kitaplığını oluşturmamız gerekir:
bazel build --config=android_arm64 \
@litert//litert/vendors/mediatek/dispatch:dispatch_api_so
3. adım: Modeli cihazda çalıştırma
İkili dosya başarıyla oluşturulduktan sonra modeli cihazda çalıştırmayı deneyebiliriz.DEVICE_FOLDER için yazma erişiminiz olduğundan emin olun:
İkili programı Android cihazınızda çalıştırmak için birkaç öğe/ikili program göndermemiz gerekiyor. Öncelikle DEVICE_FOLDER cihazınızı ayarlayın ve cihaza yazma erişiminiz olduğundan emin olun (genellikle /data/local/tmp/ altına öğe yerleştirebilirsiniz):
export DEVICE_FOLDER=/data/local/tmp/
adb shell mkdir -p $DEVICE_FOLDER
export MODEL_PATH=<path to your downloaded .litertlm >
.litertlm dosyasını gönderin. İpucu: Bu öğeleri yalnızca bir kez göndermeniz gerekir.
adb push $MODEL_PATH $DEVICE_FOLDER/model.litertlm
2. adımda derlenen gönderme API'sini ve ana ikili dosyayı gönderin.
adb push bazel-bin/external/litert/litert/vendors/mediatek/*/*.so \
$DEVICE_FOLDER
adb push prebuilt/android_arm64/*.so $DEVICE_FOLDER
adb push bazel-bin/runtime/engine/litert_lm_main $DEVICE_FOLDER
Artık ikili dosyayı çalıştırabilirsiniz.
adb shell LD_LIBRARY_PATH=$DEVICE_FOLDER \
$DEVICE_FOLDER/litert_lm_main \
--backend=npu \
--model_path=$DEVICE_FOLDER/model.litertlm
Intel OpenVino
C++ yürütülebilir dosyasını kullanarak çalıştırma
LLM'leri Intel NPU'da çalıştırma adımları şunlardır:
1. adım: .litertlm modelini indirin
LiteRT-LM çalışma zamanı, .litertlm biçimindeki modellerle çalışmak üzere tasarlanmıştır.
Uyumlu modelleri aşağıdaki tabloda bulup indirebilirsiniz.
| Model | Çip üzerinde sistem (SoC) | Bağlam boyutu | Model Boyutu (Mb) | İndirme bağlantısı |
|---|---|---|---|---|
| Gemma4-2B | PantherLake | 4096 | 2,95 GB | download |
| Gemma4-2B | LunarLake | 4096 | 2,96 GB | download |
2. adım: LiteRT-LM çalışma zamanını ve LiteRT Intel Dispatch kitaplığını oluşturun
Windows'da geliştirme
Kurulumla birlikte litert_lm_main ikili dosyasını oluşturmayı deneyin:
bazel --output_base=C:\bzl_lrtlm build --define=DISABLE_HUGGINGFACE_TOKENIZER=1 --config=windows //runtime/engine:litert_lm_main
Ayrıca, LiteRT-LM çalışma zamanının NPU ile etkileşimde bulunabilmesi için dispatch API kitaplığını oluşturmamız gerekir:
bazel --output_base=C:\bzl_lrtlm build --config=windows @litert//litert/vendors/intel_openvino/dispatch:LiteRtDispatch
3. adım: Modeli cihazda çalıştırma
İkili dosya başarıyla oluşturulduktan sonra modeli cihazda çalıştırmayı deneyebiliriz. Tüm ikili dosyaları, DLL'leri ve modeli "execution_dir" adlı bir pakete yerleştiririz:cp bazel-bin/external/litert/vendors/intel_openvino/dispatch/LiteRtDispatch.dll execution_dir
cp bazel-bin/runtime/engine/litert_lm_main.exe execution_dir
cp prebuilt\windows_x86_64\libGemmaModelConstraintProvider.dll execution_dir
# Run OpenVino's setup script to ensure the OpenVino DLLs can be found.
& C:\bzl_lrtlm\external\intel_openvino\openvino\setupvars.ps1
# Test run
cd execution_dir
.\litert_lm_main.exe --backend=npu --model_path="execution_dir\model.litertlm" --input_prompt="What is the capital of France?"
Ayrıca, LiteRT-LM'nin Python API'siyle ilgili bilgi edinmek için https://ai.google.dev/edge/litert-lm/python adresini ziyaret edin .NPU arka ucuyla litertlm dosyası.
import litert_lm
with litert_lm.Engine("C:\path\to\npu-model.litertlm", backend=litert_lm.Backend.NPU()) as engine:
with engine.create_conversation() as conversation:
print(conversation.send_message("What is the capital of France?"))