Skip to content

Repository files navigation

TAO Toolkit - Data Services

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.

Contents

Start Here

source scripts/envsetup.sh
tao_ds --gpus all --volume /data/tao:/data
tao_ds -- make build

Use 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

Source Layout

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.

Requirements

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.

Supported Commands

Generated by python tools/update_readme_supported_commands.py from setup.py, runner/tao_ds.py, and docker/manifest.json.

tao_ds Container Launcher

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

In-Container Console Scripts

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 analyze
kpi_analyze
validate
annotations nvidia_tao_ds.annotations.entrypoint.annotations:main convert
merge
qa_to_llava_annotation
slice
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_embeddings
text_embeddings
gap_analysis nvidia_tao_ds.rcca.gap_analysis.entrypoint.gap_analysis:main object_detection
vcn_aoi
vlm_bcq
image nvidia_tao_ds.image.entrypoint.image:main validate
tmm nvidia_tao_ds.mining.tmm.entrypoint.tmm:main nearest_neighbors
unique_neighbor_matching

Base Image Source

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.

Container Builds

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 --push

The 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 --wheel

Contributing

TAO 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 --check

License

This project is licensed under the Apache-2.0 License.

About

Set of advanced data augmentation and analytics tools

Resources

Contributing

Security policy

Stars

15 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages