LiteRT-LM adalah library lintas platform yang dirancang untuk menjalankan pipeline model bahasa secara efisien di berbagai perangkat, mulai dari ponsel hingga sistem sematan. Layanan ini menyediakan alat bagi developer untuk membuat dan men-deploy alur kerja model bahasa yang canggih, kini dengan integrasi NPU yang lancar.
Menjalankan LLM di CPU dan GPU
Lihat repo GitHub LiteRT-LM untuk mengetahui petunjuk mendetail tentang pengembangan lintas platform dan akselerasi hardware CPU/GPU.
Menjalankan LLM di NPU
Neural Processing Unit (NPU) menawarkan blok hardware khusus yang dioptimalkan untuk beban kerja deep learning. Fitur ini semakin banyak tersedia di sistem modern pada system on a chip (SoC), terutama di perangkat seluler. Performa tinggi yang dimilikinya membuat GPU ini sangat cocok untuk menjalankan inferensi LLM.
Vendor NPU
LiteRT-LM mendukung menjalankan LLM menggunakan akselerasi NPU dengan vendor berikut. Pilih petunjuk berdasarkan vendor yang ingin Anda coba:
Mulai Cepat
Untuk memulai, ikuti terlebih dahulu petunjuk Prasyarat untuk menyiapkan lingkungan dan repositori.
Selain itu, agar dapat berinteraksi dengan perangkat Android, pastikan Anda telah menginstal Android Debug Bridge dengan benar dan memiliki perangkat yang terhubung yang dapat diakses menggunakan adb.
Untuk mengetahui petunjuk yang lebih mendetail, lihat bagian
Mulai Cepat
di repositori LiteRT-LM
dan temukan informasi selengkapnya tentang litert_lm_main
demo command line.
Qualcomm AI Engine Direct
Langkah-langkah untuk menjalankan LLM di NPU Qualcomm adalah sebagai berikut:
Langkah 1: Download model .litertlm
Runtime LiteRT-LM dirancang untuk bekerja dengan model dalam format .litertlm.
Anda dapat menemukan dan mendownload model yang kompatibel dalam tabel berikut.
| Model | SoC | Kuantisasi | Ukuran konteks | Ukuran Model (MB) | Link download |
|---|---|---|---|---|---|
| Gemma3-1B | SM8750 | 4 bit per saluran | 1280 | 658 | download |
| Gemma3-1B | SM8650 | 4 bit per saluran | 1280 | 658 | download |
| Gemma3-1B | SM8550 | 4 bit per saluran | 1280 | 657 | download |
Anda harus mendownload model yang sesuai dengan SoC Anda.
Berikut adalah contoh perintah yang dapat membantu Anda mendapatkan link Hugging Face yang
dapat mendownload model yang benar untuk SoC ponsel Anda (perhatikan bahwa Anda harus
login dan menyetujui formulir agar memiliki izin untuk mendownload
file). Anda harus memastikan ada perangkat terhubung yang dapat diakses menggunakan adb.
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"
Pastikan $SOC_MODEL tercantum dalam tabel dukungan. Link yang dibuat tidak akan berfungsi untuk model yang tidak didukung. Dukungan baru untuk NPU ditambahkan secara rutin, jadi periksa kembali nanti untuk melihat apakah perangkat Anda didukung.
Langkah 2: Download dan ekstrak library QAIRT
Untuk menjalankan model menggunakan NPU Qualcomm, diperlukan library runtime terkait di perangkat. Anda dapat mendownload QAIRT SDK dari link ini dan mengekstrak file. Tetapkan variabelQAIRT_ROOT (akan digunakan pada langkah-langkah selanjutnya) untuk diarahkan ke folder yang belum di-unzip yang berisi nomor versi, misalnya:
unzip <your_file.zip> -d ~/
QAIRT_ROOT=~/qairt/2.42.0.251225
Langkah 3: Bangun runtime / library LiteRT-LM
Mengembangkan di Linux
Untuk dapat mem-build biner untuk Android, Anda harus menginstal NDK r28b atau yang lebih baru dari https://developer.android.com/ndk/downloads#stable-downloads. Langkah-langkah spesifiknya adalah:
- Download file
zipdari https://developer.android.com/ndk/downloads#stable-downloads. - Ekstrak file
zipke lokasi pilihan Anda (misalnya/path/to/AndroidNDK/) - Buat
ANDROID_NDK_HOMEuntuk mengarah ke direktori NDK. Hasilnya akan terlihat seperti:
export ANDROID_NDK_HOME=/path/to/AndroidNDK/
Tips: pastikan ANDROID_NDK_HOME Anda mengarah ke direktori yang berisi
README.md.
Setelah penyiapan, coba bangun biner litert_lm_main:
bazel build --config=android_arm64 //runtime/engine:litert_lm_main
Selain itu, kita harus membuat library API pengiriman agar runtime LiteRT-LM dapat berinteraksi dengan NPU:
bazel build --config=android_arm64 \
@litert//litert/vendors/qualcomm/dispatch:dispatch_api_so
Mengembangkan di macOS
Alat command line Xcode mencakup clang. Jalankan xcode-select --install jika belum diinstal sebelumnya.
Untuk dapat mem-build biner untuk Android, Anda harus menginstal NDK r28b atau yang lebih baru dari https://developer.android.com/ndk/downloads#stable-downloads. Langkah-langkah spesifiknya adalah:
- Download file
.dmgdari https://developer.android.com/ndk/downloads#stable-downloads. - Buka file
.dmgdan pindahkan fileAndroidNDK*ke lokasi pilihan Anda (misalnya/path/to/AndroidNDK/) - Buat
ANDROID_NDK_HOMEuntuk mengarah ke direktori NDK. Hasilnya akan terlihat seperti:
export ANDROID_NDK_HOME=/path/to/AndroidNDK/AndroidNDK*.app/Contents/NDK/
Tips: pastikan ANDROID_NDK_HOME Anda mengarah ke direktori yang berisi
README.md.
Setelah penyiapan, coba bangun biner litert_lm_main:
bazel build --config=android_arm64 //runtime/engine:litert_lm_main
Selain itu, kita harus membuat library API pengiriman agar runtime LiteRT-LM dapat berinteraksi dengan NPU:
bazel build --config=android_arm64 \
@litert//litert/vendors/qualcomm/dispatch:dispatch_api_so
Langkah 4: Jalankan model di perangkat
Setelah biner berhasil di-build, kita sekarang dapat mencoba menjalankan model di perangkat. Pastikan Anda memiliki akses tulis keDEVICE_FOLDER:
Untuk menjalankan biner di perangkat Android, kita harus mengirim beberapa aset/biner. Tetapkan DEVICE_FOLDER terlebih dahulu, pastikan Anda memiliki akses tulis
ke dalamnya (biasanya Anda dapat menempatkan sesuatu di bawah /data/local/tmp/):
export DEVICE_FOLDER=/data/local/tmp/
adb shell mkdir -p $DEVICE_FOLDER
export MODEL_PATH=<path to your downloaded .litertlm >
Kirim file .litertlm. Tips: Anda hanya perlu mengirimkan aset tersebut satu kali.
adb push $MODEL_PATH $DEVICE_FOLDER/model.litertlm
Dorong library QAIRT. Anda dapat menemukannya di folder yang tidak di-unzip di
Langkah 2 $QAIRT_ROOT/lib/aarch64-android/. Perhatikan bahwa QAIRT_ROOT harus
berisi nomor versi, misalnya 2.42.0.251225.
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
Kirimkan API pengiriman dan biner utama yang dikompilasi di Langkah 3.
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
Sekarang, Anda dapat menjalankan biner.
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
Langkah-langkah untuk menjalankan LLM di NPU MediaTek adalah sebagai berikut:
Langkah 1: Download model .litertlm
Runtime LiteRT-LM dirancang untuk bekerja dengan model dalam format .litertlm.
Anda dapat menemukan dan mendownload model yang kompatibel dalam tabel berikut.
| Model | SoC | Kuantisasi | Ukuran konteks | Ukuran Model (MB) | Link download |
|---|---|---|---|---|---|
| Gemma3-1B | MT6989 | 4 bit per saluran | 1280 | 985 | download |
| Gemma3-1B | MT6991 | 4 bit per saluran | 1280 | 986 | download |
Anda harus mendownload model yang sesuai dengan SoC Anda.
Berikut adalah contoh perintah yang dapat membantu Anda mendapatkan link Hugging Face yang
dapat mendownload model yang benar untuk SoC ponsel Anda (perhatikan bahwa Anda harus
login dan menyetujui formulir agar memiliki izin untuk mendownload
file). Anda harus memastikan ada perangkat terhubung yang dapat diakses menggunakan adb.
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"
Pastikan $SOC_MODEL tercantum dalam tabel dukungan. Link yang dibuat tidak akan berfungsi untuk model yang tidak didukung. Dukungan baru untuk NPU ditambahkan secara rutin, jadi periksa kembali nanti untuk melihat apakah perangkat Anda didukung.
Langkah 2:Bangun runtime / library LiteRT-LM
Mengembangkan di Linux
Untuk dapat mem-build biner untuk Android, Anda harus menginstal NDK r28b atau yang lebih baru dari https://developer.android.com/ndk/downloads#stable-downloads. Langkah-langkah spesifiknya adalah:
- Download file
zipdari https://developer.android.com/ndk/downloads#stable-downloads. - Ekstrak file
zipke lokasi pilihan Anda (misalnya/path/to/AndroidNDK/) - Buat
ANDROID_NDK_HOMEuntuk mengarah ke direktori NDK. Hasilnya akan terlihat seperti:
export ANDROID_NDK_HOME=/path/to/AndroidNDK/
Tips: pastikan ANDROID_NDK_HOME Anda mengarah ke direktori yang berisi
README.md.
Setelah penyiapan, coba bangun biner litert_lm_main:
bazel build --config=android_arm64 //runtime/engine:litert_lm_main
Selain itu, kita harus membuat library API pengiriman agar runtime LiteRT-LM dapat berinteraksi dengan NPU:
bazel build --config=android_arm64 \
@litert//litert/vendors/mediatek/dispatch:dispatch_api_so
Mengembangkan di macOS
Alat command line Xcode mencakup clang. Jalankan xcode-select --install jika belum diinstal sebelumnya.
Untuk dapat mem-build biner untuk Android, Anda harus menginstal NDK r28b atau yang lebih baru dari https://developer.android.com/ndk/downloads#stable-downloads. Langkah-langkah spesifiknya adalah:
- Download file
.dmgdari https://developer.android.com/ndk/downloads#stable-downloads. - Buka file
.dmgdan pindahkan fileAndroidNDK*ke lokasi pilihan Anda (misalnya/path/to/AndroidNDK/) - Buat
ANDROID_NDK_HOMEuntuk mengarah ke direktori NDK. Hasilnya akan terlihat seperti:
export ANDROID_NDK_HOME=/path/to/AndroidNDK/AndroidNDK*.app/Contents/NDK/
Tips: pastikan ANDROID_NDK_HOME Anda mengarah ke direktori yang berisi
README.md.
Setelah penyiapan, coba bangun biner litert_lm_main:
bazel build --config=android_arm64 //runtime/engine:litert_lm_main
Selain itu, kita harus membuat library API pengiriman agar runtime LiteRT-LM dapat berinteraksi dengan NPU:
bazel build --config=android_arm64 \
@litert//litert/vendors/mediatek/dispatch:dispatch_api_so
Langkah 3: Jalankan model di perangkat
Setelah biner berhasil dibuat, kita sekarang dapat mencoba menjalankan model di perangkat. Pastikan Anda memiliki akses tulis keDEVICE_FOLDER:
Untuk menjalankan biner di perangkat Android, kita harus mengirim beberapa aset/biner. Tetapkan DEVICE_FOLDER terlebih dahulu, pastikan Anda memiliki akses tulis
ke dalamnya (biasanya Anda dapat menempatkan sesuatu di bawah /data/local/tmp/):
export DEVICE_FOLDER=/data/local/tmp/
adb shell mkdir -p $DEVICE_FOLDER
export MODEL_PATH=<path to your downloaded .litertlm >
Kirim file .litertlm. Tips: Anda hanya perlu mengirimkan aset tersebut satu kali.
adb push $MODEL_PATH $DEVICE_FOLDER/model.litertlm
Kirimkan API pengiriman dan biner utama yang dikompilasi di Langkah 2.
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
Sekarang, Anda dapat menjalankan biner.
adb shell LD_LIBRARY_PATH=$DEVICE_FOLDER \
$DEVICE_FOLDER/litert_lm_main \
--backend=npu \
--model_path=$DEVICE_FOLDER/model.litertlm