用途:面向 NeMo AutoModel 的配方(recipe)开发,回答 YAML 结构、builder 函数、target 可调用对象、验证数据集、检查点配置、CLI 路由注册与配方测试相关问题。
主要能力:说明执行流程(CLI automodel finetune llm -c config.yaml → app.py → 配方脚本 main(config_path) → Recipe.setup() 构建组件 → run_train_validation_loop() 执行训练);介绍 Recipe 类需继承 BaseRecipe 并实现 setup() 与 run_train_validation_loop();列举 builder 函数 build_model()、build_optimizer()、build_dataloader()、build_loss_fn()、build_lr_scheduler()、build_step_scheduler()、build_checkpoint_config();说明基础设施应用顺序:PEFT、FP8 量化、QAT、检查点加载/恢复、参数冻结、分片(FSDP2、Megatron-FSDP、DDP)、设备放置、torch.compile、上下文并行钩子。
使用方式:target 指定完全限定 Python 可调用对象,同级键作为关键字参数;命令行可覆盖配置,如 automodel finetune llm -c config.yaml --optimizer.lr 1e-4 --step_scheduler.max_steps 500 --distributed.tp_size 2。新增微调配方可从 nemo_automodel/recipes/ 最近文件改起,更新模型、数据集或 dataloader、优化器、损失、LR 调度器、步调度器与检查点 builder,必要时注册 CLI 路由,在 examples/ 添加 YAML,并加 CPU 兼容单元测试。
验证与检查点:step_scheduler.val_check_interval 控制验证频率,checkpoint_interval 控制保存频率,validation_dataset 提供验证 dataloader,restore_from.path 用于恢复,默认检查点格式为 consolidated safetensors(HF 生态兼容)。
适用场景与限制:涵盖 LLM、VLM、Diffusion、Retrieval 等配方。不要用于独立的分布式策略选择、集群启动器配置或模型架构接入,除非问题是这些选项如何出现在配方 YAML 中。常见坑包括 target 拼写错误导致静默失败、批大小不整除、缺少 CLI 别名、collate 输出与模型输入签名不符、验证 OOM、检查点与配置架构不匹配。