зеркало из https://github.com/microsoft/DeepSpeed.git
New feature contribution guideline (#1646)
This commit is contained in:
Родитель
8bbf081ad8
Коммит
752319c782
|
@ -65,3 +65,31 @@ Conduct](https://opensource.microsoft.com/codeofconduct/). For more information
|
|||
[Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact
|
||||
[opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or
|
||||
comments.
|
||||
|
||||
## New Feature Contribution Guidelines
|
||||
Unlike bug fix or improving existing feature (where users usually directly submit a PR and we review it), adding a new feature to DeepSpeed requires several steps: (1) proposal and discussion, (2) implementation and verification, (3) release and maintenance. This general guideline applies to all new feature contributions. Core DeepSpeed team member contributions may complete step 1 internally.
|
||||
|
||||
### Step 1: proposal and discussion
|
||||
We ask users to first post your intended feature in an issue. This issue needs to include:
|
||||
|
||||
* A description of the proposed feature.
|
||||
* A motivation of why it will be useful to DeepSpeed users.
|
||||
* A rough design of how you implement the feature inside DeepSpeed.
|
||||
* (Important) Results or planned experiments to demonstrate the effectiveness and correctness of the feature.
|
||||
* If this is a general feature applicable to different tasks, we require testing it on at least one CV task (e.g., [CIFAR](https://www.deepspeed.ai/tutorials/cifar-10/)) and one NLP task (e.g., [SQuAD](https://www.deepspeed.ai/tutorials/bert-finetuning/)). If this is a feature for one kind of task only, it is fine to just test on the specific task.
|
||||
* If the feature only affects performance and does not affect training convergence, we require testing on a fraction of training to demonstrate that the training/validation loss are consistent with baseline, and that the performance is better than baseline.
|
||||
* If the feature does affect training convergence, we require testing the whole training to demonstrate that the feature achieves better/on-par final model quality and training performance compared to baseline.
|
||||
|
||||
Based on the issue we shall discuss the merit of the new feature and decide whether accept or decline the proposal. Once accepted and after we confirm the design and implementation plan, we are ready for step 2.
|
||||
|
||||
### Step 2: implementation and verification
|
||||
Contributor will go ahead and implement the feature, and the DeepSpeed team will provide guidance/helps as needed. The required deliverables include:
|
||||
|
||||
* A PR to [microsoft/DeepSpeed](https://github.com/microsoft/DeepSpeed) including (1) the feature implementation (2) unit tests (3) documentation (4) tutorial
|
||||
* A PR to [microsoft/DeepSpeedExamples](https://github.com/microsoft/DeepSpeedExamples) or [microsoft/Megatron-DeepSpeed](https://github.com/microsoft/Megatron-DeepSpeed) including the examples of how to use the feature (this is related to the planned testing experiments in proposal)
|
||||
* In the implementation (code, documentation, tutorial), we require the feature author to record their GitHub username as a contact method for future questions/maintenance.
|
||||
|
||||
After receiving the PRs, we will review them and merge them after necessary tests/fixes.
|
||||
|
||||
### Step 3: release and maintenance
|
||||
After the PRs are merged, we will announce the feature on our website (with credit to the feature author). We ask the feature author to commit to the maintenance of the feature.
|
||||
|
|
Загрузка…
Ссылка в новой задаче