Transformers documentation

ExecuTorch

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v5.22.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

ExecuTorch

ExecuTorch — это комплексное решение для обеспечения возможностей инференса на устройстве на мобильных и периферийных устройствах, включая носимые устройства, встраиваемые системы и микроконтроллеры. Оно входит в экосистему PyTorch и поддерживает развертывание моделей PyTorch с акцентом на переносимость, продуктивность и производительность.

ExecuTorch предлагает чётко определённые точки входа для выполнения оптимизаций, специфичных для модели, устройства и/или сценария использования, таких как делегирование бэкенду, пользовательские преобразования компилятора, планирование памяти и другие. Первый шаг в подготовке модели PyTorch к выполнению на периферийном устройстве с помощью ExecuTorch — экспорт модели. Это достигается с помощью API PyTorch torch.export.

Интеграция с ExecuTorch

В настоящее время разрабатывается точка интеграции, чтобы обеспечить возможность экспорта 🤗 Transformers с помощью torch.export. Цель этой интеграции состоит не только в обеспечении экспорта, но и в том, чтобы гарантировать, что экспортированный артефакт может быть дополнительно понижен и оптимизирован для эффективного выполнения в ExecuTorch, особенно в сценариях использования на мобильных устройствах и на периферии.

класс transformers.TorchExportableModuleWithStaticCache

< >

( model: PreTrainedModelbatch_size: int | None = Nonemax_cache_len: int | None = Nonedevice: typing.Optional[torch.device] = None )

Модуль рецепта, предназначенный для того, чтобы сделать PreTrainedModel экспортируемым с помощью torch.export, в частности, для decoder-only LM в StaticCache. Этот модуль обеспечивает совместимость экспортированной модели с дальнейшим понижением и выполнением в ExecuTorch.

Note: Этот класс специально разработан для поддержки процесса экспорта с использованием torch.export таким образом, чтобы гарантировать дальнейшее понижение модели и её эффективное выполнение в ExecuTorch.

forward

< >

( input_ids: typing.Optional[torch.LongTensor] = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonecache_position: typing.Optional[torch.Tensor] = None ) → torch.Tensor

Параметры

  • input_ids (torch.Tensor) — тензор, представляющий идентификатор текущего входного токена для модуля.
  • inputs_embeds (torch.Tensor) — тензор, представляющий текущие входные эмбеддинги для модуля.
  • cache_position (torch.Tensor) — тензор, представляющий текущую позицию входа в кэше.

Возвращает

torch.Tensor

Вывод logits из модели.

Прямой проход модуля, совместимый с рантаймом ExecuTorch.

Этот адаптер прямого прохода служит двум основным целям:

  1. Совместимость модели с torch.export: Адаптер скрывает неподдерживаемые объекты, такие как Cache, от входных и выходных данных графа, что позволяет экспортировать модель с помощью torch.export без возникновения проблем.

  2. Обеспечение совместимости с рантаймом ExecuTorch: Адаптер сопоставляет сигнатуру forward модели с сигнатурой в executorch/extension/llm/runner, что гарантирует возможность запуска экспортированной модели в ExecuTorch без дополнительной настройки.

transformers.convert_and_export_with_cache

< >

( model: PreTrainedModelexample_input_ids: typing.Optional[torch.Tensor] = Noneexample_cache_position: typing.Optional[torch.Tensor] = Nonedynamic_shapes: dict | None = Nonestrict: bool | None = None ) → Exported program (torch.export.ExportedProgram)

Параметры

  • model (PreTrainedModel) — Предобученная модель, подлежащая экспорту.
  • example_input_ids (Optional[torch.Tensor]) — Пример входного идентификатора токена, используемого torch.export.
  • example_cache_position (Optional[torch.Tensor]) — Пример текущего положения кэша, используемого torch.export.
  • dynamic_shapes(Optional[dict]) — Динамические формы, используемые в torch.export.
  • strict(Optional[bool]) — Флаг, указывающий torch.export использовать dynamo.

Возвращает

Экспортированная программа (torch.export.ExportedProgram)

Экспортированная программа, сгенерированная с помощью torch.export.

Преобразуйте PreTrainedModel в экспортируемый модуль и экспортируйте его с помощью torch.export, убедившись, что экспортированная модель совместима с ExecuTorch.

Update on GitHub