TAO Data Services contains the source for data annotation, augmentation, auto-labeling, analytics, mining, image validation, and the lightweight API service used by NVIDIA TAO workflows.
This repository builds the nvidia-tao-ds Python package and the TAO Data
Services containers. The developer launcher is tao_ds; the package console
scripts run inside that container after the source tree is mounted at
/workspace.
source scripts/envsetup.sh
tao_ds --gpus all --volume /data/tao:/data
tao_ds -- make buildUse docs/index.md as the detailed source map. It links to architecture,
workflow, testing, container, and extension guides for maintainers, coding
agents, and container power users.
| Need | Document |
|---|---|
| Repository map and first-pass commands | docs/agent_onboarding.md |
| Command, config, API, and package flow | docs/architecture.md |
| Common source-change recipes | docs/development_workflows.md |
| Test selection and debugging notes | docs/testing_and_debugging.md |
| Launcher, mounts, GPU, and image details | docs/container_power_users.md |
| Adding a new data-service command | docs/new_data_service_command.md |
| Path | Purpose |
|---|---|
nvidia_tao_ds/ |
Main package for CLI subtasks, configs, shared utilities, API service, and data-service domains. |
runner/tao_ds.py |
Host-side Docker launcher used by the tao_ds shell function from scripts/envsetup.sh. |
docker/ |
Base development image Dockerfile, requirements, build script, and digest manifest. |
release/ |
Python package metadata plus release-container build scripts. |
ci/ and .gitlab-ci.yml |
Static-test helpers and merge-request pipeline wiring. |
tests/ |
Unit and integration-style tests for conversion, analytics, auto-label, mining, and config behavior. |
tao-core/, tao-pytorch/ |
In-repo submodules used by local development and container builds. |
| Software | Version |
|---|---|
| Ubuntu LTS | >=18.04 |
| Python | >=3.8.x |
| Docker CE | >19.03.5 |
| Docker API | 1.40 |
nvidia-container-toolkit |
>1.3.0-1 |
| NVIDIA container runtime | 3.4.0-1 |
nvidia-docker2 |
2.5.0-1 |
| NVIDIA driver | >525.85 |
python-pip |
>21.06 |
Minimum hardware is 8 GB system RAM, 4 GB GPU RAM, 8 CPU cores, one NVIDIA GPU, and 100 GB SSD space. Recommended hardware is 32 GB system RAM and 32 GB GPU RAM.
Generated by python tools/update_readme_supported_commands.py from
setup.py, runner/tao_ds.py, and docker/manifest.json.
scripts/envsetup.sh exports tao_ds as a shell function that runs
runner/tao_ds.py. Commands after -- execute inside the container.
| Option | Default | Purpose |
|---|---|---|
--gpus |
all |
Comma separated GPU indices to be exposed to the docker. |
--volume |
[] |
Volumes to bind. |
--env |
[] |
Environment variables to bind. |
--mounts_file |
empty string | Path to the mounts file. |
--shm_size |
16G |
Shared memory size for docker |
--run_as_user |
False |
Flag to run as user |
--tag |
None |
The tag value for the local dev docker. |
--ulimit |
None |
Docker ulimits for the host machine. |
--run_as_service |
False |
Flag to run as a microservice |
--ip |
0.0.0.0 |
Microservice ip address (e.g. 0.0.0.0). |
--port |
8000 |
Microservice port (e.g. 8000). |
--port_mapping |
8000 |
Port mapping for the micorservices port (e.g. 8000). |
--no-tty |
True |
Set TTY |
These entrypoints are installed by the nvidia-tao-ds package. Script
subtasks are discovered from each command package's scripts/ directory.
| Command | Python entry point | Script subtasks |
|---|---|---|
analytics |
nvidia_tao_ds.data_analytics.entrypoint.analytics:main |
analyzekpi_analyzevalidate |
annotations |
nvidia_tao_ds.annotations.entrypoint.annotations:main |
convertmergeqa_to_llava_annotationslice |
augmentation |
nvidia_tao_ds.augmentation.entrypoint.augment:main |
generate |
auto_label |
nvidia_tao_ds.auto_label.entrypoint.auto_label:main |
generate |
embedding |
nvidia_tao_ds.mining.embedding.entrypoint.embedding:main |
image_embeddingstext_embeddings |
gap_analysis |
nvidia_tao_ds.rcca.gap_analysis.entrypoint.gap_analysis:main |
object_detectionvcn_aoivlm_bcq |
image |
nvidia_tao_ds.image.entrypoint.image:main |
validate |
tmm |
nvidia_tao_ds.mining.tmm.entrypoint.tmm:main |
nearest_neighborsunique_neighbor_matching |
runner/tao_ds.py and ci/utils.py resolve the immutable base image
(nvstaging/tao/data_services_base_image) from docker/manifest.json, choosing the architecture-specific
digest for the host. The pinned digests are intentionally not duplicated here — they
live in docker/manifest.json (and the CI / Jenkins / release files), and a static CI
check (ci/run_static_tests.py) verifies those digest references stay in sync.
The base development image is defined by docker/Dockerfile, Python
requirements live in docker/requirements-pip.txt, and immutable image digests
live in docker/manifest.json.
source scripts/envsetup.sh
cd "$NV_TAO_DS_TOP/docker"
./build.sh --build --x86
./build.sh --build --arm
./build.sh --build --multiplatform --pushThe release image builds a wheel for nvidia_tao_ds and installs it through
release/docker/Dockerfile.release.
source scripts/envsetup.sh
cd "$NV_TAO_DS_TOP/release/docker"
./deploy.sh --build --wheelTAO Toolkit Data Services is not accepting external contributions for this release stream. Internal changes should keep generated README content in sync by running:
python tools/update_readme_supported_commands.py --checkThis project is licensed under the Apache-2.0 License.