# ambarella-inc/ultralytics architecture

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

- Interactive diagram: https://gitdiagram.com/ambarella-inc/ultralytics
- Repository: https://github.com/ambarella-inc/ultralytics

## Overview

Ultralytics is a computer-vision framework centered on YOLO, with additional SAM, RT-DETR, NAS, and FastSAM model families. The principal workflow is a user loading a model, supplying images or video for prediction, and receiving structured results; parallel modes train and validate models or export them for deployment. The tree and README establish these capabilities, while sampled files confirm representative model, data, prediction, export, and result responsibilities. Some subsystem wiring is inferred only at the module level, so uncertain internal links are omitted.

Main entry points: [`ultralytics/engine/model.py`](https://github.com/ambarella-inc/ultralytics/blob/main/ultralytics/engine/model.py) (Model API), [`ultralytics/engine/predictor.py`](https://github.com/ambarella-inc/ultralytics/blob/main/ultralytics/engine/predictor.py) (Prediction), [`ultralytics/nn/tasks.py`](https://github.com/ambarella-inc/ultralytics/blob/main/ultralytics/nn/tasks.py) (Model construction), [`ultralytics/data/build.py`](https://github.com/ambarella-inc/ultralytics/blob/main/ultralytics/data/build.py) (Data loading)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_api["Public API"]
  node_model_api["Model API<br/>[model.py]"]
  node_config["Configuration<br/>[__init__.py]"]
end

subgraph group_workflow["Model workflows"]
  node_trainer["Training<br/>[trainer.py]"]
  node_validator["Validation<br/>[validator.py]"]
  node_exporter["Export<br/>[exporter.py]"]
  node_results["Results<br/>[results.py]"]
end

subgraph group_models["Model families"]
  node_yolo_tasks["YOLO tasks"]
  node_sam["SAM"]
  node_other_models["Other models"]
  node_nn_tasks["Model construction<br/>[tasks.py]"]
end

subgraph group_data["Data pipeline"]
  node_dataset["Datasets<br/>[dataset.py]"]
  node_data_build["Data loading<br/>[build.py]"]
  node_augmentation["Augmentation<br/>[augment.py]"]
end

subgraph group_runtime["Inference runtime"]
  node_predictor["Prediction<br/>[predictor.py]"]
  node_backend["Inference backends<br/>[autobackend.py]"]
  node_tracking["Tracking<br/>[track.py]"]
  node_solutions["Vision solutions"]
end

node_user(("User"))
node_external_model(("Model weights"))
node_input(("Images or video"))
node_deployment(("Deployment target"))

node_user -->|"loads model"| node_model_api
node_model_api -->|"resolves settings"| node_config
node_external_model -->|"provides weights"| node_model_api
node_model_api -->|"constructs model"| node_nn_tasks
node_model_api -->|"runs prediction"| node_predictor
node_model_api -->|"starts training"| node_trainer
node_model_api -->|"starts validation"| node_validator
node_model_api -->|"starts export"| node_exporter
node_trainer -->|"loads batches"| node_data_build
node_validator -->|"loads batches"| node_data_build
node_data_build -->|"creates datasets"| node_dataset
node_dataset -->|"transforms samples"| node_augmentation
node_nn_tasks -->|"builds task models"| node_yolo_tasks
node_nn_tasks -->|"builds SAM models"| node_sam
node_nn_tasks -->|"builds model families"| node_other_models
node_predictor -->|"runs inference"| node_backend
node_input -->|"supplies media"| node_predictor
node_predictor -->|"produces results"| node_results
node_results -->|"returns predictions"| node_user
node_predictor -.->|"tracks detections"| node_tracking
node_predictor -.->|"supports workflows"| node_solutions
node_exporter -->|"exports model"| node_deployment

click node_model_api "https://github.com/ambarella-inc/ultralytics/blob/main/ultralytics/engine/model.py"
click node_config "https://github.com/ambarella-inc/ultralytics/blob/main/ultralytics/cfg/__init__.py"
click node_trainer "https://github.com/ambarella-inc/ultralytics/blob/main/ultralytics/engine/trainer.py"
click node_validator "https://github.com/ambarella-inc/ultralytics/blob/main/ultralytics/engine/validator.py"
click node_exporter "https://github.com/ambarella-inc/ultralytics/blob/main/ultralytics/engine/exporter.py"
click node_results "https://github.com/ambarella-inc/ultralytics/blob/main/ultralytics/engine/results.py"
click node_yolo_tasks "https://github.com/ambarella-inc/ultralytics/tree/main/ultralytics/models/yolo"
click node_sam "https://github.com/ambarella-inc/ultralytics/tree/main/ultralytics/models/sam"
click node_other_models "https://github.com/ambarella-inc/ultralytics/tree/main/ultralytics/models"
click node_nn_tasks "https://github.com/ambarella-inc/ultralytics/blob/main/ultralytics/nn/tasks.py"
click node_dataset "https://github.com/ambarella-inc/ultralytics/blob/main/ultralytics/data/dataset.py"
click node_data_build "https://github.com/ambarella-inc/ultralytics/blob/main/ultralytics/data/build.py"
click node_augmentation "https://github.com/ambarella-inc/ultralytics/blob/main/ultralytics/data/augment.py"
click node_predictor "https://github.com/ambarella-inc/ultralytics/blob/main/ultralytics/engine/predictor.py"
click node_backend "https://github.com/ambarella-inc/ultralytics/blob/main/ultralytics/nn/autobackend.py"
click node_tracking "https://github.com/ambarella-inc/ultralytics/blob/main/ultralytics/trackers/track.py"
click node_solutions "https://github.com/ambarella-inc/ultralytics/tree/main/ultralytics/solutions"

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_model_api,node_config,node_user toneBlue
class node_trainer,node_validator,node_exporter,node_results toneAmber
class node_yolo_tasks,node_sam,node_other_models,node_nn_tasks toneMint
class node_dataset,node_data_build,node_augmentation toneRose
class node_predictor,node_backend,node_tracking,node_solutions,node_external_model,node_input,node_deployment toneIndigo
```

## Components

### Public API

- [Model API](https://github.com/ambarella-inc/ultralytics/blob/main/ultralytics/engine/model.py): `ultralytics/engine/model.py`
- [Configuration](https://github.com/ambarella-inc/ultralytics/blob/main/ultralytics/cfg/__init__.py): `ultralytics/cfg/__init__.py`

### Model workflows

- [Training](https://github.com/ambarella-inc/ultralytics/blob/main/ultralytics/engine/trainer.py): `ultralytics/engine/trainer.py`
- [Validation](https://github.com/ambarella-inc/ultralytics/blob/main/ultralytics/engine/validator.py): `ultralytics/engine/validator.py`
- [Export](https://github.com/ambarella-inc/ultralytics/blob/main/ultralytics/engine/exporter.py): `ultralytics/engine/exporter.py`
- [Results](https://github.com/ambarella-inc/ultralytics/blob/main/ultralytics/engine/results.py): `ultralytics/engine/results.py`

### Model families

- [YOLO tasks](https://github.com/ambarella-inc/ultralytics/tree/main/ultralytics/models/yolo): `ultralytics/models/yolo`
- [SAM](https://github.com/ambarella-inc/ultralytics/tree/main/ultralytics/models/sam): `ultralytics/models/sam`
- [Other models](https://github.com/ambarella-inc/ultralytics/tree/main/ultralytics/models): `ultralytics/models`
- [Model construction](https://github.com/ambarella-inc/ultralytics/blob/main/ultralytics/nn/tasks.py): `ultralytics/nn/tasks.py`

### Data pipeline

- [Datasets](https://github.com/ambarella-inc/ultralytics/blob/main/ultralytics/data/dataset.py): `ultralytics/data/dataset.py`
- [Data loading](https://github.com/ambarella-inc/ultralytics/blob/main/ultralytics/data/build.py): `ultralytics/data/build.py`
- [Augmentation](https://github.com/ambarella-inc/ultralytics/blob/main/ultralytics/data/augment.py): `ultralytics/data/augment.py`

### Inference runtime

- [Prediction](https://github.com/ambarella-inc/ultralytics/blob/main/ultralytics/engine/predictor.py): `ultralytics/engine/predictor.py`
- [Inference backends](https://github.com/ambarella-inc/ultralytics/blob/main/ultralytics/nn/autobackend.py): `ultralytics/nn/autobackend.py`
- [Tracking](https://github.com/ambarella-inc/ultralytics/blob/main/ultralytics/trackers/track.py): `ultralytics/trackers/track.py`
- [Vision solutions](https://github.com/ambarella-inc/ultralytics/tree/main/ultralytics/solutions): `ultralytics/solutions`

### Other components

- **User**
- **Model weights**
- **Images or video**
- **Deployment target**

## Connections

- User → Model API: loads model
- Model API → Configuration: resolves settings
- Model weights → Model API: provides weights
- Model API → Model construction: constructs model
- Model API → Prediction: runs prediction
- Model API → Training: starts training
- Model API → Validation: starts validation
- Model API → Export: starts export
- Training → Data loading: loads batches
- Validation → Data loading: loads batches
- Data loading → Datasets: creates datasets
- Datasets → Augmentation: transforms samples
- Model construction → YOLO tasks: builds task models
- Model construction → SAM: builds SAM models
- Model construction → Other models: builds model families
- Prediction → Inference backends: runs inference
- Images or video → Prediction: supplies media
- Prediction → Results: produces results
- Results → User: returns predictions
- Prediction → Tracking: tracks detections
- Prediction → Vision solutions: supports workflows
- Export → Deployment target: exports model
