เรียกใช้ LLM บน NPU โดยใช้ LiteRT-LM

Neural Processing Unit (NPU) มีบล็อกฮาร์ดแวร์เฉพาะที่ได้รับการเพิ่มประสิทธิภาพสำหรับ ภาระงานการเรียนรู้เชิงลึก ปัจจุบันระบบสมัยใหม่บนชิป (SoC) มีการใช้งานมากขึ้นเรื่อยๆ โดยเฉพาะในอุปกรณ์เคลื่อนที่ ประสิทธิภาพสูงทำให้ เหมาะอย่างยิ่งสำหรับการเรียกใช้การอนุมาน LLM

LiteRT-LM เป็นไลบรารี C++ ที่ออกแบบมาเพื่อเรียกใช้ไปป์ไลน์โมเดลภาษาอย่างมีประสิทธิภาพในอุปกรณ์หลากหลายประเภท ตั้งแต่โทรศัพท์มือถือไปจนถึงระบบแบบฝัง โดยจะมอบเครื่องมือให้นักพัฒนาแอปเพื่อสร้างและติดตั้งใช้งาน เวิร์กโฟลว์โมเดลภาษาที่ซับซ้อน ซึ่งตอนนี้ผสานรวม NPU ได้อย่างราบรื่นแล้ว

ผู้ให้บริการ NPU

LiteRT-LM รองรับการเรียกใช้ LLM โดยใช้การเร่งความเร็ว NPU กับผู้ให้บริการต่อไปนี้ เลือกวิธีการตามผู้ให้บริการที่คุณต้องการ ลองใช้

คู่มือเริ่มต้นฉบับย่อ

  1. ทำตามข้อกำหนดเบื้องต้นเพื่อตั้งค่าสภาพแวดล้อมและ ที่เก็บ
  2. ตรวจสอบว่าได้ติดตั้ง adb แล้วและเชื่อมต่ออุปกรณ์แล้ว
  3. ดูคู่มือเริ่มต้นฉบับย่อและ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 download
Gemma3-1B SM8650 4 บิตต่อช่อง 1280 658 download
Gemma3-1B SM8550 4 บิตต่อช่อง 1280 657 download

ขั้นตอนที่ 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