关于 i4h-workflow-finetune
用于从选定的 i4h 工作流运行模式启动策略微调的技能,面向训练工作流策略的开发者。它根据远程任务清单核验数据集与配置,先进行 dry-run,再训练并检查可加载的检查点。
主要功能
- 01解析工作流模式和远程任务
- 02验证数据集兼容性及训练配置
- 03使用 dry-run 检查配置
- 04前台运行训练并检查产物
- 05通过后端加载测试验证检查点
适用场景
- 01为支持训练的远程任务微调策略
- 02训练前确认数据集与任务匹配
- 03检查训练配置后启动长时间训练
- 04确认检查点可由推理后端加载
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ nvidia/ skills --skill i4h-workflow-finetune安装后在 Claude Code 中输入/i4h-workflow-finetune确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
BENCHMARK.mdskill-card.mdskill.oms.sigevals/evals.json详细介绍
微调工作流策略任务
目的
根据选定的工作流运行模式和所属远程任务清单,解析并运行训练。
说明
- 解析基础检出目录、策略模式和远程任务。
- 验证数据集兼容性,并确认存在
train块。 - 对确切配置执行试运行。
- 在前台训练,并验证检查点产物。
解析工作流、任务和数据
export I4H_WORKFLOWS_REPO_URL="${I4H_WORKFLOWS_REPO_URL:-https://github.com/isaac-for-healthcare/i4h-workflows}"
I4H_REPO_DIR_NAME="${I4H_WORKFLOWS_REPO_URL%/}"
I4H_REPO_DIR_NAME="${I4H_REPO_DIR_NAME##*/}"
I4H_REPO_DIR_NAME="${I4H_REPO_DIR_NAME##*:}"
I4H_REPO_DIR_NAME="${I4H_REPO_DIR_NAME%.git}"
[ -n "$I4H_REPO_DIR_NAME" ] || { echo "Cannot derive a checkout name from I4H_WORKFLOWS_REPO_URL" >&2; exit 2; }
ROOT="${I4H_WORKFLOWS:-$(git rev-parse --show-toplevel 2>/dev/null)}"
if [ ! -d "$ROOT/workflows/i4h_workflows" ]; then
ROOT="${I4H_WORKFLOWS:-$HOME/$I4H_REPO_DIR_NAME}"
[ -d "$ROOT/workflows/i4h_workflows" ] || git clone "$I4H_WORKFLOWS_REPO_URL" "$ROOT"
fi
export I4H_WORKFLOWS="$ROOT"
cd "$ROOT"
./run.sh list
./run.sh show <workflow> --mode <policy-mode>
test -f /absolute/path/to/dataset/meta/info.json
nvidia-smi
请将上述解析器视为技能契约的一部分:托管副本可能在基础仓库之外运行,因此绝不要假设当前检出目录中包含 workflows/i4h_workflows。I4H_WORKFLOWS_REPO_URL 用于选择克隆源。当未设置 I4H_WORKFLOWS 时,根据该 URL 推导回退目录;只有在要复用或指定特定目标目录时,才设置 I4H_WORKFLOWS。绝不要替换已有检出目录。
读取选定的工作流运行模式,确定其远程任务 ID。打开 tasks/<project>/i4h_tasks/<project>/manifest/<task>.yaml,并确认其中包含 train:。根据该清单和项目的 train.py,解析项目、入口点、基础模型/配置、输出默认值和模态约定。
如果提示词未提供路径,则使用当前链路的 LeRobot 数据集。验证其具身类型、摄像头、任务文本、特征宽度和 episode 数量是否与远程任务兼容。
长时间运行前解析配置
所有策略训练入口均支持 --dry-run:
uv run --project "tasks/<project>" "i4h-tasks-<project-with-hyphens>-train" \
--task <project>/<task> \
--dataset /absolute/path/to/dataset \
--output-dir /absolute/path/to/checkpoints \
--max-steps <N> \
--batch-size <N> \
--dry-run
检查解析后的配置。用户要求的步数、批量大小、模型/配置和 GPU 数量必须保持不变。
对于 GR00T,“关闭视觉调优”对应 --no-tune-visual。不要将该标志传给 openpi,因为它的 CLI 不支持此标志。只能使用所选项目当前 train.py 中提供的标志。
训练
移除 --dry-run,并让命令在前台运行:
uv run --project "tasks/<project>" "i4h-tasks-<project-with-hyphens>-train" \
--task <project>/<task> \
--dataset /absolute/path/to/dataset \
--output-dir /absolute/path/to/checkpoints \
--max-steps <N> \
--save-steps <N> \
--batch-size <N> \
--num-gpus <N>
只有在解析后,才添加特定后端的标志。不要为了让训练适配而擅自降低用户要求的步数或批量大小。
验证
必须确认退出状态为 0、已完成要求的步数、训练日志已保存,且至少有一个可加载的检查点产物。解析出确切的检查点路径;不要将不完整的输出目录称为检查点。
在报告检查点可用之前,先运行有时限的后端加载冒烟测试:
uv run --project "tasks/<project>" python -m "<project>.server" \
--namespace "checkpoint-smoke-$$" \
--preload <project>/<task> \
--checkpoint /absolute/path/to/checkpoint \
--preload-only
使用所选项目的实际模块路径。--preload-only 会通过推理后端加载清单和检查点,然后退出,不会启动 rollout。仅训练退出成功只能证明文件已写入,并不能证明推理能够加载它们。
报告任务输出和所选检查点的 du -sh 结果。一些训练器会在输出根目录保存最终模型,同时保存带编号的检查点;请指出这一重复情况,但除非用户明确要求清理,否则不要删除任一副本。
将通过精确加载冒烟测试的检查点路径交给 i4h-workflow-validate;除非用户要求,否则不要执行评估。
故障排查
报告遇到的第一个数据集、清单、模型访问、GPU 内存或后端错误。保留日志,绝不要擅自更改用户要求的超参数。
前置条件
需要兼容的 LeRobot 数据集、已同步的策略环境、模型访问权限、足够的 GPU 容量,以及包含 train: 的远程任务清单。
限制
仅推理任务无法进行微调;仅凭训练结果,本技能不会声称 rollout 成功。
示例
Fine-tune for 200 steps with a batch size of 32. Turn off vision tuning.→ 保持精确值不变,应用 GR00T 支持的视觉标志,执行试运行和训练,并报告检查点。
完成条件
报告工作流/模式、任务 ID 和清单、数据集兼容性、解析后的配置、要求/已完成的步数、批量大小/GPU/视觉设置、检查点路径、有时限的加载冒烟测试结果、输出/检查点磁盘占用、确切的验证交接信息、退出摘要,以及任何仅推理或资源方面的阻碍。