贡献
DeepSpeed 欢迎您的贡献!
先决条件
DeepSpeed 使用 pre-commit 来确保 DeepSpeed 代码格式的一致性。首先,请确保已通过安装 DeepSpeed 或运行 pip install pre-commit
来安装 pre-commit
。接下来,在提交代码之前,需要安装一次 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 用于执行测试。可以通过 pip install pytest
从 PyPI 安装 PyTest。只需调用 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 的所有仓库中执行一次此操作。
行为准则
本项目已采用 微软开源行为准则。欲了解更多信息,请参阅行为准则常见问题,或发送电子邮件至 opencode@microsoft.com 提出任何其他问题或意见。