[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-nvidia-tao-run-automl":3,"mdc-o2cfxw-key":34,"related-repo-nvidia-tao-run-automl":1795,"related-org-nvidia-tao-run-automl":1899},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":23,"repoUrl":24,"updatedAt":25,"license":26,"forks":27,"topics":28,"repo":29,"sourceUrl":32,"mdContent":33},"tao-run-automl","run AutoML hyperparameter optimization for TAO","Run AutoML \u002F 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).",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},"nvidia","NVIDIA","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fnvidia.png",[12,16,19,22],{"name":13,"slug":14,"type":15},"Automation","automation","tag",{"name":17,"slug":18,"type":15},"Machine Learning","machine-learning",{"name":20,"slug":21,"type":15},"Optimization","optimization",{"name":9,"slug":8,"type":15},2473,"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fskills","2026-07-14T05:26:16.382098","Apache-2.0",281,[],{"repoUrl":24,"stars":23,"forks":27,"topics":30,"description":31},[],"AI agent skills published by NVIDIA","https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fskills\u002Ftree\u002FHEAD\u002Fskills\u002Ftao-run-automl","---\nname: tao-run-automl\ndescription: Run AutoML \u002F hyperparameter optimization (HPO) for NVIDIA TAO networks using AutoMLRunner. Handles algorithm\n  selection (bayesian, hyperband, asha, bohb, llm, hybrid, autoresearch), WandB experiment tracking, job execution on any TAO SDK\n  platform, result interpretation, and per-rec custom evaluation hooks. Use when the user mentions TAO AutoML, hyperparameter\n  optimization, HPO, automl, automl_settings, AutoMLRunner, tao_automl, bayesian search, hyperband, ASHA, LLM-guided search,\n  autoresearch, or wants to tune training hyperparameters for any TAO network. Platform-agnostic — runs on any SDK (Brev,\n  SLURM, Kubernetes, Docker).\nlicense: Apache-2.0\ncompatibility: Requires docker + nvidia-container-toolkit. Workflows declare additional requirements.\nmetadata:\n  author: NVIDIA Corporation\n  version: \"0.1.0\"\nallowed-tools: Read Bash Write\ntags:\n- automl\n- hpo\n- workflow\n- training\n- optimization\n- llm\n---\n\n# TAO AutoML\n\nRun automated hyperparameter optimization for a TAO model by combining:\n\n1. The selected model skill under `skills\u002Fmodels\u002F\u003Cnetwork>\u002F`.\n2. The selected platform skill under `skills\u002Fplatform\u002F\u003Cplatform>\u002F`.\n3. `AutoMLRunner`, which generates recommendations, launches train jobs,\n   extracts metrics, and feeds results back to the optimizer.\n\nDo not launch until model metadata, platform preflight, data visibility,\ncredentials, image choice, and compute shape are all proven.\n\n## Reference Map\n\n- `references\u002Fskill_info.yaml`: this workflow's structured metadata.\n- Split detailed references: `automl-preflight-concepts.md` for prerequisites\n  and support checks; `automl-intent-algorithms.md` for search policy;\n  `automl-runner-configuration.md` for runner\u002FAPI\u002FWandB details;\n  `automl-advanced-monitoring.md` for hooks, resume, and pitfalls; and\n  `automl-examples.md` for conversation examples. `detailed-guide.md` is only\n  the map.\n- `skills\u002Fmodels\u002F\u003Cnetwork>\u002FSKILL.md`: model-specific dataset requirements, metrics,\n  HPO notes, checkpoint handoff, and known failures.\n- `skills\u002Fmodels\u002F\u003Cnetwork>\u002Freferences\u002Fskill_info.yaml`: train action contract,\n  container image, inputs, outputs, upload exclusions, and `mode`.\n- `skills\u002Fplatform\u002F\u003Cplatform>\u002FSKILL.md`: selected platform preflight, credentials,\n  resource shape, monitoring, and cancellation.\n- `skills\u002Fcore\u002Ftao-launch-workflow\u002FSKILL.md`: shared intake pattern for platform,\n  credentials, dataset visibility, image confirmation, and user confirmation.\n\n## Preflight\n\n1. Run the shared launch intake. If the user has not chosen a platform, ask;\n   Brev, SLURM, Kubernetes, and Docker are equal peers.\n2. Run the selected platform skill's preflight before generating runner files.\n3. Verify `nvidia-tao-automl` imports:\n\n```bash\npython -c \"import tao_automl; from tao_automl.runner import AutoMLRunner; print('OK')\"\n```\n\nIf missing, show the exact install command from `versions.yaml` and ask before\ninstalling:\n\n```bash\nSB=\"${TAO_SKILL_BANK_PATH:-~\u002Ftao-skills-external}\"\npip install \"$($SB\u002Fscripts\u002Fresolve_versions_key.py wheels.tao_automl_\u003Cplatform>)\"\n```\n\nValid platform wheel keys are `tao_automl_brev`, `tao_automl_slurm`,\n`tao_automl_kubernetes`, `tao_automl_docker`, and `tao_automl_all`. Use\n`all` only for development machines that need every backend. Add `,llm` only\nwhen the user requests LLM-guided algorithms.\n\n## Model Support Gate\n\nBefore every run:\n\n1. Read the model `SKILL.md` and `references\u002Fskill_info.yaml`.\n2. Confirm `automl_enabled: true` for the model or that the model skill\n   explicitly routes train-stage requests to AutoML.\n3. Confirm `\u003Cskill_dir>\u002Fschemas\u002Ftrain.schema.json` exists and parses. This is\n   the AutoML search-space gate.\n4. For non-TAO-Core models such as Cosmos-RL and CLIP, also require\n   `references\u002Fspec_template_train.yaml`; otherwise the runner has no complete\n   train defaults.\n5. If any gate fails, do not improvise a search space. Report the missing\n   package artifact.\n\n## Inputs\n\nCollect these before runner construction:\n\n| Input | Requirement |\n|---|---|\n| `model_skill` | Resolved model skill directory under `skills\u002Fmodels\u002F`. Accept user aliases such as `network_arch` only after resolving them to the packaged skill directory. |\n| `platform` | One of the supported TAO platform skills. |\n| `train_dataset` \u002F `eval_dataset` | Use model-specific spec keys and dataset layout. |\n| `results_root` | Local, Lustre, or S3 path appropriate for the platform. |\n| `gpu_count`, `num_nodes` | Respect model and platform limits. |\n| `container_image` | Resolve through model metadata and `versions.yaml`; show it to the user. |\n| `automl_algorithm` | Default `bayesian` unless user asks for another algorithm or the model skill recommends one. |\n| `metric`, `direction` | Prefer the model skill's validation\u002Ftask metric. |\n| `automl_budget` | Recommendation count, max epochs\u002Frungs, concurrency, or population size as required by the algorithm. |\n\nNever ask for secret values. Verify required env vars with\n`[ -n \"$VAR_NAME\" ] && echo SET || echo UNSET`.\n\n## Pre-Launch Review Gate\n\nBefore launching any recommendation jobs, show a concrete launch review and get\nuser confirmation. This gate applies to every AutoML run for every\nAutoML-supported model\u002Fnetwork; it is not Cosmos-specific and must not be\nscoped to a single model skill. This applies even when platform and image\npreflight already passed. The review must include:\n\n- model\u002Fnetwork, platform, image, GPU\u002Fnode shape, and result\u002Fworkspace root\n- dataset mode and concrete spec keys, including train\u002Feval sample counts when\n  they can be read cheaply\n- algorithm, budget, max concurrent jobs, metric, and direction\n- searchable parameters and ranges, including default values when the user did\n  not provide an explicit search space\n- exact generated recommendation configs for the initial launch batch, produced\n  in a review-only step before any recommendation job is submitted\n- estimated runtime per recommendation and total expected wall time, with the\n  assumptions used\n- the automatic baseline eval job id, metric value, and result path from the\n  post-preflight eval job, or an explicit blocker if the model has no runnable\n  evaluate action or validation data\n- the post-AutoML final evaluation plan for the selected best checkpoint\u002Fmodel,\n  including metric, dataset, and record path\n\nIf the estimate is longer than the user's stated limit or materially longer\nthan a normal interactive run, ask whether to reduce recommendations, epochs,\ndataset size, validation frequency, or search space before launch. Do not hide\nmulti-day estimates in logs.\n\n## Automatic Baseline Eval Job\n\nAfter platform, image, credential, data, and model preflight pass, run the\nmodel's evaluate action once on the selected validation\u002Feval data before\nsubmitting any AutoML recommendation jobs. This is required AutoML setup, not an\noptional \"pretrained eval\" question for the user. Use the same base model or\ncheckpoint that the AutoML training run starts from, the model skill's evaluate\nspec\u002Ftemplate, and the selected platform's normal job submission path. If the\nmodel skill recommends a smaller shape for evaluation than training, use that\nshape and call it out in the launch review.\n\nShare the eval metric number with the user in the launch review before asking\nfor confirmation to launch recommendations. If the model has no packaged\nevaluate action, the eval dataset is missing, or the eval job fails, stop and\nreport the blocker instead of silently falling back to a training-loss-only\nAutoML run. Continue without this baseline only when the user explicitly accepts\nthat the run will optimize a proxy metric and will not have an impact baseline.\n\nThe AutoML runner owns final evaluation of the selected best checkpoint\u002Fmodel.\nWhen a runnable evaluate action and validation\u002Feval data exist, pass a\n`final_eval_fn(best_rec, train_job_id)` callback to `AutoMLRunner.run`. The\ncallback must evaluate the selected best checkpoint\u002Fmodel with the same metric,\ndataset, and direction used for the baseline, store a structured record under\nthe workspace, and return the measured metric or a dict containing\n`metric_value` and metadata such as `record_path` and `job_id`. Do not run final\nevaluation as an agent-side step after `runner.run`; the returned result should\ncontain `result[\"final_evaluation\"]` with a concrete status and reason.\n\n## Dependency And Data Preflight\n\nIf the selected workflow needs object storage or a platform CLI and the tool is\nmissing, report the missing dependency and offer the exact install command\nbefore continuing. After user approval, rerun\n`scripts\u002Fcheck_tao_launch_preflight.py` with `--install-missing-tools` so it\ninstalls the smallest needed package and immediately retries path verification.\nFor S3 paths, verify both credentials and path readability from the launch\nplatform before creating runner artifacts. Do not wait for the first training\ncontainer to discover a missing AWS CLI, S3 client, or unreadable URI.\n\nFor models that read large media archives or directories during every training\ntrial, stage or extract the dataset once to storage visible from the execution\nplatform, then point all recommendation specs at that staged path. Record the\nsource URI, staged path, byte\u002Ffile-count evidence when available, and timestamp\nin `\u003Cworkspace>\u002Fevaluations\u002Fdata_staging.json`. If staging is not possible,\ninclude the repeated S3 I\u002FO risk in the pre-launch review and ask before\nspending a long AutoML budget on it.\n\nWhen the model skill defines sample-count-sensitive constraints, enforce them\nbefore launch. Reject or cap every batch-size recommendation that would create\nzero training steps for the selected dataset and GPU shard count. Use\n`scripts\u002Fcheck_tao_launch_preflight.py --effective-batch-limit\ntrain_annotation=\u003Cbatch_size>,\u003Cshard_count>` for each generated recommendation\nbefore submitting it. If a recommendation later fails because the data is too\nsmall for the effective batch size, classify it as an invalid configuration,\nreplace or adjust it only when remaining budget exists, and report the\ncorrection in the final summary.\nWhen train sample count is known from an annotation file or cheap manifest read,\npass it as `automl_settings[\"train_sample_count\"]` to `AutoMLRunner.run` so the\nrunner can cap impossible recommendations before submitting a job and record the\nadjustment in `result[\"history\"][i][\"adjustments\"]`.\n\n## Algorithm Policy\n\n| Algorithm | Good fit | Required knobs |\n|---|---|---|\n| `bayesian` | Default for small\u002Fmedium budgets and few parameters. | `num_recommendations`, metric, direction |\n| `hyperband`, `asha` | Many configs with cheap early rungs; ASHA supports parallelism. | `max_epochs`, `reduction_factor`, optional `max_concurrent` |\n| `bohb`, `dehb` | Mixed Bayesian\u002Fevolutionary search with multi-fidelity budgets. | same rung budget fields as Hyperband |\n| `pbt` | Long training where schedules should mutate during training. | population and generation budget |\n| `llm`, `hybrid`, `autoresearch` | User explicitly wants LLM-guided search and has an endpoint configured. | LLM endpoint config plus budget |\n\nPrefer the model skill's recommendation over generic defaults. Avoid ASHA or\nHyperband when the model skill says startup, validation, or checkpoint cost\ndominates short trials.\n\n## Spec And Search Space\n\nBuild specs as nested dictionaries. If a model skill lists paths in dotted\nnotation for readability, walk the path and assign the nested leaf; do not store\nflat dotted strings as spec keys.\n\nUse the packaged train schema for:\n\n- `automl_default_parameters`\n- `automl_disabled_parameters`\n- valid min\u002Fmax ranges\n- enums, option weights, conditions, dependencies, and popular parameters\n\nUser-provided search spaces must stay inside schema constraints. For integer\nknobs with discrete choices, include the schema's required integer option shape\ninstead of a loose list if the model skill calls that out.\n\nData source overrides are mandatory unless the model skill says the launcher can\nderive them. Preserve exact user-provided spec keys when the dataset uses direct\nannotation\u002Fmedia paths.\n\n## Metric Policy\n\nTraining loss is cheap but can be misleading. Prefer the model skill's task\nmetric. Use one of these:\n\n- Log metric: `metric=\u003Cname>`, `direction=maximize|minimize`.\n- `metric_extractor(logs, metric_name)`: parse the model's logs when the\n  default resolver is ambiguous.\n- `eval_fn(rec, train_job_id)`: run the model's evaluate action after each\n  recommendation when the user wants a downstream task metric.\n\nDo not map `kpi` to a metric unless the model skill explicitly defines that\nmapping.\n\nFor every AutoML run with a runnable evaluate action and validation\u002Feval data,\nrun the automatic baseline eval job after preflight and before recommendations.\nThe final report must compare that baseline metric, each recommendation's\nmetric, and the selected best metric so users can see the impact of tuning. For\nmodel skills that require an `eval_fn` to compute the real task metric, use\nthat evaluator instead of optimizing a convenient training loss unless the user\nexplicitly accepts the proxy metric.\n\n## Runner Construction\n\nUse the selected platform SDK only after its preflight passes. Construct SDKs\nwithout embedding credentials in code.\n\n```python\nfrom pathlib import Path\nfrom tao_automl.runner import AutoMLRunner\n\nskill_bank = Path(\"\u003Cabsolute-tao-skill-bank>\")\nmodel_skill = \"\u003Cresolved-model-skill-directory>\"\nskill_dir = skill_bank \u002F \"skills\" \u002F \"models\" \u002F model_skill\n\nrunner = AutoMLRunner(\n    skill_dir=str(skill_dir),\n    platform_sdk=sdk,\n    workspace_dir=\"\u003Cautoml_workspace>\",\n)\n\nresult = runner.run(\n    automl_algorithm=algorithm,\n    automl_settings=automl_settings,\n    spec_overrides=spec_overrides,\n    automl_hyperparameters=automl_hyperparameters,\n    custom_param_ranges=custom_param_ranges,\n    metric_extractor=metric_extractor,  # optional\n    eval_fn=eval_fn,                    # optional\n    final_eval_fn=final_eval_fn,        # optional but required when final eval is runnable\n)\n```\n\nOnly resume an existing workspace when the user explicitly asks to resume,\ncontinue, recover, or inspect an existing experiment. Treat a plain \"run\nAutoML\" request as a fresh run.\n\n## Monitoring\n\nUse `runner` status output and the platform SDK's `get_job_status`,\n`get_job_logs`, and `get_failure_analysis`. For active jobs, report:\n\n- recommendation id \u002F trial id\n- platform job id\n- status\n- current metric\n- best metric so far\n- selected hyperparameters for the current\u002Fbest recommendation\n- elapsed time and updated ETA when enough timing data exists\n\nOn failure, classify whether it is infrastructure, data visibility, image,\ncredential, spec\u002Fschema, or model-code failure. Fix only the minimal cause and\ndo not silently spend additional budget on repeated invalid recommendations.\nIf a blocker is fixed during run setup, continue from the original task after\nshowing the updated preflight\u002Flaunch review instead of leaving the user to\nrestate the request.\n\nFor LLM-based algorithms, inspect the brain logs before calling the run valid.\nVerify that LLM calls succeeded, proposals were generated, prior metrics were\nused to choose later parameter changes, and logs show keep\u002Fdiscard or\nequivalent algorithm decisions. If the brain falls back to random sampling,\nclassify the LLM workflow as failed or blocked instead of treating it as a\nvalid LLM-guided run.\n\n## Result Handoff\n\nAt completion:\n\n1. Identify the best recommendation by the selected metric and direction.\n2. Return the best train child job id and its result path.\n3. Resolve the model checkpoint using the model skill's checkpoint metadata and\n   SDK helpers; do not guess filenames such as `latest`.\n4. Report the exact search space, algorithm, budget, metric, and platform.\n5. Report the automatic baseline eval job id\u002Fresult path\u002Fmetric, all\n   recommendation metrics, final evaluation status\u002Fresult path\u002Fmetric, failed\n   recommendations and root causes, elapsed time, and final runtime notes.\n6. If this feeds a workflow such as AutoML + DEFT, pass the winning spec\n   overrides and checkpoint through the workflow's declared handoff fields.\n\n## Common Pitfalls\n\n- Do not expect `~\u002Ftao-core` at runtime. Schemas and templates must be packaged\n  inside the model skill.\n- Do not infer dataset URIs from previous runs.\n- Do not precompute SDK-managed output paths; non-URI output values are routed\n  by the SDK.\n- For SLURM, stage large datasets on Lustre rather than burning GPU allocation\n  time on large S3 downloads.\n- For gated HuggingFace models, verify `HF_TOKEN` is set without reading it.\n- If all recommendations fail, stop and summarize the shared root cause instead\n  of launching more trials.\n",{"data":35,"body":47},{"name":4,"description":6,"license":26,"compatibility":36,"metadata":37,"allowed-tools":40,"tags":41},"Requires docker + nvidia-container-toolkit. Workflows declare additional requirements.",{"author":38,"version":39},"NVIDIA Corporation","0.1.0","Read Bash Write",[42,43,44,45,21,46],"automl","hpo","workflow","training","llm",{"type":48,"children":49},"root",[50,59,65,107,112,119,238,244,270,315,328,428,488,494,499,564,570,575,808,820,826,831,874,879,885,890,895,955,961,982,995,1030,1036,1224,1229,1235,1240,1245,1276,1281,1286,1292,1297,1341,1354,1367,1373,1378,1589,1594,1600,1635,1673,1678,1683,1689,1694,1734,1740,1789],{"type":51,"tag":52,"props":53,"children":55},"element","h1",{"id":54},"tao-automl",[56],{"type":57,"value":58},"text","TAO AutoML",{"type":51,"tag":60,"props":61,"children":62},"p",{},[63],{"type":57,"value":64},"Run automated hyperparameter optimization for a TAO model by combining:",{"type":51,"tag":66,"props":67,"children":68},"ol",{},[69,84,96],{"type":51,"tag":70,"props":71,"children":72},"li",{},[73,75,82],{"type":57,"value":74},"The selected model skill under ",{"type":51,"tag":76,"props":77,"children":79},"code",{"className":78},[],[80],{"type":57,"value":81},"skills\u002Fmodels\u002F\u003Cnetwork>\u002F",{"type":57,"value":83},".",{"type":51,"tag":70,"props":85,"children":86},{},[87,89,95],{"type":57,"value":88},"The selected platform skill under ",{"type":51,"tag":76,"props":90,"children":92},{"className":91},[],[93],{"type":57,"value":94},"skills\u002Fplatform\u002F\u003Cplatform>\u002F",{"type":57,"value":83},{"type":51,"tag":70,"props":97,"children":98},{},[99,105],{"type":51,"tag":76,"props":100,"children":102},{"className":101},[],[103],{"type":57,"value":104},"AutoMLRunner",{"type":57,"value":106},", which generates recommendations, launches train jobs,\nextracts metrics, and feeds results back to the optimizer.",{"type":51,"tag":60,"props":108,"children":109},{},[110],{"type":57,"value":111},"Do not launch until model metadata, platform preflight, data visibility,\ncredentials, image choice, and compute shape are all proven.",{"type":51,"tag":113,"props":114,"children":116},"h2",{"id":115},"reference-map",[117],{"type":57,"value":118},"Reference Map",{"type":51,"tag":120,"props":121,"children":122},"ul",{},[123,134,187,198,216,227],{"type":51,"tag":70,"props":124,"children":125},{},[126,132],{"type":51,"tag":76,"props":127,"children":129},{"className":128},[],[130],{"type":57,"value":131},"references\u002Fskill_info.yaml",{"type":57,"value":133},": this workflow's structured metadata.",{"type":51,"tag":70,"props":135,"children":136},{},[137,139,145,147,153,155,161,163,169,171,177,179,185],{"type":57,"value":138},"Split detailed references: ",{"type":51,"tag":76,"props":140,"children":142},{"className":141},[],[143],{"type":57,"value":144},"automl-preflight-concepts.md",{"type":57,"value":146}," for prerequisites\nand support checks; ",{"type":51,"tag":76,"props":148,"children":150},{"className":149},[],[151],{"type":57,"value":152},"automl-intent-algorithms.md",{"type":57,"value":154}," for search policy;\n",{"type":51,"tag":76,"props":156,"children":158},{"className":157},[],[159],{"type":57,"value":160},"automl-runner-configuration.md",{"type":57,"value":162}," for runner\u002FAPI\u002FWandB details;\n",{"type":51,"tag":76,"props":164,"children":166},{"className":165},[],[167],{"type":57,"value":168},"automl-advanced-monitoring.md",{"type":57,"value":170}," for hooks, resume, and pitfalls; and\n",{"type":51,"tag":76,"props":172,"children":174},{"className":173},[],[175],{"type":57,"value":176},"automl-examples.md",{"type":57,"value":178}," for conversation examples. ",{"type":51,"tag":76,"props":180,"children":182},{"className":181},[],[183],{"type":57,"value":184},"detailed-guide.md",{"type":57,"value":186}," is only\nthe map.",{"type":51,"tag":70,"props":188,"children":189},{},[190,196],{"type":51,"tag":76,"props":191,"children":193},{"className":192},[],[194],{"type":57,"value":195},"skills\u002Fmodels\u002F\u003Cnetwork>\u002FSKILL.md",{"type":57,"value":197},": model-specific dataset requirements, metrics,\nHPO notes, checkpoint handoff, and known failures.",{"type":51,"tag":70,"props":199,"children":200},{},[201,207,209,215],{"type":51,"tag":76,"props":202,"children":204},{"className":203},[],[205],{"type":57,"value":206},"skills\u002Fmodels\u002F\u003Cnetwork>\u002Freferences\u002Fskill_info.yaml",{"type":57,"value":208},": train action contract,\ncontainer image, inputs, outputs, upload exclusions, and ",{"type":51,"tag":76,"props":210,"children":212},{"className":211},[],[213],{"type":57,"value":214},"mode",{"type":57,"value":83},{"type":51,"tag":70,"props":217,"children":218},{},[219,225],{"type":51,"tag":76,"props":220,"children":222},{"className":221},[],[223],{"type":57,"value":224},"skills\u002Fplatform\u002F\u003Cplatform>\u002FSKILL.md",{"type":57,"value":226},": selected platform preflight, credentials,\nresource shape, monitoring, and cancellation.",{"type":51,"tag":70,"props":228,"children":229},{},[230,236],{"type":51,"tag":76,"props":231,"children":233},{"className":232},[],[234],{"type":57,"value":235},"skills\u002Fcore\u002Ftao-launch-workflow\u002FSKILL.md",{"type":57,"value":237},": shared intake pattern for platform,\ncredentials, dataset visibility, image confirmation, and user confirmation.",{"type":51,"tag":113,"props":239,"children":241},{"id":240},"preflight",[242],{"type":57,"value":243},"Preflight",{"type":51,"tag":66,"props":245,"children":246},{},[247,252,257],{"type":51,"tag":70,"props":248,"children":249},{},[250],{"type":57,"value":251},"Run the shared launch intake. If the user has not chosen a platform, ask;\nBrev, SLURM, Kubernetes, and Docker are equal peers.",{"type":51,"tag":70,"props":253,"children":254},{},[255],{"type":57,"value":256},"Run the selected platform skill's preflight before generating runner files.",{"type":51,"tag":70,"props":258,"children":259},{},[260,262,268],{"type":57,"value":261},"Verify ",{"type":51,"tag":76,"props":263,"children":265},{"className":264},[],[266],{"type":57,"value":267},"nvidia-tao-automl",{"type":57,"value":269}," imports:",{"type":51,"tag":271,"props":272,"children":277},"pre",{"className":273,"code":274,"language":275,"meta":276,"style":276},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","python -c \"import tao_automl; from tao_automl.runner import AutoMLRunner; print('OK')\"\n","bash","",[278],{"type":51,"tag":76,"props":279,"children":280},{"__ignoreMap":276},[281],{"type":51,"tag":282,"props":283,"children":286},"span",{"class":284,"line":285},"line",1,[287,293,299,305,310],{"type":51,"tag":282,"props":288,"children":290},{"style":289},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[291],{"type":57,"value":292},"python",{"type":51,"tag":282,"props":294,"children":296},{"style":295},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[297],{"type":57,"value":298}," -c",{"type":51,"tag":282,"props":300,"children":302},{"style":301},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[303],{"type":57,"value":304}," \"",{"type":51,"tag":282,"props":306,"children":307},{"style":295},[308],{"type":57,"value":309},"import tao_automl; from tao_automl.runner import AutoMLRunner; print('OK')",{"type":51,"tag":282,"props":311,"children":312},{"style":301},[313],{"type":57,"value":314},"\"\n",{"type":51,"tag":60,"props":316,"children":317},{},[318,320,326],{"type":57,"value":319},"If missing, show the exact install command from ",{"type":51,"tag":76,"props":321,"children":323},{"className":322},[],[324],{"type":57,"value":325},"versions.yaml",{"type":57,"value":327}," and ask before\ninstalling:",{"type":51,"tag":271,"props":329,"children":331},{"className":273,"code":330,"language":275,"meta":276,"style":276},"SB=\"${TAO_SKILL_BANK_PATH:-~\u002Ftao-skills-external}\"\npip install \"$($SB\u002Fscripts\u002Fresolve_versions_key.py wheels.tao_automl_\u003Cplatform>)\"\n",[332],{"type":51,"tag":76,"props":333,"children":334},{"__ignoreMap":276},[335,384],{"type":51,"tag":282,"props":336,"children":337},{"class":284,"line":285},[338,344,349,354,359,364,369,374,379],{"type":51,"tag":282,"props":339,"children":341},{"style":340},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[342],{"type":57,"value":343},"SB",{"type":51,"tag":282,"props":345,"children":346},{"style":301},[347],{"type":57,"value":348},"=",{"type":51,"tag":282,"props":350,"children":351},{"style":301},[352],{"type":57,"value":353},"\"${",{"type":51,"tag":282,"props":355,"children":356},{"style":340},[357],{"type":57,"value":358},"TAO_SKILL_BANK_PATH",{"type":51,"tag":282,"props":360,"children":361},{"style":301},[362],{"type":57,"value":363},":-",{"type":51,"tag":282,"props":365,"children":366},{"style":295},[367],{"type":57,"value":368},"~",{"type":51,"tag":282,"props":370,"children":371},{"style":301},[372],{"type":57,"value":373},"\u002F",{"type":51,"tag":282,"props":375,"children":376},{"style":340},[377],{"type":57,"value":378},"tao-skills-external",{"type":51,"tag":282,"props":380,"children":381},{"style":301},[382],{"type":57,"value":383},"}\"\n",{"type":51,"tag":282,"props":385,"children":387},{"class":284,"line":386},2,[388,393,398,403,408,413,418,423],{"type":51,"tag":282,"props":389,"children":390},{"style":289},[391],{"type":57,"value":392},"pip",{"type":51,"tag":282,"props":394,"children":395},{"style":295},[396],{"type":57,"value":397}," install",{"type":51,"tag":282,"props":399,"children":400},{"style":301},[401],{"type":57,"value":402}," \"$(",{"type":51,"tag":282,"props":404,"children":405},{"style":340},[406],{"type":57,"value":407},"$SB",{"type":51,"tag":282,"props":409,"children":410},{"style":295},[411],{"type":57,"value":412},"\u002Fscripts\u002Fresolve_versions_key.py wheels.tao_automl_",{"type":51,"tag":282,"props":414,"children":415},{"style":301},[416],{"type":57,"value":417},"\u003C",{"type":51,"tag":282,"props":419,"children":420},{"style":295},[421],{"type":57,"value":422},"platform",{"type":51,"tag":282,"props":424,"children":425},{"style":301},[426],{"type":57,"value":427},">)\"\n",{"type":51,"tag":60,"props":429,"children":430},{},[431,433,439,441,447,449,455,456,462,464,470,472,478,480,486],{"type":57,"value":432},"Valid platform wheel keys are ",{"type":51,"tag":76,"props":434,"children":436},{"className":435},[],[437],{"type":57,"value":438},"tao_automl_brev",{"type":57,"value":440},", ",{"type":51,"tag":76,"props":442,"children":444},{"className":443},[],[445],{"type":57,"value":446},"tao_automl_slurm",{"type":57,"value":448},",\n",{"type":51,"tag":76,"props":450,"children":452},{"className":451},[],[453],{"type":57,"value":454},"tao_automl_kubernetes",{"type":57,"value":440},{"type":51,"tag":76,"props":457,"children":459},{"className":458},[],[460],{"type":57,"value":461},"tao_automl_docker",{"type":57,"value":463},", and ",{"type":51,"tag":76,"props":465,"children":467},{"className":466},[],[468],{"type":57,"value":469},"tao_automl_all",{"type":57,"value":471},". Use\n",{"type":51,"tag":76,"props":473,"children":475},{"className":474},[],[476],{"type":57,"value":477},"all",{"type":57,"value":479}," only for development machines that need every backend. Add ",{"type":51,"tag":76,"props":481,"children":483},{"className":482},[],[484],{"type":57,"value":485},",llm",{"type":57,"value":487}," only\nwhen the user requests LLM-guided algorithms.",{"type":51,"tag":113,"props":489,"children":491},{"id":490},"model-support-gate",[492],{"type":57,"value":493},"Model Support Gate",{"type":51,"tag":60,"props":495,"children":496},{},[497],{"type":57,"value":498},"Before every run:",{"type":51,"tag":66,"props":500,"children":501},{},[502,521,534,546,559],{"type":51,"tag":70,"props":503,"children":504},{},[505,507,513,515,520],{"type":57,"value":506},"Read the model ",{"type":51,"tag":76,"props":508,"children":510},{"className":509},[],[511],{"type":57,"value":512},"SKILL.md",{"type":57,"value":514}," and ",{"type":51,"tag":76,"props":516,"children":518},{"className":517},[],[519],{"type":57,"value":131},{"type":57,"value":83},{"type":51,"tag":70,"props":522,"children":523},{},[524,526,532],{"type":57,"value":525},"Confirm ",{"type":51,"tag":76,"props":527,"children":529},{"className":528},[],[530],{"type":57,"value":531},"automl_enabled: true",{"type":57,"value":533}," for the model or that the model skill\nexplicitly routes train-stage requests to AutoML.",{"type":51,"tag":70,"props":535,"children":536},{},[537,538,544],{"type":57,"value":525},{"type":51,"tag":76,"props":539,"children":541},{"className":540},[],[542],{"type":57,"value":543},"\u003Cskill_dir>\u002Fschemas\u002Ftrain.schema.json",{"type":57,"value":545}," exists and parses. This is\nthe AutoML search-space gate.",{"type":51,"tag":70,"props":547,"children":548},{},[549,551,557],{"type":57,"value":550},"For non-TAO-Core models such as Cosmos-RL and CLIP, also require\n",{"type":51,"tag":76,"props":552,"children":554},{"className":553},[],[555],{"type":57,"value":556},"references\u002Fspec_template_train.yaml",{"type":57,"value":558},"; otherwise the runner has no complete\ntrain defaults.",{"type":51,"tag":70,"props":560,"children":561},{},[562],{"type":57,"value":563},"If any gate fails, do not improvise a search space. Report the missing\npackage artifact.",{"type":51,"tag":113,"props":565,"children":567},{"id":566},"inputs",[568],{"type":57,"value":569},"Inputs",{"type":51,"tag":60,"props":571,"children":572},{},[573],{"type":57,"value":574},"Collect these before runner construction:",{"type":51,"tag":576,"props":577,"children":578},"table",{},[579,598],{"type":51,"tag":580,"props":581,"children":582},"thead",{},[583],{"type":51,"tag":584,"props":585,"children":586},"tr",{},[587,593],{"type":51,"tag":588,"props":589,"children":590},"th",{},[591],{"type":57,"value":592},"Input",{"type":51,"tag":588,"props":594,"children":595},{},[596],{"type":57,"value":597},"Requirement",{"type":51,"tag":599,"props":600,"children":601},"tbody",{},[602,636,652,677,694,718,742,767,791],{"type":51,"tag":584,"props":603,"children":604},{},[605,615],{"type":51,"tag":606,"props":607,"children":608},"td",{},[609],{"type":51,"tag":76,"props":610,"children":612},{"className":611},[],[613],{"type":57,"value":614},"model_skill",{"type":51,"tag":606,"props":616,"children":617},{},[618,620,626,628,634],{"type":57,"value":619},"Resolved model skill directory under ",{"type":51,"tag":76,"props":621,"children":623},{"className":622},[],[624],{"type":57,"value":625},"skills\u002Fmodels\u002F",{"type":57,"value":627},". Accept user aliases such as ",{"type":51,"tag":76,"props":629,"children":631},{"className":630},[],[632],{"type":57,"value":633},"network_arch",{"type":57,"value":635}," only after resolving them to the packaged skill directory.",{"type":51,"tag":584,"props":637,"children":638},{},[639,647],{"type":51,"tag":606,"props":640,"children":641},{},[642],{"type":51,"tag":76,"props":643,"children":645},{"className":644},[],[646],{"type":57,"value":422},{"type":51,"tag":606,"props":648,"children":649},{},[650],{"type":57,"value":651},"One of the supported TAO platform skills.",{"type":51,"tag":584,"props":653,"children":654},{},[655,672],{"type":51,"tag":606,"props":656,"children":657},{},[658,664,666],{"type":51,"tag":76,"props":659,"children":661},{"className":660},[],[662],{"type":57,"value":663},"train_dataset",{"type":57,"value":665}," \u002F ",{"type":51,"tag":76,"props":667,"children":669},{"className":668},[],[670],{"type":57,"value":671},"eval_dataset",{"type":51,"tag":606,"props":673,"children":674},{},[675],{"type":57,"value":676},"Use model-specific spec keys and dataset layout.",{"type":51,"tag":584,"props":678,"children":679},{},[680,689],{"type":51,"tag":606,"props":681,"children":682},{},[683],{"type":51,"tag":76,"props":684,"children":686},{"className":685},[],[687],{"type":57,"value":688},"results_root",{"type":51,"tag":606,"props":690,"children":691},{},[692],{"type":57,"value":693},"Local, Lustre, or S3 path appropriate for the platform.",{"type":51,"tag":584,"props":695,"children":696},{},[697,713],{"type":51,"tag":606,"props":698,"children":699},{},[700,706,707],{"type":51,"tag":76,"props":701,"children":703},{"className":702},[],[704],{"type":57,"value":705},"gpu_count",{"type":57,"value":440},{"type":51,"tag":76,"props":708,"children":710},{"className":709},[],[711],{"type":57,"value":712},"num_nodes",{"type":51,"tag":606,"props":714,"children":715},{},[716],{"type":57,"value":717},"Respect model and platform limits.",{"type":51,"tag":584,"props":719,"children":720},{},[721,730],{"type":51,"tag":606,"props":722,"children":723},{},[724],{"type":51,"tag":76,"props":725,"children":727},{"className":726},[],[728],{"type":57,"value":729},"container_image",{"type":51,"tag":606,"props":731,"children":732},{},[733,735,740],{"type":57,"value":734},"Resolve through model metadata and ",{"type":51,"tag":76,"props":736,"children":738},{"className":737},[],[739],{"type":57,"value":325},{"type":57,"value":741},"; show it to the user.",{"type":51,"tag":584,"props":743,"children":744},{},[745,754],{"type":51,"tag":606,"props":746,"children":747},{},[748],{"type":51,"tag":76,"props":749,"children":751},{"className":750},[],[752],{"type":57,"value":753},"automl_algorithm",{"type":51,"tag":606,"props":755,"children":756},{},[757,759,765],{"type":57,"value":758},"Default ",{"type":51,"tag":76,"props":760,"children":762},{"className":761},[],[763],{"type":57,"value":764},"bayesian",{"type":57,"value":766}," unless user asks for another algorithm or the model skill recommends one.",{"type":51,"tag":584,"props":768,"children":769},{},[770,786],{"type":51,"tag":606,"props":771,"children":772},{},[773,779,780],{"type":51,"tag":76,"props":774,"children":776},{"className":775},[],[777],{"type":57,"value":778},"metric",{"type":57,"value":440},{"type":51,"tag":76,"props":781,"children":783},{"className":782},[],[784],{"type":57,"value":785},"direction",{"type":51,"tag":606,"props":787,"children":788},{},[789],{"type":57,"value":790},"Prefer the model skill's validation\u002Ftask metric.",{"type":51,"tag":584,"props":792,"children":793},{},[794,803],{"type":51,"tag":606,"props":795,"children":796},{},[797],{"type":51,"tag":76,"props":798,"children":800},{"className":799},[],[801],{"type":57,"value":802},"automl_budget",{"type":51,"tag":606,"props":804,"children":805},{},[806],{"type":57,"value":807},"Recommendation count, max epochs\u002Frungs, concurrency, or population size as required by the algorithm.",{"type":51,"tag":60,"props":809,"children":810},{},[811,813,819],{"type":57,"value":812},"Never ask for secret values. Verify required env vars with\n",{"type":51,"tag":76,"props":814,"children":816},{"className":815},[],[817],{"type":57,"value":818},"[ -n \"$VAR_NAME\" ] && echo SET || echo UNSET",{"type":57,"value":83},{"type":51,"tag":113,"props":821,"children":823},{"id":822},"pre-launch-review-gate",[824],{"type":57,"value":825},"Pre-Launch Review Gate",{"type":51,"tag":60,"props":827,"children":828},{},[829],{"type":57,"value":830},"Before launching any recommendation jobs, show a concrete launch review and get\nuser confirmation. This gate applies to every AutoML run for every\nAutoML-supported model\u002Fnetwork; it is not Cosmos-specific and must not be\nscoped to a single model skill. This applies even when platform and image\npreflight already passed. The review must include:",{"type":51,"tag":120,"props":832,"children":833},{},[834,839,844,849,854,859,864,869],{"type":51,"tag":70,"props":835,"children":836},{},[837],{"type":57,"value":838},"model\u002Fnetwork, platform, image, GPU\u002Fnode shape, and result\u002Fworkspace root",{"type":51,"tag":70,"props":840,"children":841},{},[842],{"type":57,"value":843},"dataset mode and concrete spec keys, including train\u002Feval sample counts when\nthey can be read cheaply",{"type":51,"tag":70,"props":845,"children":846},{},[847],{"type":57,"value":848},"algorithm, budget, max concurrent jobs, metric, and direction",{"type":51,"tag":70,"props":850,"children":851},{},[852],{"type":57,"value":853},"searchable parameters and ranges, including default values when the user did\nnot provide an explicit search space",{"type":51,"tag":70,"props":855,"children":856},{},[857],{"type":57,"value":858},"exact generated recommendation configs for the initial launch batch, produced\nin a review-only step before any recommendation job is submitted",{"type":51,"tag":70,"props":860,"children":861},{},[862],{"type":57,"value":863},"estimated runtime per recommendation and total expected wall time, with the\nassumptions used",{"type":51,"tag":70,"props":865,"children":866},{},[867],{"type":57,"value":868},"the automatic baseline eval job id, metric value, and result path from the\npost-preflight eval job, or an explicit blocker if the model has no runnable\nevaluate action or validation data",{"type":51,"tag":70,"props":870,"children":871},{},[872],{"type":57,"value":873},"the post-AutoML final evaluation plan for the selected best checkpoint\u002Fmodel,\nincluding metric, dataset, and record path",{"type":51,"tag":60,"props":875,"children":876},{},[877],{"type":57,"value":878},"If the estimate is longer than the user's stated limit or materially longer\nthan a normal interactive run, ask whether to reduce recommendations, epochs,\ndataset size, validation frequency, or search space before launch. Do not hide\nmulti-day estimates in logs.",{"type":51,"tag":113,"props":880,"children":882},{"id":881},"automatic-baseline-eval-job",[883],{"type":57,"value":884},"Automatic Baseline Eval Job",{"type":51,"tag":60,"props":886,"children":887},{},[888],{"type":57,"value":889},"After platform, image, credential, data, and model preflight pass, run the\nmodel's evaluate action once on the selected validation\u002Feval data before\nsubmitting any AutoML recommendation jobs. This is required AutoML setup, not an\noptional \"pretrained eval\" question for the user. Use the same base model or\ncheckpoint that the AutoML training run starts from, the model skill's evaluate\nspec\u002Ftemplate, and the selected platform's normal job submission path. If the\nmodel skill recommends a smaller shape for evaluation than training, use that\nshape and call it out in the launch review.",{"type":51,"tag":60,"props":891,"children":892},{},[893],{"type":57,"value":894},"Share the eval metric number with the user in the launch review before asking\nfor confirmation to launch recommendations. If the model has no packaged\nevaluate action, the eval dataset is missing, or the eval job fails, stop and\nreport the blocker instead of silently falling back to a training-loss-only\nAutoML run. Continue without this baseline only when the user explicitly accepts\nthat the run will optimize a proxy metric and will not have an impact baseline.",{"type":51,"tag":60,"props":896,"children":897},{},[898,900,906,908,914,916,922,924,930,931,937,939,945,947,953],{"type":57,"value":899},"The AutoML runner owns final evaluation of the selected best checkpoint\u002Fmodel.\nWhen a runnable evaluate action and validation\u002Feval data exist, pass a\n",{"type":51,"tag":76,"props":901,"children":903},{"className":902},[],[904],{"type":57,"value":905},"final_eval_fn(best_rec, train_job_id)",{"type":57,"value":907}," callback to ",{"type":51,"tag":76,"props":909,"children":911},{"className":910},[],[912],{"type":57,"value":913},"AutoMLRunner.run",{"type":57,"value":915},". The\ncallback must evaluate the selected best checkpoint\u002Fmodel with the same metric,\ndataset, and direction used for the baseline, store a structured record under\nthe workspace, and return the measured metric or a dict containing\n",{"type":51,"tag":76,"props":917,"children":919},{"className":918},[],[920],{"type":57,"value":921},"metric_value",{"type":57,"value":923}," and metadata such as ",{"type":51,"tag":76,"props":925,"children":927},{"className":926},[],[928],{"type":57,"value":929},"record_path",{"type":57,"value":514},{"type":51,"tag":76,"props":932,"children":934},{"className":933},[],[935],{"type":57,"value":936},"job_id",{"type":57,"value":938},". Do not run final\nevaluation as an agent-side step after ",{"type":51,"tag":76,"props":940,"children":942},{"className":941},[],[943],{"type":57,"value":944},"runner.run",{"type":57,"value":946},"; the returned result should\ncontain ",{"type":51,"tag":76,"props":948,"children":950},{"className":949},[],[951],{"type":57,"value":952},"result[\"final_evaluation\"]",{"type":57,"value":954}," with a concrete status and reason.",{"type":51,"tag":113,"props":956,"children":958},{"id":957},"dependency-and-data-preflight",[959],{"type":57,"value":960},"Dependency And Data Preflight",{"type":51,"tag":60,"props":962,"children":963},{},[964,966,972,974,980],{"type":57,"value":965},"If the selected workflow needs object storage or a platform CLI and the tool is\nmissing, report the missing dependency and offer the exact install command\nbefore continuing. After user approval, rerun\n",{"type":51,"tag":76,"props":967,"children":969},{"className":968},[],[970],{"type":57,"value":971},"scripts\u002Fcheck_tao_launch_preflight.py",{"type":57,"value":973}," with ",{"type":51,"tag":76,"props":975,"children":977},{"className":976},[],[978],{"type":57,"value":979},"--install-missing-tools",{"type":57,"value":981}," so it\ninstalls the smallest needed package and immediately retries path verification.\nFor S3 paths, verify both credentials and path readability from the launch\nplatform before creating runner artifacts. Do not wait for the first training\ncontainer to discover a missing AWS CLI, S3 client, or unreadable URI.",{"type":51,"tag":60,"props":983,"children":984},{},[985,987,993],{"type":57,"value":986},"For models that read large media archives or directories during every training\ntrial, stage or extract the dataset once to storage visible from the execution\nplatform, then point all recommendation specs at that staged path. Record the\nsource URI, staged path, byte\u002Ffile-count evidence when available, and timestamp\nin ",{"type":51,"tag":76,"props":988,"children":990},{"className":989},[],[991],{"type":57,"value":992},"\u003Cworkspace>\u002Fevaluations\u002Fdata_staging.json",{"type":57,"value":994},". If staging is not possible,\ninclude the repeated S3 I\u002FO risk in the pre-launch review and ask before\nspending a long AutoML budget on it.",{"type":51,"tag":60,"props":996,"children":997},{},[998,1000,1006,1008,1014,1016,1021,1023,1029],{"type":57,"value":999},"When the model skill defines sample-count-sensitive constraints, enforce them\nbefore launch. Reject or cap every batch-size recommendation that would create\nzero training steps for the selected dataset and GPU shard count. Use\n",{"type":51,"tag":76,"props":1001,"children":1003},{"className":1002},[],[1004],{"type":57,"value":1005},"scripts\u002Fcheck_tao_launch_preflight.py --effective-batch-limit train_annotation=\u003Cbatch_size>,\u003Cshard_count>",{"type":57,"value":1007}," for each generated recommendation\nbefore submitting it. If a recommendation later fails because the data is too\nsmall for the effective batch size, classify it as an invalid configuration,\nreplace or adjust it only when remaining budget exists, and report the\ncorrection in the final summary.\nWhen train sample count is known from an annotation file or cheap manifest read,\npass it as ",{"type":51,"tag":76,"props":1009,"children":1011},{"className":1010},[],[1012],{"type":57,"value":1013},"automl_settings[\"train_sample_count\"]",{"type":57,"value":1015}," to ",{"type":51,"tag":76,"props":1017,"children":1019},{"className":1018},[],[1020],{"type":57,"value":913},{"type":57,"value":1022}," so the\nrunner can cap impossible recommendations before submitting a job and record the\nadjustment in ",{"type":51,"tag":76,"props":1024,"children":1026},{"className":1025},[],[1027],{"type":57,"value":1028},"result[\"history\"][i][\"adjustments\"]",{"type":57,"value":83},{"type":51,"tag":113,"props":1031,"children":1033},{"id":1032},"algorithm-policy",[1034],{"type":57,"value":1035},"Algorithm Policy",{"type":51,"tag":576,"props":1037,"children":1038},{},[1039,1060],{"type":51,"tag":580,"props":1040,"children":1041},{},[1042],{"type":51,"tag":584,"props":1043,"children":1044},{},[1045,1050,1055],{"type":51,"tag":588,"props":1046,"children":1047},{},[1048],{"type":57,"value":1049},"Algorithm",{"type":51,"tag":588,"props":1051,"children":1052},{},[1053],{"type":57,"value":1054},"Good fit",{"type":51,"tag":588,"props":1056,"children":1057},{},[1058],{"type":57,"value":1059},"Required knobs",{"type":51,"tag":599,"props":1061,"children":1062},{},[1063,1090,1138,1167,1189],{"type":51,"tag":584,"props":1064,"children":1065},{},[1066,1074,1079],{"type":51,"tag":606,"props":1067,"children":1068},{},[1069],{"type":51,"tag":76,"props":1070,"children":1072},{"className":1071},[],[1073],{"type":57,"value":764},{"type":51,"tag":606,"props":1075,"children":1076},{},[1077],{"type":57,"value":1078},"Default for small\u002Fmedium budgets and few parameters.",{"type":51,"tag":606,"props":1080,"children":1081},{},[1082,1088],{"type":51,"tag":76,"props":1083,"children":1085},{"className":1084},[],[1086],{"type":57,"value":1087},"num_recommendations",{"type":57,"value":1089},", metric, direction",{"type":51,"tag":584,"props":1091,"children":1092},{},[1093,1109,1114],{"type":51,"tag":606,"props":1094,"children":1095},{},[1096,1102,1103],{"type":51,"tag":76,"props":1097,"children":1099},{"className":1098},[],[1100],{"type":57,"value":1101},"hyperband",{"type":57,"value":440},{"type":51,"tag":76,"props":1104,"children":1106},{"className":1105},[],[1107],{"type":57,"value":1108},"asha",{"type":51,"tag":606,"props":1110,"children":1111},{},[1112],{"type":57,"value":1113},"Many configs with cheap early rungs; ASHA supports parallelism.",{"type":51,"tag":606,"props":1115,"children":1116},{},[1117,1123,1124,1130,1132],{"type":51,"tag":76,"props":1118,"children":1120},{"className":1119},[],[1121],{"type":57,"value":1122},"max_epochs",{"type":57,"value":440},{"type":51,"tag":76,"props":1125,"children":1127},{"className":1126},[],[1128],{"type":57,"value":1129},"reduction_factor",{"type":57,"value":1131},", optional ",{"type":51,"tag":76,"props":1133,"children":1135},{"className":1134},[],[1136],{"type":57,"value":1137},"max_concurrent",{"type":51,"tag":584,"props":1139,"children":1140},{},[1141,1157,1162],{"type":51,"tag":606,"props":1142,"children":1143},{},[1144,1150,1151],{"type":51,"tag":76,"props":1145,"children":1147},{"className":1146},[],[1148],{"type":57,"value":1149},"bohb",{"type":57,"value":440},{"type":51,"tag":76,"props":1152,"children":1154},{"className":1153},[],[1155],{"type":57,"value":1156},"dehb",{"type":51,"tag":606,"props":1158,"children":1159},{},[1160],{"type":57,"value":1161},"Mixed Bayesian\u002Fevolutionary search with multi-fidelity budgets.",{"type":51,"tag":606,"props":1163,"children":1164},{},[1165],{"type":57,"value":1166},"same rung budget fields as Hyperband",{"type":51,"tag":584,"props":1168,"children":1169},{},[1170,1179,1184],{"type":51,"tag":606,"props":1171,"children":1172},{},[1173],{"type":51,"tag":76,"props":1174,"children":1176},{"className":1175},[],[1177],{"type":57,"value":1178},"pbt",{"type":51,"tag":606,"props":1180,"children":1181},{},[1182],{"type":57,"value":1183},"Long training where schedules should mutate during training.",{"type":51,"tag":606,"props":1185,"children":1186},{},[1187],{"type":57,"value":1188},"population and generation budget",{"type":51,"tag":584,"props":1190,"children":1191},{},[1192,1214,1219],{"type":51,"tag":606,"props":1193,"children":1194},{},[1195,1200,1201,1207,1208],{"type":51,"tag":76,"props":1196,"children":1198},{"className":1197},[],[1199],{"type":57,"value":46},{"type":57,"value":440},{"type":51,"tag":76,"props":1202,"children":1204},{"className":1203},[],[1205],{"type":57,"value":1206},"hybrid",{"type":57,"value":440},{"type":51,"tag":76,"props":1209,"children":1211},{"className":1210},[],[1212],{"type":57,"value":1213},"autoresearch",{"type":51,"tag":606,"props":1215,"children":1216},{},[1217],{"type":57,"value":1218},"User explicitly wants LLM-guided search and has an endpoint configured.",{"type":51,"tag":606,"props":1220,"children":1221},{},[1222],{"type":57,"value":1223},"LLM endpoint config plus budget",{"type":51,"tag":60,"props":1225,"children":1226},{},[1227],{"type":57,"value":1228},"Prefer the model skill's recommendation over generic defaults. Avoid ASHA or\nHyperband when the model skill says startup, validation, or checkpoint cost\ndominates short trials.",{"type":51,"tag":113,"props":1230,"children":1232},{"id":1231},"spec-and-search-space",[1233],{"type":57,"value":1234},"Spec And Search Space",{"type":51,"tag":60,"props":1236,"children":1237},{},[1238],{"type":57,"value":1239},"Build specs as nested dictionaries. If a model skill lists paths in dotted\nnotation for readability, walk the path and assign the nested leaf; do not store\nflat dotted strings as spec keys.",{"type":51,"tag":60,"props":1241,"children":1242},{},[1243],{"type":57,"value":1244},"Use the packaged train schema for:",{"type":51,"tag":120,"props":1246,"children":1247},{},[1248,1257,1266,1271],{"type":51,"tag":70,"props":1249,"children":1250},{},[1251],{"type":51,"tag":76,"props":1252,"children":1254},{"className":1253},[],[1255],{"type":57,"value":1256},"automl_default_parameters",{"type":51,"tag":70,"props":1258,"children":1259},{},[1260],{"type":51,"tag":76,"props":1261,"children":1263},{"className":1262},[],[1264],{"type":57,"value":1265},"automl_disabled_parameters",{"type":51,"tag":70,"props":1267,"children":1268},{},[1269],{"type":57,"value":1270},"valid min\u002Fmax ranges",{"type":51,"tag":70,"props":1272,"children":1273},{},[1274],{"type":57,"value":1275},"enums, option weights, conditions, dependencies, and popular parameters",{"type":51,"tag":60,"props":1277,"children":1278},{},[1279],{"type":57,"value":1280},"User-provided search spaces must stay inside schema constraints. For integer\nknobs with discrete choices, include the schema's required integer option shape\ninstead of a loose list if the model skill calls that out.",{"type":51,"tag":60,"props":1282,"children":1283},{},[1284],{"type":57,"value":1285},"Data source overrides are mandatory unless the model skill says the launcher can\nderive them. Preserve exact user-provided spec keys when the dataset uses direct\nannotation\u002Fmedia paths.",{"type":51,"tag":113,"props":1287,"children":1289},{"id":1288},"metric-policy",[1290],{"type":57,"value":1291},"Metric Policy",{"type":51,"tag":60,"props":1293,"children":1294},{},[1295],{"type":57,"value":1296},"Training loss is cheap but can be misleading. Prefer the model skill's task\nmetric. Use one of these:",{"type":51,"tag":120,"props":1298,"children":1299},{},[1300,1319,1330],{"type":51,"tag":70,"props":1301,"children":1302},{},[1303,1305,1311,1312,1318],{"type":57,"value":1304},"Log metric: ",{"type":51,"tag":76,"props":1306,"children":1308},{"className":1307},[],[1309],{"type":57,"value":1310},"metric=\u003Cname>",{"type":57,"value":440},{"type":51,"tag":76,"props":1313,"children":1315},{"className":1314},[],[1316],{"type":57,"value":1317},"direction=maximize|minimize",{"type":57,"value":83},{"type":51,"tag":70,"props":1320,"children":1321},{},[1322,1328],{"type":51,"tag":76,"props":1323,"children":1325},{"className":1324},[],[1326],{"type":57,"value":1327},"metric_extractor(logs, metric_name)",{"type":57,"value":1329},": parse the model's logs when the\ndefault resolver is ambiguous.",{"type":51,"tag":70,"props":1331,"children":1332},{},[1333,1339],{"type":51,"tag":76,"props":1334,"children":1336},{"className":1335},[],[1337],{"type":57,"value":1338},"eval_fn(rec, train_job_id)",{"type":57,"value":1340},": run the model's evaluate action after each\nrecommendation when the user wants a downstream task metric.",{"type":51,"tag":60,"props":1342,"children":1343},{},[1344,1346,1352],{"type":57,"value":1345},"Do not map ",{"type":51,"tag":76,"props":1347,"children":1349},{"className":1348},[],[1350],{"type":57,"value":1351},"kpi",{"type":57,"value":1353}," to a metric unless the model skill explicitly defines that\nmapping.",{"type":51,"tag":60,"props":1355,"children":1356},{},[1357,1359,1365],{"type":57,"value":1358},"For every AutoML run with a runnable evaluate action and validation\u002Feval data,\nrun the automatic baseline eval job after preflight and before recommendations.\nThe final report must compare that baseline metric, each recommendation's\nmetric, and the selected best metric so users can see the impact of tuning. For\nmodel skills that require an ",{"type":51,"tag":76,"props":1360,"children":1362},{"className":1361},[],[1363],{"type":57,"value":1364},"eval_fn",{"type":57,"value":1366}," to compute the real task metric, use\nthat evaluator instead of optimizing a convenient training loss unless the user\nexplicitly accepts the proxy metric.",{"type":51,"tag":113,"props":1368,"children":1370},{"id":1369},"runner-construction",[1371],{"type":57,"value":1372},"Runner Construction",{"type":51,"tag":60,"props":1374,"children":1375},{},[1376],{"type":57,"value":1377},"Use the selected platform SDK only after its preflight passes. Construct SDKs\nwithout embedding credentials in code.",{"type":51,"tag":271,"props":1379,"children":1382},{"className":1380,"code":1381,"language":292,"meta":276,"style":276},"language-python shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","from pathlib import Path\nfrom tao_automl.runner import AutoMLRunner\n\nskill_bank = Path(\"\u003Cabsolute-tao-skill-bank>\")\nmodel_skill = \"\u003Cresolved-model-skill-directory>\"\nskill_dir = skill_bank \u002F \"skills\" \u002F \"models\" \u002F model_skill\n\nrunner = AutoMLRunner(\n    skill_dir=str(skill_dir),\n    platform_sdk=sdk,\n    workspace_dir=\"\u003Cautoml_workspace>\",\n)\n\nresult = runner.run(\n    automl_algorithm=algorithm,\n    automl_settings=automl_settings,\n    spec_overrides=spec_overrides,\n    automl_hyperparameters=automl_hyperparameters,\n    custom_param_ranges=custom_param_ranges,\n    metric_extractor=metric_extractor,  # optional\n    eval_fn=eval_fn,                    # optional\n    final_eval_fn=final_eval_fn,        # optional but required when final eval is runnable\n)\n",[1383],{"type":51,"tag":76,"props":1384,"children":1385},{"__ignoreMap":276},[1386,1394,1402,1412,1421,1430,1439,1447,1456,1465,1474,1483,1492,1500,1509,1518,1527,1536,1545,1554,1563,1572,1581],{"type":51,"tag":282,"props":1387,"children":1388},{"class":284,"line":285},[1389],{"type":51,"tag":282,"props":1390,"children":1391},{},[1392],{"type":57,"value":1393},"from pathlib import Path\n",{"type":51,"tag":282,"props":1395,"children":1396},{"class":284,"line":386},[1397],{"type":51,"tag":282,"props":1398,"children":1399},{},[1400],{"type":57,"value":1401},"from tao_automl.runner import AutoMLRunner\n",{"type":51,"tag":282,"props":1403,"children":1405},{"class":284,"line":1404},3,[1406],{"type":51,"tag":282,"props":1407,"children":1409},{"emptyLinePlaceholder":1408},true,[1410],{"type":57,"value":1411},"\n",{"type":51,"tag":282,"props":1413,"children":1415},{"class":284,"line":1414},4,[1416],{"type":51,"tag":282,"props":1417,"children":1418},{},[1419],{"type":57,"value":1420},"skill_bank = Path(\"\u003Cabsolute-tao-skill-bank>\")\n",{"type":51,"tag":282,"props":1422,"children":1424},{"class":284,"line":1423},5,[1425],{"type":51,"tag":282,"props":1426,"children":1427},{},[1428],{"type":57,"value":1429},"model_skill = \"\u003Cresolved-model-skill-directory>\"\n",{"type":51,"tag":282,"props":1431,"children":1433},{"class":284,"line":1432},6,[1434],{"type":51,"tag":282,"props":1435,"children":1436},{},[1437],{"type":57,"value":1438},"skill_dir = skill_bank \u002F \"skills\" \u002F \"models\" \u002F model_skill\n",{"type":51,"tag":282,"props":1440,"children":1442},{"class":284,"line":1441},7,[1443],{"type":51,"tag":282,"props":1444,"children":1445},{"emptyLinePlaceholder":1408},[1446],{"type":57,"value":1411},{"type":51,"tag":282,"props":1448,"children":1450},{"class":284,"line":1449},8,[1451],{"type":51,"tag":282,"props":1452,"children":1453},{},[1454],{"type":57,"value":1455},"runner = AutoMLRunner(\n",{"type":51,"tag":282,"props":1457,"children":1459},{"class":284,"line":1458},9,[1460],{"type":51,"tag":282,"props":1461,"children":1462},{},[1463],{"type":57,"value":1464},"    skill_dir=str(skill_dir),\n",{"type":51,"tag":282,"props":1466,"children":1468},{"class":284,"line":1467},10,[1469],{"type":51,"tag":282,"props":1470,"children":1471},{},[1472],{"type":57,"value":1473},"    platform_sdk=sdk,\n",{"type":51,"tag":282,"props":1475,"children":1477},{"class":284,"line":1476},11,[1478],{"type":51,"tag":282,"props":1479,"children":1480},{},[1481],{"type":57,"value":1482},"    workspace_dir=\"\u003Cautoml_workspace>\",\n",{"type":51,"tag":282,"props":1484,"children":1486},{"class":284,"line":1485},12,[1487],{"type":51,"tag":282,"props":1488,"children":1489},{},[1490],{"type":57,"value":1491},")\n",{"type":51,"tag":282,"props":1493,"children":1495},{"class":284,"line":1494},13,[1496],{"type":51,"tag":282,"props":1497,"children":1498},{"emptyLinePlaceholder":1408},[1499],{"type":57,"value":1411},{"type":51,"tag":282,"props":1501,"children":1503},{"class":284,"line":1502},14,[1504],{"type":51,"tag":282,"props":1505,"children":1506},{},[1507],{"type":57,"value":1508},"result = runner.run(\n",{"type":51,"tag":282,"props":1510,"children":1512},{"class":284,"line":1511},15,[1513],{"type":51,"tag":282,"props":1514,"children":1515},{},[1516],{"type":57,"value":1517},"    automl_algorithm=algorithm,\n",{"type":51,"tag":282,"props":1519,"children":1521},{"class":284,"line":1520},16,[1522],{"type":51,"tag":282,"props":1523,"children":1524},{},[1525],{"type":57,"value":1526},"    automl_settings=automl_settings,\n",{"type":51,"tag":282,"props":1528,"children":1530},{"class":284,"line":1529},17,[1531],{"type":51,"tag":282,"props":1532,"children":1533},{},[1534],{"type":57,"value":1535},"    spec_overrides=spec_overrides,\n",{"type":51,"tag":282,"props":1537,"children":1539},{"class":284,"line":1538},18,[1540],{"type":51,"tag":282,"props":1541,"children":1542},{},[1543],{"type":57,"value":1544},"    automl_hyperparameters=automl_hyperparameters,\n",{"type":51,"tag":282,"props":1546,"children":1548},{"class":284,"line":1547},19,[1549],{"type":51,"tag":282,"props":1550,"children":1551},{},[1552],{"type":57,"value":1553},"    custom_param_ranges=custom_param_ranges,\n",{"type":51,"tag":282,"props":1555,"children":1557},{"class":284,"line":1556},20,[1558],{"type":51,"tag":282,"props":1559,"children":1560},{},[1561],{"type":57,"value":1562},"    metric_extractor=metric_extractor,  # optional\n",{"type":51,"tag":282,"props":1564,"children":1566},{"class":284,"line":1565},21,[1567],{"type":51,"tag":282,"props":1568,"children":1569},{},[1570],{"type":57,"value":1571},"    eval_fn=eval_fn,                    # optional\n",{"type":51,"tag":282,"props":1573,"children":1575},{"class":284,"line":1574},22,[1576],{"type":51,"tag":282,"props":1577,"children":1578},{},[1579],{"type":57,"value":1580},"    final_eval_fn=final_eval_fn,        # optional but required when final eval is runnable\n",{"type":51,"tag":282,"props":1582,"children":1584},{"class":284,"line":1583},23,[1585],{"type":51,"tag":282,"props":1586,"children":1587},{},[1588],{"type":57,"value":1491},{"type":51,"tag":60,"props":1590,"children":1591},{},[1592],{"type":57,"value":1593},"Only resume an existing workspace when the user explicitly asks to resume,\ncontinue, recover, or inspect an existing experiment. Treat a plain \"run\nAutoML\" request as a fresh run.",{"type":51,"tag":113,"props":1595,"children":1597},{"id":1596},"monitoring",[1598],{"type":57,"value":1599},"Monitoring",{"type":51,"tag":60,"props":1601,"children":1602},{},[1603,1605,1611,1613,1619,1620,1626,1627,1633],{"type":57,"value":1604},"Use ",{"type":51,"tag":76,"props":1606,"children":1608},{"className":1607},[],[1609],{"type":57,"value":1610},"runner",{"type":57,"value":1612}," status output and the platform SDK's ",{"type":51,"tag":76,"props":1614,"children":1616},{"className":1615},[],[1617],{"type":57,"value":1618},"get_job_status",{"type":57,"value":448},{"type":51,"tag":76,"props":1621,"children":1623},{"className":1622},[],[1624],{"type":57,"value":1625},"get_job_logs",{"type":57,"value":463},{"type":51,"tag":76,"props":1628,"children":1630},{"className":1629},[],[1631],{"type":57,"value":1632},"get_failure_analysis",{"type":57,"value":1634},". For active jobs, report:",{"type":51,"tag":120,"props":1636,"children":1637},{},[1638,1643,1648,1653,1658,1663,1668],{"type":51,"tag":70,"props":1639,"children":1640},{},[1641],{"type":57,"value":1642},"recommendation id \u002F trial id",{"type":51,"tag":70,"props":1644,"children":1645},{},[1646],{"type":57,"value":1647},"platform job id",{"type":51,"tag":70,"props":1649,"children":1650},{},[1651],{"type":57,"value":1652},"status",{"type":51,"tag":70,"props":1654,"children":1655},{},[1656],{"type":57,"value":1657},"current metric",{"type":51,"tag":70,"props":1659,"children":1660},{},[1661],{"type":57,"value":1662},"best metric so far",{"type":51,"tag":70,"props":1664,"children":1665},{},[1666],{"type":57,"value":1667},"selected hyperparameters for the current\u002Fbest recommendation",{"type":51,"tag":70,"props":1669,"children":1670},{},[1671],{"type":57,"value":1672},"elapsed time and updated ETA when enough timing data exists",{"type":51,"tag":60,"props":1674,"children":1675},{},[1676],{"type":57,"value":1677},"On failure, classify whether it is infrastructure, data visibility, image,\ncredential, spec\u002Fschema, or model-code failure. Fix only the minimal cause and\ndo not silently spend additional budget on repeated invalid recommendations.\nIf a blocker is fixed during run setup, continue from the original task after\nshowing the updated preflight\u002Flaunch review instead of leaving the user to\nrestate the request.",{"type":51,"tag":60,"props":1679,"children":1680},{},[1681],{"type":57,"value":1682},"For LLM-based algorithms, inspect the brain logs before calling the run valid.\nVerify that LLM calls succeeded, proposals were generated, prior metrics were\nused to choose later parameter changes, and logs show keep\u002Fdiscard or\nequivalent algorithm decisions. If the brain falls back to random sampling,\nclassify the LLM workflow as failed or blocked instead of treating it as a\nvalid LLM-guided run.",{"type":51,"tag":113,"props":1684,"children":1686},{"id":1685},"result-handoff",[1687],{"type":57,"value":1688},"Result Handoff",{"type":51,"tag":60,"props":1690,"children":1691},{},[1692],{"type":57,"value":1693},"At completion:",{"type":51,"tag":66,"props":1695,"children":1696},{},[1697,1702,1707,1719,1724,1729],{"type":51,"tag":70,"props":1698,"children":1699},{},[1700],{"type":57,"value":1701},"Identify the best recommendation by the selected metric and direction.",{"type":51,"tag":70,"props":1703,"children":1704},{},[1705],{"type":57,"value":1706},"Return the best train child job id and its result path.",{"type":51,"tag":70,"props":1708,"children":1709},{},[1710,1712,1718],{"type":57,"value":1711},"Resolve the model checkpoint using the model skill's checkpoint metadata and\nSDK helpers; do not guess filenames such as ",{"type":51,"tag":76,"props":1713,"children":1715},{"className":1714},[],[1716],{"type":57,"value":1717},"latest",{"type":57,"value":83},{"type":51,"tag":70,"props":1720,"children":1721},{},[1722],{"type":57,"value":1723},"Report the exact search space, algorithm, budget, metric, and platform.",{"type":51,"tag":70,"props":1725,"children":1726},{},[1727],{"type":57,"value":1728},"Report the automatic baseline eval job id\u002Fresult path\u002Fmetric, all\nrecommendation metrics, final evaluation status\u002Fresult path\u002Fmetric, failed\nrecommendations and root causes, elapsed time, and final runtime notes.",{"type":51,"tag":70,"props":1730,"children":1731},{},[1732],{"type":57,"value":1733},"If this feeds a workflow such as AutoML + DEFT, pass the winning spec\noverrides and checkpoint through the workflow's declared handoff fields.",{"type":51,"tag":113,"props":1735,"children":1737},{"id":1736},"common-pitfalls",[1738],{"type":57,"value":1739},"Common Pitfalls",{"type":51,"tag":120,"props":1741,"children":1742},{},[1743,1756,1761,1766,1771,1784],{"type":51,"tag":70,"props":1744,"children":1745},{},[1746,1748,1754],{"type":57,"value":1747},"Do not expect ",{"type":51,"tag":76,"props":1749,"children":1751},{"className":1750},[],[1752],{"type":57,"value":1753},"~\u002Ftao-core",{"type":57,"value":1755}," at runtime. Schemas and templates must be packaged\ninside the model skill.",{"type":51,"tag":70,"props":1757,"children":1758},{},[1759],{"type":57,"value":1760},"Do not infer dataset URIs from previous runs.",{"type":51,"tag":70,"props":1762,"children":1763},{},[1764],{"type":57,"value":1765},"Do not precompute SDK-managed output paths; non-URI output values are routed\nby the SDK.",{"type":51,"tag":70,"props":1767,"children":1768},{},[1769],{"type":57,"value":1770},"For SLURM, stage large datasets on Lustre rather than burning GPU allocation\ntime on large S3 downloads.",{"type":51,"tag":70,"props":1772,"children":1773},{},[1774,1776,1782],{"type":57,"value":1775},"For gated HuggingFace models, verify ",{"type":51,"tag":76,"props":1777,"children":1779},{"className":1778},[],[1780],{"type":57,"value":1781},"HF_TOKEN",{"type":57,"value":1783}," is set without reading it.",{"type":51,"tag":70,"props":1785,"children":1786},{},[1787],{"type":57,"value":1788},"If all recommendations fail, stop and summarize the shared root cause instead\nof launching more trials.",{"type":51,"tag":1790,"props":1791,"children":1792},"style",{},[1793],{"type":57,"value":1794},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":1796,"total":1898},[1797,1814,1828,1842,1854,1869,1884],{"slug":1798,"name":1798,"fn":1799,"description":1800,"org":1801,"tags":1802,"stars":23,"repoUrl":24,"updatedAt":1813},"accelerated-computing-cudf","accelerate data processing with cuDF","Official NVIDIA-authored guidance for NVIDIA cuDF GPU DataFrames, pandas acceleration, dask-cuDF, ETL, joins, groupby, CSV\u002FParquet I\u002FO, nullable semantics, and multi-GPU DataFrame workloads.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1803,1806,1809,1810],{"name":1804,"slug":1805,"type":15},"Data Analysis","data-analysis",{"name":1807,"slug":1808,"type":15},"Data Engineering","data-engineering",{"name":9,"slug":8,"type":15},{"name":1811,"slug":1812,"type":15},"Performance","performance","2026-07-14T05:28:43.176466",{"slug":1815,"name":1815,"fn":1816,"description":1817,"org":1818,"tags":1819,"stars":23,"repoUrl":24,"updatedAt":1827},"aiq-deploy","deploy and manage NVIDIA AI-Q infrastructure","Use when asked to install, deploy, run, validate, troubleshoot, or stop NVIDIA AI-Q Blueprint infrastructure.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1820,1823,1826],{"name":1821,"slug":1822,"type":15},"Deployment","deployment",{"name":1824,"slug":1825,"type":15},"Infrastructure","infrastructure",{"name":9,"slug":8,"type":15},"2026-07-14T05:29:06.667109",{"slug":1829,"name":1829,"fn":1830,"description":1831,"org":1832,"tags":1833,"stars":23,"repoUrl":24,"updatedAt":1841},"aiq-research","conduct deep research with AI-Q","Use when asked to run deep research or AI-Q research through a reachable NVIDIA AI-Q Blueprint backend.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1834,1837,1838],{"name":1835,"slug":1836,"type":15},"Agents","agents",{"name":9,"slug":8,"type":15},{"name":1839,"slug":1840,"type":15},"Research","research","2026-07-14T05:28:06.816956",{"slug":1843,"name":1843,"fn":1844,"description":1845,"org":1846,"tags":1847,"stars":23,"repoUrl":24,"updatedAt":1853},"amc-run-sample-calibration","run AMC sample dataset calibration","Run end-to-end calibration on the shipped sample dataset (sdg_08_2_sample_data_010926.zip) against a running AMC microservice. Use when user says 'test sample dataset', 'run sample calibration', 'verify AMC install', or 'launch and test'.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1848,1849,1850],{"name":1804,"slug":1805,"type":15},{"name":9,"slug":8,"type":15},{"name":1851,"slug":1852,"type":15},"Testing","testing","2026-07-17T05:29:03.913266",{"slug":1855,"name":1855,"fn":1856,"description":1857,"org":1858,"tags":1859,"stars":23,"repoUrl":24,"updatedAt":1868},"amc-run-video-calibration","calibrate video datasets with AutoMagicCalib","Calibrate a new dataset from pre-recorded video files via the AutoMagicCalib REST API. Use when user has local MP4s and says 'calibrate my videos', 'run AMC on these videos', or similar. For RTSP\u002Flive streams, use amc-run-rtsp-calibration instead.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1860,1861,1864,1865],{"name":13,"slug":14,"type":15},{"name":1862,"slug":1863,"type":15},"Imaging","imaging",{"name":9,"slug":8,"type":15},{"name":1866,"slug":1867,"type":15},"Video","video","2026-07-17T05:28:53.905004",{"slug":1870,"name":1870,"fn":1871,"description":1872,"org":1873,"tags":1874,"stars":23,"repoUrl":24,"updatedAt":1883},"amc-setup-calibration-stack","deploy AutoMagicCalib microservice with Docker","Launch AutoMagicCalib microservice and web UI from NGC release images via Docker Compose. Use when user says 'deploy auto calibration', 'launch auto calibration', 'launch AMC', 'start MS+UI', or 'set up auto-magic-calib'. Requires NGC API key.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1875,1876,1879,1880],{"name":1821,"slug":1822,"type":15},{"name":1877,"slug":1878,"type":15},"Docker","docker",{"name":9,"slug":8,"type":15},{"name":1881,"slug":1882,"type":15},"Operations","operations","2026-07-17T05:28:56.913999",{"slug":1885,"name":1885,"fn":1886,"description":1887,"org":1888,"tags":1889,"stars":23,"repoUrl":24,"updatedAt":1897},"cudaq-guide","develop quantum applications with CUDA-Q","CUDA-Q onboarding guide for installation, test programs, GPU simulation, QPU hardware, and quantum applications.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1890,1891,1894],{"name":9,"slug":8,"type":15},{"name":1892,"slug":1893,"type":15},"Quantum Computing","quantum-computing",{"name":1895,"slug":1896,"type":15},"Simulation","simulation","2026-07-14T05:26:58.898253",305,{"items":1900,"total":2048},[1901,1919,1934,1945,1957,1971,1984,1996,2007,2016,2030,2039],{"slug":1902,"name":1902,"fn":1903,"description":1904,"org":1905,"tags":1906,"stars":1916,"repoUrl":1917,"updatedAt":1918},"nemoclaw-user-guide","retrieve NemoClaw documentation and configuration","Guides human users' AI agents to the NemoClaw docs MCP server and canonical Fern documentation in Markdown form. Use when users ask how to install, configure, operate, troubleshoot, secure, or learn NemoClaw with an AI coding assistant. Trigger keywords - nemoclaw docs, use nemoclaw with ai agent, nemoclaw mcp docs, nemoclaw install help, nemoclaw quickstart, nemoclaw markdown docs, llms.txt, agent skills.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1907,1910,1913],{"name":1908,"slug":1909,"type":15},"Documentation","documentation",{"name":1911,"slug":1912,"type":15},"MCP","mcp",{"name":1914,"slug":1915,"type":15},"Search","search",21777,"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FNemoClaw","2026-07-20T06:00:01.461044",{"slug":1920,"name":1920,"fn":1921,"description":1922,"org":1923,"tags":1924,"stars":1931,"repoUrl":1932,"updatedAt":1933},"mcore-build-and-dependency","manage Megatron-LM development environments","Container-based dev environment setup and dependency management for Megatron-LM. Covers acquiring and launching the CI container, uv package management, and updating uv.lock.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1925,1928,1929],{"name":1926,"slug":1927,"type":15},"Containers","containers",{"name":1821,"slug":1822,"type":15},{"name":1930,"slug":292,"type":15},"Python",17049,"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FMegatron-LM","2026-07-27T06:06:11.249662",{"slug":1935,"name":1935,"fn":1936,"description":1937,"org":1938,"tags":1939,"stars":1931,"repoUrl":1932,"updatedAt":1944},"mcore-bump-base-image","update NVIDIA PyTorch base images","Bump the NVIDIA PyTorch base image (`nvcr.io\u002Fnvidia\u002Fpytorch:YY.MM-py3`) used by Megatron-LM CI. Covers the two pin sites (GitHub CI in `docker\u002F.ngc_version.dev` and GitLab CI in `.gitlab\u002Fstages\u002F01.build.yml`), the post-bump CI loop (re-run functional tests, refresh golden values, mark broken tests), and the gotchas that bit PRs",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1940,1943],{"name":1941,"slug":1942,"type":15},"CI\u002FCD","ci-cd",{"name":1821,"slug":1822,"type":15},"2026-07-14T05:25:59.97109",{"slug":1946,"name":1946,"fn":1947,"description":1948,"org":1949,"tags":1950,"stars":1931,"repoUrl":1932,"updatedAt":1956},"mcore-cicd","manage CI\u002FCD pipelines for Megatron-LM","CI\u002FCD reference for Megatron-LM. Covers CI pipeline structure, PR scope labels, triggering internal GitLab CI (which force-pushes the current branch to a pull-request\u002FBRANCH ref — always dry-run and verify the destination first; never run against shared or protected branches), and CI failure investigation.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1951,1952,1953],{"name":1941,"slug":1942,"type":15},{"name":1821,"slug":1822,"type":15},{"name":1954,"slug":1955,"type":15},"GitHub","github","2026-07-27T06:06:12.278222",{"slug":1958,"name":1958,"fn":1959,"description":1960,"org":1961,"tags":1962,"stars":1931,"repoUrl":1932,"updatedAt":1970},"mcore-create-issue","investigate CI failures and create issues","Investigate a failing GitHub Actions run or job and create a GitHub issue for the failure.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1963,1966,1967],{"name":1964,"slug":1965,"type":15},"Debugging","debugging",{"name":1954,"slug":1955,"type":15},{"name":1968,"slug":1969,"type":15},"Triage","triage","2026-07-14T05:25:57.442089",{"slug":1972,"name":1972,"fn":1973,"description":1974,"org":1975,"tags":1976,"stars":1931,"repoUrl":1932,"updatedAt":1983},"mcore-linting-and-formatting","lint and format Megatron-LM code","Linting and formatting for Megatron-LM. Covers running autoformat.sh, tools (ruff, black, isort, pylint, mypy), and code style rules.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1977,1980],{"name":1978,"slug":1979,"type":15},"Best Practices","best-practices",{"name":1981,"slug":1982,"type":15},"Code Analysis","code-analysis","2026-07-14T05:25:56.18433",{"slug":1985,"name":1985,"fn":1986,"description":1987,"org":1988,"tags":1989,"stars":1931,"repoUrl":1932,"updatedAt":1995},"mcore-migrate-gpt-to-hybrid","migrate Megatron-LM models to HybridModel","Migration guide for moving Megatron Core GPTModel checkpoints, model providers, training commands, and layer mappings to HybridModel.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1990,1991,1994],{"name":17,"slug":18,"type":15},{"name":1992,"slug":1993,"type":15},"Migration","migration",{"name":9,"slug":8,"type":15},"2026-07-17T06:07:11.777011",{"slug":1997,"name":1997,"fn":1998,"description":1999,"org":2000,"tags":2001,"stars":1931,"repoUrl":1932,"updatedAt":2006},"mcore-onboard-gb200-1node-tests","onboard functional tests for GB200","Onboard 1-node GitHub MR functional tests for GB200 from existing mr-scoped 2-node tests.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2002,2005],{"name":2003,"slug":2004,"type":15},"QA","qa",{"name":1851,"slug":1852,"type":15},"2026-07-14T05:25:53.673039",{"slug":2008,"name":2008,"fn":2009,"description":2010,"org":2011,"tags":2012,"stars":1931,"repoUrl":1932,"updatedAt":2015},"mcore-run-on-slurm","launch distributed training jobs on SLURM","How to launch distributed Megatron-LM training jobs on a SLURM cluster. Covers a minimal sbatch skeleton, environment-variable setup for torch.distributed.run, CUDA_DEVICE_MAX_CONNECTIONS rules across hardware and parallelism modes, container conventions, monitoring, and per-rank failure diagnosis.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2013,2014],{"name":1821,"slug":1822,"type":15},{"name":1824,"slug":1825,"type":15},"2026-07-14T05:25:49.362534",{"slug":2017,"name":2017,"fn":2018,"description":2019,"org":2020,"tags":2021,"stars":1931,"repoUrl":1932,"updatedAt":2029},"mcore-split-pr","split pull requests to reduce review load","Split a PR into multiple PRs to reduce the number of required CODEOWNERS reviewer groups.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2022,2025,2026],{"name":2023,"slug":2024,"type":15},"Code Review","code-review",{"name":1954,"slug":1955,"type":15},{"name":2027,"slug":2028,"type":15},"Pull Requests","pull-requests","2026-07-14T05:26:01.226578",{"slug":2031,"name":2031,"fn":2032,"description":2033,"org":2034,"tags":2035,"stars":1931,"repoUrl":1932,"updatedAt":2038},"mcore-testing","run and manage Megatron-LM tests","Test system for Megatron-LM. Covers test layout, recipe YAML structure, adding and running unit and functional tests, golden values, marker filters, and CI parity.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2036,2037],{"name":2003,"slug":2004,"type":15},{"name":1851,"slug":1852,"type":15},"2026-07-14T05:25:54.928983",{"slug":2040,"name":2040,"fn":2041,"description":2042,"org":2043,"tags":2044,"stars":1931,"repoUrl":1932,"updatedAt":2047},"nightly-sync","manage nightly main-to-dev sync workflows","Domain knowledge for the nightly main-to-dev sync workflow. Covers merge strategy, CI architecture, failure investigation, and known issues.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2045,2046],{"name":13,"slug":14,"type":15},{"name":1941,"slug":1942,"type":15},"2026-07-30T05:29:03.275638",496]