在城郊有家老字号翻译社,老师傅带学徒从不先教词典。他让学徒先把一叠中文稿件译成英文,第二天再把英文稿译回中文,最后与原文比对。学徒们起初觉得这是“无用功”——译来译去还是同一篇文章?可日子久了,他们惊奇地发现:凡是回译后还能“对得上”的句子,往往就是把握住了精髓的好译文;而那些面目全非的句子,恰恰暴露了理解的偏差。老师傅这招,便是今天NLP领域大名鼎鼎的“回译数据增强(Back-translation)”——一种在低资源机器翻译中,用“反向翻译”凭空变出平行语料的神奇技法。本文将带你从原理到工程,彻底搞懂这套“翻译社学徒训练法”。
回译是低资源机器翻译的“语料炼金术”,掌握它能让你在不增加人工标注的情况下成倍扩充训练数据,是NLP工程师做翻译模型、跨语言任务时不可或缺的护城河技能。
可视化演示
动态演示Back-translati的核心机制,通过全局/局部/动态/静态四种模式展示关键概念与交互流程。
本节配有交互动效(进入视口后自动加载,约 3KB)。
Back-translati:回译数据 回译数据增强的基本原理 合成数据质量控制与过滤 核心机制可视化 Back-translati整体架构与关键组件
回译基本原理
老师傅的第一堂课,是让学徒们把一篇文章翻成英文,不许看词典。学徒们硬着头皮翻完,老师傅又让他们把英文翻回中文。这一来一回,学徒们惊讶地发现:回译后的中文虽然大意相近,但用词、语序已然“面目全非”。老师傅笑着问:“你们觉得,这篇回译文还能当平行语料用吗?”
这恰恰就是回译(Back-translation)的核心洞察:对于机器翻译而言,我们不需要“完美”的平行语料,只需要“大体对齐”的双语对。回译的基本流程非常朴素——先训练一个目标到源的反向翻译模型(比如英语→中文),然后用这个反向模型把大量单语目标语料(英文)翻译成源语言(中文),于是每一条单语数据都变成了一个“合成平行句对”。这些合成句对与真实人工标注的平行语料混合,用于训练正向的翻译模型。
其数学表达非常简洁。假设正向模型为 $P_{\theta}(Y|X)$(从源语言X翻译到目标语言Y),反向模型为 $P_{\phi}(X|Y)$。给定大量单语目标语料 $\{Y_i\}_{i=1}^{N}$,回译构造的合成平行语料为:
老师傅最后总结:“合成语料虽不完美,但胜在量大。十个翻译生,总比一个翻译官强。”回译就是用海量单语语料,换取模型对翻译规律的更充分学习。
- 合成数据集定义$\mathcal{D}_{\text{synth}}$ 表示回译构造的合成平行语料集合,花体D代表数据集(Dataset)。
- 回译采样$X_i' \sim P_{\phi}(X|Y_i)$ 表示从反向翻译模型中采样得到源语言句子。符号 $\sim$ 读作“服从……分布”,即按模型给出的概率分布随机抽取。
- 符号约定$X$ 是源语言句子,$Y$ 是目标语言句子,$P_{\phi}$ 是参数为 $\phi$ 的反向翻译模型。
质量控制策略
学徒们练了一段时间,回译出来的句子越来越多,但质量参差不齐。有的只是换个顺序,有的却完全跑偏。老师傅开始教他们“审校”——不是每篇回译稿都能收进语料库的,得先过三道关。
第一道关是置信度过滤。反向翻译模型在解码时,每个生成的词都有一个概率。如果整句话的平均对数概率过低,说明模型自己都没把握,这种样本往往是噪声。实践中常用阈值筛选,比如保留概率最大的前30%~50%句子。第二道关是长度比约束。如果回译句比原始目标句长太多或短太多,大概率是漏译或幻觉,需要过滤掉极端长度比。第三道关是语言模型打分:用目标语言模型计算回译句的困惑度(PPL),把那些“不像人话”的句子剔除。
形式化地,质量过滤可以表达为一个二值掩码:
老师傅的比喻是“腌咸菜”:菜要挑好的洗,水要滤掉杂质,腌出来的才脆。
- 指示函数$\mathbb{1}[\cdot]$ 是示性函数——若括号内条件为真则值为1,否则为0。两个示性函数相乘,只有同时满足才能得到1。
- 置信度条件$\text{score}(X_i')$ 是反向模型的置信分,$\tau_1$ 是过滤阈值。低置信度样本被丢弃。
- 长度比条件$|X_i'|$ 与 $|Y_i|$ 分别是回译句和原始句的词数,比值落在 $(r_1, r_2)$ 区间内才算合格。
双向回译策略
学徒们已经能独立完成“中翻英再翻回中文”的流程了。可老师傅又出了新难题:“只从英文往回翻中文,跟只学一条腿走路有什么区别?你们得学会两条腿走。”
这里说的就是双向回译(Bidirectional Back-translation)。真正的回译增强不应只做单方向。如果我们的目标是训练一个中文→英文的翻译模型,那么除了用英→中反向模型生成的合成语料外,还可以用已经训练好的中→英模型去翻译大量单语中文,得到更多合成句对,两者合并。这样,模型的训练数据就同时覆盖了两个方向的“往返经验”。
用公式说,考虑两个反向模型并:目标到源的 $P_{\phi}(X|Y)$ 和源到目标的 $P_{\psi}(Y|X)$。合并后的合成语料为两部分并集:
其中前一部分来自目标单语语料,后一部分来自源单语语料。
老师傅说:“两只脚走路,才算真正学会了翻译。”
- 目标侧回译$(X_i', Y_i)$ 表示从目标语言单语语料出发,反向生成源语言句子。这扩充了源语言侧的多样性。
- 源侧回译$(X_j, Y_j')$ 从源语言单语出发,正向生成目标语言句子。这扩充了目标语言侧的多样性。
- 集合合并$\cup$ 表示两个语料集合的并集,合并后的总量 $N_1 + N_2$ 远大于任一单方向。
自训练迭代
随着训练进行,学徒们翻得越来越好。老师傅决定玩点更“刺激”的:让最优秀的学徒充当“新师傅”,用他翻出来的新语料去教下一批学徒。这就是自训练(Self-training)迭代的精髓。
在回译增强中,自训练迭代是一个周而复始的循环:
1. 用当前最优模型对大规模单语语料进行回译,生成合成平行语料;
2. 将合成语料与真实语料混合,训练一个新的更强模型;
3. 用新模型重复第1步,生成质量更高的合成语料;
4. 持续迭代,直到模型性能不再提升或开始下降。
迭代的过程像滚雪球——模型自己生数据,自己吃数据,越滚越好。但风险也伴随而来:如果每一轮生成的噪声被当作“正确答案”传给下一代,错误会不断累积放大,这就是著名的曝光偏差/噪声累积问题。规避手段包括:每轮只保留高置信度样本、在合成数据中加入真实数据作为“锚点”、以及监控验证集上的BLEU值防止过拟合到伪语料。
形式化地,第 $t+1$ 轮的合成语料为上一轮模型生成:
然后新模型在真实与合成语料并集上训练:
老师傅的告诫始终在耳畔:“教徒弟要留一手——真本事的语料不能丢,掺着教才行。”
- 模型自我生成$\theta_t$ 是第 $t$ 轮的模型参数,用它生成第 $t+1$ 轮的合成语料。这就是“自己想题自己练”。
- 联合训练目标$\arg\max$ 表示寻找使损失函数最大化的参数——这里最大化真实语料与合成语料上的对数似然之和。
- 迭代递推每一轮的新模型是下一轮数据生成的“师傅”,形成递推链条。
低资源适配
这座翻译社开在方言区,附近找不到几个精通双语的翻译官。老师傅却总能想出办法:既然双语人才稀缺,那就发动全城的人写单语文章——反正单语素材遍地都是。这就是回译在低资源场景的天然适配逻辑。
对于小语种机器翻译,最大的痛点是平行语料太少,可能只有几万甚至几千句对。而单语语料虽然也不多,但相对丰富得多。回译的意义在于:把“相对丰富”的源语言/目标语言单语资源,转化为“模型所需”的平行语料。哪怕只有1万句人工平行语料,配合20万句单语语料回译出的合成句对,训练出的模型往往能显著超过仅用1万句训练的效果。
实际操作中需要格外注意数据配比。研究发现,合成语料虽多,但质量不如真实语料,若配比过高,模型会被噪声主导。常见做法是控制合成数据占比为真实数据的3~10倍(即1:3到1:10),并在验证集上做网格搜索找到最优配比。此外,领域适配也至关重要——如果目标翻译领域是“法律文书”,那么单语语料应尽量采集法律文本,否则回译引入的是领域外噪声,反而有害。
配比优化的目标函数可写为:
老师傅的智慧:“米不够,就多掺点水——但水掺多了粥就不稠了。多少合适,得尝了才知道。”
- 混合比例$\lambda$ 表示合成数据被采样的比例。$\lambda=0$ 表示只用真实数据;$\lambda=1$ 表示全部使用合成数据。
- 训练-评估流程$\text{Train}(\cdot)$ 表示在这个混合语料上训练模型,然后用BLEU指标在验证集上打分。
- 最优配比搜索$\arg\max_{\lambda}$ 找到使BLEU最大的 $\lambda^*$。真实项目里一般通过网格搜索(如0.3、0.5、0.7)粗略定位。
工程实践优化
到了出师阶段,学徒们关心的不再是原理,而是怎么在工坊里把这些活儿干得又快又好。老师傅拿出他的“三样法宝”:好用的工具、巧妙的分工、以及检验成果的标尺。
第一,回译模型选型。反向翻译模型的质量直接决定合成语料的上限。实践中首选强Transformer(如mBART、m2m-100),但受限于算力也可用轻量模型。经验法则是:反向模型至少不能比正向模型弱太多,否则它生成的噪声会拉低正模型的效果。第二,批处理实现:与其逐句回译,不如把大语料切成batch送入GPU并行解码,配合beam search(束宽取4~5)获得高质量回译结果。第三,资源调配:回译的推理开销远大于训练,实践中常用混合精度推理、提前缓存已回译句对,避免同一语料反复回译。
在评估层面,除了验证集BLEU,工程上还要关注回译句对的留存率(通过质量过滤的百分比)以及合成语料对真实语料梯度更新的贡献。一个完整的回译流程可以用下面的算法表达:
其中 $\alpha$ 是真实语料测试集的权重,$\text{BLEU}_{\text{synth}}$ 是在合成测试集上的得分。
老师傅把那枚刻着“译”字的印章交给学徒们:“工具、手艺、标尺都齐了,剩下的就是在无数个来回中打磨火候。”
- 双维度评估$\text{BLEU}_{\text{real}}$ 是在人工标注的真实测试集上的分数,体现硬实力;$\text{BLEU}_{\text{synth}}$ 是在回译测试集上的得分,体现对合成分布的适应度。
- 加权融合$\alpha$ 是真实语料权重,取值0到1,工程中常用0.7~0.9。当 $\alpha=1$ 时只看真实表现。
- 交叉验证思想同时观察两个指标的分裂程度——若合成BLEU远高于真实BLEU,说明模型“偏科”,需要降低合成数据配比。
AI 应用场景
低资源小语种翻译系统搭建
阶段:数据准备与增强
解决的问题:小语种(如维吾尔语、斯瓦希里语)平行语料稀缺,传统方法需要投入大量人力进行人工翻译标注,成本极其高昂。回译增强利用该语种相对丰富的单语语料,自动合成平行句对,大幅降低数据构建成本。
具体案例:某出海互联网公司要做一个“中文→印地语”的翻译模型,但手上只有3万句人工平行语料。工程师下载了50万句印地语单语新闻语料,用已训练的印地语→中文反向模型做回译,生成了40万句合成语料,模型BLEU提升4.2个点,接近多花20万人工标注的效果。
领域自适应:法律文档翻译增强
阶段:领域微调与数据增强
解决的问题:通用翻译模型在法律、医疗等专业领域表现差,因为通用语料与领域语料分布不一致。回译可以快速生成领域相关平行语料,且无需双语文档。
具体案例:某法律科技公司需要英→中法律合同翻译。工程师从公开网站爬取10万篇中文法律文书,通过反向模型回译成英文法律文本,与已有5000句人工法律平行语料混合微调,法律领域BLEU从28.1提升到33.7,且术语翻译准确率显著提高。
语音翻译中的文本回译预热
阶段:预训练与数据增强
解决的问题:语音翻译(如“中文语音→英文文本”)极度缺乏端到端训练数据。通过文本回译增强,可以预训练一个强大的文本翻译模型,再用少量语音数据进行微调,降低对语音-文本对数据的依赖。
具体案例:某实验室做“中文会议语音→英文纪要”系统,仅有200小时语音-文本对。他们先使用回译增强训练了大规模中英文本翻译模型,再将其作为Encoder初始化接入语音编码器,最终系统在测试集上比纯端到端训练高7.8个BLEU。
Python 演示
import randomimport numpy as np class SimpleMT: """用词表映射模拟翻译模型,仅作流程演示""" def __init__(self, vocab_src, vocab_tgt): self.vocab_src = vocab_src self.vocab_tgt = vocab_tgt self.pairs_zh2en = {} self.pairs_en2zh = {} def train(self, pairs, direction="zh2en"): """从小规模平行语料学习词对映射""" table = self.pairs_zh2en if direction == "zh2en" else self.pairs_en2zh for zh, en in pairs: for z_word in zh.split(): for e_word in en.split(): table.setdefault(z_word, e_word) def translate(self, sent, direction="zh2en"): """逐词替换翻译(模拟解码)""" table = self.pairs_zh2en if direction == "zh2en" else self.pairs_en2zh words = [] for w in sent.split(): fallback = w if w in table: fallback = table[w] words.append(fallback) return " ".join(words) def confidence(self, sent, direction="zh2en"): """伪置信度:词表覆盖率的函数""" table = self.pairs_zh2en if direction == "zh2en" else self.pairs_en2zh words = sent.split() hit = sum(1 for w in words if w in table) return hit / max(len(words), 1) def back_translate(model, mono_en, filter_th=0.5, len_ratio=(0.5, 2.0)): """回译主流程:英文单语 -> 回译中文 -> 质量过滤""" synth_pairs = [] for en in mono_en: # 1. 用反向模型(en2zh)把英文回译成中文 zh_syn = model.translate(en, direction="en2zh") conf = model.confidence(en, direction="en2zh") len_r = len(zh_syn.split()) / max(len(en.split()), 1) # 2. 质量标准:置信度够高 + 长度比例正常 if conf >= filter_th and len_ratio[0] <= len_r <= len_ratio[1]: synth_pairs.append((zh_syn, en)) return synth_pairs def main(): # 真实平行语料(双语翻译官) real_pairs = [ ("你好 世界", "hello world"), ("我爱 自然 语言 处理", "i love nlp"), ("回译 是 强大 的 增强 方法", "back translation is powerful"), ] # 单语英文语料(取之不竭的单语资源) mono_en = [ "the cat sits on the mat", "machine translation is hard", "i study every day", "data is the new oil", ] # 1. 训练反向模型 en2zh(英文老师傅) rev_model = SimpleMT(vocab_src=[], vocab_tgt=[]) rev_model.train(real_pairs, direction="en2zh") # 2. 回译生成合成语料(学徒抄写) synth_pairs = back_translate(rev_model, mono_en) print(f"合成平行语料量: {len(synth_pairs)} 句") for zh, en in synth_pairs: print(f" 回译: zh={zh} en={en}") # 3. 合并真实与合成语料,训练正向模型 all_pairs = real_pairs + synth_pairs fwd_model = SimpleMT(vocab_src=[], vocab_tgt=[]) fwd_model.train(all_pairs, direction="zh2en") # 4. 验证:翻译一句没见过的中文 test_zh = "机器 翻译 是 困难 的" print(f"正向模型翻译: {test_zh} -> {fwd_model.translate(test_zh)}") if __name__ == "__main__": main()
rev_model.train(real_pairs, direction="en2zh")用真实平行语料先训练一个反向模型(英文→中文),这是回译的“老师傅”。model.translate(en, direction="en2zh")反向模型把每条中文单语翻译成英文,产出合成源语言句。conf >= filter_th and len_ratio[0] <= len_r <= len_ratio[1]质量过滤双条件:置信度够高、长度比例正常,不合格的语料直接丢弃。all_pairs = real_pairs + synth_pairs真实语料与合成语料合并,这是训练正向模型的完整“教材”。fwd_model.train(all_pairs, direction="zh2en")在合并语料上训练正向翻译模型(中文→英文),回译的产出回哺主任务。
常见误区
误区“反正回译出来的都是机器译文,随便用一个翻译API反着调一下就行,不用讲究模型质量。”
正解回译合成语料的质量上限由反向翻译模型决定。翻译社老师傅若自己都半瓶水,教出来的学徒自然更差。若反向模型太弱,回译产生的噪声会污染正向模型的训练。实践要求反向模型至少与正向模型同级别,甚至更强(如用mBART、大模型蒸馏版),并配合质量过滤。低质量反向模型的合成语料,轻则无效,重则让BLEU不升反降。
为何常见:因为回译管线看起来只有“翻译一下”这么简单,且机器翻译的错误不像人工标注那样“可见”,初学者容易忽视噪声累积的雪崩效应。
误区“回译能造出无限语料,那我把1000万句单语全回译了喂给模型,BLEU肯定涨。”
正解合成语料与真实语料存在分布偏差,过量合成数据会淹没真实语料中的“标准答案”,导致模型学到回译特有的错误模式。研究发现,合成数据与真实数据的最佳配比通常在3:1到10:1之间,且必须通过验证集调优。老师傅的粥不能全是水——水太多粥就稀了,反而难喝。
为何常见:人们直觉上认为“数据越多越好”,却忽略了数据的质量权重。合成数据再多也只是近似真实分布。
误区“自训练迭代既然能让模型越来越强,那就循环20轮,说不定BLEU能翻倍。”
正解每一轮回译都会引入新的噪声,错误会在层叠中被放大。超过一定轮次后,模型会开始“自我重复”——生成的语料高度同质,甚至退化成只会输出高频短语的“复读机”。工程上常用的做法是:每轮迭代后都在验证集上评估,若连续两轮BLEU不再提升即停止。此外,每轮都要保留真实语料作为“锚点”,防止模型漂移。
为何常见:迭代增强的思维符合“越练越强”的直觉,但忽视了生成模型噪声累积的副作用。回译迭代是“滚雪球”,雪球滚大了也可能撞碎。
误区“只要混合回译语料后验证集BLEU上涨,就说明回译成功了,其他指标不用管。”
正解BLEU对语料分布敏感,有时合成语料帮模型“背下”了验证集的表达模式,导致BLEU虚高,但模型在新领域数据上的泛化能力反而下降。实践经验要求:除了验证集BLEU,还要在独立测试集(不同的领域来源)上评估;同时抽查合成语料的留存率、人工评估回译句的可读性。老师傅选徒弟,不光看摸底考,还要看将来的独当一面。
为何常见:BLEU是机器翻译最常用的指标,工程师容易用单一数字简化决策,而忽略“指标≠能力”的陷阱。
误区“回译是机器翻译特有的技术,做文本分类、情感分析、问答系统的工程师不用学。”
正解回译的本质是“利用单语资源创造平行监督信号”,这正是许多NLP任务在低资源场景下的救命稻草。例如:文本分类可用回译做一致性正则化(对文本回译后要求模型预测不变);问答系统可用回译生成“问题-答案”对;句子嵌入学习(如SimCSE)直接使用回译作为正样本对。老师傅的“翻出去再翻回来”用在哪一行,哪一行就有对称的增强机会。
为何常见:因为回译的经典论文都发表在机器翻译会场(如WMT),名字里带“translation”,人们容易将其归类为MT专属方法。
面试题
Q1. 关于回译(Back-translation)的核心思想,以下说法最准确的是:
- A.用机器翻译模型把平行语料反复翻译以提升质量
- B.用反向翻译模型把单语语料转换为合成平行语料← 正确答案
- C.用人工翻译回审机器翻译结果的纠错过程
- D.用两个翻译模型互相监督训练的集成方法
答案:B。回译的本质是训练一个目标到源的反向翻译模型,将单语目标语料“翻译”回源语言,从而构造合成平行语料。A说的是语料优化而非语料扩展,C是人工评估,D是对抗/多模型集成,均未命中核心。就像请人把译文翻回去看是否变形,核心是用单语变双语。
Q2. 回译增强最典型的应用场景是:
- A.平行语料充足的高资源语言对
- B.平行语料匮乏的低资源语言对← 正确答案
- C.语音识别中的声学特征增强
- D.图片描述中的数据增强
答案:B。回译的价值在于低资源场景下平行语料稀缺,而单语语料相对丰富。通过反向翻译把单语语料转换为合成平行句对,能有效缓解数据不足问题。高资源语言对本身语料充足,回译收益有限。
Q3. 在回译的质量控制策略中,以下哪一项属于“长度比约束”?
- A.过滤反向模型置信度低于阈值的句对
- B.丢弃回译后句子长度与原文长度比过大的样本← 正确答案
- C.用语言模型计算回译句的困惑度并过滤高困惑度样本
- D.删除语料中重复出现的回译句
答案:B。长度比约束指控制回译句 $|X'|$ 与原始句 $|Y|$ 的词数比值在合理区间内,若 $|X'|/|Y|$ 过大或过小,说明存在漏译或幻觉。A是置信度过滤,C是语言模型打分,D是去重。就像收徒弟先看个头比例,太离谱的直接刷掉。
Q4. 双向回译策略相比单向回译的额外收益主要是:
- A.训练速度翻倍
- B.模型参数量减半
- C.同时扩增源语言和目标语言侧的单语多样性← 正确答案
- D.完全消除合成数据的噪声
答案:C。双向回译同时用源到目标、目标到源两个模型生成合成语料,$D_{\text{bi}} = D_1 \cup D_2$,既扩充了源语言侧的单语信息,也扩充了目标语言侧的单语信息。A、B与架构无关,D中的“完全消除”过于绝对,噪声只能降低不能归零。
Q5. 关于回译与自训练迭代的结合,下列说法正确的是:
- A.每轮用当前最优模型重新生成合成语料← 正确答案
- B.合成语料直接替换真实语料进行训练
- C.多轮迭代存在噪声累积导致模型退化的风险← 正确答案
- D.每轮应在验证集上评估并决定是否停止← 正确答案
答案:ACD。自训练迭代的核心循环是:旧模型生成新语料→训练新模型→再生成更新的语料,故A对。真实语料必须始终在场,替换掉会导致模型漂移,B错。噪声在多轮叠代中会放大,C对。验证集监控是防止退化的关键手段,D对。这就像学徒迭代培养,得不断让老师傅把关。
Q6. 在低资源翻译场景下,合成语料与真实语料的最佳配比一般是:
- A.1:1,合成与真实等量
- B.完全以合成语料为主,比例可超过100:1
- C.3:1到10:1,且通过验证集调优← 正确答案
- D.完全不用合成语料,只用真实语料
答案:C。实证研究表明,合成语料虽能扩增数据,但质量低于真实语料,最佳配比通常在3:1到10:1之间,需通过验证集网格搜索确定。比例过高会让模型被噪声主导,完全不用则失去回译意义。正如粥里掺太多水,米味就没了。
Q7. 回译构造合成平行语料时,反向翻译模型的作用是:
- A.将源语言单语语料翻译为目标语言
- B.将目标语言单语语料“回译”成源语言← 正确答案
- C.将真实平行语料编码成向量
- D.对合成语料进行排序筛选
答案:B。反向翻译模型的输入是目标语言单语语料,输出是源语言句子。比如目标是训练“中→英”模型,反向模型就是“英→中”,用它将英文单语翻译成中文,得到(中文,英文)合成句对。B准确定义了这一过程。
Q8. 以下关于回译质量过滤方法的说法,哪些是正确的?
- A.置信度过滤保留反向模型打分高的回译句对← 正确答案
- B.长度比过滤可以筛掉漏译和幻觉样本← 正确答案
- C.语言模型打分过滤的是语法不流利的回译句← 正确答案
- D.质量过滤一定可以提升模型最终BLEU
答案:ABC。A、B、C分别对应置信度、长度比、LM打分三种经典过滤策略。但D过于绝对——过滤能降低噪声,但若过滤阈值过高导致合成语料量骤减,模型可能反而因数据不足而性能下降。过滤是“取舍”的平衡艺术,不是一味求质。
Q9. 回译迭代中“模型自我重复”现象指的是:
- A.模型在训练时反复使用同一条语料导致过拟合
- B.多轮迭代后合成语料趋同,模型生成内容多样性下降← 正确答案
- C.模型融合了多个反向模型导致输出振荡
- D.模型在推理时反复生成同一个词形成死循环
答案:B。多轮迭代中,模型基于自己生成的语料再训练,高频词组被反复强化,低频语义逐渐消失,合成语料的多样性不断萎缩,这就是“自我重复”。它不同于训练过拟合(A)、多模型集成(C)或解码死循环(D)。像复读机一样只会背那几句了。
Q10. 工程实践中,回译推理阶段的性能优化手段包括:
- A.使用beam search束宽4~5代替贪心解码← 正确答案
- B.对重复使用的回译语料进行缓存← 正确答案
- C.使用混合精度推理提升吞吐← 正确答案
- D.每轮回译前重新训练反向模型
答案:ABC。A用束搜索获得更高质量的生成结果,B复用已回译句对避免重复计算,C混合精度减少显存占用和计算开销。D不是推理优化,而是迭代训练的另一环节,且每轮重训成本极高,工程上常固定反向模型或仅在必要时微调。