| 名称 | “nemotron-asr-finetune” |
| 描述 | 面向 NVIDIA Nemotron Speech (Riva) / NeMo ASR 领域和语言适配的编排技能。给定一个目标,例如“改进/微调我的领域或语言的ASR”,它会界定任务范围,选择最经济且足够的路径(单词增强 → n-gram 语言模型 → 微调),将每个阶段委托给合适的子技能(数据生成、训练、评估、部署),并全程回答成本/时间/数据问题。 triggers: - 为我的领域微调ASR - 将ASR适配到我的语言 - 提高ASR准确率 - 定制ASR - ASR领域适配 - 新语言ASR - 降低WER - 我的ASR对行话识别错误 - 嘈杂呼叫中心ASR - 微调ASR需要多少数据 - 改进ASR的最便宜方式 - 编排ASR微调 - ASR定制流水线 |
| 版本 | “1.0.0” |
| 开源协议 | Apache-2.0 metadata: |
| 作者 | “Nemotron Speech Team” team: riva tags: - nvidia - nemotron-speech - riva - nemo - asr - speech-to-text - orchestration - customization - domain-adaptation - fine-tuning - word-boosting - language-model - synthetic-data - evaluation - deployment domain: ml |
Nemotron Speech ASR 定制 —— 编排技能
注意: “Nemotron Speech” 是 NVIDIA 在文档中今天通常称为 Riva / Riva NIM 的公开品牌名称;声学模型使用 NVIDIA NeMo 训练和微调。命令、配置路径、导入和文档 URL 仍然使用 “Riva” / “NeMo” —— 这次更名仅涉及品牌。请不要重命名它们。
这个技能是什么
这是一个高层编排技能,而不是逐步训练手册。它的职责是:给定一个目标,例如*“我想为我的领域/语言微调ASR”*,需要:
- 界定问题(需要多少真实音频、目标评估集、延迟/硬件预算、语言/领域)。
- 选择最经济且足够的路径 —— 单词增强、n-gram语言模型融合或微调 —— 只有在质量不足时才升级。
- 将每个阶段委托给正确的子技能(数据生成、训练、评估、部署/优化)。
- 全程回答成本/时间/数据问题(达到X%词错误率需要多少小时、合成与真实、L40S对H100、预期成本)。
它拥有计划和路由;子技能负责执行。当所需子技能尚不存在时,此技能将其标记为占位符,并提供临时指导。
何时使用
用于任何希望让 Nemotron Speech / Riva ASR 模型在特定领域或语言上表现更好的请求 —— 提高准确率、降低 WER、增加语言或规划微调。即使用户指定特定技术,也应从这里开始,以便选择最经济足够的路径并正确排序子技能。
编排工作流程
运行下面的循环;每个阶段会标明其调用的子技能。完整细节见 references/workflow.md。
| # | 阶段 | 会发生什么 | 子技能 |
|---|---|---|---|
| 1 | 明确目标 | 捕获目标:领域/语言、错误类型、指标。 | 编排(本技能) |
| 2 | 澄清与界定范围 | 提出发现性问题:有多少真实音频?目标评估集?延迟/硬件预算?部署目标? | 编排 |
| 3 | 选择路径 | 选择最经济且足够的路径(增强 → n-gram语言模型 → 微调)。仅在质量不足时升级;在提出完整计划的同时可以实验。 | 编排 → 研究/训练 |
| 4 | 数据准备 | 如果数据稀缺/嘈杂:合成(TTS)、TTS友好的格式、噪声分析/采集、混合、给供应商样本评分;将客户数据对齐到训练格式;标记缺失的真实数据。 | SDG / 数据 |
| 5 | 训练 | 应用配方(配置、超参数、重放/课程学习、GPU/OOM预检)并运行。 | 研究/训练 |
| 6 | 评估 | 在领域集上计算归一化WER,在通用集上做A/B遗忘检查;基于错误分析寻找下一个杠杆点。 | 评估 |
| 7 | 循环或发布 | 如果未达到目标,使用针对性数据循环到4/5;否则选择/平均检查点。在进行更多轮次前咨询用户。 | 编排 |
| 8 | 部署 | 导出到NIM/HF,热替换检查点,提供服务。 | 部署/优化 |
阶段4-8是微调路径(数据 → NeMo训练 → NeMo评估 → Riva部署)。更便宜的阶跃(增强、自定义词汇表、n-gram语言模型)采用由单一子技能负责的较短分支 —— 不要强行把它们塞进完整循环。参见 references/workflow.md(§3b)中的“按阶跃规划分支”表。
在过程中,回答**“随行”**问题(数据量、合成与真实、达到WER目标所需小时数、成本、GPU选择)—— 参见 references/planning-answers.md。
本技能调用的子技能
详细注册表、调用和交接契约见 references/sub-skills.md。
| 角色(按架构) | 用途 | 要调用的子技能 |
|---|---|---|
| 研究/训练 | NeMo配置、配方、微调、检查点平均 | nemo-speech-asr-finetune |
| SDG / 数据设计师 | 合成转写文本、噪声分析、供应商数据影响、混合 | data-designer(合成文本;音频通过 nemotron-speech 中的TTS生成);占位符: asr-data-profiling |
| 评估 | 归一化WER、A/B遗忘、错误分析 | 离线文件WER → nemo-speech-asr-finetune;服务端点WER → nemotron-speech |
| 部署/优化 | NIM/Riva导出、检查点替换、NIM构建优化、服务 | nemotron-speech |
如果某个子技能不可用,请说明,并按照参考提供临时指导,然后继续计划。
选择路径(最经济优先)
第3阶段的范围界定会选择能够满足目标的最低成本层级。概要;完整的文档支撑阶梯见 references/path-selection.md。
- 单词增强 —— 一组受限的已知词/名称/行话。运行时处理,无需训练。→ 部署子技能。
- 自定义词汇表/发音 —— OOV或持续误读的术语。部署时处理。→ 部署子技能。
- N-gram (KenLM) 语言模型 —— 当你有文本但缺少音频时的领域措辞/词序。两种不同产物的实现: *试点(NeMo)用于离线证明提升(
nemo-speech-asr-finetune),或部署(Riva)*用于产品化(nemotron-speech)。不要直接部署试点LM —— 请用Riva word-level格式重建。参见references/path-selection.md。 - 微调 —— 针对真实声学差距(口音、噪声、信道),需要足够带转写的音频(NIM指南:100小时以上;仅当混合以避免灾难性遗忘时才有约10小时下限)。→ 研究/训练。
- 从零训练 / 跨语言迁移 —— 没有合适检查点的新语言(最后手段)。→ 研究/训练。
排序和按模型的支持遵循 NVIDIA Speech NIM ASR 定制指南: https://docs.nvidia.com/nim/speech/latest/asr/customization/customization.html。
关键原则
- 先界定范围再选择。 在没有完成发现问题和测量基线之前,不要推荐微调。
- 最经济且足够的路径。 只有当前层级被证明无法达到目标时才升级;可以在提出完整微调计划的同时在经济的层级上进行实验。
- 以契约为标准进行测量。 报告领域集上的归一化WER,并在通用集上进行A/B遗忘检查 —— 绝不要只依赖训练日志。
- 委托而非重新实现。 将执行路由给子技能;本技能专注于计划、排序和成本/时间/数据回答。
- 真实目标领域音频通常是瓶颈。 优先使用真实数据;使用合成数据填补已测得的空缺,并保持独立加权以便进行消融。
- 在额外的调优轮次之前咨询用户,以及当所需子技能是占位符时。
权威来源
| 主题 | 位置 |
|---|---|
| NIM Speech 文档主页 | https://docs.nvidia.com/nim/speech/latest/index.html |
| ASR 定制指南(方法、按模型支持) | https://docs.nvidia.com/nim/speech/latest/asr/customization/customization.html |
| ASR 支持矩阵(模型与功能) | https://docs.nvidia.com/nim/speech/latest/reference/support-matrix/asr.html |
| NeMo 微调(标志/配置) | docs/source/asr/fine_tuning.rst 以及 nemo-speech-asr-finetune 子技能 |
| Riva ASR 教程(增强、LM、微调) | https://github.com/nvidia-riva/tutorials |
| 将分词器扩展到新语言 + 声学模型微调 | https://github.com/nvidia-riva/tutorials/blob/main/asr-extend-tokenizer-to-newlang-ft-acoustic-model.ipynb |
局限性
- 仅编排 —— 执行发生在子技能中。如果某个子技能是占位符,则指导是临时的,直到它存在。
- 训练层级需要GPU;部署/服务由
nemotron-speech子技能负责。 - 模型名称、配置路径、标志和按模型的功能支持会随 NeMo/Riva 版本变化 —— 请对照支持矩阵和当前代码版本进行验证。
- 公开品牌为 “Nemotron Speech”;命令、导入、配置路径和文档 URL 仍然使用 “Riva” / “NeMo” —— 不要重命名。