遵循以下最佳实践的项目将能够自愿的自我认证,并显示他们已经实现了核心基础设施计划(OpenSSF)徽章。 显示详细资料
[](https://www.bestpractices.dev/projects/9530)
<a href="https://www.bestpractices.dev/projects/9530"><img src="https://www.bestpractices.dev/projects/9530/badge"></a>
DeepSpeed is a deep learning optimization library that makes distributed training and inference easy, efficient, and effective.
https://github.com/microsoft/DeepSpeed/blob/master/CONTRIBUTING.md
CLA from Microsoft currently, covered here: https://github.com/microsoft/DeepSpeed/blob/master/CONTRIBUTING.md#contributor-license-agreement
https://github.com/microsoft/DeepSpeed/blob/master/GOVERNANCE.md
Code of Conduct posted in normal CODE_OF_CONDUCT.md file location and states that this project uses the Microsoft OSS Code of conduct: https://github.com/microsoft/DeepSpeed/blob/master/CODE_OF_CONDUCT.md
Added and explained in governance doc here: https://github.com/microsoft/DeepSpeed/blob/master/GOVERNANCE.md
For the GitHub project, there are multiple people who could all add others to continue the project: https://github.com/orgs/deepspeedai/people
As you can see from the Contributors graph here: https://github.com/microsoft/DeepSpeed/graphs/contributors there are plenty of contributors who could carry on in the event this was necessary.
Following vLLM repository approach of an issue per quarter tracking the roadmap: https://github.com/microsoft/DeepSpeed/issues/6946
This is covered both on https://deepspeed/ai as well as on our ReadTheDocs page here: https://deepspeed.readthedocs.io/en/latest/
This is discussed briefly here: https://github.com/microsoft/DeepSpeed/blob/master/SECURITY.md
The deepspeed.ai website has a list of starting integrations: https://www.deepspeed.ai/getting-started/, this is also covered in the README where it points to the DeepSpeed-MII and DeepSpeedExamples repo.
The blogs and DeepSpeed website are both updated as the releases are released: https://github.com/microsoft/DeepSpeed/tree/master/blogs
Listed on top: https://github.com/microsoft/DeepSpeed/blob/master/README.md
The project website and GitHub both follow best practices for availability.
This project doesn't produce any human readable text that is outside of the scope of the programming language
Websites do not require any username/authentication from end users so there is nothing to store.
If breaking changes are made, they are documented in the release notes for which PRs have caused these changes, and the PRs themselves contain the needed steps to upgrade or links to those if they are dependent on other packages.
https://github.com/microsoft/DeepSpeed/issues
No new vulnerability reports to GitHub, those submitted to Huntr and processed via Microsoft are all credited.
Vulnerability reporting is covered under the SECURITY.md file here: https://github.com/microsoft/DeepSpeed/blob/master/SECURITY.md#security
The specific coding styles that are used are identified in the config files here: https://github.com/microsoft/DeepSpeed/blob/master/.pylintrc
This is automatically enforced in the "formatting" checks that use pre-commit and a number of tools, yapf, clang-format, etc. This is listed here: https://github.com/microsoft/DeepSpeed/blob/master/.pre-commit-config.yaml
Flags are only appended, for example, LD_FLAGS are only ever appended to here: https://github.com/search?q=repo%3Amicrosoft%2FDeepSpeed%20LDFLAGS&type=code
This is covered by the python build system, there are no additional verbose/debugging information that isn't preserved.
This is covered by the JIT compilation, these directories are not built if not specified.
Identical builds from the same commit/command/environment is guaranteed based on the build flow, there is no randomness/etc.
This is covered by python, just pip uninstall deepspeed even if installed from PyPI or built from source.
pip uninstall deepspeed
This project meets the python standard conventions for build locations and artifacts.
This is covered by the python packages and dependencies, just pip install deepspeed or it can easily be built quickly.
pip install deepspeed
These are listed in the requirements files in the requirements folder: https://github.com/microsoft/DeepSpeed/tree/master/requirements
The only potential issue is that torch is required to be installed before deepspeed and there is no computer processable way to confirm this.
This is currently done via GitHub alerting us as well as collaboration with those projects.
The external dependencies can easily be updated by creating a PR and modifying the requirements.txt (or equivalent file). The standard components from python are also used, but where not possible, the other python packages can easily be updated and re-built with via the requirements file.
The only non-FLOSS software that is depended upon is CUDA but that is only a requirement on Nvidia GPUs. The python packages don't rely on any deprecated or obsolete functions.
Tests and requirements including code review by at least one other person are required for the master branch. This requires formatting, python checks, as well as unit tests in a number of different files:
test yml files located here: https://github.com/microsoft/DeepSpeed/tree/master/.github/workflows
Regression tests are added and normal CI tests are run nightly as well (with bugs/issues opening new GitHub issues to be easier to track)
Sample nightly CI: https://github.com/microsoft/DeepSpeed/blob/master/.github/workflows/nv-nightly.yml Other nightly tests: https://github.com/microsoft/DeepSpeed/blob/master/.github/workflows/nv-torch-latest-v100.yml#L14C1-L14C24
Sample opening bug if regression tests fail: https://github.com/microsoft/DeepSpeed/blob/c7f58c899f6f099a35d968bdad973f24b842c8c6/.github/workflows/nv-sd.yml#L67C1-L73C64
pytest coverage is used, .coveragerc is here: https://github.com/microsoft/DeepSpeed/blob/c7f58c899f6f099a35d968bdad973f24b842c8c6/tests/.coveragerc#L3
Coverage is output via the GitHub Actions UI
This is covered in the New Feature Contribution Guidelines listed here: https://github.com/microsoft/DeepSpeed/blob/master/CONTRIBUTING.md#new-feature-contribution-guidelines
This is also covered in the New Feature Contribution Guidelines section 2: Implementation and verification: https://github.com/microsoft/DeepSpeed/blob/master/CONTRIBUTING.md#step-2-implementation-and-verification
New errors must be addressed and old errors are slowly being resolved.
This is done to the best of our knowledge, defaults are sane, and the software has been checked by Microsoft's Open Source Security team for secure design decisions.
The software doesn't support cryptographic algorithms on its own, there is no need for a user to specify an algorithm.
The project does not interact with these credentials, only relies on other software like HuggingFace Hub for example.
The project does not output its own security software so there is no need for these protocols.
The software does not output any code that would need to rely on TLS.
The software does not use/require TLS, but the website does support TLS 1.2.
Software output by DeepSpeed does not require TLS.
Releases are securely uploaded to PyPI, this can be verified by PyPI and by using the official upload to PyPI GitHub action.
All releases are tagged and pushed to git, and the .whl builds are pushed to PyPI, but the tags themselves are not cryptographically signed by anything other than what is provided by GitHub.
This is not applicable due to the nature of the project and what it does.
This is covered by input parsing and validation of inputs, and the fact that the software wraps torch.
PyFlake/Flake8/MyPy are all run in the pre-commit formatting/run on all PRs: https://github.com/microsoft/DeepSpeed/blob/master/.pre-commit-config.yaml
We do ship C++ binaries and these should soon be covered as above, we haven't added this coverage yet thought. Though these are cuda style kernels and cannot be fuzzed independently of the main DeepSpeed program.
后退