ExecuTorch 文档

为不受支持的架构添加支持

Hugging Face's logo
加入 Hugging Face 社区

并获得增强的文档体验

开始使用

为不受支持的架构添加支持

我们欢迎您为扩展 ExecuTorch 导出功能做出贡献。本指南为希望以下操作的贡献者提供了高级说明:

  1. 导出当前不支持的新模型。
  2. 添加新的配方或支持新的导出任务。

导出新模型

如果您想导出库中尚未支持的模型,请按照以下步骤操作:

步骤 1:导出和测试模型

  1. 尝试使用现有任务和配方导出并降低模型。成功后,它会将导出的模型存储在 `.pte` 文件中。
  2. 在相应的测试套件中为模型添加一个测试用例。
    • 例如,您可以通过运行以下命令来确保新的 my_new_model 通过测试:
      pytest tests/executorch/export/test_*.py -k "test_my_new_model"  # doctest: +SKIP
      pytest tests/executorch/runtime/test_*.py -k "test_my_new_model"  # doctest: +SKIP

步骤 2:处理导出失败

  1. 如果步骤 1 中的导出失败,请通过打开 GitHub Issue 来报告问题。
  2. 如果问题需要更改模型的架构或其 Hugging Face 实现,则这些修改可以在 Hugging Face Transformers 库的上游进行。

添加新配方或任务

要使用新配方或任务扩展 ExecuTorch,请遵循以下准则:

注册新配方

您可以添加自定义配方来定义导出模型的特定优化或配置。以下是一个示例:

from exporters.executorch import register_recipe

@register_recipe("my_custom_recipe")
def export_with_custom_recipe(model, config, *args, **kwargs):
    # Example: Apply a custom quantization

注册任务

任务注册过程与添加配方相同。除此之外,您可能需要实现一个新的 `ExecuTorchModelForXXX` 类。