tao-finetune-anomalygennext · v0.1.0 · 2026-10-05 · sha256 973bb4ef056b3c8c
tao-finetune-anomalygennext v0.1.0A
Immutable. This exact content never changes and is served at /api/v1/blob/973bb4ef056b3c8c.
---
name: tao-finetune-anomalygennext
description: >-
Validate a user AnomalyGenNext dataset and recipe, freeze its validation set,
and prepare a canonical texture fine-tuning recipe. Use when AnomalyGenNext
task weights do not yet exist. Do not use for ordinary defect generation.
license: Apache-2.0
compatibility: Requires the AnomalyGenNext 1.1 container and its model checkpoints.
metadata:
author: NVIDIA Corporation
version: "0.1.0"
allowed-tools: Read Bash
tags: [tao, data, anomalygen-next, fine-tuning, synthetic-data]
---
# Fine-tune AnomalyGenNext
This leaf prepares a user-owned dataset and optional recipe for task-specific
AnomalyGenNext LoRA training. The pinned image is declared in
`references/skill_info.yaml`; do not replace it with the older 1.0 release.
Read `references/input-contract.md` when validating a dataset or adapting a
recipe, and `references/container-runtime.md` before submission.
## Inputs
```text
DATASET/
defect_spec.jsonl
TEXTURE/
clean_image/*
anomaly_image/DEFECT/*
mask/DEFECT/*
VALIDATION/testcase.jsonl
```
Also supply the Cosmos3-Nano base checkpoint directory, `Wan2.2_VAE.pth`, and
a complete checkpoint root containing the required Qwen tokenizer model assets
under `hf/` plus `facebook/dinov2-large/` for validation. The `hf/` directory
name is part of the upstream image's fixed checkpoint layout. The validation
JSONL must contain `image_filename`, `mask_filename`, and `anomaly_type`; each trained
`TEXTURE+DEFECT` needs at least three rows. A separately stored defect spec is
accepted with `--defect-spec`.
Dataset and validation images and masks must use `.jpg`, `.jpeg`, or `.png`,
matching the extensions supported by the AnomalyGenNext 1.1 runtime loader.
An optional user `recipe.yaml` is a template. Custom training settings remain,
while dataset, checkpoint, validation, type order, and iteration-zero validation
are replaced by validated identities. Without a template, the packaged recipe
uses the established 5000-step defaults.
## Prepare
After the common launch review, run the `prepare_recipe` action:
```bash
scripts/prepare_finetune_recipe.py \
--dataset-root /data/my_dataset \
--validation-testcase /data/validation/testcase.jsonl \
--base-checkpoint /models/Cosmos3-Nano \
--vae-path /models/Wan2.2_VAE.pth \
--checkpoint-root /models/anomalygen-checkpoints \
--dataset-name my_dataset \
--recipe-template /data/recipe.yaml \
--output /results/canonical_recipe.yaml
```
The action freezes absolute validation paths, rejects image extensions the
runtime cannot decode, validates anomaly/mask pairing, checks type agreement
with `defect_spec.jsonl`, refuses output reuse, and emits a recipe plus
metadata. `validation_iter` must be a multiple of `save_iter`; `max_iter` must
reach a post-baseline validation.
## Train and accept
Invoke `tao-launch-workflow`, review the platform, image, mounts, GPU shape,
runtime, and exact recipe, then submit the `train` action. Bind the entire
checkpoint root read-only at the fixed container path declared in
`skill_info.yaml`; the upstream trainer resolves the Qwen tokenizer model
assets at `checkpoints/hf` and DINOv2 at
`checkpoints/facebook/dinov2-large` beneath its image repository. Mounting only
the DINOv2 directory or setting `HF_HOME` does not satisfy that contract.
```bash
scripts/finetune_anomalygennext.sh \
--recipe /results/canonical_recipe.yaml \
--results-dir /new/training_results \
--checkpoint-root /workspace/paidf-anomalygen/checkpoints \
--num-gpus 1
```
The wrapper uses the upstream trainer already inside the pinned container. It
refuses existing publication outputs and, unless `--resume` is explicit, an
existing runtime directory. Accept success only when `training_handoff.json`
is `COMPLETE`: iteration zero and a later scored checkpoint must exist,
`best_checkpoint.txt` must select the maximum `Average.nn_score`, and the score
must improve strictly. The handoff hashes the copied adapter and recipe.
Read `references/nn-score-contract.md` before changing metric or acceptance
settings. A 1000-step run is the smallest quality smoke; shorter runs prove
wiring only.