李师傅是青云饭店的行政总厨,八大菜系样样拿手,客人点什么都能端出一盘像样的菜。可这一天,云南来的客人点名要一道“汽锅鸡”,李师傅傻眼了——这道菜他只在电视里见过。他凭着理解用清水煮了鸡,客人尝了一口直摇头:“不对,汽锅鸡是蒸汽凝成的原汁原味,你这汤太寡了。”李师傅这才明白:大饭店的手艺是“通用”的,但想做好这道地方菜,他得专门学。 这个故事说的,正是 Whisper 这款通用语音识别模型在专业领域遇到的困境。Whisper 听英语、普通话、几十种语言都很在行,可一进医疗、法律、金融这些行业,它就变成那个不会做汽锅鸡的大厨——把“阿托伐他汀”听成“阿托伐他丁”,把“磨玻璃结节”听成“磨玻璃组织”。怎么解决?用领域数据“微调”它,就像李师傅专程去云南学艺一样,把通用模型改造成特定领域的“地道专家”。 这篇文章会用“大厨学地方菜”的完整故事,带你走通微调的每一步:什么时候需要微调、领域数据怎么准备、如何保留 Whisper 的通用功底、如何防止“灾难性遗忘”。你不必有深度学习背景,读完全文,脑子里就会有一张清晰的微调地图。
掌握 Whisper 微调,意味着你能把通用语音识别改造成医疗、法律、金融等垂直领域的生产力工具。这是语音 AI 落地的核心技能,也是行业对算法工程师的刚需要求。
可视化演示
动态演示Whisper微调实战的核心机制,通过基础/核心/应用/扩展四种模式展示关键概念与交互流程。
本节配有交互动效(进入视口后自动加载,约 3KB)。
Whisper微调实战:微调动机 微调动机与领域适配需求 领域数据准备与标注策略 核心机制可视化 Whisper微调实战整体架构与关键组件
微调动机
李师傅的困惑,每个用过 Whisper 的开发者都遇到过:明明通用识别效果惊艳,一放进医疗场景,它就把“阿托伐他汀”听成“阿托伐他丁”,把“肌钙蛋白”听成“鸡盖蛋白”。这不是 Whisper 变笨了,而是它压根没见过这些词。
Whisper 的训练数据来自互联网公开音频,以通用对话为主。它的语言模型先验里,“他丁”比“他汀”出现得频繁,“鸡盖”比“肌钙”常见。解码时,模型会在多个候选词里挑选概率最高的组合,于是生僻的专业术语很容易被“刹车”拉回到常见词上——哪怕音频里发音清清楚楚。这就是“通用模型局限”。
微调的本质,是在领域语料上继续训练这个预训练模型,让它的参数适应新的数据分布。这不是从零学起,而是像李师傅那样,在已有的刀工和火候基础上,专门研究一道新菜。领域数据取代通用数据成为学习信号,模型慢慢学会“在这种场景里,这些词才是高频的”。
李师傅最后想通了:他不是不会做菜,而是没做过云南菜。Whisper 也一样——不是不会听,只是它的“菜单”里还没有你的领域。微调,就是往菜单上添那道招牌菜。
- 领域数据集$D_{\text{domain}}$ 是一批领域音频和对应文本的配对,比如 100 条查房录音和它们的转写稿。
- 条件概率$P(y \mid x; \theta)$ 是模型在给定音频 $x$ 和当前参数 $\theta$ 的情况下,输出正确文本 $y$ 的概率,概率越大说明越“懂”这段语音。
- 负对数损失$-\log$ 把高概率变成小损失、低概率变成大损失,训练就是不断调整 $\theta$ 让总损失变小。
数据准备
李师傅决定学汽锅鸡,第一步不是开火,而是备料:正宗建水紫陶汽锅、本地土鸡、宣威火腿、竹荪。少一样,味道就不地道。微调 Whisper 的数据准备,正是这道菜的备料环节。
领域数据从哪里来?从你业务里的真实语音场景来:医生的查房口述、法院的庭审录音、电商平台的客服对话。采集时要注意隐私合规,医疗和金融数据必须先匿名脱敏。接着是清洗:剪掉长静音、咳嗽声、播放音乐和交叉说话的片段——这些噪音会干扰模型学习“发音和文字”之间的稳定映射。
标注同样讲究。转写文本要统一格式:数字写汉字还是阿拉伯数字、单位怎么写、标点怎么加。“5mg“和”五毫克”如果混着出现,模型会左右摇摆。与此同时,整理一份术语词典,把领域里那些生僻词抄下来,确认它们在数据中的写法一致,模型才有机会学到稳定映射。
数据量多少合适?对 Whisper 这种大模型,微调更像“点拨”而非“填鸭”,1-10 小时高质量领域数据就能看到明显提升。关键是质量:一条干净的、术语标准的录音,抵得上十个小时嘈杂的素材。这也是为什么我们强调信噪比——食材里沙子太多,再好的厨子也难做。
备料备齐了,接下来就轮到“下锅”的手艺——能不能动大厨的刀,很有讲究。
- 信号功率$P_{\text{speech}}$ 是有效语音部分的能量,相当于盘子里主料的分量。
- 噪声功率$P_{\text{noise}}$ 是背景噪声的能量,相当于混进菜里的沙子。
- 信噪比$\text{SNR}$ 是对数比值,数值越高,语音越干净,越适合直接进训练集。
参数冻结
李师傅做汽锅鸡,用的还是那套刀工和火候基本功,他只是换了食材和蒸法,绝不会推翻自己几十年的手艺。Whisper 也一样。它由编码器和解码器两部分组成:编码器像大厨的“听觉系统”,把声音波形变成语义特征;解码器像“语言表达能力”,把语义特征转成文字。
如果训练时把全部参数都放开,等于让大厨连刀工都推翻重学。领域数据通常很少,全参微调不仅容易过拟合,还会毁掉预训练阶段学到的通用声学知识。实践中更稳妥的做法是冻结编码器:把编码器参数固定不动,只训练解码器,让模型保留“听懂各种声音”的基本功,只学习用领域术语表达。
更进一步,可以用 LoRA(低秩适配)。它不直接更新原模型参数,而是给参数矩阵挂一个“增量笔记本”,只训练笔记本上那两个低秩小矩阵。可训练参数量从几亿降到几百万,效果却能逼近全参微调。这就像李师傅不需要换菜刀,只需在手机里记下云南菜的要点,做菜时瞄一眼,既不耽误老手艺,又能学新菜。
大厨学新菜,刀具没换,只是多了本小抄。这就是 LoRA 为什么能兼顾“学得会”和“不忘本”。
- 原权重$W_0 x$ 是冻结的原矩阵作用,这是大厨多年练成的基本功,保持不变。
- 低秩增量$B A x$ 中 $A$ 和 $B$ 是两个小矩阵,相乘等效于一个低秩矩阵,相当于记录新菜要点的“小抄”。
- 缩放系数$\alpha / r$ 控制小抄的影响力,$r$ 是秩(笔记页数),$\alpha$ 是学习强度,按任务调节。
超参设置
火候,是李师傅最讲究的东西。汽锅鸡必须文火慢炖三小时,大火一烧肉就柴,微火又炖不烂。微调 Whisper 的超参数设置,正是这套“火候哲学”。
学习率决定模型每一步参数更新的幅度有多大。预训练模型已站在一个很深的“谷底”(局部最优),步子太大,一步跨出山谷摔到山坡上,特征全乱;步子太小,又迟迟走不到领域分布的最优点。Whisper 微调的学习率通常取 1e-5 到 5e-5,比从头训练小 10 到 100 倍。
迭代轮数是炖汤的时长。领域微调通常 3-5 轮就够,再多就会把领域数据背得滚瓜烂熟,同时把通用知识忘光。批量大小是一次尝几勺汤——太小梯度噪声大,太大显存吃紧,常用 8-32 再配合梯度累积。还有一个容易踩的坑:Whisper 要求 16kHz 采样率,如果用 8kHz 电话录音或 44.1kHz 音乐直接喂进去,相当于用烧水壶炖鸡汤,火候对了容器不对。
李师傅始终相信,好菜是文火喂出来的。Whisper 微调也一样:学习率小一点,轮数少一点,反而更容易得到那个“刚刚好”的模型。
- 当前参数$\theta_t$ 是第 $t$ 步的模型参数,相当于大厨当前对火候的记忆状态。
- 梯度$\nabla_{\theta} \mathcal{L}(\theta_t)$ 是损失对参数的偏导,指明了“菜现在的咸淡偏差”和修正方向。
- 学习率$\eta$ 是每步修正的幅度。$\eta$ 太大味道来回震荡不收敛,太小则几百步都没明显变化。
术语口音
李师傅第一次做汽锅鸡,照着北方叫法念菜名:“蘑菇、火腿、鸡?”云南客人笑着摇头:这叫“菌子”,这叫“腊肉”,那锅叫“甑子”。听不懂术语,再好的做法也端不上桌。Whisper 面对专业术语,同样会“念不对名字”。
Whisper 的解码头有很强的语言模型先验,遇到生僻词时会“脑补”成常见词。解决术语问题的第一招是数据层术语注入:在训练文本里刻意提高术语出现频率,让模型学到“这种发音对应这个词”。第二招是解码层上下文偏置:在解码时给术语词典里的词额外加分,相当于给模型一张“今天的重点词卡”,遇到发音模糊时优先往卡上的词靠。
口音是另一座山。医疗领域里老专家说话常带方言口音,通用模型容易水土不服。常用做法是做数据增强:对音频做语速扰动、音高扰动、加轻微背景噪声,让模型“见多识广”。更直接的办法是收集真实带口音的领域语音,哪怕只有几小时,对特定口音的提升也很明显。别忘了文本正则化:把数字、单位、标点统一格式,让模型专注学习语音映射而非格式猜测。
术语和口音都解决了,新的麻烦却来了:李师傅光顾着钻研云南菜,三个月后,居然忘了招牌松鼠桂鱼该怎么做。
- 原音频$x(t)$ 是时域信号,$t$ 是采样时刻,表示声音随时间变化的波形。
- 时间拉伸$t/\beta$ 把时间轴拉伸或压缩,$\beta > 1$ 放慢语速,$\beta < 1$ 加快语速。
- 增强集合$\beta \in [0.9, 1.1]$ 表示在随机范围内变速,相当于让模型适应快嘴和慢条斯理两种说话人。
灾难性遗忘
李师傅的徒弟慌慌张张跑进后厨:“师父,常客点的松鼠桂鱼,您今天做出来怎么不对味?”李师傅一拍脑门——为了学汽锅鸡,他连续三个月只研究云南菜,原来那道拿手菜的刀工和调味早就生疏了。这就是 AI 世界里的灾难性遗忘:模型学到新任务,把旧任务的知识覆盖掉了。
为什么会遗忘?微调的梯度只朝领域数据的分布方向走,模型早期学到的通用知识缺少“复习”,权重被一步一步改写。训练集越单一、轮数越多、学习率越大,遗忘就越严重。就像一个人天天只背十个生词,三个月后乘法口诀全忘了。
怎么防遗忘?最直接的办法是经验重放:在领域数据里混入 10%-20% 的通用语音数据,让模型边学新菜边复习老菜。其次是参数保护,比如 EWC(弹性权重巩固)正则:给重要的旧参数套上“惩罚项”,新任务想改动它们就得付出代价。把通用数据和领域数据一起训练,让模型同时优化两个目标,也是常见的联合训练思路。
防遗忘的核心不是抹掉记忆,而是让模型在学新东西时给旧知识留位置。李师傅想明白了:菜要一道道学,但基本功每天都要练——通用能力才是他的根基。
- 新任务损失$\mathcal{L}_{\text{new}}$ 是领域数据的训练损失,代表把新菜做好的目标。
- Fisher 信息量$F_i$ 衡量参数 $i$ 对旧任务的重要程度,相当于“松鼠桂鱼用得到这把刀的哪个部位”,$F_i$ 大的参数不能乱动。
- 平方惩罚$(\theta_i - \theta^*_i)^2$ 是当前参数与旧模型参数的差距,差距越大惩罚越重,逼着模型不要忘本。
评估迭代
菜做完,怎么知道好不好?光自己说好不算,得让云南师傅来尝(领域测试),还得让老客人接着点菜(通用测试)。语音识别里的“尝菜标准”是 WER(词错误率)——把模型输出的词和标准文本逐词对齐,数出替换、删除、插入三种错误。
评估的正确姿势是建两条测试线:一条领域测试集(如 50 条医生口述,绝不参与训练),看 WER 降了多少;一条通用测试集(如 Common Voice 中文测试集),看 WER 涨了多少。如果领域 WER 从 40% 降到 8%,但通用 WER 从 10% 涨到 40%,说明模型已被“带偏”,需要调低学习率、减少轮数或加大通用数据比例。
除了数值,还要人工抽查。WER 不会告诉你“阿托伐他汀”是不是每个字都对,也不会告诉你听感是否自然。抽十段典型音频,让业务专家听一遍转写,检查术语是否规范、数字是否正确、有没有专业名词被悄悄替换成常见词。数值加听感结合,才能判断这道菜真的能端上桌。评估发现问题,就调整数据或超参重新微调,形成“评估-调整-再训练”的闭环。李师傅也正是这样:让云南客人试吃,不对再调,直到对方竖起大拇指——这,就是微调的全部秘密。
- 替换错误$S$ 是把一个词识别成另一个词的次数,比如把“他汀”写成“他丁”。
- 删除与插入$D$ 是漏掉的词数,$I$ 是凭空多出来的词数,两者同样破坏可读性。
- 总词数$N$ 是标准文本的词数(包含重复词),错误总数除以它得到归一化的错误率。
AI 应用场景
医疗电子病历语音录入
阶段:领域模型微调与部署
解决的问题:医生手打病历效率低,通用 Whisper 把“阿托伐他汀”听成“阿托伐他丁”、“磨玻璃结节”听成“磨玻璃组织”,每份报告都要大量人工修改。用真实口述数据微调后,模型能正确识别专业术语,实现“口述即所得”。
具体案例:某三甲医院放射科用 8 小时真实 CT 报告口述微调 Whisper,术语准确率从 72% 提升到 94%,单份报告生成时间从 6 分钟缩短到 3 分钟。医生口述完,系统直接输出规范化初稿,进入审阅流程即可。
金融电话会议智能纪要
阶段:数据准备 + 微调 + 推理服务
解决的问题:券商分析师每周要听几十场上市公司路演,“PB“(市净率)被识别成”皮比”,"EPS"被识别成不相干的短语,术语错误让人工核对成本极高。微调加上下文偏置,能让模型优先识别金融术语。
具体案例:某研究所用 10 小时路演录音加术语词典微调 Whisper,并把"EPS""PE""ROE"等词注入解码偏置,术语准确率从 65% 提升到 92%。会后 30 分钟自动生成可检索的纪要初稿,分析师只需修订重点段落。
庭审录音自动转写
阶段:数据清洗 + 微调 + 评估
解决的问题:庭审语速快、法言法语多、还夹杂方言口音,通用模型转写后错误太多,书记员几乎要重打。通过混入少量通用数据微调,可以在保证法条术语准确的同时,避免模型“忘记”日常口语。
具体案例:某基层法院用 20 小时庭审音频(含当地方言)混合 10% 通用语音数据微调,庭审转写 WER 从 35% 降到 12%,书记员的整理时间减少约 40%,且日常对话转写能力没有明显退化。
Python 演示
import torchimport whisper SAMPLE_RATE = 16000TRAIN_EPOCHS = 3LEARNING_RATE = 1e-5 # 领域数据: 医疗口述音频路径 + 转写文本train_data = [ {"audio": "med_001.mp3", "text": "患者服用阿托伐他汀每日二十毫克"}, {"audio": "med_002.mp3", "text": "胸部CT提示右肺中叶磨玻璃结节"}, {"audio": "med_003.mp3", "text": "眼底检查显示视盘边界清晰"},] device = "cuda" if torch.cuda.is_available() else "cpu"model = whisper.load_model("small").to(device) # 冻结编码器: 保留通用语音特征提取能力for p in model.encoder.parameters(): p.requires_grad = False optimizer = torch.optim.AdamW( [p for p in model.parameters() if p.requires_grad], lr=LEARNING_RATE,) tokenizer = whisper.tokenizer.get_tokenizer( multilingual=True, language="zh") def to_mel(path): audio = whisper.load_audio(path, sr=SAMPLE_RATE) audio = whisper.pad_or_trim(audio, 48000) mel = whisper.log_mel_spectrogram(torch.from_numpy(audio)).to(device) return mel.unsqueeze(0) for epoch in range(TRAIN_EPOCHS): for i, sample in enumerate(train_data): mel = to_mel(sample["audio"]) ids = tokenizer.encode(sample["text"]) # 解码器输入: SOT + 真值 tokens 不含最后一个 dec_in = torch.tensor( [whisper.tokenizer.SOT] + ids[:-1], device=device ).unsqueeze(0) dec_out = torch.tensor(ids + [whisper.tokenizer.EOT], device=device) features = model.encoder(mel) logits = model.decoder(dec_in, features) loss = torch.nn.functional.cross_entropy( logits.view(-1, logits.size(-1)), dec_out ) optimizer.zero_grad() loss.backward() optimizer.step() print(f"epoch {epoch + 1} step {i + 1} loss {loss.item():.3f}") torch.save(model.state_dict(), "whisper-medical-zh.pt")
model = whisper.load_model("small").to(device)加载 Whisper 预训练模型,这是李师傅的“基本功”for p in model.encoder.parameters(): p.requires_grad = False冻结编码器权重,保留通用声学理解,防止灾难性遗忘optimizer = torch.optim.AdamW(..., lr=LEARNING_RATE)用 AdamW 优化器,学习率 1e-5,文火慢炖audio = whisper.pad_or_trim(audio, 48000)统一音频长度为 30 秒(48000 采样点),保证 batch 对齐ids = tokenizer.encode(sample["text"])把中文转写文本编码成 token 序列,作为解码器的学习目标features = model.encoder(mel)编码器提取声学特征,相当于大厨“听音辨位”logits = model.decoder(dec_in, features)解码器输出每个词的概率分布loss = torch.nn.functional.cross_entropy(logits, dec_out)与真值 token 计算交叉熵损失,衡量“说对没有”torch.save(model.state_dict(), "whisper-medical-zh.pt")保存微调后的模型权重,下次直接加载部署
常见误区
误区“微调 Whisper 肯定要多收集数据,我准备了 5000 小时的查房录音,一定能把医生口述识别做到完美。数据少了根本不敢开始训练。”
正解Whisper 是强大的预训练模型,微调像“点拨”而不是“从头教”。领域数据 1-10 小时高质量录音往往就能带来显著提升,关键是数据质量、标注一致性和术语覆盖度。5000 小时嘈杂、未清洗的录音反而会让模型学到噪音和错误标注。大厨学新菜,尝十几遍地道味道就够了,不需要把整头猪都搬进厨房。
为何常见:受从前训练模型的经验影响,以为数据量是唯一的杠杆,忽略了 Whisper 本身已经具备的通用能力。
误区“我显卡显存够大,全参数微调肯定比只训练解码器效果好,毕竟可学习参数多,模型容量大。”
正解领域数据通常只有几小时,全参微调很容易把编码器的通用声学特征改坏,导致在领域数据上过拟合、在通用数据上大幅退化。冻结编码器或使用 LoRA,约束参数更新幅度,反而能得到泛化更好的模型。就像大厨学新菜不会重新学切菜,保留基本功才是效率最高的方式。
为何常见:直觉上“参数量越大能力越强”,但忽略了小数据下的过拟合和遗忘风险。
误区“微调也是训练,把学习率设大一点,几步就收敛了,省时间省 GPU。”
正解预训练模型已经在一个很好的局部最优点附近,学习率太大会一步跨出“盆地”,破坏已有的语音和语言表征。Whisper 微调学习率通常取 1e-5 到 5e-5,比从头训练小 10 到 100 倍。这就像炖汽锅鸡必须文火慢炖,大火快炖肉就柴了。
为何常见:把微调直觉混同于从头训练,忽略了预训练权重的“脆弱性”。
误区“微调后领域测试集 WER 从 40% 降到 8%,完美!赶快上线。”
正解如果只测领域不测通用,很可能已经灾难性遗忘了。正确做法是同时跑领域测试集和通用测试集,对比两个 WER。领域降了、通用基本没涨,才算成功。就像大厨只让云南客人试菜,老客人早就悄悄走光了,他还以为自己厨艺大涨。
为何常见:评估指标单一,只关注眼前任务,缺乏全局视角。
误区“专业术语识别不准?多录点带术语的音频喂进去就行,数量到了自然就识别对了。”
正解术语识别瓶颈常常在解码阶段——Whisper 的语言模型先验会把生僻词“纠正”成常见词。与其盲目堆数据,不如做三件事:统一术语词典的标注格式、在训练文本里刻意提高术语频率、在解码时给术语加分偏置。就像汽锅鸡不是多放鸡就鲜,而是要用对汽锅和蒸法。
为何常见:对先进 ASR 的“纠错机制”理解不足,以为所有识别问题都能靠增加数据解决。
面试题
Q1. 微调 Whisper 适配医疗领域时,推荐的学习率量级是?
- A.1e-3 到 1e-2
- B.1e-5 到 5e-5← 正确答案
- C.0.5 到 0.9
- D.不需要设学习率
答案:B。预训练模型已收敛到较好的局部最优,微调应用小学习率。选项 A 适合从头训练,C 是优化器的动量系数而非学习率,D 完全错误。微调是“点拨”不是“重学”,学习率要小 10 到 100 倍。
Q2. 灾难性遗忘的正确理解是?
- A.模型对音频输入的噪声越来越敏感
- B.学习新任务时参数被大幅更新,旧任务知识崩塌← 正确答案
- C.模型完全拒绝输出任何内容
- D.训练损失永远不下降
答案:B。灾难性遗忘指新任务的大梯度更新覆盖旧任务学到的参数,就像大厨学新菜忘记老菜做法。A 是泛化问题,C 是解码失败,D 是不收敛,都不是灾难性遗忘的本质。
Q3. 缓解灾难性遗忘的有效手段是?
- A.训练中混入少量通用数据(经验重放)← 正确答案
- B.把学习率调到 0.5
- C.删除所有通用训练数据
- D.只保留领域数据反复训练 100 轮
答案:A。经验重放让模型在学新数据同时复习旧知识,是防止遗忘的经典方法。B 和 D 会加重遗忘,C 是灾难性遗忘的直接诱因。混入 10%-20% 通用数据是推荐的起点。
Q4. 为什么小数据集上 LoRA 常优于全参微调?
- A.LoRA 增加了模型层数
- B.LoRA 只训练低秩增量矩阵,参数量少且约束强← 正确答案
- C.LoRA 会自动扩充训练数据
- D.LoRA 改变了 Whisper 的声学特征维度
答案:B。LoRA 冻结原权重,只训练两个低秩矩阵,将参数更新限制在低维子空间,降低过拟合和遗忘风险。A、C、D 均是对 LoRA 的误解。它不改变模型架构,也不生成数据。
Q5. Whisper 编码器和解码器在微调中分别扮演什么角色?
- A.编码器输出文本,解码器处理音频
- B.编码器提取声学特征,解码器生成文本← 正确答案
- C.两者都直接输出最终结果
- D.编码器负责采样率转换
答案:B。编码器将 log-mel 频谱转为语义特征,解码器自回归生成 token 文本。采样率转换是数据预处理环节,不属于编码器职责。理解这个分工才能设计正确的冻结策略。
Q6. 领域 WER 的数值含义是?
- A.(替换+删除+插入错误数)除以总词数← 正确答案
- B.词向量的余弦相似度
- C.语音信号的信噪比
- D.模型的可训练参数量
答案:A。WER 是编辑距离除以总词数,衡量转写文本和标准文本的差异。B 是语义相似度,C 是音频质量,D 与识别准确率无关。WER 越低,识别越准。
Q7. 准备医疗领域微调数据,推荐的做法有?
- A.采集真实医生口述录音并匿名脱敏← 正确答案
- B.去除长静音和交叉说话片段← 正确答案
- C.统一术语的转写格式(如药物名、单位)← 正确答案
- D.直接使用电影对白作为训练数据
答案:ABC。真实、干净、格式统一是微调数据三原则。A 保证数据来源真实且合规,B 提升信噪比,C 让模型学到稳定映射。D 领域不匹配,且电影对白噪声和风格都不适合医疗场景。
Q8. 训练过程中,哪些决策可以降低灾难性遗忘风险?
- A.冻结 Whisper 编码器← 正确答案
- B.使用 LoRA 代替全参微调← 正确答案
- C.训练集混入 10% 通用语音数据← 正确答案
- D.学习率设为 0.1 以快速收敛
答案:ABC。冻结编码器限制改动范围,LoRA 约束更新幅度,经验重放让模型保持旧任务记忆,三者都能防遗忘。D 学习率过大一步跨出最优区域,反而加剧遗忘,是错误选项。
Q9. Whisper 常把生僻术语“纠正”成常见词,主要原因是?
- A.语言模型先验偏向高频词序列← 正确答案
- B.音频文件格式错误
- C.训练数据包含太多通用语音
- D.GPU 显存不足导致解码中断
答案:A。Whisper 解码受语言模型先验影响,生僻词概率低,输出会被“拉回”高频常见词。这是模型内在的纠错机制,与音频格式、显存无关。微调时需用术语词典和领域数据校正这种偏置。
Q10. 微调后评估模型质量,合理的做法有?
- A.构造独立的领域测试集,不参与训练← 正确答案
- B.在通用测试集上对比微调前后的 WER← 正确答案
- C.人工抽查识别的专业术语和听感← 正确答案
- D.只用训练集 loss 判断模型好坏
答案:ABC。独立测试集避免评估泄漏,通用测试集揭示遗忘程度,人工抽查捕捉 WER 看不到的术语细节。D 只看训练 loss 会严重高估模型,训练集损失低可能只是记住了训练数据。