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

相关文章
|
Rust 数据可视化 安全
Rust性能分析工具概览:perf、flamegraph 与其他
Rust作为一种高性能、内存安全的编程语言,在构建大型系统和微服务时备受青睐。然而,优化Rust程序的性能需要有效的工具。本文将对Rust中常用的性能分析工具进行介绍,包括perf、flamegraph等,并探讨它们如何帮助开发者定位和解决性能瓶颈。
1312 1
|
定位技术
最完整的经纬度正则表达式
最完整的就是最好的 ----经纬度
15481 0
|
数据处理 Python
doccano数据标注平台搭建
基于阿里云服务器ESC示例,搭建doccano数据标注平台
|
3月前
|
存储 人工智能 自然语言处理
AI-Compass GraphRAG技术生态:集成微软GraphRAG、蚂蚁KAG等主流框架,融合知识图谱与大语言模型实现智能检索生成
AI-Compass GraphRAG技术生态:集成微软GraphRAG、蚂蚁KAG等主流框架,融合知识图谱与大语言模型实现智能检索生成
|
SQL 运维 Cloud Native
基于OceanBase+Flink CDC,云粒智慧实时数仓演进之路
本文讲述了其数据中台在传统数仓技术框架下做的一系列努力后,跨进 FlinkCDC 结合 OceanBase 的实时数仓演进过程。
22937 2
 基于OceanBase+Flink CDC,云粒智慧实时数仓演进之路
|
搜索推荐 安全 数据安全/隐私保护
SearXNG与LLM强强联合:打造用户隐私保护的智能搜索解答流程,隐私无忧,搜索无忧
【8月更文挑战第9天】SearXNG与LLM强强联合:打造用户隐私保护的智能搜索解答流程,隐私无忧,搜索无忧
SearXNG与LLM强强联合:打造用户隐私保护的智能搜索解答流程,隐私无忧,搜索无忧
|
Serverless Go C语言
函数计算产品使用问题之如何在Golang运行时环境中解决glibc依赖问题
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
227 1
|
12月前
|
IDE 机器人 开发工具
基于ESP32的机器狗
基于ESP32的机器狗
267 0
|
12月前
|
数据采集 机器学习/深度学习 人工智能
[大语言模型-论文精读] 利用多样性进行大型语言模型预训练中重要数据的选择
[大语言模型-论文精读] 利用多样性进行大型语言模型预训练中重要数据的选择
253 0
|
项目管理 数据安全/隐私保护 Python
使用poetry来更优雅的管理 python 包
Poetry 的优势在于它提供了一个统一的工具来处理 Python 项目的整个生命周期,从依赖管理到打包和发布。它的依赖解析器非常强大,能够有效地处理复杂的依赖关系。此外,Poetry 还提供了一个直观的命令行界面,使得项目管理变得更加简单。 对于团队协作和项目部署来说,Poetry 的依赖锁定功能(通过 poetry.lock 文件)特别有用,因为它确保了所有环境中使用相同版本的依赖。