Machine Translation
机器翻译 (MT) 将文本或语音从一种语言转换为另一种语言。内容涵盖基于规则、统计和神经网络的机器翻译、BLEU 和 COMET,以及 LLM。
机器翻译(MT)是指将文本或语音从一种语言自动翻译成另一种语言。它是自然语言处理(NLP)中最古老的任务之一,也是应用最广泛的任务之一:Google Translate、DeepL 和 Microsoft Translator 翻译网页、文档、聊天消息、商品列表和口语对话,其规模是任何人工翻译团队都无法企及的。如今的系统使用神经网络,而大型语言模型(LLMs)也将翻译作为其通用能力之一。
从规则到统计,再到神经网络#
1954 年的乔治城-IBM 实验使用 250 个词和 6 条语法规则,将 60 多个俄语句子翻译成英语,组织者当时预测,机器翻译(MT)将在几年内得到解决。1966 年,ALPAC 报告认为机器翻译比人工翻译更慢、准确度更低,随后美国大幅削减了对机器翻译研究的资助。SYSTRAN 等基于规则的系统创立于 1968 年,通过手动为每种语言对编写词典和语法规则来实现翻译。
统计机器翻译则通过数据学习翻译。1993 年,Peter Brown 领导的 IBM 研究人员发表了词语对齐模型,这些模型从加拿大议会的双语记录中学习哪些法语词对应哪些英语词;而基于短语的机器翻译(2003 年)翻译多词词组,这是 Google Translate 于 2006 年推出时采用的方法。神经机器翻译用一个端到端训练的网络取代了统计处理流程:Ilya Sutskever 及其同事的序列到序列模型(2014 年)使用长短期记忆(LSTM)网络将句子编码成一个向量,再将其解码为另一种语言;Dzmitry Bahdanau、Kyunghyun Cho 和 Yoshua Bengio 则加入了注意力机制,让解码器能够回看每个源语言词语。在 2016 年一项针对简单句子的人工并排评估中,Google 的神经翻译系统相较于其基于短语的生产系统,平均减少了 60% 的翻译错误。次年推出、用于翻译的Transformer,在 WMT 2014 基准测试中,英译德得分达到 28.4 BLEU,英译法达到 41.8 BLEU。
神经机器翻译的工作原理#
源文本会通过字节对编码等分词方案拆分成子词token,因此罕见词和名称会被拆成已知的片段。编码器将整个源句子转换为带上下文信息的向量,解码器则一次生成一个 token,同时关注已经生成的 token,并通过交叉注意力关注编码器的向量:
由于编码器会先读取整个句子,解码器才开始生成内容,因此每个词的翻译都取决于上下文:
from transformers import AutoModelForSeq2SeqLM, AutoTokenizer
# T5 is an encoder-decoder transformer; a text prefix selects the translation task
tokenizer = AutoTokenizer.from_pretrained("google-t5/t5-small")
model = AutoModelForSeq2SeqLM.from_pretrained("google-t5/t5-small")
sentences = ["She went to the bank to open an account.", "They had a picnic on the bank of the river."]
inputs = tokenizer([f"translate English to German: {s}" for s in sentences], return_tensors="pt", padding=True)
# The decoder writes each German sentence one token at a time with beam search
outputs = model.generate(**inputs, num_beams=4, max_new_tokens=40)
for source, translation in zip(sentences, tokenizer.batch_decode(outputs, skip_special_tokens=True)):
print(f"{source} -> {translation}")Google 的 6000 万参数T5-small将英德翻译作为训练任务之一。在句子“Sie ging an die Bank, um ein Konto zu eröffnen.”中,它将“bank”译为“Bank”(金融机构);在“Sie hatten ein Picknick am Ufer des Flusses.”中,它则译为“Ufer”(河岸)。它还会将“eröffnen”(开)移到从句末尾,符合德语语序。
评估翻译质量#
BLEU由 IBM 的 Kishore Papineni 及其同事于 2002 年提出,它根据译文与一个或多个人工参考译文之间重合的词语序列进行评分,并对过短的输出进行惩罚。它计算成本低、可复现,但对于与参考译文措辞不同的正确译文,评分往往较低。COMET(2020 年)等学习型指标使用基于人工质量判断训练的神经网络为译文评分。2022 年 WMT 指标共享任务以“停止使用 BLEU”为题,发现神经指标与专家人工评分的一致程度高于 BLEU。
当前系统与挑战#
Meta 的NLLB-200(2022 年)支持 200 种语言之间的互译,其中许多语言的数字文本资源很少;在 Flores-200 基准上,它的 BLEU 分数比此前的最先进水平提高了 44%。低资源语言缺少平行训练数据,因此系统会使用回译生成合成样本对。回译是一种数据增强方法,会将目标语言的单语文本翻译成源语言。神经系统也可能生成流畅但与源文本无关的幻觉内容,在嘈杂或低资源输入下尤其如此。性别是已知的偏见来源:土耳其语中不区分性别的代词,可能会被译成医生的“他”和护士的“她”,因此 Google Translate 在 2018 年开始针对部分查询同时显示阴性和阳性译法。机器翻译还会与其他模态结合:手机相机应用会先对标牌和菜单运行光学字符识别(OCR),再进行翻译;语音翻译则会串联语音转文本、机器翻译和文本转语音,或者在一个模型中完成这三项任务。Ultralytics LLM 接口允许在提示词之外传入 image 参数,因此 Python 流水线可以在一次调用中将标牌照片发送给视觉语言模型,并要求模型将标牌文字译成英语。
机器翻译与相关术语的区别#
- NLP: 使用计算机处理人类语言的领域,机器翻译是其中一项任务。
- LLM 翻译: GPT 和 Gemini 等通用模型可以根据提示进行翻译,还能将整篇文档或术语表作为上下文。专用机器翻译模型只针对翻译任务进行训练;NLLB-200 提供经过蒸馏的版本,参数量分别为 6 亿和 13 亿,覆盖其支持的全部 200 种语言。
- 本地化: 为某个市场调整产品,包括日期、货币、图像和文化引用。机器翻译负责翻译文本,本地化团队负责审核和调整。










