做方言微调,多数团队的第一反应是找更强的底座模型。NVIDIA 公布的 Nemotron 3.5 ASR 沙特阿拉伯方言适配配方,把答案指向了另一个方向:决定成败的是你从语料里删掉了什么。
这套流程的起点是一个部署现实——在多语言基准上表现良好的模型,放到真实场景里仍可能不够用。素材给出的例子是沙特阿拉伯方言:模型能流畅识别现代标准阿拉伯语或英语,遇到 Najdi 和 Hijazi 口音、或者当地录音的声学条件,就开始吃力。
更麻烦的是那个看起来最直接的修法。只拿目标方言做微调,会在提升方言的同时削弱模型原本掌握的其他语言。团队往往要等到英语用户或标准阿拉伯语用户开始抱怨,才发现自己拿一项能力换掉了另一项。
NVIDIA 的解法是加权回放混合:大约 90% 的沙特阿拉伯语,配上 7% 的英语。把旧语言的数据留在训练混合里,更新就不会把它们覆盖掉。这是用机械手段解决机械问题。
真正拉开差距的是语料清洗这一步,也是最容易被跳过的一步。SADA 2022 语料用一组模型无法输出的标注来标记听不清的语音,阿拉伯语标记渲染为“غيرواضح”/“غير واضح”(意为不清楚)。每一处这样的标注都会制造一个无法避免的错误,因为模型根本没有对应这个概念的词元。
结构检查的结果是:125,490 条语音中保留了 103,559 条,合计 133.7 小时,占起始集合的 82.5%。这是一次刻意保守的筛选,嘈杂的、口音浓重的音频被留了下来。目标写得很明确:删掉结构上就有问题的样本,而不是因为底座模型在这些样本上表现差就删掉难口音或噪声语音。
如果打算用自动质量分,先看分布。SADA 这一轮发现,UTMOS 默认阈值 3.0 会把这份语料里几乎全部内容判为不合格。
回放混合的效果在前后对比里得到验证。SADA 的 Najdi 加 Hijazi 词错率从 55.05% 降到 29.96%,字错率从 31.63% 降到 12.18%;整个 SADA 的词错率从 58.84% 降到 35.61%。而被回放保护的语言几乎没动:FLEURS 英语词错率从 11.04% 变为 10.42%,FLEURS 阿拉伯语从 12.67% 变为 11.41%。
方言大幅改善,保留语言基本原地不动,这就是回放在干活。
第四个实验回答的是成本敏感团队都会问的问题:必须更新整个模型吗?Nemotron 3.5 ASR 有 24 层编码器,全量微调会更新全部层,部分解冻只更新顶部 N 层,但解码器、联合网络和提示嵌入始终参与训练。
在 134 小时目标语音的条件下,结论不含糊:每一步都是可训练容量更大更好,部分冻结相对全量微调要付出 2.4 个点的代价。这给出了一条决策规则——有大约 134 小时标注语音,可以承担全编码器更新;数据更少时,部分解冻是风险可控的选择,用 2.4 个点的税换更少参数变动带来的稳定性。
配方里还有几处细节值得抄走。长度分桶能减少填充,让流式编码器的训练变得可行。基线实验在两块 NVIDIA RTX PRO 6000 Blackwell 工作站版 GPU 上各跑了 12,000 步,精确到可以复现。NVIDIA 同时写明这些不是通用默认值,该工作流也不能推广为适用于所有阿拉伯方言或部署环境的证据。
把厂商背景剥掉,这套流程对任何方言或领域适配都成立:选定真正要部署的方言;删掉模型结构上学不会的片段和大概率对齐错误的片段;保留难口音;按权重混入必须保住的语言;用高效批处理做微调;最后在一个调参从未见过的集合上评估,并加上对担心丢失语言的保留检查。
回放只保护它的数据所代表的东西,部分解冻在混合比例变化时需要重新调参。这两条限制,比任何基准榜单上的数字都更值得记住。
热门跟贴