cudaq-guide
CUDA-Q onboarding guide for installation, test programs, GPU simulation, QPU hardware, and quantum applications.
tao-run-automl
Run AutoML / hyperparameter optimization (HPO) for NVIDIA TAO networks using AutoMLRunner. Handles algorithm selection (bayesian, hyperband, asha, bohb, llm, hybrid, autoresearch), WandB experiment tracking, job execution on any TAO SDK platform, result interpretation, and per-rec custom evaluation hooks. Use when the user mentions TAO AutoML, hyperparameter optimization, HPO, automl, automl_settings, AutoMLRunner, tao_automl, bayesian search, hyperband, ASHA, LLM-guided search, autoresearch, or wants to tune training hyperparameters for any TAO network. Platform-agnostic — runs on any SDK (Brev, SLURM, Kubernetes, Docker).
Full skill instructions
Standalone install? If this session was not initialized by the TAO skill bank plugin, run
tao-setupfirst (host preflight, credentials, cross-skill discovery).
Run automated hyperparameter optimization for a TAO model by combining:
skills/models/<model_skill>/.skills/platform/<platform>/.AutoMLRunner, which generates recommendations, launches selected action jobs,
extracts metrics, and feeds results back to the optimizer.Do not launch until model metadata, platform preflight, data visibility, credentials, image choice, and compute shape are all proven.
Every recommendation, baseline evaluation, per-recommendation evaluation, and
final evaluation runs in the selected model action's resolved
container_image by default. Resolve it from the model skill before any
training-environment setup. A local checkpoint or Hugging Face model ID does not
change this rule.
Use venv-based model execution only when explicitly requested. Never infer
venv mode from local-docker, local GPUs, Python, or pyproject.toml. If
absent, execution is container-backed. A host/controller venv for tao_automl,
TAO SDK, or a platform adapter is
control-plane-only; keep child model actions in the resolved container image.
references/skill_info.yaml: this workflow's structured metadata.automl-preflight-concepts.md for prerequisites
and support checks; automl-intent-algorithms.md for search policy;
automl-compression-literature.md for distill/prune/quantize algorithm
sufficiency and future compression-search roadmap;
automl-runner-configuration.md for runner/API/WandB details;
automl-advanced-monitoring.md for hooks, resume, and pitfalls; and
automl-examples.md for conversation examples; and
automl-common-pitfalls.md for recurring safety checks. detailed-guide.md
is only the map.skills/models/<network>/SKILL.md: model-specific dataset requirements, metrics,
HPO notes, checkpoint handoff, and known failures.skills/models/<network>/references/skill_info.yaml: action contract,
container image, inputs, outputs, upload exclusions, and mode.skills/platform/<platform>/SKILL.md: selected platform preflight, credentials,
resource shape, monitoring, and cancellation.skills/core/tao-launch-workflow/SKILL.md: shared intake pattern for platform,
credentials, dataset visibility, image confirmation, and user confirmation.nvidia-tao-automl imports:python -c "import tao_automl; from tao_automl.runner import AutoMLRunner; print('OK')"
Then verify the selected platform's SDK constructs — importing tao_automl does
not prove the platform backend is installed (e.g. DockerSDK() raises
CredentialError without the docker package). See
automl-preflight-concepts.md.
If missing, show the exact install command from versions.yaml and ask before
installing:
SB="${TAO_SKILL_BANK_PATH:-~/tao-skill-bank}"
pip install "$($SB/scripts/resolve_versions_key.py wheels.tao_automl_<platform>)"
Valid platform wheel keys are tao_automl_brev, tao_automl_slurm,
tao_automl_kubernetes, tao_automl_docker, and tao_automl_all. Use
all only for development machines that need every backend. Add ,llm only
when the user requests LLM-guided algorithms.
Before every run:
SKILL.md and references/skill_info.yaml.automl_enabled: true for the model or that the model skill
explicitly routes the selected action to AutoML.<skill_dir>/schemas/<action>.schema.json exists and parses. This
is the AutoML search-space gate.references/spec_template_<action>.yaml; otherwise the runner has no
complete action defaults.Collect these before runner construction:
| Input | Requirement |
|---|---|
model_skill | Resolved model skill directory under skills/models/. Resolve user aliases such as network_arch to the packaged skill directory first. |
network_arch | Read from the resolved model skill metadata. |
action | Action to optimize — train, evaluate, inference, distill, prune, or quantize with a packaged schema/template. |
platform | One of the supported TAO platform skills. |
train_dataset / eval_dataset / action inputs | Use model-specific spec keys and layout. Non-train actions may also need parent/teacher checkpoints, calibration data, or pruned artifacts. |
results_root | Local, Lustre, or S3 path appropriate for the platform. |
gpu_count, num_nodes | Respect model and platform limits. |
container_image | Resolve through model metadata and versions.yaml; show it to the user. |
automl_algorithm | Default bayesian unless user asks for another algorithm or the model skill recommends one. |
metric, direction | Prefer the model skill's validation/task metric. |
automl_budget | Recommendation count, max epochs/rungs, concurrency, or population size as required by the algorithm. |
Never ask for secret values. Verify required env vars with
[ -n "$VAR_NAME" ] && echo SET || echo UNSET.
Before launching any recommendation jobs, show a concrete launch review and get user confirmation. This gate applies to every AutoML run for every AutoML-supported model/network; it is not Cosmos-specific and must not be scoped to a single model skill. This applies even when platform and image preflight already passed. The review must include:
If the estimate is longer than the user's stated limit or materially longer than a normal interactive run, ask whether to reduce recommendations, epochs, dataset size, validation frequency, or search space before launch. Do not hide multi-day estimates in logs.
After platform, image, credential, data, and model preflight pass, run the model's evaluate action once on the selected validation/eval data before submitting any AutoML recommendation jobs. This is required AutoML setup, not an optional "pretrained eval" question for the user. Use the same base model or checkpoint that the AutoML training run starts from, the model skill's evaluate spec/template, and the selected platform's normal job submission path. If the model skill recommends a smaller shape for evaluation than training, use that shape and call it out in the launch review.
Share the eval metric number in the launch review before asking for confirmation. If a starting checkpoint exists but the baseline cannot be produced — no packaged evaluate action, missing eval dataset, failed eval job — stop and report the blocker instead of silently falling back to a training-loss-only run.
For training from scratch, record the baseline as unavailable and proceed; do not evaluate an empty checkpoint.
The runner owns final evaluation. When eval is runnable, pass
final_eval_fn(best_rec, train_job_id) to AutoMLRunner.run; the result then
carries result["final_evaluation"]. See automl-preflight-concepts.md for
the callback, checkpoint, baseline, and from-scratch rules.
If the selected workflow needs object storage or a platform CLI and the tool is
missing, report the missing dependency and offer the exact install command
before continuing. After user approval, rerun
scripts/check_tao_launch_preflight.py with --install-missing-tools so it
installs the smallest needed package and immediately retries path verification.
For S3 paths, verify both credentials and path readability from the launch
platform before creating runner artifacts.
For models that read large media archives or directories during every training
trial, stage or extract the dataset once to storage visible from the execution
platform, then point all recommendation specs at that staged path. Record the
source URI, staged path, byte/file-count evidence when available, and timestamp
in <workspace>/evaluations/data_staging.json. If staging is not possible,
include the repeated S3 I/O risk in the pre-launch review and ask before
spending a long AutoML budget on it.
When the model skill defines sample-count-sensitive constraints, enforce them
before launch. Reject or cap every batch-size recommendation that would create
zero training steps for the selected dataset and GPU shard count. Use
scripts/check_tao_launch_preflight.py --effective-batch-limit train_annotation=<batch_size>,<shard_count> for each generated recommendation
before submitting it. If a recommendation later fails because the data is too
small for the effective batch size, classify it as an invalid configuration,
replace or adjust it only when remaining budget exists, and report the
correction in the final summary.
When train sample count is known from an annotation file or cheap manifest read,
pass it as automl_settings["train_sample_count"] to AutoMLRunner.run so the
runner can cap impossible recommendations before submitting a job and record the
adjustment in result["history"][i]["adjustments"].
| Algorithm | Good fit | Required knobs |
|---|---|---|
bayesian | Default for small/medium budgets and few parameters. | num_recommendations, metric, direction |
hyperband, asha | Many configs, cheap early rungs; ASHA is parallel-friendly. | max_epochs, reduction_factor, optional max_concurrent |
bohb, dehb | Mixed Bayesian/evolutionary search with multi-fidelity budgets. | same rung budget fields as Hyperband |
pbt | Long training where schedules should mutate during training. | population and generation budget |
llm, hybrid, autoresearch | User explicitly wants LLM-guided search with a configured endpoint. | LLM endpoint config plus budget |
For evaluate or inference, default to Bayesian/BFBO-style search over the
selected action's prompt, decoding, preprocessing, or runtime config knobs.
Use a task metric from the action outputs/logs and set direction explicitly
when the metric name is ambiguous. Do not use training-loss assumptions for
actions that do not update weights.
For distill, use the same train-like policy when the distill action performs
epoch-based optimization and writes checkpoints. For single-shot prune and
quantize, default to bayesian or bfbo unless the action schema/model skill
declares an epoch-like or calibration-budget field that makes
hyperband/asha/bohb/dehb meaningful. Use eval_fn when the selected
metric must be computed by a follow-up evaluate/inference action after the
compression action completes.
Prefer the model skill's recommendation over generic defaults. Avoid ASHA or Hyperband when the model skill says startup, validation, or checkpoint cost dominates short trials.
Build specs as nested dictionaries. If a model skill lists paths in dotted notation for readability, walk the path and assign the nested leaf; do not store flat dotted strings as spec keys.
Use the packaged selected-action schema for:
automl_default_parametersautoml_disabled_parametersUser-provided search spaces must stay inside schema constraints. For integer knobs with discrete choices, include the schema's required integer option shape instead of a loose list if the model skill calls that out.
Data source overrides are mandatory unless the model skill says the launcher can derive them. Preserve exact user-provided spec keys when the dataset uses direct annotation/media paths.
Training loss is cheap but can be misleading. Prefer the model skill's task metric. Use one of these:
metric=<name>, direction=maximize|minimize.metric_extractor(logs, metric_name): parse the model's logs when the
default resolver is ambiguous.eval_fn(rec, train_job_id): run the model's evaluate action after each
recommendation when the user wants a downstream task metric.Do not map kpi to a metric unless the model skill explicitly defines that
mapping.
The final report must compare the baseline metric, each recommendation's
metric, and the selected best metric so users can see the impact of tuning. For
model skills that require an eval_fn to compute the real task metric, use
that evaluator instead of optimizing a convenient training loss unless the user
explicitly accepts the proxy metric.
Use the selected platform SDK only after its preflight passes. Construct SDKs without embedding credentials in code.
sdk is the platform SDK object; containerless venv models use
VirtualEnvSDK(venv_path=..., work_dir=...). Always pass work_dir -- the
default ~/.tao_sdk/virtualenv fills the home directory with trial
checkpoints. See automl-runner-configuration.md.
import sys
from pathlib import Path
from tao_automl.runner import AutoMLRunner
skill_bank = Path("<absolute-tao-skill-bank>")
model_skill = "<resolved-model-skill-directory>"
skill_dir = skill_bank / "skills" / "models" / model_skill
sys.path.insert(
0, str(skill_bank / "skills/applications/tao-run-automl/scripts")
)
from resolve_automl_session import validate_session_settings
runner = AutoMLRunner(
sdk=sdk,
skill_dir=str(skill_dir),
action=action, # train, distill, prune, quantize, ...
)
workspace_path = Path("<automl_workspace>")
resume = False
# Mandatory fail-closed gate from this skill's bundled scripts directory.
validate_session_settings(
automl_settings,
resume=resume,
workspace=workspace_path if resume else None,
)
result = runner.run(
workspace_path=str(workspace_path), # timestamp it to avoid collisions
automl_settings=automl_settings, # must contain an explicit session_id
spec_overrides=spec_overrides,
automl_hyperparameters=automl_hyperparameters,
custom_param_ranges=custom_param_ranges,
metric_extractor=metric_extractor, # optional
eval_fn=eval_fn, # optional
final_eval_fn=final_eval_fn, # optional but required when final eval is runnable
resume=resume,
)
Set automl_settings["session_id"] explicitly and call
validate_session_settings before every run. Generate a fresh ID once with
scripts/resolve_automl_session.py new. Resume only when explicitly requested;
resolve its controller with
scripts/resolve_automl_session.py resolve --workspace <full-run-path>.
Missing or ambiguous state is a blocker. See the
resume section of references/automl-advanced-monitoring.md for the complete
fresh/resume pattern.
Use runner status output and the platform SDK's get_job_status,
get_job_logs, and get_failure_analysis. For active jobs, report:
On failure, classify whether it is infrastructure, data visibility, image, credential, spec/schema, or model-code failure. Fix only the minimal cause and do not silently spend additional budget on repeated invalid recommendations. If a blocker is fixed during run setup, continue from the original task after showing the updated preflight/launch review instead of leaving the user to restate the request.
For LLM-based algorithms, inspect the brain logs before calling the run valid. Verify that LLM calls succeeded, proposals were generated, prior metrics were used to choose later parameter changes, and logs show keep/discard or equivalent algorithm decisions. If the brain falls back to random sampling, classify the LLM workflow as failed or blocked instead of treating it as a valid LLM-guided run.
At completion:
latest.See references/automl-common-pitfalls.md before launching or recovering an
AutoML run.
CUDA-Q onboarding guide for installation, test programs, GPU simulation, QPU hardware, and quantum applications.
Use when the user wants to create a dataset, generate synthetic data, or build a data generation pipeline.
NVIDIA DeepStream SDK development with Python pyservicemaker API. Use when building video analytics pipelines, GStreamer-based video processing, TensorRT inference integration, object detection/tracking, or Kafka/message broker integration.
Filesystem RAG benchmarks: corpus/, train.json, evaluate_rag.py (RAGAS quality). Not for prod monitoring, latency/throughput benchmarking (use rag-perf), or evals outside this repo layout.
Use when the user wants to search, query, extract, transcribe, describe, quote, filter, or aggregate across documents — PDFs, scanned forms / images (`.jpg` `.png` `.tiff`), Office (`.docx` `.pptx`), text (`.html` `.txt`), audio (`.mp3` `.wav` `.m4a`), or video (`.mp4` `.mov`). Prefer this over native Read / Grep for multi-file or non-PDF corpora. Not for: editing files, web browsing, single-file plain-text lookups, fine-tuning.
Coordinate the end-to-end CAD/source-asset to SimReady workflow. Use for broad requests such as CAD to SimReady, source asset to simulation-ready USD, or prop packaging that require conversion, material/physics assignment, SimReady conformance, validation, and optional package creation; deploy or verify Content Agents services first when property assignment is enabled; route single-stage work through nested references.
Use this skill to bring any vision model from HuggingFace or NVIDIA NGC into an NVIDIA DeepStream pipeline with end-to-end automation: ONNX download, SafeTensors export, TRT engine build, custom nvinfer bbox parser, multi-stream benchmark, and PDF report. Object detection models only.
Top-level workflow skill for USD performance diagnosis and optimization. Handles slow loading, high memory, low FPS, and broad scene-optimization requests; delegates auth/runtime setup to Phase 0 owners.
Vehicle routing (VRP, TSP, PDP) with cuOpt — Python API only. Use when the user is building or solving routing in Python.
Use only to generate or update a governance skill card for a specified existing agent skill directory. Do not use for explaining, listing, comparing, or discussing skill capabilities.
Use as the top-level router for Omniverse Realtime Viewer USD app requests and focused viewer reference documents.
Performance benchmarking for a deployed NVIDIA RAG Blueprint server: profiling pass + aiperf load test driven by a single YAML config. Not for accuracy / RAGAS scoring (use rag-eval) or for deploying / repairing services (use rag-blueprint).
Generate, edit, and beat-sync AI video with leading models in one workspace.
The world's fastest calendar for remote work
Transform Your Design with AI Designer by ImgCreator.ai
Revolutionizing Video Production with AI-Powered Creativity
Extend an image past the frame and let AI fill the new aspect ratio.
Discover your celebrity doppelgänger with StarByFace!
ChainClarity explains 700+ crypto whitepapers in plain English, with layered summaries, comparisons, research tools, alerts, and a $4.99 Pro plan.
Opus.ai: Revolutionize Your Web Experience