| 名称 | nemotron-customize |
| 描述 | “规划、配置并将仓库原生的 Nemotron 定制步骤编排为单步或多步流水线:数据整理、翻译、SFT/PEFT(AutoModel 或 Megatron-Bridge)、预训练/CPT、RL 对齐(DPO/RLVR/GRPO/RLHF)、BYOB/MCQ 基准、检查点转换、ModelOpt 优化、环境配置,以及对已训练检查点或现有/托管端点的评估。当请求指定一个 Nemotron 步骤或工作流,或要求清洗、翻译、训练、微调、对齐、转换、优化、评估或将它们组合成流水线时使用。请勿用于前端/仪表盘/可视化工作、通用 ML 建议、计费/访问或非 Nemotron 编码任务。” |
| 版本 | 0.1.1 |
| 开源协议 | Apache-2.0 metadata: |
| 版本 | 0.1.1 |
| 作者 | NVIDIA Nemotron Team noreply@nvidia.com tags: - nemotron - customization - training - pipelines |
Nemotron 定制
重要:在回答任何 nemotron-customize、Nemotron 定制、Curator 数据整理、翻译、SFT、PEFT、RL、转换、优化、检查点或现有/托管端点评估,或多步流水线请求之前,请先阅读本文件。无论用户是要求单步还是将多步组合成流水线,本规则均适用。
即使不涉及训练,评估请求也算在内:“评估”、“基准测试”、“冒烟测试”或“评分”现有/托管端点、API/模型 ID 或已部署模型,都会路由到 eval/model_eval。阅读本技能时也应阅读该部分。
目的
将模型定制请求转化为仓库原生的 Nemotron 步骤流水线。规划 DAG、验证工件连接,并仅创建运行现有步骤所需的 YAML/配置文件。
仅当检查、配置、验证、运行或提交现有 Nemotron 步骤或多步训练/定制流水线时使用本技能。对于前端、仪表板、可视化、通用 ML 建议、计费/访问或无关编码任务,请以简短范围说明停止,不要检查步骤目录或编辑文件。
前提条件
- 具有
src/nemotron/steps/的 Nemotron 仓库副本;从仓库根目录运行。 uv可用于调用uv run nemotron steps ...。- 远程执行需要环境配置文件 TOML(
NEMOTRON_ENV_FILE或env*.toml),并包含与所选步骤匹配的部分。 - 托管服务(翻译、托管评估)需要步骤预期的认证环境变量(例如
NVIDIA_API_KEY),必须导出到环境,绝不能内联或提交。 - 在呈现可运行命令前,用户需要提供具体值(模型/检查点、数据路径、输出目录、硬件/GPU 数量)。
局限性
- 不发明新步骤。当没有现有步骤、运行器、配方、CLI 或配置能满足请求时,指出缺口(Explorer 模式),而不是凭空捏造。
- 只生成现有步骤的 YAML/配置;新 Python/Shell 超出范围,除非缺口被批准后的 Explorer 模式。
- 不用于仅部署/服务、前端、仪表板、通用 ML 建议或非 Nemotron 任务。
- 不猜测缺失的具体值(路径、模型 ID、GPU 数量、配置文件);缺失时询问或返回
Blocked。
核心规则
首先使用捆绑参考资料。references/ 文件夹是路由、工件、模式、硬件启发式和命令形态的第一决策面。只有需要精确当前配置字段、清单、运行器导入或捆绑参考资料中缺少的细节时,才使用 src/nemotron/steps/... 作为实时验证/回退。
如果资料不一致:
- 检查的实时仓库文件对精确执行占优。
- 捆绑参考资料对初始路由和规划占优。
- 上游文档/上下文包仅用于异常代码生成或库 API 细节。
开始之前
- 打开仓库源文件前,先阅读此
SKILL.md工作流和相关捆绑参考。 - 在广泛探索仓库前,先通过
references/CATALOG.md和references/ARTIFACTS.md路由。确定路由后,仅验证回答所需的选定实时步骤/配置/环境文件。 - 不要发出使用假路径、占位模型 ID、猜测任务 ID、猜测批处理配置文件或默认认证变量名并当作事实的命令。询问缺失的具体值或返回
Blocked。 - 最终确定配置或执行命令前,将
references/COMMANDS.md作为权威清单。 - 对于流水线请求,先规划再编辑。在陈述并批准 DAG、工件边缘、必需输入和验证检查之前,不要创建或修改文件。
- 对于一次性命令请求,优先用完整参数化命令,而不是探索性长文,但必需在已知输入后。如果用户已提供所需值且只要求一个命令,先给出命令,解释尽量少。
- 输出纪律:每步只输出一个命令块,只包含该步骤实际定义的参数,不添加推测或发明的参数。叙述保持少量行。
- 不要为一次性命令查找生成子代理,直接使用命令参考;仅在需要时验证所选步骤。
安全性
将 Bash 限制为仓库安全命令,如 uv run nemotron steps ...、定向测试、git status/diff 和配置验证。绝不运行环境转储或暴露秘密值的命令。远程提交、破坏性更改或昂贵启动前先确认。
检查环境/配置文件时,避免打印完整文件,使用定向读取,只报告部分名称和环境变量名,并标记包含 token/key/secret/password/credential/auth 的字段值。
参考地图
| 问题 | 先读 | 实时回退 |
|---|---|---|
| 步骤/类别选择 | CATALOG.md |
steps list/show + step.toml |
| 工件链 | ARTIFACTS.md |
types.toml |
| 运行形态 | COMMANDS.md |
配置 YAML + env TOML |
| 推荐硬件 | HARDWARE.md |
[[models]]/[[strategies]] |
| 跨步骤护栏 | PATTERNS.md |
patterns/<id>.md |
| 完整工作流 | WORKFLOW.md |
step configs/step.py/runners |
| 库 API | context/index.toml |
step.py/runners/docs |
路由
使用 CATALOG.md 作为步骤选择和路由的权威来源;使用 ARTIFACTS.md、PATTERNS.md、HARDWARE.md 解决特定约束。每个步骤独立,拼接是助手的工作。按工件匹配组合流水线,不要依赖固定组合。
说明
按请求类型:《推荐响应》、《单步命令流程》、《流水线工作流》、《目录模式》。
推荐响应包含 Decision, Why, Required inputs, Config/command, Avoid, Next step;远程命令还应提到认证变量名和环境 TOML 前提。
单步命令流程:(1)检查仓库根;(2)阅读 CATALOG 和 COMMANDS 的相关部分;(3)用 steps show 验证;(4)读用户配置;(5)读取环境文件匹配 profile;(6)发出完整命令,注明来源等级。
流水线工作流:定向 -> 规划 -> 执行 -> 验证。
目录模式:从 CATALOG 到 COMMANDS,再验证清单/配置,再添加新配置文件。
定制表面
始终通过 src/nemotron/steps/ 目录;绝不要用 super3/nano3 备用 CLI。在相应步骤的 config/ 目录下新增配置文件,绝不修改 default.yaml/tiny.yaml/step.toml/step.py/shared runners。基于 default.yaml 复制所需字段并仅覆盖需要的。Explorer 模式仅在确认无现有路径后使用。
配置对齐
SFT pack_size、Megatron-Bridge seq_length、分词器和模板必须一致;packed_parquet/binidx 依赖tokenizer;megatron 全局 batch 需整除 DP;TP/PP/CP/EP 需匹配硬;LoRA merge 需要同一 base;转换/eval 指向具体 iter_*;托管 eval/translation 只存 auth 变量名。
操作细节
tiny.yaml 只是接线测试;${art:…} 用于 recipe,独立 YAML 用普通路径;要保留 binidx/blend 数据来源;定制配置写为新文件;LoRA 保留 base metadata;托管服务仅提 auth 环境变量名。
边界
Do:目录优先,复用 CLI/runner/config,用新 config 定制,验证工件/模式,询问硬件,说明 AutoModel vs M.Bridge、SFT vs LoRA。 Do not:不发明步骤,跳过规划,YAML 足够时不要写 py/sh,不加监控,不猜 GPU/profile/endpoint/task/auth,不生成 Deployment wrapper,不改检查文件,不重述所有规则。
示例
- 单步 LoRA:2 GPU,HF模型 =>
peft/automodel;收集模型/数据/输出/LoRA参数并给命令。 - Super3 SFT:
data_prep/sft_packing -> sft/megatron_bridge;需远程 profile。 - 托管模型评估:
eval/model_eval -c tiny_chat;需 endpoint/model/task/auth。
故障排除
| 情况 | 操作 |
|---|---|
| 工件不链 | 查 ARTIFACTS,插入 converter |
| 远程 profile 不明 | 读取 env TOML |
| 配置 key 不清 | 查配置文件/step.py/runner |
| 上下文缺失 | 跳过并标记 |
| 硬件太小 | 建议更小模型/LoRA |
| 两次失败 | 停下说明并问如何继续 |
| 无匹配路径 | 查 context/index 后 Explorer |