贡献

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 下载的训练数据。

要执行模型测试,首先 安装 DeepSpeedDeepSpeedExamples 仓库作为此过程的一部分会被克隆。接下来,执行模型测试驱动程序。

cd tests/model/
pytest run_sanity_check.py

请注意,模型测试不需要 --forked 标志。

贡献者许可协议

本项目欢迎贡献和建议。大多数贡献要求您同意贡献者许可协议 (CLA),声明您有权且确实授予我们使用您的贡献的权利。详情请访问 https://cla.opensource.microsoft.com

当您提交拉取请求时,CLA 机器人将自动判断您是否需要提供 CLA,并相应地修饰 PR(例如,状态检查、评论)。只需遵循机器人提供的指示即可。您只需在使用我们 CLA 的所有仓库中执行一次此操作。

行为准则

本项目已采用 微软开源行为准则。欲了解更多信息,请参阅行为准则常见问题,或发送电子邮件至 opencode@microsoft.com 提出任何其他问题或意见。