יחידות לעיבוד עצבי (NPU) מציעות בלוקים מיוחדים של חומרה שעברו אופטימיזציה לעומסי עבודה של למידה עמוקה. הן זמינות יותר ויותר במערכות מודרניות על שבב (SoC), במיוחד בניידים. הביצועים הגבוהים שלהם הופכים אותם למתאימים מאוד להסקת מסקנות של LLM.
LiteRT-LM היא ספריית C++ שנועדה להפעיל ביעילות צינורות של מודלים של שפה במגוון רחב של מכשירים, מטלפונים ניידים ועד מערכות מוטמעות. הוא מספק למפתחים את הכלים ליצירה ולפריסה של תהליכי עבודה מתוחכמים של מודלים לשפה, ועכשיו עם שילוב חלק של NPU.
ספקי NPU
LiteRT-LM תומך בהרצת מודלים גדולים של שפה (LLM) באמצעות האצת NPU עם הספקים הבאים. בוחרים את ההוראות בהתאם לספק שרוצים לנסות:
התחלה מהירה
- פועלים לפי הדרישות המוקדמות כדי להגדיר את הסביבה ואת המאגר.
- מוודאים שהתוסף
adbמותקן ומכשיר מחובר. - אפשר לעיין במדריך למתחילים וב
litert_lm_mainהדגמה של שורת הפקודה.
Qualcomm AI Engine Direct
שלב 1: הורדה של מודל .litertlm
מורידים קובץ .litertlm שמתאים ל-SoC (דוגמאות בהמשך). אפשר לשלוח שאילתה לגבי ה-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: משתמשים ב-.litertlm שנוצר עבור ה-SoC, כוללים ספריות זמן ריצה של NeuroPilot, יוצרים litert_lm_main, מעבירים נכסים ומריצים עם --device=mediatek_npu.