LiteRT Torch Generative API 是一个 高性能库,旨在创作基于 Transformer 的 PyTorch 模型并将其转换为 LiteRT/LiteRT-LM 格式。借助此 API,开发者可以轻松地无缝部署生成式 AI 模型,尤其是大语言模型 (LLM),以在设备上生成文本和图片。
Torch Generative API 支持 CPU、GPU 和 NPU 的模型转换。 通过将 Torch Generative API 与 LiteRT-LM 配对,您可以构建 响应迅速、注重隐私的应用,这些应用完全 在设备上运行生成式模型。
从 Hugging Face Transformer 库转换
LiteRT Torch Hugging Face Export 扩展程序提供了一种 简化的途径,可将生成式 AI 模型直接从 Hugging Face Transformers 库转换为 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 工具使用标准 Transformer 身份验证机制,例如
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 应用 dynamic_wi8_afp32
量化配方,使用 AI Edge Quantizer,
将权重量化为每个通道 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 Integration 中的说明设置 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 Integration 中的说明设置 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 Integration 中的说明设置 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 模型等模型示例。您可以随意查看这些示例并部署自己的模型。
如需了解详情,请参阅 Generative Torch API GitHub 代码库。