Transformers 4.37 中文文档(十)(3)

简介: Transformers 4.37 中文文档(十)

Transformers 4.37 中文文档(十)(2)https://developer.aliyun.com/article/1564903


A100(批量大小:4)

任务/模型 torch 2.0 - 无编译 torch 2.0 - 编译
图像分类/ViT 14.832 14.499
图像分割/Segformer 18.838 16.476
图像分类/BeiT 13.205 13.048
目标检测/DETR 48.657 32.418
图像分类/ConvNeXT 22.940 21.631
图像分类/ResNet 6.657 4.268
图像分割/Mask2former 74.277 61.781
图像分割/Maskformer 180.700 159.116
图像分割/MobileNet 14.174 8.515
目标检测/Resnet-101 68.101 44.998
目标检测/Conditional-DETR 56.470 35.552

A100(批量大小:16)

任务/模型 torch 2.0 - 无编译 torch 2.0 - 编译
图像分类/ViT 40.944 40.010
图像分割/Segformer 37.005 31.144
图像分类/BeiT 41.854 41.048
目标检测/DETR 164.382 161.902
图像分类/ConvNeXT 82.258 75.561
图像分类/ResNet 7.018 5.024
图像分割/Mask2former 178.945 154.814
图像分割/Maskformer 638.570 579.826
图像分割/MobileNet 51.693 30.310
目标检测/Resnet-101 232.887 155.021
目标检测/Conditional-DETR 180.491 124.032

V100(批量大小:1)

任务/模型 torch 2.0 - 无编译 torch 2.0 - 编译
图像分类/ViT 10.495 6.00
图像分割/Segformer 13.321 5.862
目标检测/OwlViT 25.769 22.395
图像分类/BeiT 11.347 7.234
目标检测/DETR 33.951 19.388
图像分类/ConvNeXT 11.623 10.412
图像分类/ResNet 6.484 3.820
图像分割/Mask2former 64.640 49.873
图像分割/Maskformer 95.532 72.207
图像分割/MobileNet 9.217 4.753
目标检测/Resnet-101 52.818 28.367
目标检测/Conditional-DETR 39.512 20.816

V100(批量大小:4)

任务/模型 torch 2.0 - 无编译 torch 2.0 - 编译
图像分类/ViT 15.181 14.501
图像分割/Segformer 16.787 16.188
图像分类/BeiT 15.171 14.753
目标检测/DETR 88.529 64.195
图像分类/ConvNeXT 29.574 27.085
图像分类/ResNet 6.109 4.731
图像分割/Mask2former 90.402 76.926
图像分割/Maskformer 234.261 205.456
图像分割/MobileNet 24.623 14.816
目标检测/Resnet-101 134.672 101.304
目标检测/Conditional-DETR 97.464 69.739

V100(批量大小:16)

任务/模型 torch 2.0 - 无编译 torch 2.0 - 编译
图像分类/ViT 52.209 51.633
图像分割/Segformer 61.013 55.499
图像分类/BeiT 53.938 53.581
目标检测/DETR OOM OOM
图像分类/ConvNeXT 109.682 100.771
图像分类/ResNet 14.857 12.089
图像分割/Mask2former 249.605 222.801
图像分割/Maskformer 831.142 743.645
图像分割/MobileNet 93.129 55.365
目标检测/Resnet-101 482.425 361.843
目标检测/Conditional-DETR 344.661 255.298

T4(批量大小:1)

任务/模型 torch 2.0 - 无编译 torch 2.0 - 编译
图像分类/ViT 16.520 15.786
图像分割/Segformer 16.116 14.205
目标检测/OwlViT 53.634 51.105
图像分类/BeiT 16.464 15.710
目标检测/DETR 73.100 53.99
图像分类/ConvNeXT 32.932 30.845
图像分类/ResNet 6.031 4.321
图像分割/Mask2former 79.192 66.815
图像分割/Maskformer 200.026 188.268
图像分割/MobileNet 18.908 11.997
目标检测/Resnet-101 106.622 82.566
目标检测/Conditional-DETR 77.594 56.984

T4(批量大小:4)

任务/模型 torch 2.0 - 无编译 torch 2.0 - 编译
图像分类/ViT 43.653 43.626
图像分割/Segformer 45.327 42.445
图像分类/BeiT 52.007 51.354
目标检测/DETR 277.850 268.003
图像分类/ConvNeXT 119.259 105.580
图像分类/ResNet 13.039 11.388
图像分割/Mask2former 201.540 184.670
图像分割/Maskformer 764.052 711.280
图像分割/MobileNet 74.289 48.677
目标检测/Resnet-101 421.859 357.614
目标检测/Conditional-DETR 289.002 226.945

T4(批量大小:16)

任务/模型 torch 2.0 - 无编译 torch 2.0 - 编译
图像分类/ViT 163.914 160.907
图像分割/Segformer 192.412 163.620
图像分类/BeiT 188.978 187.976
目标检测/DETR OOM OOM
图像分类/ConvNeXT 422.886 388.078
图像分类/ResNet 44.114 37.604
图像分割/Mask2former 756.337 695.291
图像分割/Maskformer 2842.940 2656.88
图像分割/MobileNet 299.003 201.942
目标检测/Resnet-101 1619.505 1262.758
目标检测/Conditional-DETR 1137.513 897.390

PyTorch Nightly

我们还在 PyTorch nightly(2.1.0dev,可以在这里找到)上进行了基准测试,并观察到未编译和编译模型的延迟均有所改善。

A100

任务/模型 批量大小 torch 2.0 - 无编译 torch 2.0 - 编译
图像分类/BeiT 未分批 12.462 6.954
图像分类/BeiT 4 14.109 12.851
图像分类/BeiT 16 42.179 42.147
目标检测/DETR 未分批 30.484 15.221
目标检测/DETR 4 46.816 30.942
目标检测/DETR 16 163.749 163.706

T4

任务/模型 批量大小 torch 2.0 - 无编译 torch 2.0 - 编译
图像分类/BeiT 未分批 14.408 14.052
图像分类/BeiT 4 47.381 46.604
图像分类/BeiT 16 42.179 42.147
目标检测/DETR 未分批 68.382 53.481
目标检测/DETR 4 269.615 204.785
目标检测/DETR 16 OOM OOM

V100

任务/模型 批量大小 torch 2.0 - 无编译 torch 2.0 - 编译
图像分类/BeiT 未分批 13.477 7.926
图像分类/BeiT 4 15.103 14.378
图像分类/BeiT 16 52.517 51.691
目标检测/DETR 未分批 28.706 19.077
目标检测/DETR 4 88.402 62.949
目标检测/DETR 16 OOM OOM

减少开销

我们在夜间对 A100 和 T4 进行了reduce-overhead编译模式的基准测试。

A100

任务/模型 批量大小 torch 2.0 - 无编译 torch 2.0 - 编译
图像分类/ConvNeXT 未分批 11.758 7.335
图像分类/ConvNeXT 4 23.171 21.490
图像分类/ResNet 未分批 7.435 3.801
图像分类/ResNet 4 7.261 2.187
目标检测/条件 DETR 未批处理 32.823 11.627
目标检测/条件 DETR 4 50.622 33.831
图像分割/MobileNet 未批处理 9.869 4.244
图像分割/MobileNet 4 14.385 7.946

T4

任务/模型 批处理大小 torch 2.0 - 无编译 torch 2.0 - 编译
图像分类/ConvNeXT 未批处理 32.137 31.84
图像分类/ConvNeXT 4 120.944 110.209
图像分类/ResNet 未批处理 9.761 7.698
图像分类/ResNet 4 15.215 13.871
目标检测/条件 DETR 未批处理 72.150 57.660
目标检测/条件 DETR 4 301.494 247.543
图像分割/MobileNet 未批处理 22.266 19.339
图像分割/MobileNet 4 78.311 50.983

贡献

贡献给🤗 Transformers

原文:huggingface.co/docs/transformers/v4.37.2/en/contributing

欢迎每个人贡献,我们重视每个人的贡献。代码贡献并不是帮助社区的唯一方式。回答问题,帮助他人,改进文档也是非常有价值的。

如果您帮助传播消息,也会对我们有所帮助!在博客文章中提到这个令人惊叹的项目所可能实现的项目,每次它帮助您时在 Twitter 上大声疾呼,或者简单地⭐️这个存储库以表示感谢。

无论您选择如何贡献,请注意并尊重我们的行为准则

本指南受到了令人惊叹的scikit-learn 贡献指南的启发。

贡献的方式

有几种方式可以为🤗 Transformers 做出贡献:

  • 修复现有代码中的未解决问题。
  • 提交与错误或期望的新功能相关的问题。
  • 实现新模型。
  • 为示例或文档做出贡献。

如果您不知道从哪里开始,有一个特殊的Good First Issue列表。它将为您提供一份友好的初学者的问题列表,并帮助您开始为开源项目做出贡献。只需在您想要处理的问题上发表评论即可。

对于稍微具有挑战性的事情,您还可以查看Good Second Issue列表。总的来说,如果您觉得自己知道在做什么,就去做吧,我们会帮助您实现目标!🚀

所有贡献对社区都同样有价值。🥰

修复未解决的问题

如果您注意到现有代码中存在问题并有解决方案,请随时开始贡献并打开一个拉取请求!

提交与错误相关的问题或功能请求

在提交与错误相关的问题或功能请求时,请尽力遵循这些准则。这将使我们更容易快速回复您并提供良好的反馈。

您发现了一个错误吗?

🤗 Transformers 库之所以强大可靠,要感谢那些报告他们遇到问题的用户。

在报告问题之前,我们真的很感激您确保错误尚未被报告(在 GitHub 的问题下使用搜索栏)。您的问题也应与库本身中的错误有关,而不是您的代码。如果您不确定错误是在您的代码中还是在库中,请先在论坛中询问。这有助于我们更快地回应与库相关的问题,而不是一般问题。

一旦确认错误尚未被报告,请在您的问题中包含以下信息,以便我们能够快速解决:

  • 您的操作系统类型和版本以及PythonPyTorchTensorFlow版本(如果适用)。
  • 一个简短的、自包含的代码片段,使我们能够在不到 30 秒内重现错误。
  • 完整的异常跟踪信息。
  • 附加任何其他可能有助于的信息,如截图。

要自动获取操作系统和软件版本,请运行以下命令:

transformers-cli env

您还可以从存储库的根目录运行相同的命令:

python src/transformers/commands/transformers_cli.py env

您想要一个新功能吗?

如果您希望在🤗 Transformers 中看到一个新功能,请打开一个问题并描述:

  1. 这个功能背后的动机是什么?它是否与库中的问题或挫折有关?它是否与您需要的项目相关的功能?它是否是您正在开发的东西,您认为它可能有益于社区?
    无论是什么,我们都很乐意听到!
  2. 尽可能详细地描述您请求的功能。您能告诉我们的越多,我们就能更好地帮助您。
  3. 提供一个演示功能使用的代码片段
  4. 如果功能与论文相关,请包含链接。

如果您的问题写得很好,那么在您创建问题时我们已经完成了 80%的工作。

我们已经添加了模板来帮助您开始解决问题。

您想要实现一个新模型吗?

新模型不断发布,如果您想实现新模型,请提供以下信息

  • 模型的简短描述和论文链接。
  • 如果实现是开源的,请提供实现的链接。
  • 如果模型权重可用,请提供模型权重的链接。

如果您愿意贡献模型,请告诉我们,这样我们就可以帮助您将其添加到🤗 Transformers 中!

我们已经添加了一个详细指南和模板来帮助您开始添加新模型,我们还有一个更详细的指南,介绍了如何向🤗 Transformers 添加模型

您想添加文档吗?

我们始终在寻找使文档更清晰和准确的改进。请告诉我们如何改进文档,例如拼写错误和任何缺失、不清晰或不准确的内容。如果您有兴趣,我们将很乐意进行更改或帮助您做出贡献!

有关如何生成、构建和编写文档的更多详细信息,请查看文档README

创建一个 Pull Request

在编写任何代码之前,我们强烈建议您搜索现有的 PR 或问题,以确保没有人已经在处理相同的事情。如果您不确定,最好打开一个问题以获得一些反馈。

您需要基本的git熟练技能才能为🤗 Transformers 做出贡献。虽然git不是最容易使用的工具,但它有最详尽的手册。在 shell 中键入git --help并享受!如果您更喜欢书籍,Pro Git是一个非常好的参考。

您需要**Python 3.8)**或更高版本才能为🤗 Transformers 做出贡献。请按照以下步骤开始贡献:

  1. 通过点击存储库页面上的**Fork**按钮来 fork 存储库。这将在您的 GitHub 用户帐户下创建代码副本。
  2. 将您的 fork 克隆到本地磁盘,并将基本存储库添加为远程:
git clone git@github.com:<your Github handle>/transformers.git
cd transformers
git remote add upstream https://github.com/huggingface/transformers.git
  1. 创建一个新分支来保存您的开发更改:
git checkout -b a-descriptive-name-for-my-changes
  1. 🚨 不要main分支上工作!
  2. 在虚拟环境中运行以下命令设置开发环境:
pip install -e ".[dev]"
  1. 如果🤗 Transformers 已经安装在虚拟环境中,请在重新安装时使用pip uninstall transformers将其删除,然后使用-e标志以可编辑模式重新安装。
    根据您的操作系统,由于 Transformers 的可选依赖项数量正在增加,您可能会在此命令中遇到失败。如果是这种情况,请确保安装您正在使用的深度学习框架(PyTorch、TensorFlow 和/或 Flax),然后执行:
pip install -e ".[quality]"
  1. 这对大多数用例来说应该足够了。
  2. 在您的分支中开发功能。
    在编写代码时,您应确保测试套件通过。运行受您更改影响的测试如下:
pytest tests/<TEST_TO_RUN>.py
  1. 有关测试的更多信息,请查看Testing指南。
    🤗 Transformers 依赖于blackruff来一致格式化其源代码。在进行更改后,应用自动样式更正和代码验证,这些更改无法一次性自动完成:
make fixup
  1. 此目标还经过优化,仅适用于您正在处理的 PR 修改的文件。
    如果您更喜欢逐个运行检查,以下命令适用于样式更正:
make style
  1. 🤗 Transformers 还使用ruff和一些自定义脚本来检查编码错误。质量控制由 CI 运行,但您也可以使用相同的检查运行:
make quality
  1. 最后,我们有很多脚本,以确保在添加新模型时不会忘记更新一些文件。您可以使用以下命令运行这些脚本:
make repo-consistency
  1. 要了解更多关于这些检查以及如何解决其中任何问题的信息,请查看拉取请求上的检查指南。
    如果您修改了docs/source目录下的文档,请确保文档仍然可以构建。当您打开拉取请求时,此检查也将在 CI 中运行。要运行本地检查,请确保安装文档生成器:
pip install ".[docs]"
  1. 从存储库的根目录运行以下命令:
doc-builder build transformers docs/source/en --build_dir ~/tmp/test-build
  1. 这将在~/tmp/test-build文件夹中构建文档,您可以使用您喜欢的编辑器检查生成的 Markdown 文件。您还可以在打开拉取请求时在 GitHub 上预览文档。
    当您对更改满意时,请使用git add添加更改的文件,并使用git commit在本地记录您的更改:
git add modified_file.py
git commit
  1. 请记得写良好的提交消息,以清楚地传达您所做的更改!
    为了使您的代码副本与原始存储库保持最新,请在打开拉取请求之前或维护者要求时,在upstream/branch上对您的分支进行变基:
git fetch upstream
git rebase upstream/main
  1. 将更改推送到您的分支:
git push -u origin a-descriptive-name-for-my-changes
  1. 如果您已经打开了一个拉取请求,您需要使用--force标志进行强制推送。否则,如果拉取请求尚未打开,您可以正常推送您的更改。
  2. 现在,您可以转到 GitHub 上存储库的分支,并单击拉取请求以打开拉取请求。确保您在下面的检查列表上勾选所有框。当您准备好时,您可以将更改发送给项目维护者进行审查。
  3. 如果维护者要求更改,那没关系,我们的核心贡献者也会遇到这种情况!这样每个人都可以在拉取请求中看到更改,您可以在本地分支上工作并将更改推送到您的分支。它们将自动出现在拉取请求中。


Transformers 4.37 中文文档(十)(4)https://developer.aliyun.com/article/1564905

相关文章
|
5月前
|
数据可视化 PyTorch 测试技术
Transformers 4.37 中文文档(五)(6)
Transformers 4.37 中文文档(五)
74 2
|
5月前
|
PyTorch TensorFlow 调度
Transformers 4.37 中文文档(二)(5)
Transformers 4.37 中文文档(二)
106 5
|
5月前
|
自然语言处理 PyTorch TensorFlow
Transformers 4.37 中文文档(一)(1)
Transformers 4.37 中文文档(一)
105 1
|
5月前
|
编解码 缓存 算法
Transformers 4.37 中文文档(一百)(2)
Transformers 4.37 中文文档(一百)
46 1
|
5月前
|
自然语言处理 PyTorch TensorFlow
Transformers 4.37 中文文档(一百)(4)
Transformers 4.37 中文文档(一百)
48 1
|
5月前
|
存储 PyTorch 算法框架/工具
Transformers 4.37 中文文档(八十三)(2)
Transformers 4.37 中文文档(八十三)
39 3
|
5月前
|
PyTorch TensorFlow 算法框架/工具
Transformers 4.37 中文文档(四)(3)
Transformers 4.37 中文文档(四)
41 1
|
5月前
|
存储 自然语言处理 安全
Transformers 4.37 中文文档(二)(3)
Transformers 4.37 中文文档(二)
68 2
|
5月前
|
自然语言处理 PyTorch TensorFlow
Transformers 4.37 中文文档(二)(4)
Transformers 4.37 中文文档(二)
46 2
|
5月前
|
存储 编解码 PyTorch
Transformers 4.37 中文文档(八十三)(3)
Transformers 4.37 中文文档(八十三)
31 2