临床 ASR 飞轮 · 微调
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @org-02qudk26/digital-health-clinical-asr-finetune。
技能介绍
要解决什么问题
临床 ASR 飞轮的前几阶段会产出 manifest 和 cycle-N 基线 KER。当优先类别(药名、病症、手术等)错误率仍然偏高,且评测决策树认为「值得消耗 GPU 做微调」时,你需要的是:可复现的 NeMo 全模型 SFT,以及用 cycle N+1 离线 KER 判断这次训练是否真的闭合了闭环——而不是凭感觉调参或误把 Riva 延迟当成模型质量。
技能如何工作
本技能负责 适配与度量 阶段,默认从 /digital-health-clinical-asr-eval 带入 manifest、基线 KER 与门控结论进入流程。
- 门控:优先类别 KER > 0.3,且 manifest ≥ 100 行、每个优先
entity_category≥ 5 行;否则应回到/digital-health-clinical-asr-build扩充数据。 - 切分:按
entity_category分层、行不相交的训练/验证集(默认验证比例 0.2);同一术语可出现在 train/val 不同行,用于度量声学与上下文鲁棒性。 - 训练:在
nvcr.io/nvidia/nemo:25.11.01内调用原生/opt/NeMo/examples/asr/speech_to_text_finetune.py,无自定义适配器、无补丁;推荐基础模型nvidia/parakeet-tdt-0.6b-v2(参考 manifest 上 3 epoch:KER 0.513 → 0.128,相对约 -75%)。 - 闭环:用微调后的
.nemo做离线transcribe()复评,产出与 eval 技能一致的四项指标与五段式排行榜,再与 cycle-N 对比决策:保留模型、扩充 manifest,或承认微调无帮助。 - 可选部署:将
.nemo交给/riva-asr-custom,并显式传入源解码器架构(CTC / RNNT / TDT),避免 riva-build 选错容器。
边界与注意点
- 不要对
nvidia/nemotron-speech-streaming-en-0.6b做 SFT:验证集易出现 UNK 坍缩;流式上线可由 Riva 分块非流式基础模型。 - TDT/RNNT 上的适配器式 SFT 已损坏(NaN 损失);应坚持原生全模型 SFT 配方。
- 小 manifest 易过拟合或 cycle-N+1 信号噪声大:信号密度优先于学习率扫描。
- 离线 KER 是模型质量度量;Riva NIM 验证的是服务侧(延迟、流式、规模),二者分工不同。
使用场景
- 评测后药名 KER 仍高于 0.3,manifest 已超 100 行,要在 Parakeet TDT 上跑原生 NeMo SFT
- SFT 结束需用同一 manifest 做 cycle N+1 离线转写,对比五段式排行榜再决定保留或回建数据
- 团队已有 train/validation.jsonl,要在 NeMo 25.11 容器里调用 speech_to_text_finetune.py 产出 adapted_model.nemo
- 微调模型验证有效后,需带着 TDT 解码器架构信息交给 Riva 自定义技能做 NIM 部署
适合人员
- 负责数字健康 ASR 飞轮、已跑完 eval 并持有 cycle-N manifest 与基线 KER 的语音/ML 工程师
- 要在临床词汇(药名、病症、手术)上验证「扩充数据 vs 微调」决策、避免适配器 SFT 踩 NaN 坑的算法负责人
- 仅有 Brev 或 16–24GB 本地 GPU、需按门控标准决定是否进入阶段 4 并控制按秒计费风险的实施同学
- 准备把 .nemo 上线 Riva、需要区分离线 KER 与服务端延迟/流式验证职责的 MLOps 或平台工程师