Transformers 文件

ExecuTorch

Hugging Face's logo
加入 Hugging Face 社群

並獲得增強的文件體驗

開始使用

ExecuTorch

ExecuTorch 是一個端到端的解決方案,用於在移動和邊緣裝置(包括可穿戴裝置、嵌入式裝置和微控制器)上啟用裝置端推理功能。它是 PyTorch 生態系統的一部分,支援 PyTorch 模型的部署,並專注於可移植性、生產力和效能。

ExecuTorch 引入了定義明確的入口點,以執行特定於模型、裝置和/或用例的最佳化,例如後端委託、使用者定義的編譯器轉換、記憶體規劃等。使用 ExecuTorch 準備 PyTorch 模型以在邊緣裝置上執行的第一步是匯出模型。這是透過使用一個名為 torch.export 的 PyTorch API 實現的。

ExecuTorch 整合

我們正在開發一個整合點,以確保 🤗 Transformers 可以使用 torch.export 進行匯出。此整合的目標不僅是實現匯出,還要確保匯出的工件可以被進一步降級和最佳化,以便在 ExecuTorch 中高效執行,尤其適用於移動和邊緣用例。

class transformers.TorchExportableModuleWithStaticCache

< >

( model: PreTrainedModel )

一個配方模組,旨在使 PreTrainedModel 能夠透過 torch.export 匯出,特別是將僅解碼器(decoder-only)的語言模型匯出到 StaticCache。此模組確保匯出的模型與在 ExecuTorch 中進一步降級和執行相容。

注意:此類專門設計用於支援使用 torch.export 的匯出過程,以確保模型可以被進一步降級並在 ExecuTorch 中高效執行。

forward

< >

( input_ids: Tensor cache_position: Tensor ) torch.Tensor

引數

  • input_ids (torch.Tensor) — 表示模組當前輸入詞元 ID 的張量。
  • cache_position (torch.Tensor) — 表示快取中當前輸入位置的張量。

返回

torch.Tensor

模型輸出的 logits。

模組的前向傳遞,與 ExecuTorch 執行時相容。

此 forward 介面卡主要有兩個目的:

  1. 使模型與 torch.export 相容:介面卡將不支援的物件(例如 Cache)從計算圖的輸入和輸出中隱藏,從而使模型能夠使用 torch.export 匯出而不會遇到問題。

  2. 確保與 ExecuTorch 執行時相容:介面卡將模型的前向簽名與 executorch/extension/llm/runner 中的簽名進行匹配,確保匯出的模型可以在 ExecuTorch 中即開即用。

transformers.convert_and_export_with_cache

< >

( model: PreTrainedModel example_input_ids: typing.Optional[torch.Tensor] = None example_cache_position: typing.Optional[torch.Tensor] = None dynamic_shapes: typing.Optional[dict] = None strict: typing.Optional[bool] = None ) 匯出的程式 (torch.export.ExportedProgram)

引數

  • model (PreTrainedModel) — 要匯出的預訓練模型。
  • example_input_ids (Optional[torch.Tensor]) — torch.export 使用的示例輸入詞元 ID。
  • example_cache_position (Optional[torch.Tensor]) — torch.export 使用的示例當前快取位置。
  • dynamic_shapes(Optional[dict])torch.export 使用的動態形狀。
  • strict(Optional[bool]) — 指示 torch.export 使用 torchdynamo 的標誌。

返回

匯出的程式 (torch.export.ExportedProgram)

透過 torch.export 生成的匯出程式。

PreTrainedModel 轉換為可匯出模組,並使用 torch.export 進行匯出,確保匯出的模型與 ExecuTorch 相容。

< > 在 GitHub 上更新

© . This site is unofficial and not affiliated with Hugging Face, Inc.