LLM ها را روی NPU با استفاده از LiteRT-LM اجرا کنید

واحدهای پردازش عصبی (NPU) بلوک‌های سخت‌افزاری تخصصی بهینه‌شده برای بارهای کاری یادگیری عمیق را ارائه می‌دهند. آن‌ها به‌طور فزاینده‌ای در سیستم‌های مدرن روی تراشه (SoC) به‌ویژه در دستگاه‌های تلفن همراه در دسترس هستند. ماهیت عملکرد بالای آن‌ها، آن‌ها را برای اجرای استنتاج LLM بسیار مناسب می‌کند.

LiteRT-LM یک کتابخانه C++ است که برای اجرای کارآمد خطوط لوله مدل زبان در طیف وسیعی از دستگاه‌ها، از تلفن‌های همراه گرفته تا سیستم‌های تعبیه‌شده، طراحی شده است. این کتابخانه ابزارهایی را برای توسعه‌دهندگان فراهم می‌کند تا گردش‌های کاری پیچیده مدل زبان را ایجاد و مستقر کنند، اکنون با ادغام یکپارچه NPU.

فروشندگان NPU

LiteRT-LM از اجرای LLMها با استفاده از شتاب NPU با فروشندگان زیر پشتیبانی می‌کند. دستورالعمل‌ها را بسته به فروشنده‌ای که می‌خواهید امتحان کنید، انتخاب کنید:

شروع سریع

  1. برای راه‌اندازی محیط و مخزن ، پیش‌نیازها را دنبال کنید.
  2. مطمئن شوید که adb نصب شده و دستگاه متصل است.
  3. به بخش شروع سریع و نسخه آزمایشی خط فرمان litert_lm_main مراجعه کنید.

موتور هوش مصنوعی کوالکام (Qualcomm AI Engine Direct)

مرحله ۱: مدل .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"
مدل تراشه کوانتیزاسیون اندازه متن اندازه مدل (مگابایت) دانلود
جما۳-۱بی SM8750 ۴ بیت در هر کانال ۱۲۸۰ ۶۵۸ دانلود
جما۳-۱بی SM8650 ۴ بیت در هر کانال ۱۲۸۰ ۶۵۸ دانلود
جما۳-۱بی SM8550 ۴ بیت در هر کانال ۱۲۸۰ ۶۵۷ دانلود

مرحله ۲: دانلود و استخراج کتابخانه‌های QAIRT

QAIRT SDK را دانلود کنید، آن را استخراج کنید و QAIRT_ROOT تنظیم کنید:

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

مرحله 3: ساخت کتابخانه‌ها/زمان اجرای LiteRT-LM

اندروید 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

مرحله ۴: اجرای مدل روی دستگاه

مسیر دستگاه خود را تنظیم کنید و دارایی‌ها را ارسال کنید:

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"

مدیاتک نوروپایلوت

مرور کلی مراحل

جریان مدیاتک، آینه‌ای از کوالکام است: از یک .litertlm ساخته شده برای SoC خود استفاده کنید، کتابخانه‌های زمان اجرای NeuroPilot را وارد کنید، litert_lm_main را بسازید، فایل‌های اجرایی را ارسال کنید و با --device=mediatek_npu اجرا کنید.