Mengonversi model AI Generatif PyTorch untuk inferensi di perangkat

LiteRT Torch Generative API adalah library berperforma tinggi yang dirancang untuk membuat dan mengonversi model PyTorch berbasis transformer ke dalam format LiteRT/LiteRT-LM. Hal ini memungkinkan developer men-deploy model AI generatif dengan lancar, khususnya Model Bahasa Besar (LLM), untuk pembuatan teks dan gambar di perangkat dengan mudah.

Torch Generative API mendukung konversi model untuk CPU, GPU, dan NPU. Dengan menyandingkan Torch Generative API dengan LiteRT-LM, Anda dapat membangun aplikasi yang responsif dan berfokus pada privasi yang menjalankan model generatif sepenuhnya di perangkat.

Mengonversi dari Hugging Face Transformer Library

Ekstensi LiteRT Torch Hugging Face Export menyediakan jalur yang disederhanakan untuk mengonversi model AI generatif langsung dari Hugging Face Transformers Library ke format LiteRT-LM. Dibandingkan dengan LiteRT Torch Generative API yang menyediakan blok penyusun PyTorch untuk membangun dan mengoptimalkan model kustom, alat ini menangani kompleksitas download bobot, menerjemahkan arsitektur model PyTorch, dan menerapkan teknik pengoptimalan seperti pengoptimalan grafik dan kuantisasi dalam satu alur kerja. File ini menghasilkan file .litertlm , yang dioptimalkan untuk inferensi di perangkat pada CPU, GPU, dan NPU menggunakan runtime LiteRT-LM.

Prasyarat

Sebelum menggunakan ekstensi ekspor, pastikan Anda telah melakukan penyiapan berikut:

  • Instal paket Python LiteRT Torch. Ekstensi Hugging Face Export dibuat langsung ke dalam paket litert-torch.
  • (Opsional) Untuk kompilasi NPU, instal ekstensi LiteRT NPU SDK menggunakan pip install ai-edge-litert[npu-sdk]. Untuk mengetahui detail selengkapnya, Anda dapat mengikuti LiteRT NPU AOT Compilation Colab.
  • Lingkungan Hugging Face disiapkan jika Anda ingin memuat dari hub Hugging Face secara langsung. Alat export_hf menggunakan mekanisme autentikasi transformer standar seperti HF_TOKEN atau CLI. Lihat contoh:

Untuk mendownload model yang dibatasi (seperti Gemma atau Llama), Anda harus melakukan autentikasi dengan Hugging Face menggunakan CLI atau variabel lingkungan:

# Set your Hugging Face token as an environment variable
export HF_TOKEN="your_hugging_face_token"

# Or use the Hugging Face CLI login
hf auth login

Penggunaan Dasar

Anda dapat menggunakan export_hf menggunakan command line atau Python API. Alat ini akan otomatis mendownload model dari Hugging Face atau memuat model dari jalur lokal yang diberikan, melacaknya, menerapkan pengoptimalan default, dan mengonversinya ke file .litertlm yang kompatibel untuk inferensi CPU dan GPU.

Antarmuka Command Line (CLI)

Gunakan perintah litert-torch export_hf. Anda harus memberikan ID model Hugging Face dan direktori output yang dipilih.

litert-torch export_hf \
  --model=google/gemma-3-270m-it \
  --output_dir=/tmp/gemma3-270m-it-litertlm

Untuk mengekspor model lokal atau kustom, Anda juga dapat meneruskan jalur ke checkpoint safetensor:

litert-torch export_hf \
  --model=/path/to/safetensor/dir \
  --output_dir=/my_custom_litertlm

Python API

Untuk integrasi ke dalam skrip atau notebook Python, impor modul export dari litert_torch.generative.export_hf.

from litert_torch.generative.export_hf import export

export.export(
    model='google/gemma-3-270m-it',
    output_dir='/tmp/gemma3-270m-it-litertlm',
)

Deployment di perangkat dengan LiteRT-LM

Setelah berhasil mengekspor model ke file .litertlm, Anda dapat men-deploy-nya langsung di perangkat menggunakan LiteRT-LM untuk eksekusi berperforma tinggi di CPU dan GPU. Lihat detail tentang cara menggunakan LiteRT-LM API. Untuk akselerasi NPU, lihat Panduan kompilasi AOT NPU.

Arsitektur yang Didukung

Alat export_hf memverifikasi arsitektur model Transformers berikut. Hal ini dapat diverifikasi dengan memeriksa kolom model_type di config.json.

  • Gemma 3 (Gemma3ForCausalLM)
  • Gemma 3n (Gemma3nForCausalLM)
  • Gemma 4 (Gemma4ForCausalLM)
  • Llama (LlamaForCausalLM)
  • Mistral (MistralForCausalLM)
  • Qwen 2/2.5 (Qwen2ForCausalLM)
  • Qwen 3 (Qwen3ForCausalLM)
  • SmolLM 3 (SmolLM3ForCausalLM)

Setelan lanjutan

Meskipun Anda dapat menjelajahi opsi lanjutan yang tersedia di tanda ekstensi, berikut beberapa opsi umum yang dapat Anda coba.

Model Bahasa Visi

Untuk model yang didukung, Anda dapat menetapkan --task=image_text_to_text dan --export_vision_encoder untuk memuat dan mengekspor model encoder vision.

Arsitektur yang didukung:

  • Gemma 3 (Gemma3ForConditionalGeneration)
  • Gemma 4 (Gemma4ForConditionalGeneration)

Konfigurasi Kuantisasi

Model AI generatif sering kali terlalu besar untuk dijalankan secara efisien di perangkat edge tanpa pengoptimalan. Secara default, export_hf menerapkan resep kuantisasi dynamic_wi8_afp32 menggunakan AI Edge Quantizer, yang menguantisasi bobot ke INT8 per saluran sambil mempertahankan aktivasi dalam FP32.

Anda dapat mengganti perilaku default ini menggunakan tanda --quantization_recipe (atau parameter quantization_recipe di Python). Anda dapat memberikan nama resep bawaan dari AI Edge Quantizer atau menentukan jalur ke resep JSON kustom.

Contoh:

litert-torch export_hf \
  --model=google/gemma-3-270m-it \
  --output_dir=/tmp/gemma3-270m-it-litertlm \
  --quantization_recipe=/path/to/my/quantization_recipe.json

Penggantian Template Jinja

Template jinja yang disertakan dengan model transformer mungkin tidak kompatibel dengan LiteRT-LM (misalnya, model Gemma4). Anda dapat menetapkan tanda use_jinja_template ke False atau menggunakan opsi jinja_chat_template_override untuk mengganti template.

Contoh:

 litert-torch export_hf \
   --model=google/gemma-4-E2B-it \
  --output_dir=/tmp/gemma4_2b_litertlm \
  --externalize_embedder \
  --jinja_chat_template_override=litert-community/gemma-4-E2B-it-litert-lm

Kompilasi AOT NPU

Selain CPU dan GPU, Anda juga dapat menargetkan akselerator NPU yang didukung saat mengekspor model dengan memberikan opsi khusus NPU.

Google Tensor

Prasyarat: Ikuti halaman Google Tensor SDK untuk penyiapan lingkungan pengembangan.

Untuk mengekspor LLM yang menargetkan TPU Google Tensor, ikuti contoh untuk flag tambahan yang diperlukan untuk kompilasi TPU.

Contoh:

litert-torch export-hf \
  --model=google/gemma-3-270m-it \
  --output_dir=/tmp/gemma3-270m-google-tensor-g5 \
  --split_cache \
  --externalize_embedder \
  --prefill_lengths=128, \
  --cache_length=1280 \
  --quantization_recipe="weight_only_wi8_afp32"
  --aot_backend=GOOGLE \
  --aot_soc_model=Tensor_G5 \
  --aot_compilation_config_dict='{"google_tensor_enable_large_model_support": True}'

Untuk mengetahui informasi selengkapnya, lihat Mengompilasi model dengan Google Tensor SDK.

Runtime AI Qualcomm:

Prasyarat: Ikuti Integrasi Qualcomm LiteRT untuk petunjuk penyiapan SDK dan perangkat yang didukung.

Contoh:

litert-torch export-hf \
  --model=google/gemma-3-270m-it \
  --output_dir=/tmp/gemma3-270m-google-tensor-g5 \
  --split_cache \
  --externalize_embedder \
  --quantization_recipe='' \
  --aot_backend=qualcomm \
  --aot_soc_model=SM8750

MediaTek NeuroPilot:

Prasyarat: Ikuti Integrasi MediaTek LiteRT untuk petunjuk penyiapan SDK dan perangkat yang didukung.

Contoh:

litert-torch export-hf \
  --model=google/gemma-3-270m-it \
  --output_dir=/tmp/gemma3-270m-google-tensor-g5 \
  --split_cache \
  --externalize_embedder \
  --aot_backend=mediatek \
  --aot_soc_model=MT8189

Intel OpenVINO

Prasyarat: Ikuti Integrasi LiteRT Intel OpenVINO untuk petunjuk penyiapan SDK dan perangkat yang didukung.

Contoh:

litert-torch export-hf \
  --model=google/gemma-3-270m-it \
  --output_dir=/tmp/gemma3-270m-google-tensor-g5 \
  --split_cache \
  --externalize_embedder \
  --aot_backend=intel_openvino \
  --aot_soc_model=PTL

Menulis ulang dan Mengonversi menggunakan LiteRT Torch Generative API

LiteRT Torch Generative API juga menyediakan elemen penyusun untuk membuat dan mengoptimalkan model PyTorch kustom, termasuk, tetapi tidak terbatas pada lapisan normalisasi, perhatian, dan modul dasar lainnya. Jika model Anda tidak tercakup dalam ekstensi Hugging Face Export LiteRT Torch, Anda dapat membuat model sendiri agar kompatibel dengan LiteRT dan LiteRT-LM.

Ada contoh model termasuk LLM, model difusi, dan model ASR. Jangan ragu untuk mencobanya dan men-deploy model Anda sendiri.

Untuk mengetahui informasi selengkapnya, lihat repo GitHub Generative Torch API.