贡献
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 ,然后重复之前的git commit命令。
测试
DeepSpeed 跟踪两种类型的测试:单元测试和更耗时的模型收敛测试。
模型收敛测试训练
DeepSpeedExamples 并测量
端到端收敛和相关指标。单元测试位于 tests/unit/ 中,
模型收敛测试位于 tests/model/ 中。
单元测试
PyTest 用于执行测试。PyTest 可以通过 pip install pytest 从 PyPI 安装。只需调用 pytest --forked 来运行单元测试:
pytest --forked tests/unit/
你也可以提供-v标志给pytest来查看关于测试的额外信息。请注意,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 开源行为准则。欲了解更多信息,请参阅行为准则常见问题解答或通过opencode@microsoft.com联系,提出任何额外的问题或意见。