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 es una solución integral para habilitar la inferencia en el dispositivo en dispositivos móviles y de borde, incluidos los dispositivos portátiles, los dispositivos embebidos y los microcontroladores. Forma parte del ecosistema de PyTorch y admite el despliegue de modelos de PyTorch con un enfoque en la portabilidad, la productividad y el rendimiento.

ExecuTorch introduce puntos de entrada bien definidos para realizar optimizaciones específicas de modelo, dispositivo y/o caso de uso, como la delegación de backends, transformaciones de compilador definidas por el usuario, planificación de memoria y más. El primer paso para preparar un modelo de PyTorch para su ejecución en un dispositivo de borde con ExecuTorch es exportar el modelo. Esto se logra mediante el uso de una API de PyTorch llamada torch.export.

Integración de ExecuTorch

Se está desarrollando un punto de integración para garantizar que 🤗 Transformers pueda exportarse mediante torch.export. El objetivo de esta integración no solo es habilitar la exportación, sino también asegurar que el artefacto exportado pueda reducirse y optimizarse ulteriormente para ejecutarse de manera eficiente en ExecuTorch, especialmente en casos de uso para móviles y edge.

clase transformers.TorchExportableModuleWithStaticCache

< >

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

Un módulo de receta diseñado para hacer que un PreTrainedModel sea exportable con torch.export, específicamente para LM solo decodificador a StaticCache. Este módulo garantiza que el modelo exportado sea compatible con una reducción y ejecución posteriores en ExecuTorch.

Nota: Esta clase está diseñada específicamente para apoyar el proceso de exportación usando torch.export de manera que se garantice que el modelo pueda reducirse y ejecutarse de forma eficiente en ExecuTorch.

forward

< >

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

Parámetros

  • input_ids (torch.Tensor) — Tensor que representa el id del token de entrada actual para el módulo.
  • inputs_embeds (torch.Tensor) — Tensor que representa las incrustaciones de entrada actuales del módulo.
  • cache_position (torch.Tensor) — Tensor que representa la posición actual de la entrada en la caché.

Devuelve

torch.Tensor

Salida de logits del modelo.

Paso hacia adelante del módulo, que es compatible con el tiempo de ejecución ExecuTorch.

Este adaptador de propagación hacia adelante cumple dos propósitos principales:

  1. Hacer que el modelo sea compatible con torch.export: El adaptador oculta los objetos no compatibles, como Cache, de las entradas y salidas del grafo, permitiendo exportar el modelo con torch.export sin encontrar problemas.

  2. Garantizar la compatibilidad con el runtime de ExecuTorch: El adaptador coincide con la firma de forward del modelo con la de executorch/extension/llm/runner, asegurando que el modelo exportado pueda ejecutarse en ExecuTorch sin configuración adicional.

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)

Parámetros

  • model (PreTrainedModel) — El modelo preentrenado que se va a exportar.
  • example_input_ids (Optional[torch.Tensor]) — ID de token de entrada de ejemplo utilizado por torch.export.
  • example_cache_position (Optional[torch.Tensor]) — Posición actual de la caché de ejemplo utilizada por torch.export.
  • dynamic_shapes(Optional[dict]) — Formas dinámicas utilizadas por torch.export.
  • strict(Optional[bool]) — Bandera para indicar a torch.export que use dynamo.

Devuelve

Programa exportado (torch.export.ExportedProgram)

El programa exportado generado mediante torch.export.

Convierta un PreTrainedModel en un módulo exportable y expórtelo usando torch.export, asegurándose de que el modelo exportado sea compatible con ExecuTorch.

Update on GitHub