Библиотека LiteRT Torch Generative API — это высокопроизводительная библиотека, предназначенная для создания и преобразования моделей PyTorch на основе трансформеров в формат LiteRT/LiteRT-LM. Это позволяет разработчикам легко развертывать модели генеративного ИИ, в частности, большие языковые модели (LLM), для генерации текста и изображений непосредственно на устройстве.
API генеративной обработки Torch поддерживает преобразование моделей для CPU, GPU и NPU. Сочетая API генеративной обработки Torch с LiteRT-LM , вы можете создавать адаптивные приложения с упором на конфиденциальность, которые запускают генеративные модели полностью на устройстве.
Преобразовать из библиотеки Hugging Face Transformer.
Расширение LiteRT Torch Hugging Face Export предоставляет упрощенный способ преобразования моделей генеративного ИИ непосредственно из библиотеки Hugging Face Transformers в формат LiteRT-LM . По сравнению с API генеративного ИИ LiteRT Torch , которые предоставляют вам строительные блоки PyTorch для создания и оптимизации пользовательских моделей, этот инструмент обрабатывает сложности загрузки весов, преобразования архитектуры моделей PyTorch и применения методов оптимизации, таких как оптимизация графов и квантование, в рамках одного рабочего процесса. Он выводит файл .litertlm, оптимизированный для выполнения на устройстве на CPU, GPU и NPU с использованием среды выполнения LiteRT-LM .
Предварительные требования
Перед использованием расширения для экспорта убедитесь, что у вас выполнены следующие действия:
- Установите пакет LiteRT Torch Python . Расширение Hugging Face Export встроено непосредственно в пакет
litert-torch. - (Необязательно) Для компиляции на NPU установите расширения LiteRT NPU SDK с помощью
pip install ai-edge-litert[npu-sdk]. Для получения более подробной информации вы можете обратиться к руководству по компиляции LiteRT NPU AOT в Colab . - Среда Hugging Face настроена для загрузки данных непосредственно из хаба Hugging Face. Инструмент export_hf использует стандартные механизмы аутентификации трансформеров, такие как
HF_TOKENили CLI. См. пример:
Для загрузки моделей с ограниченным доступом (таких как Gemma или Llama) необходимо пройти аутентификацию в 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
Основные правила использования
Вы можете использовать export_hf через командную строку или API Python. Инструмент автоматически загрузит модель с Hugging Face или из указанного локального пути, выполнит трассировку, применит оптимизации по умолчанию и преобразует ее в файл .litertlm совместимый для вывода на CPU и GPU.
Интерфейс командной строки (CLI)
Используйте команду litert-torch export_hf . Вам необходимо указать идентификатор модели Hugging Face и выбранный каталог для вывода.
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
API Python
Для интеграции в скрипты Python или блокноты импортируйте модуль export из 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',
)
Развертывание на устройстве с использованием LiteRT-LM
После успешного экспорта модели в файл .litertlm вы можете развернуть её непосредственно на устройстве, используя LiteRT-LM для высокопроизводительного выполнения как на ЦП, так и на ГП. Подробности об использовании API LiteRT-LM см. в соответствующем разделе. Для ускорения на нейронном процессоре (NPU) см. руководство по компиляции NPU AOT .
Поддерживаемые архитектуры
Инструмент export_hf проверяет следующие архитектуры моделей Transformers. Это можно проверить, изучив поле model_type в config.json .
- Джемма 3 (
Gemma3ForCausalLM) - Джемма 3n (
Gemma3nForCausalLM) - Джемма 4 (
Gemma4ForCausalLM) - Лама (
LlamaForCausalLM) - Мистраль (
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)
Конфигурация квантования
Модели генеративного ИИ часто слишком велики, чтобы эффективно работать на периферийных устройствах без оптимизации. По умолчанию export_hf применяет алгоритм квантизации dynamic_wi8_afp32 с использованием AI Edge Quantizer , который квантует веса в INT8 для каждого канала, сохраняя при этом активации в FP32.
Вы можете изменить это поведение по умолчанию, используя флаг --quantization_recipe (или параметр quantization_recipe в Python). Вы можете указать имя встроенного рецепта из 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
Шаблон Jinja, поставляемый с моделью Transformers, может быть несовместим с 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
Помимо ЦП и ГП, при экспорте моделей вы также можете указать поддерживаемые ускорители НПУ, предоставив соответствующие параметры.
Google Tensor
Предварительные условия: Для настройки среды разработки следуйте инструкциям на странице Google Tensor SDK .
Для экспорта LLM-модулей, предназначенных для TPU Google Tensor, следуйте примеру, содержащему дополнительные флаги, необходимые для компиляции на 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:
Предварительные условия: Следуйте инструкциям по настройке SDK и списку поддерживаемых устройств в разделе «Интеграция LiteRT с Qualcomm» .
Пример:
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:
Предварительные условия: Следуйте инструкциям по настройке SDK и списку поддерживаемых устройств в разделе «Интеграция LiteRT с MediaTek» .
Пример:
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
Предварительные условия: Следуйте инструкциям по настройке SDK и списку поддерживаемых устройств в разделе «Интеграция LiteRT Intel OpenVINO» .
Пример:
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
Переиздать и преобразовать с помощью генеративного API LiteRT Torch
LiteRT Torch Generative API также предоставляет строительные блоки для создания и оптимизации пользовательских моделей PyTorch, включая, помимо прочего, слои нормализации, механизмы внимания и другие базовые модули. Если ваша модель не поддерживается расширением LiteRT Torch Hugging Face Export , вы можете создать собственные модели, совместимые с LiteRT и LiteRT-LM.
Здесь представлены примеры моделей, включая модели LLM, диффузионные модели и модели ASR. Смело изучайте их и создавайте собственные модели.
Для получения более подробной информации см. репозиторий Generative Torch API на GitHub .