# nvidia-nemo/nemotron architecture

> Architecture diagram of the GitHub repository nvidia-nemo/nemotron, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-19). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/nvidia-nemo/nemotron
- Repository: https://github.com/nvidia-nemo/nemotron

## Overview

Nemotron is an open-model development repository for building agentic AI models. The principal workflow is: an engineer invokes the CLI, selects a reusable step or recipe, prepares or generates data, trains a model, evaluates and converts it, then exports or deploys the resulting artifacts. The graph preserves documented curation, SDG, BYOB, RL, multimodal, and deployment capabilities. Some recipe-to-runner relationships are represented at subsystem level because only selected source files were sampled.

Main entry points: [`src/nemotron/steps/_runners`](https://github.com/nvidia-nemo/nemotron/tree/main/src/nemotron/steps/_runners) (Training Runners), [`src/nemotron/kit/artifact.py`](https://github.com/nvidia-nemo/nemotron/blob/main/src/nemotron/kit/artifact.py) (Model Artifacts), [`src/nemotron/data_prep/api.py`](https://github.com/nvidia-nemo/nemotron/blob/main/src/nemotron/data_prep/api.py) (Data Preparation), [`src/nemotron/cli/bin/nemotron.py`](https://github.com/nvidia-nemo/nemotron/blob/main/src/nemotron/cli/bin/nemotron.py) (Nemotron CLI)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_interface["User Interface"]
  node_nemotron_cli["Nemotron CLI<br/>[nemotron.py]"]
  node_step_commands["Step Commands<br/>[run_cmd.py]"]
end

subgraph group_orchestration["Pipeline Orchestration"]
  node_step_catalog["Step Catalog<br/>[index.py]"]
  node_run_spec["RunSpec Pipeline<br/>[pipeline.py]"]
  node_training_recipes["Training Recipes"]
end

subgraph group_data["Data Lifecycle"]
  node_curation["Data Curation<br/>[step.py]"]
  node_sdg["Synthetic Data"]
  node_data_prep["Data Preparation<br/>[api.py]"]
  node_data_stages["Preparation Stages"]
  node_byob["Benchmark Generation<br/>[runtime.py]"]
  node_mcq_pipeline["MCQ Pipeline<br/>[pipeline.py]"]
end

subgraph group_models["Model Lifecycle"]
  node_training_runners["Training Runners"]
  node_model_recipes["Model Recipes"]
  node_evaluation["Model Evaluation<br/>[__init__.py]"]
  node_conversion["Model Conversion"]
  node_embedding_rerank["Embedding Rerank"]
end

subgraph group_operations["Runtime Operations"]
  node_artifact_kit["Artifact Kit<br/>[artifact.py]"]
  node_export_deploy["Export Deployment<br/>[deploy.py]"]
  node_environment_profiles["Environment Profiles<br/>[step.py]"]
  node_model_artifacts["Model Artifacts<br/>[artifact.py]"]
end

node_engineer(("Engineer"))
node_slurm["Slurm Cluster"]

node_engineer -->|"invokes"| node_nemotron_cli
node_nemotron_cli -->|"dispatches"| node_step_commands
node_nemotron_cli -->|"discovers"| node_step_catalog
node_step_commands -->|"resolves"| node_step_catalog
node_step_commands -->|"launches"| node_run_spec
node_run_spec -.->|"submits"| node_slurm
node_training_recipes -->|"prepares"| node_data_prep
node_training_recipes -->|"trains"| node_training_runners
node_curation -->|"curates"| node_data_prep
node_sdg -->|"generates"| node_data_prep
node_data_prep -->|"runs"| node_data_stages
node_data_stages -->|"feeds"| node_training_runners
node_byob -->|"dispatches"| node_mcq_pipeline
node_mcq_pipeline -->|"writes"| node_model_artifacts
node_training_runners -->|"produces"| node_model_artifacts
node_training_runners -->|"evaluates"| node_evaluation
node_training_runners -->|"converts"| node_conversion
node_evaluation -->|"reports"| node_model_artifacts
node_conversion -->|"registers"| node_artifact_kit
node_embedding_rerank -.->|"evaluates"| node_evaluation
node_embedding_rerank -.->|"deploys"| node_export_deploy
node_artifact_kit -->|"tracks"| node_model_artifacts
node_environment_profiles -->|"configures"| node_run_spec
node_export_deploy -->|"exports"| node_model_artifacts

click node_nemotron_cli "https://github.com/nvidia-nemo/nemotron/blob/main/src/nemotron/cli/bin/nemotron.py"
click node_step_commands "https://github.com/nvidia-nemo/nemotron/blob/main/src/nemotron/cli/commands/steps/run_cmd.py"
click node_step_catalog "https://github.com/nvidia-nemo/nemotron/blob/main/src/nemotron/steps/index.py"
click node_run_spec "https://github.com/nvidia-nemo/nemotron/blob/main/src/nemo_runspec/pipeline.py"
click node_training_recipes "https://github.com/nvidia-nemo/nemotron/tree/main/src/nemotron/recipes"
click node_curation "https://github.com/nvidia-nemo/nemotron/blob/main/src/nemotron/steps/curate/nemo_curator/step.py"
click node_sdg "https://github.com/nvidia-nemo/nemotron/tree/main/src/nemotron/recipes/data/sdg/long-document"
click node_data_prep "https://github.com/nvidia-nemo/nemotron/blob/main/src/nemotron/data_prep/api.py"
click node_data_stages "https://github.com/nvidia-nemo/nemotron/tree/main/src/nemotron/data_prep/stages"
click node_byob "https://github.com/nvidia-nemo/nemotron/blob/main/src/nemotron/steps/byob/scripts/runtime.py"
click node_mcq_pipeline "https://github.com/nvidia-nemo/nemotron/blob/main/src/nemotron/steps/byob/runtime/benchmark_families/mcq/pipeline.py"
click node_training_runners "https://github.com/nvidia-nemo/nemotron/tree/main/src/nemotron/steps/_runners"
click node_model_recipes "https://github.com/nvidia-nemo/nemotron/tree/main/src/nemotron/recipes/super3"
click node_evaluation "https://github.com/nvidia-nemo/nemotron/blob/main/src/nemotron/steps/eval/__init__.py"
click node_conversion "https://github.com/nvidia-nemo/nemotron/tree/main/src/nemotron/steps/convert"
click node_embedding_rerank "https://github.com/nvidia-nemo/nemotron/tree/main/src/nemotron/recipes/embed"
click node_artifact_kit "https://github.com/nvidia-nemo/nemotron/blob/main/src/nemotron/kit/artifact.py"
click node_export_deploy "https://github.com/nvidia-nemo/nemotron/blob/main/src/nemotron/recipes/embed/stage5_deploy/deploy.py"
click node_environment_profiles "https://github.com/nvidia-nemo/nemotron/blob/main/src/nemotron/steps/env/env_toml/step.py"
click node_model_artifacts "https://github.com/nvidia-nemo/nemotron/blob/main/src/nemotron/kit/artifact.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_nemotron_cli,node_step_commands toneBlue
class node_step_catalog,node_run_spec,node_training_recipes toneAmber
class node_curation,node_sdg,node_data_prep,node_data_stages,node_byob,node_mcq_pipeline toneMint
class node_training_runners,node_model_recipes,node_evaluation,node_conversion,node_embedding_rerank toneRose
class node_artifact_kit,node_export_deploy,node_environment_profiles,node_model_artifacts,node_engineer,node_slurm toneIndigo
```

## Components

### User Interface

- [Nemotron CLI](https://github.com/nvidia-nemo/nemotron/blob/main/src/nemotron/cli/bin/nemotron.py): `src/nemotron/cli/bin/nemotron.py`
- [Step Commands](https://github.com/nvidia-nemo/nemotron/blob/main/src/nemotron/cli/commands/steps/run_cmd.py): `src/nemotron/cli/commands/steps/run_cmd.py`

### Pipeline Orchestration

- [Step Catalog](https://github.com/nvidia-nemo/nemotron/blob/main/src/nemotron/steps/index.py): `src/nemotron/steps/index.py`
- [RunSpec Pipeline](https://github.com/nvidia-nemo/nemotron/blob/main/src/nemo_runspec/pipeline.py): `src/nemo_runspec/pipeline.py`
- [Training Recipes](https://github.com/nvidia-nemo/nemotron/tree/main/src/nemotron/recipes): `src/nemotron/recipes`

### Data Lifecycle

- [Data Curation](https://github.com/nvidia-nemo/nemotron/blob/main/src/nemotron/steps/curate/nemo_curator/step.py): `src/nemotron/steps/curate/nemo_curator/step.py`
- [Synthetic Data](https://github.com/nvidia-nemo/nemotron/tree/main/src/nemotron/recipes/data/sdg/long-document): `src/nemotron/recipes/data/sdg/long-document`
- [Data Preparation](https://github.com/nvidia-nemo/nemotron/blob/main/src/nemotron/data_prep/api.py): `src/nemotron/data_prep/api.py`
- [Preparation Stages](https://github.com/nvidia-nemo/nemotron/tree/main/src/nemotron/data_prep/stages): `src/nemotron/data_prep/stages`
- [Benchmark Generation](https://github.com/nvidia-nemo/nemotron/blob/main/src/nemotron/steps/byob/scripts/runtime.py): `src/nemotron/steps/byob/scripts/runtime.py`
- [MCQ Pipeline](https://github.com/nvidia-nemo/nemotron/blob/main/src/nemotron/steps/byob/runtime/benchmark_families/mcq/pipeline.py): `src/nemotron/steps/byob/runtime/benchmark_families/mcq/pipeline.py`

### Model Lifecycle

- [Training Runners](https://github.com/nvidia-nemo/nemotron/tree/main/src/nemotron/steps/_runners): `src/nemotron/steps/_runners`
- [Model Recipes](https://github.com/nvidia-nemo/nemotron/tree/main/src/nemotron/recipes/super3): `src/nemotron/recipes/super3`
- [Model Evaluation](https://github.com/nvidia-nemo/nemotron/blob/main/src/nemotron/steps/eval/__init__.py): `src/nemotron/steps/eval/__init__.py`
- [Model Conversion](https://github.com/nvidia-nemo/nemotron/tree/main/src/nemotron/steps/convert): `src/nemotron/steps/convert`
- [Embedding Rerank](https://github.com/nvidia-nemo/nemotron/tree/main/src/nemotron/recipes/embed): `src/nemotron/recipes/embed`

### Runtime Operations

- [Artifact Kit](https://github.com/nvidia-nemo/nemotron/blob/main/src/nemotron/kit/artifact.py): `src/nemotron/kit/artifact.py`
- [Export Deployment](https://github.com/nvidia-nemo/nemotron/blob/main/src/nemotron/recipes/embed/stage5_deploy/deploy.py): `src/nemotron/recipes/embed/stage5_deploy/deploy.py`
- [Environment Profiles](https://github.com/nvidia-nemo/nemotron/blob/main/src/nemotron/steps/env/env_toml/step.py): `src/nemotron/steps/env/env_toml/step.py`
- [Model Artifacts](https://github.com/nvidia-nemo/nemotron/blob/main/src/nemotron/kit/artifact.py): `src/nemotron/kit/artifact.py`

### Other components

- **Engineer**
- **Slurm Cluster**

## Connections

- Engineer → Nemotron CLI: invokes
- Nemotron CLI → Step Commands: dispatches
- Nemotron CLI → Step Catalog: discovers
- Step Commands → Step Catalog: resolves
- Step Commands → RunSpec Pipeline: launches
- RunSpec Pipeline → Slurm Cluster: submits
- Training Recipes → Data Preparation: prepares
- Training Recipes → Training Runners: trains
- Data Curation → Data Preparation: curates
- Synthetic Data → Data Preparation: generates
- Data Preparation → Preparation Stages: runs
- Preparation Stages → Training Runners: feeds
- Benchmark Generation → MCQ Pipeline: dispatches
- MCQ Pipeline → Model Artifacts: writes
- Training Runners → Model Artifacts: produces
- Training Runners → Model Evaluation: evaluates
- Training Runners → Model Conversion: converts
- Model Evaluation → Model Artifacts: reports
- Model Conversion → Artifact Kit: registers
- Embedding Rerank → Model Evaluation: evaluates
- Embedding Rerank → Export Deployment: deploys
- Artifact Kit → Model Artifacts: tracks
- Environment Profiles → RunSpec Pipeline: configures
- Export Deployment → Model Artifacts: exports
