diff --git a/README.md b/README.md index b68314f297..ec6ab30aad 100644 --- a/README.md +++ b/README.md @@ -40,9 +40,14 @@ The Guiding Principles when building `torchtitan` * Minimal changes to the model code when applying multi-dimensional parallelism. * Bias towards a clean, minimal codebase while providing basic reusable / swappable components. -`torchtitan` has been showcasing PyTorch's latest distributed training features, via pretraining Llama 3.1 LLMs of various sizes. -To accelerate contributions to and innovations around torchtitan, we host an [`experiments`](torchtitan/experiments) folder. We look forward to your contributions! +`torchtitan` has been showcasing PyTorch's latest distributed training features, via support for pretraining Llama 3.1 LLMs of various sizes. +## Contributing + +We look forward to your contributions! + +* To accelerate contributions to and innovations around torchtitan, we host an [`experiments`](torchtitan/experiments) folder. New ideas should start there. To contribute, follow the [`experiments guidelines`](torchtitan/experiments/README.md). +* For fixes and contributions to core, follow these [`guidelines`](CONTRIBUTING.md). ## Llama 3.1 training diff --git a/torchtitan/experiments/README.md b/torchtitan/experiments/README.md index 6442ea71f8..10b90ac1d4 100644 --- a/torchtitan/experiments/README.md +++ b/torchtitan/experiments/README.md @@ -10,7 +10,7 @@ We provide this `experiments/` folder to host experiments that add significant v 3. An experiment should reuse existing `torchtitan` code as much as possible, such as modules in [`components/`](../components/) (via a new [`TrainSpec`](../protocols/train_spec.py)) and [`train.py`](../train.py). For a list of extension points we provide, please refer to [docs/extension.md](../../docs/extension.md). - The extension points are subject to change. We kindly request that contributors provide feedback if they encounter issues reusing any components, rather than simply using a copy-and-paste approach. - The degree to which existing components are reused and whether duplications are legit will also be a criteria of whether an experiment would be accepted. -4. Each experiment is independent from other experiments, and can have its own dependencies (on top of [core dependencies](../../requirements.txt)), and its own tests. +4. Each experiment is independent from other experiments, and can have its own dependencies (on top of [core dependencies](../../requirements.txt)), and its own tests. An experiment should not contain vendor-specific code, such as kernels written in a proprietary language. Those can be hosted outside as dependency. 5. The dependency from `experiments` to `core` is one-way. Anything in `experiments` is optional for `core` to run successfully. In particular, development in `core` is not blocked by breakage in `experiments`. We will utilize GitHub's [CI mechanism](https://docs.github.com/en/actions/writing-workflows/workflow-syntax-for-github-actions#onpushpull_requestpull_request_targetpathspaths-ignore) to help test an experiment periodically and only if the experiment itself is affected by a PR. 6. Each experiment needs to have an owner. The owner is responsible to work with `torchtitan` team to maintain the quality and healthiness of an experiment, which includes - adapting an experiment to changes in `core` and fix broken tests, no later than the next official `torchtitan` release;