LiteRT Torch Generative API 是一套高效能程式庫,專為編寫及轉換以 Transformer 為基礎的 PyTorch 模型而設計,可將模型轉換為 LiteRT/LiteRT-LM 格式。開發人員可輕鬆部署生成式 AI 模型,特別是大型語言模型 (LLM),在裝置端生成文字和圖片。
Torch Generative API 支援 CPU、GPU 和 NPU 的模型轉換。 將 Torch Generative API 與 LiteRT-LM 配對,即可建構以隱私權為重心的回應式應用程式,完全在裝置端執行生成模型。
從 Hugging Face Transformer 程式庫轉換
LiteRT Torch Hugging Face Export 擴充功能提供簡化的路徑,可直接將Hugging Face Transformers Library 中的生成式 AI 模型轉換為 LiteRT-LM 格式。相較於 LiteRT Torch Generative API,這項工具可讓您使用 PyTorch 建構區塊建構及最佳化自訂模型,並在單一工作流程中處理下載權重、轉換 PyTorch 模型架構,以及套用圖形最佳化和量化等最佳化技術的複雜性。這項工具會輸出 .litertlm 檔案,並使用 LiteRT-LM 執行階段,針對 CPU、GPU 和 NPU 上的裝置端推論進行最佳化。
必要條件
使用匯出擴充功能前,請確認您已完成下列設定:
- 安裝 LiteRT Torch Python 套件。Hugging Face Export 擴充功能直接建構在
litert-torch套件中。 - (選用) 如要進行 NPU 編譯,請使用
pip install ai-edge-litert[npu-sdk]安裝 LiteRT NPU SDK 擴充功能。如要瞭解詳情,請參閱 LiteRT NPU AOT 編譯 Colab。 - 如果您打算直接從 Hugging Face Hub 載入,請設定 Hugging Face 環境。export_hf 工具會使用標準的 Transformers 驗證機制,例如
HF_TOKEN或 CLI。詳見範例如下:
如要下載封閉式模型 (例如 Gemma 或 Llama),必須使用 CLI 或環境變數向 Hugging Face 進行驗證:
# 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
基本用法
您可以使用指令列或 Python API 執行 export_hf。這項工具會自動從 Hugging Face 下載模型,或從提供的本機路徑載入模型、追蹤模型、套用預設最佳化設定,並將模型轉換為與 CPU 和 GPU 推論相容的 .litertlm 檔案。
指令列介面 (CLI)
使用 litert-torch export_hf 指令。您必須提供 Hugging Face 模型 ID 和所選輸出目錄。
litert-torch export_hf \
--model=google/gemma-3-270m-it \
--output_dir=/tmp/gemma3-270m-it-litertlm
如要匯出本機或自訂模型,您也可以將路徑傳遞至 safetensor 檢查點:
litert-torch export_hf \
--model=/path/to/safetensor/dir \
--output_dir=/my_custom_litertlm
Python API
如要整合至 Python 指令碼或筆記本,請從 litert_torch.generative.export_hf 匯入 export 模組。
from litert_torch.generative.export_hf import export
export.export(
model='google/gemma-3-270m-it',
output_dir='/tmp/gemma3-270m-it-litertlm',
)
使用 LiteRT-LM 進行裝置端部署
成功將模型匯出為 .litertlm 檔案後,即可使用 LiteRT-LM 直接在裝置端部署模型,在 CPU 和 GPU 上以高效能執行。詳情請參閱如何使用 LiteRT-LM API。如需 NPU 加速功能,請參閱 NPU AOT 編譯指南。
支援的架構
export_hf 工具會驗證下列 Transformer 模型架構。
如要驗證這點,請檢查 config.json 中的 model_type 欄位。
- Gemma 3 (
Gemma3ForCausalLM) - Gemma 3n (
Gemma3nForCausalLM) - Gemma 4 (
Gemma4ForCausalLM) - Llama (
LlamaForCausalLM) - Mistral (
MistralForCausalLM) - Qwen 2/2.5 (
Qwen2ForCausalLM) - Qwen 3 (
Qwen3ForCausalLM) - SmolLM 3 (
SmolLM3ForCausalLM)
進階設定
雖然您可以探索擴充功能標記中提供的進階選項,但以下是一些常見的旋鈕,您可以嘗試使用。
視覺語言模型
對於支援的模型,您可以設定 --task=image_text_to_text 和 --export_vision_encoder,載入及匯出視覺編碼器模型。
支援的架構:
- Gemma 3 (
Gemma3ForConditionalGeneration) - Gemma 4 (
Gemma4ForConditionalGeneration)
量化設定
生成式 AI 模型通常過於龐大,未經最佳化就無法在邊緣裝置上有效率地執行。根據預設,export_hf 會使用 AI Edge Quantizer 套用 dynamic_wi8_afp32 量化配方,將權重量化為每個管道的 INT8,同時將啟動保留在 FP32 中。
您可以使用 --quantization_recipe 旗標 (或 Python 中的 quantization_recipe 參數) 覆寫這項預設行為。您可以提供 AI Edge Quantizer 的內建配方名稱,或指定自訂 JSON 配方的路徑。
範例:
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
覆寫 Jinja 範本
Transformer 模型隨附的 Jinja 範本可能與 LiteRT-LM 不相容 (例如 Gemma4 模型),您可以將 use_jinja_template 標記設為 False,或使用 jinja_chat_template_override 選項覆寫範本。
範例:
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
NPU AOT 編譯
除了 CPU 和 GPU,您也可以在匯出模型時提供 NPU 專屬選項,指定支援的 NPU 加速器。
Google Tensor
必要條件:請按照 Google Tensor SDK 頁面的說明設定開發環境。
如要匯出以 Google Tensor TPU 為目標的 LLM,請按照範例操作,瞭解 TPU 編譯所需的額外標記。
範例:
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}'
詳情請參閱「使用 Google Tensor SDK 編譯模型」。
Qualcomm AI 執行階段:
必要條件:請按照「LiteRT Qualcomm 整合」的說明設定 SDK,並瞭解支援的裝置。
範例:
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:
必要條件:請按照「LiteRT MediaTek 整合」的 SDK 設定說明操作,並確認支援的裝置。
範例:
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
必要條件:請按照 LiteRT Intel OpenVINO 整合的 SDK 設定說明操作,並確認裝置是否支援這項功能。
範例:
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
使用 LiteRT Torch Generative API 重新授權及轉換
LiteRT Torch Generative API 也提供建構和最佳化自訂 PyTorch 模型的建構區塊,包括但不限於正規化層、注意力和其他基本模組。如果您的模型未涵蓋在 LiteRT Torch Hugging Face Export 擴充功能中,您可以自行建構與 LiteRT 和 LiteRT-LM 相容的模型。
模型範例包括 LLM、擴散模型和 ASR 模型。歡迎查看這些範例,並部署自己的模型。