Tao Run Dinov3 Ssl Deft
NVIDIAOfficialCreated by NVIDIA Corporation
- Skill
- Workflow
- Data and AI
- Apache-2.0
- Medium risk
AutoGineer summary
Written by AutoGineer from the skill’s own files, not by the author
This skill provides a command-line interface for managing iterative DINOv3 SSL DEFT (Data-Efficient Fine-Tuning) workflows. It enables active-learning-style data mining from an unlabeled pool using GRIT or multi-task weakness scoring. The workflow relies on fixed-encoder retrieval and requires a specific Data Services container environment to handle data selection, retrieval, and retraining loops.
What it does
- Initializes and validates DINOv3 mining recipes.
- Manages iterative data selection and retraining rounds.
- Supports GRIT scoring for target ranking.
- Integrates with fixed-encoder embedding preparation.
- Provides lifecycle commands for planning, running, and monitoring jobs.
- Generates reports and tracks state across training rounds.
When to use it
- When performing active-learning-style data mining for DINOv3 models.
- When you need to select and retrain on data from an unlabeled pool.
- When utilizing GRIT or multi-task weakness scoring strategies.
- When working within an environment that supports the required Data Services container.
Advantages
- Automates the iterative loop for data selection and model retraining.
- Ensures consistency through immutable configuration and data contracts.
- Provides structured monitoring and reporting for mining stages.
- Decouples training logic from the orchestration controller.
Usage examples
- “Initialize a new DINOv3 mining recipe using the grit-score strategy.”
- Generates a run.yaml configuration file ready for path and resource customization.
- “Validate the configuration for a DINOv3 DEFT workflow.”
- Checks the configuration against the workflow schema and verifies container readiness.
- “Start the mining workflow using the configured run directory.”
- Executes the iterative selection and training rounds as defined in the plan.
- “Check the status of an ongoing mining run.”
- Returns the current progress, stage, and round information for the specified run directory.
Install
Download the skill as a ZIP:
https://mp-staging.autogineer.com/agent-skills/nvidia/tao-run-dinov3-ssl-deft/downloadUnzip it into the cross-client skills folder of your project:
mkdir -p .agents/skills && unzip tao-run-dinov3-ssl-deft.zip -d .agents/skills
Documentation by NVIDIA Corporation
DINOv3 SSL DEFT
The DS-packaged Python controller owns the loop and durable state. This skill prepares and approves its inputs; it does not implement orchestration.
Instructions
Resolve the DINOv3 model using the model resolver. Choose
grit-scorefor unlabeled target ranking; its scorer is built in. Offermulti-task-round-robinonly when the user already has a score adapter that meets the task scoring contract: DS ships no multi-task scorer, andvalidaterejects the recipe's placeholder. Read architecture.md for the scientific meaning, task weighting, and stopping policy.Read tao-container-integration.md. Check release readiness before offering a launch: the resolved
images.tao_toolkit.data_servicesimage must be a release build whose installed packages contain the reviewed DEFT modules and pass packaged validation. An older DS build is not sufficient. The placeholder rejection (step 1), the cohort checks and the canceled-run exit code 143 need a DS build that contains tao-data-services#59: the first DS 7.3.0 RC after rc-90. DS rc-90 and older accept the placeholder atvalidate, fail in round 1 withMissing configured inputs: [... 'score_implementation_0'], and exit 0 after a cancel. Therelease/7.3.0cherry-pick of this skill must bumpimages.tao_toolkit.data_servicesinversions.yamlto that RC. The executable profile is one allocated DS container; no external runner ships with this application. For release QA, the repository scriptscripts/deft_container_handoff.pyruns each repository's regression tests (--suite source) and the shipped package checks (--suite packaged) inside the approved images; the packaged suite also rejects a DS image that predates #59. Run it from clean checkouts of the release SHAs; the default--base-ref origin/maindiffs each release from its merge base. It is a QA tool, not a launcher.Follow the selected platform's launch gate. For Docker, use the concrete allocation, preflight, and
docker execlifecycle in the integration reference. Inside that runtime, follow the preparation sequence in adapter-contracts.md: produce source/target embeddings with the same fixed encoder, register the source store with its payload contract, and write the target contract. No additional host/model package installation is needed. Generate a packaged recipe withinit, fill paths/resources, then runvalidate <config>,preflight <config> --gpuin the launch runtime, andplan <config>. Read adapter-contracts.md when declaring a held-out benchmark (isolation), or configuring custom scoring/evaluation, indexed retrieval, or resource policies.Inspect the plan and present the approval contract below. Read
references/skill_info.yaml:path_contractas the input-mount checklist: every applicable path must be visible in the allocated container, andoutput.run_dirmust match the platform's durable results directory. Skill Bank resolves image keys on the host; DS accepts explicit image references only and never reads this repository at runtime.After approval, execute
run <config>inside the allocated container. Monitor to a terminal result using the commands below. Do not modify controller state or locks manually.
Approval contract
Populate these six items from preflight and the plan, not from assumptions:
Loop: chosen strategy, maximum rounds, stops, evaluation scope and patience. For
multi-task-round-robin, the user's score adapter command and itsimplementation_files.Data: immutable target/source versions, verified row/shard counts, parent history, storage capacity and mount locations. For any held-out benchmark, the identity sidecar and its declared columns, even with evaluation disabled, and preflight's
contracts.benchmark_isolation(at least 1; otherwise stop) (held-out benchmark isolation).Sampling: fixed target budget, resolved integer task quotas, neighbors, radius/floor and duplicate thresholds; index, audit, probes/depth for ANN.
Training: passes, resolution, resources/update floor and immutable original checkpoint. Every candidate starts from that checkpoint, never its predecessor. Check the per-round update budget against LR warm-up and last-layer freeze; follow short-round schedule sizing.
Cache/output: read-only images/embeddings, any platform cache, node-local
TAO_LOCAL_SCRATCH, cumulative locator manifests, checkpoint retention, and durable results directory.Monitoring: cadence, stage/round updates, retry/failure handling and final reason.
Do not request launch approval while any of these items is unknown.
Lifecycle and monitoring
All commands below follow python -m nvidia_tao_ds.mining.dinov3.workflow
inside the same allocated DS runtime:
preflight [<config>] [--gpu](with the config, also checks the allocation)init --recipe grit-score --output run.yaml(ormulti-task-round-robin, which needs the user's score adapter; see step 1)validate <config>,plan <config>,run <config>,resume <config>status <run_dir> [--config <config>]logs <run_dir> <client_job_id> [--cursor <cursor>] [--config <config>]cancel <run_dir> [--config <config>]report <run_dir> [--config <config>]adopt-training <continuation_config>only for an explicitly approved continuation into a new run directory.
Read the job ID from status before requesting logs. Resume takes the config
path, not the run directory. Cancellation is terminal for that run: run and
resume then exit with code 143, not 0. Use an explicit new-run continuation
when appropriate.
Keep monitoring attached until the workflow is terminal. Use the user's
cadence, otherwise about five minutes for short stages and 20–30 minutes for
long search/training stages. Report stage/round transitions, mining yield,
metrics, retries, failures, and the final stop reason. Submission is not success.
If the container has exited, use the integration reference's read-only
inspection recipe rather than attempting docker exec against it.
Related Skills
tao-train-dinov3: ordinary DINOv3 training without a mining loop.tao-launch-workflow,tao-run-on-docker,tao-data-io: launch and storage.tao-run-deft-aoi,tao-run-deft-pas: different supervised DEFT workflows.
Files
- ATTRIBUTION.mdAdded by AutoGineer939 B
- BENCHMARK.md8.0 KiB
- LICENSELicence file added by AutoGineer11.2 KiB
- SKILL.md7.3 KiB
- config/skillspector-baseline.yaml1.4 KiB
- evals/evals.json4.6 KiB
- references/adapter-contracts.md26.9 KiB
- references/architecture.md6.8 KiB
- references/metrics.schema.json1.0 KiB
- references/skill_info.yaml2.0 KiB
- references/stage-request.schema.json3.2 KiB
- references/tao-container-integration.md8.1 KiB
- references/workflow.schema.json9.7 KiB
- skill-card.md5.2 KiB
- skill.oms.sig6.4 KiB
references/architecture.md
DINOv3 SSL DEFT Architecture
The application has one implementation and three interfaces:
SKILL.mdselects a known recipe and invokes the CLI.python -m nvidia_tao_ds.mining.dinov3.workflowexposes lifecycle commands.nvidia_tao_ds.mining.dinov3.workflow.RefinementWorkflowis the Python API.
The controller composes leaf actions through immutable files. It never imports TAO PyTorch training in-process. It is packaged in Data Services, which owns selection, retrieval, cumulative manifests, orchestration and recovery. TAO PyTorch owns training and GRIT scoring; those modules run as subprocesses. The minimal deployment uses their existing installation inside one DS container.
The DINO base spec selects any TAO-supported vit_s, vit_s_plus, vit_b,
vit_l, vit_h_plus, or vit_7b backbone. GRIT probes normalized depth
quartiles and records the resolved variant and block numbers. ViT-B is the
empirically studied metric; the larger-variant extension is an execution
contract, not a new KPI claim.
Execution is SDK-free. One allocated DS container uses LocalRunner; distributed jobs
provide an executable implementing submit, status, logs, and cancel
against stage-request.schema.json. Submission must be idempotent on
client_job_id, and UNKNOWN is never automatically resubmitted.
Run Trace
input.yaml: user-facing configuration.resolved_run.json: immutable resolved configuration.release.lock.json: workflow and component versions.data.lock.json: checkpoint, target, benchmark, immutable source-dataset, encoder, and verified source-shard fingerprints.state.json: atomic current snapshot.events.jsonl: append-only stage history.jobs/: stage requests, normalized job records, and logs.rounds/round_NNN/: immutable stage artifacts and success markers.final_model.json: terminal checkpoint and training-manifest handoff.report.html: deterministic summary regenerated by code.
Mining treats relevance and duplication as separate fixed-encoder decisions. It may
expand relevance to a configured hard floor to fill a query budget, but it does
not relax the duplicate threshold. Selected source identities are unique across
all weak queries in a round. data.previous_training_manifest excludes samples
already used by the parent checkpoint, and cumulative manifests exclude newly
selected samples in later rounds. Registered stores require a target embedding
contract with the same encoder identity and dimension as the source store.
Every embedding-store shard declares its byte size and SHA-256. The controller
either rehashes the shards or validates a previously committed content seal,
according to data.source_store_validation, then binds the verified inventory
digest into data.lock.json. Image and archive locators are bound to
the immutable dataset IDs, versions, and roots in data.source_payload_contract;
the controller does not hash every image payload.
The existing DS CLIP/SigLIP producer prepares source and target with the same
immutable model/processor; no C-RADIO producer or extra installation is required.
Registration with the payload contract emits the mount-bound content seal.
write-target-contract validates target vectors and publishes encoder/dimension
and source-inventory compatibility. Its recorded target digest is lineage only,
not enforced against the workflow's current target file; regenerate on target
changes. See the preparation sequence in adapter-contracts.md.
Changing a resolved configuration requires a new run directory. The controller rejects config drift on resume.
When workflow.early_stopping is present, the evaluator remains the owner of
task semantics and emits the ordinary metric records. The controller combines
only the explicitly named records as a weighted, direction-normalized mean. It
tracks both meaningful improvement for patience and the absolute best observed
score for delivery. Candidate rounds are not accepted or rejected in place;
after patience is exhausted the loop stops and final_model.json points to the
best evaluated checkpoint rather than the latest one. Without an evaluator,
only mining and iteration-limit stop conditions are available.
Large registered pools use the audited_ann search backend. Candidate retrieval
loads a persistent, sharded cuVS index and commits its row IDs as the
search_candidates stage. A separate runtime then reads only those rows from
the immutable float32 mining-embedding dense store, computes exact cosine scores, and
applies relevance, exclusion, and duplicate rules in the normal search stage.
The stage boundary isolates CUDA environments and lets reranking resume without
repeating ANN retrieval. Probe count and candidate depth must exactly match a
committed recall audit for that index. ANN underfill is
search_budget_exhausted; only a complete exact scan can prove
radius_exhausted.
For multi-task runs, normalized weakness is ranked independently within each
task. A fixed targets_per_round budget is split by positive task_weights,
then consumed round-robin with global sample-ID deduplication. Weights change
task preference without changing total retrieval or training cost.
The balanced policy preserves the configured quota of an inactive task rather
than redistributing it. Materialization records the originating query task and
publishes a derived training view that oversamples each provenance group to the
largest group. The next round still consumes the unique cumulative manifest,
so replay rows never enter lineage or source exclusion state.
Materialization writes a cumulative Parquet of unique source locators and, for
balanced multi-task runs, one derived replay Parquet. A row identifies a file
or an archive plus member; the controller never copies image payloads or creates
symlinks. Source images and fixed mining embeddings are reused read-only.
Per-run storage consists of stage Parquets and JSON, checkpoints, metrics, logs,
state, and the report under run_dir.
Every loop action uses the same execution boundary. In runner mode the
configured runner owns its resources; in adapter_managed mode a one-node
wrapper durably owns and adopts a separate child allocation. The controller
records both without knowing whether the implementation is a process,
container, batch job, Kubernetes workload, or another platform primitive.
Data Services composes the complete immutable DINOv3 experiment spec and owns
the round contract and final EMA-teacher publication. TAO PyTorch owns only the
native dinov3 train implementation. Lightning creates DDP/FSDP workers from
the spec; no workflow-specific training adapter or outer torchrun layer is
used. A multi-node runner supplies the declared static gang, immutable shared
inputs, and one shared output namespace. A retry cancels and restarts the full
gang. Detailed launch behavior belongs to the owning DINOv3 package README.
Requirements and compatibility
Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta
“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.
Needs: Declares allowed tools, Needs Python, Needs Node.js
The author says: Requires the selected platform's native launcher and a TAO Data Services image containing the DINOv3 SSL DEFT modules; no host TAO or Python data-stack installation.
Security
What our scanner noticed· Medium risk
- Large base64-encoded blobs
A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.
Attribution and licence
- Created by
- NVIDIA Corporation
- Publisher
- NVIDIA (Official)
- Source
- NVIDIA/skills · skills/tao-run-dinov3-ssl-deft · commit fce3cca
- Licence
- Apache License 2.0 (redistribution allowed)
- LICENSE (added by AutoGineer from LICENSE-APACHE)
- ATTRIBUTION.md (written by AutoGineer)
- Synced
AutoGineer is not affiliated with or endorsed by NVIDIA Corporation or NVIDIA.
Download ZIP
The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download tao-run-dinov3-ssl-deft.zip