Transformers 文件
ExecuTorch
並獲得增強的文件體驗
開始使用
ExecuTorch
ExecuTorch
是一個端到端的解決方案,用於在移動和邊緣裝置(包括可穿戴裝置、嵌入式裝置和微控制器)上啟用裝置端推理功能。它是 PyTorch 生態系統的一部分,支援 PyTorch 模型的部署,並專注於可移植性、生產力和效能。
ExecuTorch 引入了定義明確的入口點,以執行特定於模型、裝置和/或用例的最佳化,例如後端委託、使用者定義的編譯器轉換、記憶體規劃等。使用 ExecuTorch 準備 PyTorch 模型以在邊緣裝置上執行的第一步是匯出模型。這是透過使用一個名為 torch.export
的 PyTorch API 實現的。
ExecuTorch 整合
我們正在開發一個整合點,以確保 🤗 Transformers 可以使用 torch.export
進行匯出。此整合的目標不僅是實現匯出,還要確保匯出的工件可以被進一步降級和最佳化,以便在 ExecuTorch
中高效執行,尤其適用於移動和邊緣用例。
一個配方模組,旨在使 PreTrainedModel
能夠透過 torch.export
匯出,特別是將僅解碼器(decoder-only)的語言模型匯出到 StaticCache
。此模組確保匯出的模型與在 ExecuTorch
中進一步降級和執行相容。
注意:此類專門設計用於支援使用 torch.export
的匯出過程,以確保模型可以被進一步降級並在 ExecuTorch
中高效執行。
forward
< 來源 >( input_ids: Tensor cache_position: Tensor ) → torch.Tensor
模組的前向傳遞,與 ExecuTorch 執行時相容。
此 forward 介面卡主要有兩個目的:
使模型與
torch.export
相容:介面卡將不支援的物件(例如Cache
)從計算圖的輸入和輸出中隱藏,從而使模型能夠使用torch.export
匯出而不會遇到問題。確保與
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
相容。