用途:当用户需要微调 NeMo Speech ASR 模型、选择检查点、适配分词器、配置 Lhotse 数据加载、训练、平均检查点或评估微调后的 .nemo 检查点时使用;也用于微调后的改进规划。
主要能力与默认做法:默认使用 NeMo 容器,除非用户明确要求本地执行;训练与验证数据加载优先用 Lhotse;使用 trainer.max_steps 而非 max_epochs;以 val_wer 作为验证监控指标;默认评估去除大小写与标点影响的 WER,仅在用户明确要求时才做原始/带大小写/带标点评分;最终质量以独立评估报告,而非仅看训练中验证日志。
分阶段工作流:按阶段只加载所需参考文件——环境与检查点选择读 references/setup-checkpoints.md;数据准备、转写风格预检、Lhotse、分桶、验证加载器与混合读 references/data-lhotse.md;架构检测、分词器变更与 AED/Canary 多任务指标读 references/architecture-tokenizer-metrics.md;训练、检查点平均与评估读 references/training-evaluation.md,报告 WER 时读 references/evaluation-style-contract.md;运行后改进、错误分析、课程学习与通用/领域评估读 references/refinement-iteration.md。若用户要求并行/子代理,按相同阶段拆分,每个代理限定一个阶段,由主代理整合最终命令与配置。
核心命令:通用微调用 examples/asr/speech_to_text_finetune.py;架构专用配方:CTC 用 examples/asr/asr_ctc/speech_to_text_ctc_bpe.py,RNNT 用 examples/asr/asr_transducer/speech_to_text_rnnt_bpe.py,Hybrid RNNT/CTC 或 TDT/CTC 用 examples/asr/asr_hybrid_transducer_ctc/speech_to_text_hybrid_rnnt_ctc_bpe.py,AED/Canary 用 examples/asr/speech_multitask/speech_to_text_aed.py。给出与版本相关的结论前先查当前仓库文档:README.md、docs/source/asr/fine_tuning.rst、docs/source/asr/datasets.rst、docs/source/dataloaders.rst、docs/source/asr/featured_models.rst、docs/source/asr/asr_checkpoints.rst、nemo/collections/common/data/lhotse/dataloader.py。
关键限制与易错点:切换 Lhotse 批模式时显式置空冲突选项,例如加 bucket_batch_size 时设 batch_size=null、batch_duration=null、quadratic_duration=null;设 model.validation_ds.use_lhotse=true,但验证优先用静态 batch_size 并关闭分桶;RNNT/TDT 微调不要用 fused loss/WER 或调 fused_batch_size;首次 OOMptimizer 用默认 CLI 设置,仅在真实训练 OOM 后再降 --memory-fraction;长任务前做磁盘、空闲 GPU、清单有效性与时长/文本合理性预检;微调前审计所有微调/验证/测试来源的转写风格,不要混用大小写、标点、逆文本归一化或符号约定,先固定一种目标风格并与原检查点预测风格比较;小领域适配用比大数据微调更低的 LR,不要盲目用 1e-4;不要在验证或测试转写上训练分词器;不要忽略 min_duration、max_duration、min_tps、max_tps 造成的静默过滤;推理/评估不要用 amp=true,用 amp=false compute_dtype=bfloat16;AED/Canary 需配置 multitask_metrics_cfg 以对 ASR 与翻译/任务样本使用正确的受限指标;若做检查点平均,评估平均后的检查点,仅当优于最佳单个检查点时才保留。
适用场景:NeMo ASR 模型微调全流程、数据与分词器适配、训练评估及后续迭代。限制:具体版本行为以仓库文档为准;资料未提供具体收费、平台或效果数据。