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 é uma solução de ponta a ponta para habilitar a capacidade de inferência em dispositivos móveis e de borda, incluindo wearables, dispositivos embarcados e microcontroladores. Faz parte do ecossistema do PyTorch e suporta o deploy de modelos do PyTorch, com foco em portabilidade, produtividade e desempenho.

O ExecuTorch introduz pontos de entrada bem definidos para realizar otimizações específicas de modelo, dispositivo e/ou caso de uso, como delegação de backend, transformações de compilador definidas pelo usuário, planejamento de memória e muito mais. O primeiro passo para preparar um modelo do PyTorch para execução em um dispositivo de borda usando o ExecuTorch é exportar o modelo. Isso é feito por meio do uso de uma API do PyTorch chamada torch.export.

Integração com o ExecuTorch

Um ponto de integração está sendo desenvolvido para garantir que o 🤗 Transformers possa ser exportado usando torch.export. O objetivo dessa integração não é apenas habilitar a exportação, mas também garantir que o artefato exportado possa ser posteriormente reduzido e otimizado para executar de forma eficiente no ExecuTorch, especialmente para casos de uso em dispositivos móveis e na borda.

classe transformers.TorchExportableModuleWithStaticCache

< >

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

Um módulo de receita projetado para tornar um PreTrainedModel exportável com torch.export, especificamente para LM apenas de decodificador para StaticCache. Este módulo garante que o modelo exportado seja compatível com o rebaixamento e a execução adicionais no ExecuTorch.

Nota: Esta classe foi projetada especificamente para suportar o processo de exportação usando torch.export de forma a garantir que o modelo possa ser reduzido e executado com eficiência no 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 o id do token de entrada atual para o módulo.
  • inputs_embeds (torch.Tensor) — Tensor que representa os embeddings de entrada atuais para o módulo.
  • cache_position (torch.Tensor) — Tensor que representa a posição atual da entrada no cache.

Retorna

torch.Tensor

Saída de logits do modelo.

Passada adiante do módulo, compatível com o runtime ExecuTorch.

Este adaptador de encaminhamento tem dois propósitos principais:

  1. Tornando o modelo compatível com torch.export: O adaptador oculta objetos não suportados, como o Cache, das entradas e saídas do grafo, permitindo que o modelo seja exportado usando torch.export sem encontrar problemas.

  2. Garantindo compatibilidade com o runtime ExecuTorch: O adaptador corresponde à assinatura do forward do modelo àquela em executorch/extension/llm/runner, garantindo que o modelo exportado possa ser executado no ExecuTorch sem necessidade de configuração 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) — O modelo pré-treinado a ser exportado.
  • example_input_ids (Optional[torch.Tensor]) — ID de token de entrada de exemplo usado pelo torch.export.
  • example_cache_position (Optional[torch.Tensor]) — Posição atual de cache de exemplo usada pelo torch.export.
  • dynamic_shapes(Optional[dict]) — Formas dinâmicas usadas pelo torch.export.
  • strict(Optional[bool]) — Sinalizador para instruir o torch.export a usar o dynamo.

Retorna

Programa exportado (torch.export.ExportedProgram)

O programa exportado gerado via torch.export.

Converta um PreTrainedModel em um módulo exportável e exporte-o usando torch.export, garantindo que o modelo exportado seja compatível com ExecuTorch.

Update on GitHub