Tao Run Automl Deft Pipeline
NVIDIAOfficialCreated by NVIDIA Corporation
- Skill
- Workflow
- Software development
- Apache-2.0
- Medium risk
AutoGineer summary
Written by AutoGineer from the skill’s own files, not by the author
This skill orchestrates a three-phase training pipeline designed to improve model performance by combining AutoML-driven hyperparameter optimization (HPO) with the DEFT iterative data-improvement loop. It automates the transition between an initial AutoML baseline, the DEFT loop (which performs RCA, SDG, mining, and retraining), and a final AutoML refinement phase on the augmented dataset. The pipeline is designed to be autonomous after a single consolidated pre-flight check, ensuring efficient compute usage by pre-seeding the DEFT baseline with the Phase 1 winning checkpoint and warm-starting Phase 3 with the Phase 2 winner.
What it does
- Executes Phase 1: AutoML baseline HPO sweep to find optimal hyperparameters.
- Executes Phase 2: DEFT iterative loop for RCA, SDG, mining, and plain-train retraining.
- Executes Phase 3: AutoML refinement on the DEFT-augmented dataset.
- Performs a consolidated pre-flight check covering all three phases before execution.
- Bridges phases by passing winning specs and checkpoints between AutoML and DEFT.
- Supports both AOI-specific and generic non-AOI DEFT applications.
When to use it
- When you need to improve an AOI ChangeNet model end-to-end.
- When you want to chain AutoML and DEFT for optimal model performance.
- When you have an AutoML-tuned spec and want to feed it into a DEFT loop.
- When you require a warm-started DEFT loop followed by post-DEFT AutoML refinement.
Advantages
- Optimizes hyperparameters on both the original and augmented datasets.
- Reduces compute waste by skipping redundant baseline training in the DEFT loop.
- Ensures consistent performance gains through a structured three-phase handoff.
- Provides a single consolidated pre-flight gate for the entire pipeline.
Usage examples
- “Run the AOI workflow for my ChangeNet model.”
- The agent initiates the three-phase pipeline, starting with an AutoML HPO sweep, followed by the DEFT loop, and concluding with final AutoML refinement.
- “Improve my AOI model using AutoML and DEFT.”
- The agent performs a consolidated pre-flight check and, upon approval, executes the full end-to-end training pipeline.
Install
Download the skill as a ZIP:
https://mp-staging.autogineer.com/agent-skills/nvidia/tao-run-automl-deft-pipeline/downloadUnzip it into the cross-client skills folder of your project:
mkdir -p .agents/skills && unzip tao-run-automl-deft-pipeline.zip -d .agents/skills
Documentation by NVIDIA Corporation
AutoML + DEFT Pipeline
A workflow-bridge skill that runs three phases in sequence by delegating to two existing skills — tao-run-automl for HPO and a DEFT application skill (default tao-run-deft-aoi for AOI; other skills/applications/deft-* skills for non-AOI cases) for the iterative data-improvement loop.
This skill does not re-implement AutoML or DEFT. It owns only the connective tissue: HPO spec inputs, the spec-handoff between AutoML and DEFT, and the post-DEFT AutoML re-run on the augmented dataset.
Routing policy
User asks to "run the AOI workflow" or "improve my AOI ChangeNet model" — default to this skill, not
tao-run-deft-aoidirectly. The bare DEFT loop is the inner stage of this pipeline.User wants AutoML and DEFT chained on the same model/dataset
User says "AutoML at both ends", "tune HPs then DEFT", "warm-start DEFT", "AutoML before and after DEFT"
User has an AutoML-tuned spec and asks how to feed it into DEFT
When this skill does NOT apply
User explicitly asks for the DEFT loop only ("run JUST the DEFT loop", "skip AutoML") → use
tao-run-deft-aoidirectlyUser wants only AutoML with no follow-on DEFT → use
tao-run-automldirectlyUser is doing zero-shot eval, RAG, or non-training workflows
The mental model
Phase 1 (AutoML baseline) Phase 2 (DEFT loop, plain train) Phase 3 (AutoML refinement)
───────────────────────── ──────────────────────────────── ───────────────────────────
specs/baseline_spec.yaml (Phase 1 winner pre-seeds baseline ${RESULTS_DIR}/iter${N}/dataset/
train/base/training_set.csv — DEFT skips its baseline train) train_combined_iter${N}.csv
│ │ │
▼ ▼ ▼
[ AutoML HPO sweep ] [ DEFT: baseline-inference → RCA [ AutoML HPO sweep ]
N recommendations → iter 1..N (plain retrain) ] re-tunes HPs against the
pick best by val_loss / FAR RCA / route / SDG / mining DEFT-augmented dataset
│ │ │
▼ ▼ ▼
best HPs spec + ckpt ─────► DEFT-augmented CSV ───────────► final best checkpoint
+ iter winner checkpoint (the deliverable; no
(Phase 3 warm-starts from it) further retrain)The two handoffs are:
Phase 1 → Phase 2: a spec file AND the winning checkpoint — the bridge deep-merges Phase 1's HPs onto
specs/baseline_spec.yaml, copies the checkpoint into${RESULTS_DIR}/baseline/train/, and pre-populatesdeft_state.jsonso DEFT skips its baseline train and resumes at baseline inference → evaluate → RCA → iter 1. DEFT stays plain-train (automl_policy: offpreserved).Phase 2 → Phase 3: a training CSV (
train_combined_iter${N_final}.csv) AND the iter winner's checkpoint — the checkpoint is wired into each rec'strain.pretrained_model_pathso Phase 3 fine-tunes from Phase 2's winner. Phase 3's winning checkpoint is the deliverable; no separate retrain after Phase 3.
See references/phase-handoffs.md for the exact steps, code, and DEFT-honors-this-handoff details of both handoffs.
Why three phases instead of two
Phase 1 alone finds good HPs on the original training distribution, but the model still has the distributional gaps DEFT is designed to fill.
Phase 2 alone (just DEFT) fills the gaps but uses whatever HPs
specs/baseline_spec.yamlwas hand-authored with — usually not optimal.Phase 3 alone would run AutoML against the augmented dataset, but without a tuned baseline the DEFT loop's iteration cost is higher (slower convergence, more iterations to hit the KPI).
Running all three: AutoML cheap-tunes once on the original data, DEFT does the heavy data work with reasonable HPs, then AutoML tunes again on the now-richer dataset. Phase 3 is the most important of the three for the final deployed FAR/recall.
Cost up-front
The pipeline is sequential. Total wall-clock ≈ Phase 1 (N_automl × per-rec train) + Phase 2 (M iterations × per-iter cost) + Phase 3 (N_automl × per-rec train).
Note that Phase 2 has no separate baseline train — Phase 1's winning checkpoint is reused as DEFT's baseline, so the baseline cost lands inside Phase 1's N_automl trainings rather than as an extra retrain. Surface this to the user before kickoff. Typically Phase 2's iterations still dominate (each includes SDG + retrain), but Phase 1 and Phase 3 each add several hours on a single-GPU box. Use the per-job estimate from the user's setup (if they have one) rather than guessing minutes. See references/pitfalls-and-quality-checks.md (Compute budget) for the per-phase term breakdown.
Consolidated Pre-Flight — one gate, all three phases
The pipeline has exactly one user gate. Before any side-effecting action (docker pull, docker login, any job-launch call delegated to a downstream skill, file mutations under ${RESULTS_DIR}/), the agent must produce a single consolidated Pre-Flight Summary that subsumes every downstream skill's preflight. Once the user approves, the run is autonomous through all three phases — no further interactive pauses.
The user explicitly does not want to be paged between phases. The DEFT loop's own inline ## Pre-Flight Summary gate becomes a zero-question display step (every value pre-supplied from this consolidated gate), as does tao-run-automl's shared launch preflight in Phase 1 and Phase 3.
Before printing the summary, the agent must open and read every downstream skill's preflight section in full, run every read-only check those sections prescribe, and surface the outcome of each check. The summary has nine mandatory sections (workspace/host/platform/network; credentials status; container images; dataset table; Phase 1 config; Phase 2 config; Phase 3 config; compute estimate; confirmation line). After the gate, every downstream interactive gate is suppressed by passing through the collected values. The only allowed post-gate pauses are mid-run hard-stop safety gates the downstream skill cannot bypass.
See references/consolidated-preflight.md for: the full list of preflight sections to read, the required DEFT ## Pre-Flight run, the exact nine-section summary contents, the value pass-through for gate suppression, and the procedure when the skill bank version doesn't yet support gate suppression.
Phase 1 — AutoML baseline
Invoke tao-skill-bank:tao-run-automl with:
| Input | AOI default | Notes |
|---|---|---|
network_arch | visual-changenet | Same model the DEFT loop expects |
train_dataset_uri | <workspace>/train/base/training_set.csv | Same training set DEFT will start from |
eval_dataset_uri | <workspace>/train/base/validation_set.csv | Held-out — must NOT be the KPI test set (<workspace>/kpi/testing_set.csv), since that set is reserved for DEFT's final reporting |
metric | FAR @ 100% recall (preferred) or val_loss | See Metric pitfalls in references/pitfalls-and-quality-checks.md — ChangeNet AOI is class-imbalanced, val_loss alone can mode-collapse |
algorithm | bayesian | LLM-brain or autoresearch if compute is tight |
automl_max_recommendations | 5–10 for AOI | More recs = better HPs but linear in compute |
spec_overrides | Pin epochs / batch_size; sweep optimizer-related HPs only | Otherwise AutoML wanders into long-train regimes that blow Phase 2's budget |
After the sweep finishes, AutoML's result["best"]["specs"] is the winning hyperparameter dict.
Handoff to Phase 2
Phase 1 hands over two artifacts: the winning spec and the winning checkpoint. Retraining the same HPs in DEFT's baseline step is wasted compute — instead, pre-seed DEFT's baseline state from Phase 1's outputs so DEFT starts at baseline inference → evaluate → RCA → iter 1. This is a four-step bridge (write merged spec → pre-seed baseline/train/ → initialise deft_state.json with baseline already done → invoke DEFT), followed by a quality check of the winning checkpoint (per-class prediction counts; compare to zero-shot ChangeNet).
See references/phase-handoffs.md for the verbatim Steps 1–4 (including the cp command and the deft_state.json pre-seed code) and the quality-check checklist.
Phase 2 — DEFT loop (plain training, baseline pre-seeded from Phase 1)
Invoke tao-skill-bank:tao-run-deft-aoi (read its SKILL.md for the full interface). For non-AOI applications, invoke the matching DEFT skill; the handoff shape is the same.
The DEFT loop's baseline-train sub-step is skipped. Phase 1 already produced a checkpoint trained at the winning HPs, and Phase 1's handoff (see references/phase-handoffs.md) pre-populated ${RESULTS_DIR}/baseline/train/ and ${RESULTS_DIR}/deft_state.json so DEFT resumes at baseline inference → evaluate → RCA → iter 1. The rest of the DEFT loop runs unchanged. Do not modify its automl_policy: off invariant.
The DEFT loop owns: its Pre-Flight Summary display step (not a fresh user gate — the Consolidated Pre-Flight above is the single gate; the DEFT summary still records the pre-seeded baseline/train/ source and must not re-prompt); baseline inference → evaluate → RCA on the pre-seeded checkpoint; the full per-iteration RCA → routing → SDG → mining → assemble → train cycle; KPI gating and stop conditions; and the ${RESULTS_DIR}/ layout (deft_state.json, DEFT_Loop_Report.html).
After the loop exits (KPI met or max_iterations reached), capture two values from deft_state.json: iterations.<best>.best_ckpt_path (the loop's best plain-train checkpoint) and the final iteration label N_final (used to locate the augmented training CSV).
If the DEFT loop hard-stops on an unrecoverable gate, skip Phase 3. There is no validated augmented CSV to feed AutoML.
Phase 3 — AutoML refinement on the DEFT-augmented dataset
Re-invoke tao-skill-bank:tao-run-automl with the augmented training CSV as the train dataset, the same held-out validation CSV as before, and Phase 2's iter winner checkpoint as the warm-start:
| Input | AOI value |
|---|---|
network_arch | visual-changenet |
train_dataset_uri | ${RESULTS_DIR}/iter${N_final}/dataset/train_combined_iter${N_final}.csv |
eval_dataset_uri | Same as Phase 1 (<workspace>/train/base/validation_set.csv) — keep the comparison apples-to-apples |
metric | Same metric as Phase 1 |
algorithm | Same as Phase 1 |
automl_max_recommendations | 5–10 |
| Initial spec | Start from <workspace>/specs/baseline_spec_automl.yaml (Phase 1's winner) — gives the sweep a strong centroid to refine around |
| Warm-start checkpoint | iterations.<best>.best_ckpt_path from ${RESULTS_DIR}/deft_state.json — set spec_overrides["train"]["pretrained_model_path"] to this path. Each Phase 3 rec then fine-tunes from Phase 2's winner instead of training from scratch. |
The warm-start is mandatory: without it every rec starts from random init with only 10-20 epochs to reconverge, val_loss regresses by 0.03-0.05 vs iter1, and the _pick_best safety net silently rolls back to the iter winner. Output goes to ${RESULTS_DIR}/final_automl/; the winning checkpoint of this sweep is the pipeline's deliverable. After the sweep, register Phase 3's checkpoint under iterations.final_automl in deft_state.json and re-run prepare_inference_spec.py so the handoff sees it (falling back to the loop's best if Phase 3 regressed).
See references/phase-handoffs.md for: the full "why the warm-start is mandatory" rationale and tradeoff, the concrete spec_overrides selection code, the exact two-step wiring of Phase 3's output back into the DEFT report, and the safety note on regression.
Pitfalls and quality checks
These apply to both AutoML phases. Bake them into agent behavior — don't just paste once. The full detail lives in references/pitfalls-and-quality-checks.md; in brief:
Metric pitfalls — AOI is class-imbalanced. ChangeNet AOI datasets are PASS-dominant (90%+), so a
val_losswinner can be a mode-collapsed model. Prefer FAR @ 100%-recall directly, or guard val_loss with apred_countssanity check, or eval top-K by FAR @ 100%-recall before picking. For balanced / regression tasks, val_loss is fine.Run-to-run noise. AutoML can show 2–3× variance for the same HP config. If the winner is suspiciously better than the runner-up, re-run with a fresh seed before committing the spec to Phase 2.
Cleanliness (data leakage). Both AutoML phases use a validation set distinct from the KPI test set (
<workspace>/kpi/testing_set.csv), which is reserved for DEFT's final reporting. Phase 3 trains on the augmented CSV but keeps the same validation set so Phase 1 and Phase 3 numbers stay comparable.Compute budget. Phase 1
N_automl × per-rec train; Phase 2M_iter × (RCA + SDG + mining + retrain)(usually largest); Phase 3N_automl × per-rec trainon the larger augmented dataset. Ask the user for their per-job time before quoting wall-clock.
Quick Start (AOI worked example)
When starting fresh from "run the AOI workflow", the agent presents a three-phase plan to the user (Phase 1 AutoML baseline → Phase 2 DEFT loop → Phase 3 AutoML refinement), states the total cost structure (no extra baseline retrain at the front, no extra retrain at the end), asks for the user's per-run time for a wall-clock estimate, and waits for approval. After confirmation it invokes Phase 1, writes the merged spec, pre-seeds deft_state.json, invokes the DEFT loop with every input pre-supplied, then invokes Phase 3 — with no further pauses unless a downstream skill hits an unrecoverable hard-stop. It summarizes the trajectory at the end (baseline AutoML best → DEFT iter 1 → ... → DEFT iter N_final → Phase 3 best).
See references/quick-start-example.md for the verbatim customer-facing message block and the exact post-confirmation invocation sequence.
Non-AOI DEFT applications
Same three-phase pattern applies to other DEFT skills. Swap:
network_archto the relevant modelThe DEFT skill invoked in Phase 2
The "best HP spec file" and "best HP checkpoint" path conventions to whatever the target DEFT skill expects
The augmented-CSV path in Phase 3 to whatever the target DEFT skill produces
The handoff shape — Phase 1 emits a spec + checkpoint (the checkpoint pre-seeds the DEFT baseline), Phase 2 consumes both and emits an augmented dataset, Phase 3 emits the final checkpoint — is identical. The Phase 1 → Phase 2 baseline-skip mechanism is generic: any DEFT-style loop that exposes a resumable baseline state can be seeded the same way.
See also
tao-skill-bank:tao-run-automl— AutoML interface, algorithms, HP rangestao-skill-bank:tao-run-deft-aoi— full DEFT AOI loop (Phase 2 default)tao-skill-bank:tao-train-visual-changenet— underlying ChangeNet train/eval/infer skill (used by both AutoML and DEFT)Other
skills/applications/deft-*skills — non-AOI Phase 2 targetsreferences/consolidated-preflight.md— the single-gate preflight in fullreferences/phase-handoffs.md— both handoffs, baseline pre-seed, and Phase 3 warm-start, verbatimreferences/pitfalls-and-quality-checks.md— metric pitfalls, run-to-run noise, leakage, compute budgetreferences/quick-start-example.md— the customer-facing worked-example message
Files
- ATTRIBUTION.mdAdded by AutoGineer954 B
- BENCHMARK.md7.0 KiB
- LICENSELicence file added by AutoGineer11.2 KiB
- SKILL.md17.1 KiB
- config/skillspector-baseline.yaml834 B
- evals/evals.json819 B
- references/consolidated-preflight.md6.5 KiB
- references/phase-handoffs.md8.7 KiB
- references/pitfalls-and-quality-checks.md2.5 KiB
- references/quick-start-example.md2.8 KiB
- skill-card.md4.7 KiB
- skill.oms.sig5.7 KiB
references/quick-start-example.md
Quick Start (AOI Worked Example)
This is what the agent says to the user when starting fresh from "run the AOI workflow":
I'll run the canonical AOI training pipeline in three phases:
Phase 1 — AutoML baseline. I'll sweep
<N>configs over<HP list>against<workspace>/train/base/validation_set.csvusingbayesianwith FAR @ 100%-recall as the metric (AOI is class-imbalanced, val_loss alone risks mode collapse). After it finishes I'll spot-check per-class prediction counts before declaring a winner. The winning spec is saved tospecs/baseline_spec_automl.yamland the winning checkpoint is staged into${RESULTS_DIR}/baseline/train/.Phase 2 — DEFT loop. Phase 1's checkpoint is reused as DEFT's baseline — no redundant retrain. DEFT resumes at baseline inference → evaluate → RCA → iter 1 and continues plain-train inside the loop (
automl_policy: offpreserved). The loop runs until the KPI target is met ormax_iterationsis reached. The DEFT skill's inline Pre-Flight Summary still prints (audit trail showing the pre-seeded baseline), but is not a second approval point — every input was collected in the consolidated gate above.Phase 3 — AutoML refinement. Final AutoML sweep on the DEFT-augmented CSV (
train_combined_iter${N_final}.csv), warm-starting each rec from Phase 2's iter winner checkpoint so the sweep is HP refinement on a converged model rather than from-scratch retraining (without this, Phase 3 routinely regresses against iter1 on small datasets). The winning checkpoint of this sweep is the deliverable — there's no follow-up retrain. I'll register it understate.iterations.final_automland re-runprepare_inference_spec.pysobest_model.jsonandbest_model_inference_spec.yamlpoint to it — unless Phase 3 regresses, in which case the loop's best iteration wins on the same metric.Total cost is
<N_automl>AutoML training jobs × 2 sweeps +<M_iter>DEFT iterations (each with SDG + retrain). No extra baseline retrain at the front; no extra retrain at the end — Phase 1's winner is DEFT's baseline, Phase 3's winner is the deliverable. If you can tell me roughly how long one ChangeNet training run takes on your hardware I can give you a wall-clock estimate. OK to proceed?
After confirmation, invoke tao-skill-bank:tao-run-automl (Phase 1), write the merged spec, pre-seed deft_state.json, invoke tao-skill-bank:tao-run-deft-aoi with every input pre-supplied so its inline summary is a display step rather than a re-prompt, then tao-skill-bank:tao-run-automl again (Phase 3). No further user pauses unless a downstream skill hits an unrecoverable hard-stop gate (called out in the consolidated summary). Summarize the trajectory at the end: baseline AutoML best → DEFT iter 1 → ... → DEFT iter N_final → Phase 3 best, so the user sees where the gains came from.
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
The author says: Requires docker + nvidia-container-toolkit. Workflows (tao-run-automl, tao-run-deft-aoi) declare additional requirements.
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-automl-deft-pipeline · 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-automl-deft-pipeline.zip