机器翻译做到头了?Meta开源NLLB翻译模型,支持200种语言互译

每天给你送来NLP技术干货!


文 | Alex(凹非寺)
源 | 量子位

排版 | 夕小瑶的卖萌屋

这个翻译模型,不仅支持200+语言之间任意两两互译,还是开源的。Meta AI在发布开源大型预训练模型OPT之后,再次发布最新成果NLLB

NLLB的全称为No Language Left Behind,如果套用某著名电影,可以翻译成“一个语言都不能少”。

914c93e694fc3a4db17e4148207d3711.png

这其中,中文分为简体繁体和粤语三种,而除了中英法日语等常用语种外,还包括了许多小众语言

5387c7a3c01124b5c9776d96a0fa3dfa.png
▲NLLB支持的部分语种截图

由于这些语言之间都可以两两互译,所以咱们能用NLLB把阿斯图里亚语、卢甘达语、乌尔都语等地球上的小众语言直接译成中文了。

15eeb3b2b786c80ed2a9cccb4152c712.jpeg

一位用粤语的靓仔看到这里直接喜大普奔。

317a1313cc8af488400fe012965062f2.png

要知道,此前的众多语言模型,要么不支持这么多种语言,要么不能直接完成小众语言之间的两两翻译。

有了NLLB,世界各地的人都有机会以自己的母语访问和分享网络内容;并且无论他们的语言偏好如何,都可以与他人在任意地方沟通。

Meta称,他们计划先将这个技术应用于Facebook和Instagram,以提升这些平台上小众语言的计算机翻译水平。

同时,这也是他们元宇宙计划的一部分。而这项成果正式开源的消息,也受到广受好评。

87597bef766e8dc49a5aeb9d89bf9181.png

除了AI业内关心他们如何支持语料稀缺的冷门语言,以及如何在BLEU基准测试上提高7个点以外。也有来自西非的网友认为,语言障碍正是全球互联网用户数量进一步增长的关键。

c82f1f36341e234b5157747190e8396c.png

在Hacker News论坛上,大家也对这个AI议论纷纷。一个前端开发者说,自己的母语就是非常小众的那种,仅有约一百万人使用。

这位开发者此前从未见过对这种语言好用的AI翻译软件,而NLLB给他带来了希望。

不过他认为,连著名的谷歌AI在处理“德-英-德”这样语料丰富的语言翻译时,都常常会出问题,所以他暂且对这个声称能翻译好小众语言的新模型持保留态度。

247d26c053d60da222f823ce19952a71.png

有网友给这位开发者支招儿,告诉他Meta开放了有支持翻译的儿童书籍,可以去看看翻译效果。

bbfff913f97394c4a7ef3d5e976ae4ff.png

还有人补充道,许多小众语言有许多不同的自然变体,更偏于口语化,而没有特定书面化标准,可以用多种文字书写。所以,如何对小众语言进行标准化是个棘手的问题。

95290ac5c9c9a0a86fa15a27949330b4.png

怎么支持语料少的语言

这个掌握了200多种语言的AI模型是怎么训练的?

据Meta AI介绍,他们的AI研究人员主要通过3个方面来解决一些语言语料少的问题。

其一是为语料少的语言自动构建高质量的数据集。研究者建立了一个多对多的多语言数据集Flores-200。专业的真人翻译员和审稿人采用统一的标准,来保质保量地建立这个数据集。

首先,译员们翻译Flores-200的全部句子,并检查;然后,独立审查员小组开始审查翻译质量,根据他们的评估将一些译文送去进行后期编辑。

badda1b06ffe701ec691ee3896d2508a.png

如果质量评估表明,质量在90%以上,则认为该语言可以被纳入Flores-200中。

f34349477db221a11d3d939d53a2e358.png

最终,Flores-200中包含了842篇不同文章的翻译,共3001个句子。

其二,是对200种语言建模:研究者开发了一个语言识别系统LID(language identification systems),标记出某段文字是用哪种语言写的。

用监督方式训练的LID模型在看似流畅的句子上,可能难以识别处不正确语法和不完整的字符串。

此外,LID很容易学习到没有意义的相关性。所以,在这个LID开发的不同阶段,工程师们都和语言学家们保持着紧密合作来尽量规避这些问题。

为了对小众语言进行较好的建模,研究者开发了一种“学生-教师挖掘法” (Student-Teacher Mining)该方法的内容是:让一个大规模的多语言句子编码器的教师模型,与几个语料少的学生模型相互学习整合。

d1d9a08ede393eb4e1a30f6a5f14c01b.png

这样能够在不和多语料语言争夺容量的情况下,丰富小众语言的训练数据,保持了多语言嵌入空间的兼容性,避免从头开始重新训练整个模型。

其三,是将一个人工翻译的评估基准:FLORES的覆盖范围扩大2倍,来评估每一种语言的翻译质量。虽然自动评分是推动该研究的重要工具,但人工评价对于翻译质量的评估也是必不可少的。

通过整合AI自动评分和人工评估,能够广泛量化翻译水平,便于提升整理的翻译质量。

为了让更多程序员和工程师们能够使用或完善NLLB,Meta开放了所有的评估基准(FLORES-200、NLLB-MD、Toxicity-200)、LID模型和训练代码,以及最终的NLLB-200模型和其小型提炼版本等。

Meta AI已将这些内容开源,就在fariseq仓库里面,感兴趣的小伙伴们可以去看看。

论文地址:
https://research.facebook.com/publications/no-language-left-behind/
开源地址:
https://github.com/facebookresearch/fairseq/tree/nllb


📝论文解读投稿,让你的文章被更多不同背景、不同方向的人看到,不被石沉大海,或许还能增加不少引用的呦~ 投稿加下面微信备注“投稿”即可。

最近文章

EMNLP 2022 和 COLING 2022,投哪个会议比较好?

一种全新易用的基于Word-Word关系的NER统一模型

阿里+北大 | 在梯度上做简单mask竟有如此的神奇效果

ACL'22 | 快手+中科院提出一种数据增强方法:Text Smoothing


投稿或交流学习,备注:昵称-学校(公司)-方向,进入DL&NLP交流群。

方向有很多:机器学习、深度学习,python,情感分析、意见挖掘、句法分析、机器翻译、人机对话、知识图谱、语音识别等。

fb512f1544eb19f0e1b678e5fe30f9e6.png

记得备注呦

整理不易,还望给个在看!
ce6fb3b160a7192b3f3762cf7124b14b.png
[1]https://ai.facebook.com/research/no-language-left-behind/
[2]https://news.ycombinator.com/item?id=32005942
[3]https://twitter.com/MetaAI/status/1544791067567996935
去年,谷歌发布了 Google Neural Machine Translation (GNMT),即谷歌神经机器翻译,一个 sequence-to-sequence (“seq2seq”) 的模型。现在,它已经用于谷歌翻译的产品系统。   虽然消费者感受到的提升并不十分明显,谷歌宣称,GNMT 对翻译质量带来了巨大飞跃。   但谷歌想的显然不止于此。其在官方博客表示:“由于外部研究人员无法获取训练这些模型的框架,GNMT 的影响力受到了束缚。”   如何把该技术的影响力最大化?答案只有一个——开源。   因而,谷歌于昨晚发布了 tf-seq2seq —— 基于 TensorFlow 的 seq2seq 框架。谷歌表示,它使开发者试验 seq2seq 模型变得更方便,更容易达到一流的效果。另外,tf-seq2seq 的代码库很干净并且模块化,保留了全部的测试覆盖,并把所有功能写入文件。   该框架支持标准 seq2seq 模型的多种配置,比如编码器/解码器的深度、注意力机制(attention mechanism)、RNN 单元类型以及 beam size。这样的多功能性,能帮助研究人员找到最优的超参数,也使它超过了其他框架。详情请参考谷歌论文《Massive Exploration of Neural Machine Translation Architectures》。   上图所示,是一个从中文到英文的 seq2seq 翻译模型。每一个时间步骤,编码器接收一个汉字以及它的上一个状态(黑色箭头),然后生成输出矢量(蓝色箭头)。下一步,解码器一个词一个词地生成英语翻译。在每一个时间步骤,解码器接收上一个字词、上一个状态、所有编码器的加权输出和,以生成下一个英语词汇。雷锋网(公众号:雷锋网)提醒,在谷歌的执行中,他们使用 wordpieces 来处理生僻字词。   据雷锋网了解,除了机器翻译,tf-seq2seq 还能被应用到其他 sequence-to-sequence 任务上;即任何给定输入顺序、需要学习输出顺序的任务。这包括 machine summarization、图像抓取、语音识别、对话建模。谷歌自承,在设计该框架时可以说是十分地仔细,才能维持这个层次的广适性,并提供人性化的教程、预处理数据以及其他的机器翻译功能。   谷歌在博客表示: “我们希望,你会用 tf-seq2seq 来加速(或起步)你的深度学习研究。我们欢迎你对 GitHub 资源库的贡献。有一系列公开的问题需要你的帮助!”   GitHub 地址:https://github.com/google/seq2seq   GitHub 资源库:https://google.github.io/seq2seq/nmt/ 标签:tensorflow  seq2seq  谷歌  机器学习
### 部署NLLB翻译模型的方法 对于希望部署NLLB(No Language Left Behind)翻译模型的开发者而言,了解其具体操作流程至关重要。Facebook AI Research开发了这个多语言机器翻译模型支持超过200种低资源语言之间的互译[^1]。 #### 准备工作环境 为了顺利部署NLLB模型,需先安装必要的依赖库并下载预训练好的权重文件。通常情况下会建议使用Python虚拟环境隔离项目所需的包版本: ```bash conda create -n nllb python=3.8 conda activate nllb pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cpu pip install transformers sentencepiece sacrebleu ``` #### 加载预训练模型 通过Hugging Face提供的`transformers`库可以方便地加载官方发布的多个不同规模大小版本之一作为基础架构: ```python from transformers import AutoTokenizer, AutoModelForSeq2SeqLM tokenizer = AutoTokenizer.from_pretrained("facebook/nllb-200-distilled-600M") model = AutoModelForSeq2SeqLM.from_pretrained("facebook/nllb-200-distilled-600M") ``` #### 实现简单的推理接口 创建一个函数用于接收待处理文本输入,并返回经过转换后的目标语言输出字符串形式的结果: ```python def translate(text, target_lang="eng_Latn"): inputs = tokenizer([text], return_tensors="pt", truncation=True, max_length=512) outputs = model.generate(**inputs, forced_bos_token_id=tokenizer.lang_code_to_id[target_lang]) translated_text = tokenizer.batch_decode(outputs, skip_special_tokens=True)[0] return translated_text ``` 上述代码片段展示了如何利用已有的API快速搭建起能够执行跨语系即时在线服务的基础框架[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值