mcpField
I
i4h-workflow-finetune

i4h-workflow-finetune

github.com/nvidia开发3.8k66 次安装今天更新
代码仓库

关于 i4h-workflow-finetune

用于从选定的 i4h 工作流运行模式启动策略微调的技能,面向训练工作流策略的开发者。它根据远程任务清单核验数据集与配置,先进行 dry-run,再训练并检查可加载的检查点。

主要功能

  1. 01解析工作流模式和远程任务
  2. 02验证数据集兼容性及训练配置
  3. 03使用 dry-run 检查配置
  4. 04前台运行训练并检查产物
  5. 05通过后端加载测试验证检查点

适用场景

  1. 01为支持训练的远程任务微调策略
  2. 02训练前确认数据集与任务匹配
  3. 03检查训练配置后启动长时间训练
  4. 04确认检查点可由推理后端加载

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/nvidia/skills --skill i4h-workflow-finetune

安装后在 Claude Code 中输入/i4h-workflow-finetune确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

BENCHMARK.md
skill-card.md
skill.oms.sig
evals/
evals.json

详细介绍

微调工作流策略任务

目的

根据选定的工作流运行模式和所属远程任务清单,解析并运行训练。

说明

  1. 解析基础检出目录、策略模式和远程任务。
  2. 验证数据集兼容性,并确认存在 train 块。
  3. 对确切配置执行试运行。
  4. 在前台训练,并验证检查点产物。

解析工作流、任务和数据

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/视觉设置、检查点路径、有时限的加载冒烟测试结果、输出/检查点磁盘占用、确切的验证交接信息、退出摘要,以及任何仅推理或资源方面的阻碍。

评论

支持 Markdown