贡献
DeepSpeed 欢迎您的贡献!
先决条件
DeepSpeed 使用 pre-commit 来确保格式在整个 DeepSpeed 中保持一致。首先,确保 pre-commit
是从安装 DeepSpeed 或 pip install pre-commit
安装的。接下来,必须在提交之前安装一次预提交钩子
pre-commit install
之后,我们的格式化测试套件会在每次 git commit
之前自动运行。您也可以手动运行它们
pre-commit run --all-files
如果格式化测试失败,它将修复已修改的代码并中止 git commit
。查看更改后,您可以 git add <modified files>
,然后重复之前的 git commit
命令。
测试
DeepSpeed 跟踪两种类型的测试:单元测试和更昂贵的模型收敛测试。模型收敛测试训练 DeepSpeedExamples 并测量端到端收敛和相关指标。单元测试位于 tests/unit/
中,模型收敛测试位于 tests/model/
中。
单元测试
PyTest 用于执行测试。PyTest 可以通过 pip install pytest
从 PyPI 安装。只需调用 pytest --forked
即可运行单元测试
pytest --forked tests/unit/
您还可以向 pytest
提供 -v
标志以查看有关测试的更多信息。请注意,pytest-forked 和 --forked
标志是测试分布式测试中的 CUDA 功能所必需的。
模型测试
模型测试需要四个 GPU 和为 DeepSpeedExamples 下载的训练数据。
要执行模型测试,首先 安装 DeepSpeed。在此过程中,DeepSpeedExamples 存储库被克隆。接下来,执行模型测试驱动程序
cd tests/model/
pytest run_sanity_check.py
请注意,--forked
标志对于模型测试来说不是必需的。
贡献者许可协议
此项目欢迎贡献和建议。大多数贡献要求您同意贡献者许可协议 (CLA),声明您有权并且确实授予我们使用您的贡献的权利。有关详细信息,请访问 https://cla.opensource.microsoft.com。
当您提交拉取请求时,CLA 机器人将自动确定您是否需要提供 CLA 并相应地装饰 PR(例如,状态检查、评论)。只需按照机器人提供的说明操作即可。您只需在使用我们 CLA 的所有存储库中执行一次此操作。
行为准则
此项目已采用 Microsoft 开源行为准则。有关更多信息,请参阅 行为准则常见问题解答 或联系 [email protected] 提出任何其他问题或意见。