config hierarchy
State: closed | Pull request: yes
Labels: name: Run CICD

# What does this PR do ?

List of available configuration options and features with the parameters a user can utilize for NeMo2.0 recipes.

**Collection**: [llm]

# Changelog 
- Add specific line by line info of high level changes in this PR.

# Usage
* You can potentially add a usage example below

```python
# Add a code snippet demonstrating how to use this 
```

# GitHub Actions CI

The Jenkins CI system has been replaced by GitHub Actions self-hosted runners.

The GitHub Actions CI will run automatically when the "Run CICD" label is added to the PR.
To re-run CI remove and add the label again.
To run CI on an untrusted fork, a NeMo user with write access must first click "Approve and run".

# Before your PR is "Ready for review"
**Pre checks**:
- [ ] Make sure you read and followed [Contributor guidelines](https://github.com/NVIDIA/NeMo/blob/main/CONTRIBUTING.md)
- [ ] Did you write any new necessary tests?
- [ ] Did you add or update any necessary documentation?
- [ ] Does the PR affect components that are optional to install? (Ex: Numba, Pynini, Apex etc)
  - [ ] Reviewer: Does the PR have correct import guards for all optional libraries?
  
**PR Type**:
- [ ] New Feature
- [ ] Bugfix
- [x] Documentation

If you haven't finished some of the above items you can still open "Draft" PR.


## Who can review?

Anyone in the community is free to review the PR once the checks have passed. 
[Contributor guidelines](https://github.com/NVIDIA/NeMo/blob/main/CONTRIBUTING.md) contains specific people who can review PRs to various areas.

# Additional Information
* Related to # (issue)


@hemildesai and @marcromeyn I thought nemo-run has some cool tools for visualizing config hierarchy?

I think @ericharper, you mean graphviz feature here- https://github.com/NVIDIA/NeMo-Run/blob/main/src/nemo_run/config.py#L35, right? @marcromeyn @hemildesai 

But, this PR is for a user to know what are all the high level options/params available to update/create a recipe. As there are so many different things in multiple places and repos, this can be a one stop to check all the available features.
CC: @erhoo82 @jstjohn 

> I think @ericharper, you mean graphviz feature here- https://github.com/NVIDIA/NeMo-Run/blob/main/src/nemo_run/config.py#L35, right? @marcromeyn @hemildesai
> 
> But, this PR is for a user to know what are all the high level options/params available to update/create a recipe. As there are so many different things in multiple places and repos, this can be a one stop to check all the available features. CC: @erhoo82 @jstjohn

Yeah the graphviz features are only available once you initialize the config in code. IIUC, this is more of a documentation guide.

@malay-nagda Can we move this to https://github.com/NVIDIA/NeMo/tree/main/nemo/collections/llm/recipes?

The collections/common module is not used in NeMo 2.0. Apart from that, the guide looks great.

This is nice. I wonder if we can generate this automatically? Since otherwise it might be tricky to keep this up-to-date

@hemildesai moved this to https://github.com/malay-nagda/NeMo/blob/config_flow/nemo/collections/llm/recipes/CONFIGURATION-HIERARCHY.md

@marcromeyn given that the modules are spread across different places (and repos) and new features might be arbitrarily added in different places, not sure how we would generate this automatically? 

@marcromeyn we could probably update [Contributor Guidelines](https://github.com/NVIDIA/NeMo/blob/main/CONTRIBUTING.md) (and the PR template also?) to say the developer should consider updating CONFIGURATION-HIERARCHY.md if they are adding a new feature/params/config options?

If this looks good, can we merge this? @marcromeyn @hemildesai @ericharper 
cc: @erhoo82 

This PR is stale because it has been open for 14 days with no activity. Remove stale label or comment or update or this will be closed in 7 days.

This PR was closed because it has been inactive for 7 days since being marked as stale.