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 là giải pháp đầu-cuối cho phép khả năng suy luận trên thiết bị trên các thiết bị di động và biên, bao gồm thiết bị đeo, thiết bị nhúng và vi điều khiển. Nó là một phần của hệ sinh thái PyTorch và hỗ trợ triển khai các mô hình PyTorch với trọng tâm vào khả năng di chuyển, năng suất và hiệu suất.

ExecuTorch giới thiệu các điểm vào được định nghĩa rõ ràng để thực hiện các tối ưu hóa cụ thể cho mô hình, thiết bị và/hoặc trường hợp sử dụng, chẳng hạn như ủy quyền cho backend, các phép biến đổi trình biên dịch do người dùng định nghĩa, lập kế hoạch bộ nhớ, và nhiều hơn nữa. Bước đầu tiên trong việc chuẩn bị một mô hình PyTorch để thực thi trên thiết bị biên bằng ExecuTorch là xuất mô hình. Điều này được thực hiện thông qua việc sử dụng một API của PyTorch có tên là torch.export.

Tích hợp ExecuTorch

Một điểm tích hợp đang được phát triển để đảm bảo rằng 🤗 Transformers có thể được xuất bằng torch.export. Mục tiêu của tích hợp này không chỉ là cho phép xuất mà còn đảm bảo rằng sản phẩm xuất ra có thể được hạ thấp và tối ưu hóa thêm để chạy hiệu quả trên ExecuTorch, đặc biệt là cho các trường hợp sử dụng trên thiết bị di động và biên.

class transformers.TorchExportableModuleWithStaticCache

< >

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

Một module công thức được thiết kế để làm cho PreTrainedModel có thể xuất được bằng torch.export, cụ thể là cho LM chỉ có decoder sang StaticCache. Module này đảm bảo rằng mô hình đã xuất tương thích với việc hạ thấp và thực thi tiếp theo trong ExecuTorch.

Lưu ý: Lớp này được thiết kế đặc biệt để hỗ trợ quy trình xuất sử dụng torch.export theo cách đảm bảo mô hình có thể được hạ thấp (lower) và chạy hiệu quả trong ExecuTorch.

forward

< >

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

Tham số

  • input_ids (torch.Tensor) — Tensor đại diện cho id token đầu vào hiện tại của module.
  • inputs_embeds (torch.Tensor) — Tensor đại diện cho các embedding đầu vào hiện tại của module.
  • cache_position (torch.Tensor) — Tensor đại diện cho vị trí đầu vào hiện tại trong bộ nhớ đệm.

Trả về

torch.Tensor

Đầu ra Logits từ mô hình.

Quá trình truyền thẳng của module, tương thích với runtime ExecuTorch.

Adapter phía trước này phục vụ hai mục đích chính:

  1. Khiến mô hình tương thích với torch.export: Adapter che giấu các đối tượng không được hỗ trợ, chẳng hạn như Cache, khỏi các đầu vào và đầu ra của đồ thị, cho phép mô hình có thể được xuất bằng torch.export mà không gặp phải sự cố.

  2. Đảm bảo tương thích với runtime ExecuTorch: Adapter khớp chữ ký forward của model với chữ ký trong executorch/extension/llm/runner, đảm bảo rằng model đã xuất có thể được thực thi trong ExecuTorch ngay lập tức.

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)

Tham số

  • model (PreTrainedModel) — Mô hình được huấn luyện trước cần xuất.
  • example_input_ids (Optional[torch.Tensor]) — Id của token đầu vào mẫu được sử dụng bởi torch.export.
  • example_cache_position (Optional[torch.Tensor]) — Ví trí cache hiện tại được sử dụng bởi torch.export.
  • dynamic_shapes(Optional[dict]) — Các hình dạng động được sử dụng bởi torch.export.
  • strict(Optional[bool]) — Cờ chỉ thị cho torch.export sử dụng dynamo.

Trả về

Chương trình đã xuất (torch.export.ExportedProgram)

Chương trình xuất được tạo thông qua torch.export.

Chuyển đổi một PreTrainedModel thành một module có thể xuất và xuất nó bằng torch.export, đảm bảo mô hình đã xuất tương thích với ExecuTorch.

Update on GitHub