【大咖分享】AI 大模型时代,架构师有哪些机遇和挑战? 了解详情
写点什么

Facebook 开源工具包 LASER,支持 93 种语言

  • 2019-01-23
  • 本文字数:0 字

    阅读完需:约 1 分钟

Facebook开源工具包LASER,支持93种语言

为了加速自然语言处理(NLP)在更多语言上进行零样本迁移,Facebook 扩展并增强了 LASER(Language-Agnostic SEntence Representations)工具包,并将其开源。这是第一个成功探索大型多语种句子表示并与广大 NLP 社区共享的工具。


该工具包现在可以使用 90 多种语言和 28 种不同的字母表。LASER 通过将所有语言联合嵌入到单个共享空间(而不是为每种语言分别建立单独的模型)来实现这些结果。我们现在免费提供多语言编码器和PyTorch代码,以及针对 100 多种语言的多语言测试集。


LASER 打开了从一种语言(如英语)到其他几种语言(包括训练数据极为有限的语言)进行 NLP 模型零样本迁移的大门。LASER 是第一个使用单一模型处理各种语言的库,包括低资源语言(如卡拜尔语和维吾尔语),以及中国的吴语等方言。有朝一日,这项工作可以帮助 Facebook 和其他公司推出一些特定的 NLP 功能,例如,使用一种语言将电影评论分类为正面或负面,然后再使用其他 100 多种语言发布。

性能和功能亮点

LASER 为 XNLI 语料库 14 种语言中的 13 种带来了更高的零样本跨语言自然语言推理准确率。它还在跨语言文档分类(MLDoc 语料库)方面获得了很好的结果。我们的句子嵌入在并行语料库挖掘方面也有很好的表现,在 BUCC(BUCC 是在 2018 年举行的一个构建和使用可比较语料库研讨会)共享任务中将四个语言对中的三个提升到了一个新的技术水平。除了 LASER 工具包,我们在 Tatoeba 语料库的基础上共享了 100 多种语言对齐句子的测试集。使用这个数据集,我们的句子嵌入在多语言相似性搜索中获得了很好的结果,即使是低资源语言也是如此。


LASER 还提供了其他的一些好处:


  • 它提供了极快的性能,在 GPU 上每秒处理多达 2,000 个句子。

  • 句子编码器使用 PyTorch 实现,只有很少的外部依赖。

  • 低资源语言可以从多种语言的联合训练中受益。

  • 该模型支持在一个句子中使用多种语言。

  • 随着新语言的添加,性能会有所提高,因为系统会学会识别语言族的特征。

通用的语言无关性句子嵌入

LASER 的句子向量表示对于输入语言和 NLP 任务都是通用的。它将语言的句子映射到高维空间中的一个点,目标是让语言中的相同语句最终出现在同一邻域中。该表示可以被视为语义向量空间中的一种通用语言。我们已经观察到,空间中的距离与句子的语义紧密程度密切相关。



左边的图像显示了单语嵌入空间。右侧图像说明了 LASER 的方法,它将所有语言嵌入到一个共享空间中。


我们的方法建立在与神经机器翻译相同的基础技术之上:编码器/解码器方法,也称为序列到序列处理。我们为所有输入语言使用一个共享编码器,并使用共享解码器生成输出语言。编码器是五层双向LSTM(长短期记忆)网络。与神经机器翻译相比,我们不使用注意机制,而是使用1,024维固定大小的向量来表示输入句子。它是通过对BiLSTM的最后状态进行最大池化得到的。我们因此能够比较句子的表示形式,并将它们直接输入分类器中。



方法架构


这些句子嵌入用于初始化解码器LSTM,通过线性变换以及在每个时间步骤上将其连接到输入嵌入。编码器和解码器之间没有其他的连接,因为我们希望通过句子嵌入捕获到输入序列的所有相关信息。


我们必须告诉解码器要生成哪种语言。它需要一个语言标识,也就是在每个时间步骤上连接到输入和句子嵌入的标识。我们使用具有 50,000 个操作的联合字节对编码(BPE)词汇表,在所有连接的训练语料库上进行训练。由于编码器没有指示输入语言的显式信号,因此编码器需要学习与语言无关的表示。我们基于公共并行数据的 2.23 亿个句子(它们与英语或西班牙语对齐)训练我们的系统。对于每个迷你批次,我们随机选择一种输入语言,让系统将句子翻译成英语或西班牙语。大多数语言都与目标语言保持一致,虽然这不是必需的。


我们刚开始训练了不到 10 种欧洲语言,所有语言都使用了相同的拉丁文字。后来,我们逐渐增加到 Europarl 语料库中提供的 21 种语言,结果表明,随着我们添加的语言越来越多,多语言迁移性能也得到了提升。系统学习了语言家族的通用特征。通过这种方式,低资源语言可以从同一族高资源语言的资源中获益。


这可能可以通过使用在所有语言的连接上训练的共享 BPE 词汇表来实现。我们对每种语言 BPE 词汇表分布之间的对称 Kullback-Leiber 距离进行了分析和聚类,结果显示,Kullback-Leiber 距离与语言家族具有几乎完美的相关性。



LASER 自动发现各种语言之间的关系,与语言学家手动定义的语言家族非常吻合。


我们意识到,单个共享的BiLSTM编码器可以处理多个脚本。我们逐渐扩展到所有可以识别免费并行文本的语言。被纳入LASER的93种语言包括SVO顺序(例如英语)、SOV顺序(例如孟加拉语和突厥语)、VSO顺序(例如塔加路语和柏柏尔语),甚至是VOS顺序(例如马达加斯加语)的语言。


我们的编码器可以推广到未使用的语言(甚至是单语文本)。我们发现了它在一些区域语言上表现良好,例如阿斯图里亚斯语、法罗语、弗里斯兰语、卡舒比语、北摩鹿加语马来语、皮埃蒙特语、斯瓦比亚语和索布语。所有这些语言都在不同程度上与其他主要语言有一些相似之处,但它们的语法或特定词汇有所不同。



LASER 在 XNLI 语料库上的零样本迁移性能

零样本跨语言的自然语言推理

我们的模型在跨语言自然语言推理(NLI)中获得了良好的效果。在这项任务上的表现是一个强有力的指标,它能够很好地说明这个模型是如何表达一个句子的意思的。我们针对英语训练 NLI 分类器,然后将其应用于所有目标语言,不需要进行微调或使用目标语言资源。在 14 种语言中,有 8 种语言的零样本性能表现在英语的 5%以内,包括俄语、中文和越南语等。我们在斯瓦希里语和乌尔都语等低资源语言上也取得了很好的成绩。最后,LASER 在 14 种语言中的 13 种语言上的表现优于所有以前的零样本迁移方法。


与之前的方法不同,之前的方法需要一个英语句子,而我们的系统是完全多语言的,并且支持不同语言的任意前提和假设组合。



LASER 如何在不同语言的 XNLI 语料库中确定句子之间的关系。以前的方法只考虑相同语言的前提和假设。


同样的句子编码器也被用于挖掘大量单语文本中的并行数据。我们只需要计算所有句子对之间的距离,并选择最接近的句子对。我们考虑了最近句子和其他最近句子之间的距离,以此来进一步改进该方法。我们使用了Facebook的


FAISS库


来高效执行这个搜索。


我们在共享 BUCC 任务上的表现远远超过了现有水平。我们的系统明显是为完成这个任务而开发的。我们将德语/英语的 F1 得分从 85.5 提高到 96.2,法语/英语从 81.5 提高到 93.9,俄语/英语从 81.3 提高到 93.3,汉语/英语从 77.5 提高到 92.3。正如这些示例所示,我们的结果在所有语言中都是高度同质的。


该方法的详细信息可以在这篇研究论文中找到:https://arxiv.org/abs/1812.10464


同样的方法也适用于使用任意语言对在 90 多种语言中挖掘并行数据。预计这将显著改善许多依赖于并行训练数据的 NLP 应用程序,包括低资源语言的神经机器翻译。

未来的应用

LASER 还可以用于其他相关任务。例如,多语言语义空间特性可用于解释一个句子或搜索具有类似含义的句子——可以使用相同的语言,也可以使用 LASER 目前支持的 93 种其他语言中的任意一种。我们将继续改进我们的模型,在现有的 93 种语言基础上增加更多的语言。


英文原文:https://code.fb.com/ai-research/laser-multilingual-sentence-embeddings/


2019-01-23 13:546967
用户头像

发布了 38 篇内容, 共 29.9 次阅读, 收获喜欢 206 次。

关注

评论

发布
暂无评论
发现更多内容

架构实战营-模块2-作业

lucian

架构实战营

【LeetCode】分糖果Java 题解

Albert

算法 LeetCode 11月日更

移动App应用进入存量竞争阶段,如何全维度洞察用户体验?

博睿数据

微信朋友圈的高性能复杂度分析

Puciu

架构实战营

eSOL和RTI合作支持汽车和工业自动化市场快速开发

薛斐

自动驾驶

IM扫码登录技术专题(四):你真的了解二维码吗?刨根问底、一文掌握!

JackJiang

即时通讯 IM 二维码 扫码

模块二作业

panxiaochun

架构实战营

降本增效利器之 Serverless

中原银行

Serverless 云原生 函数计算 中原银行

#每个人的掌上图书馆# 藏书馆App基于Rainbond实现云原生DevOps的实践

北京好雨科技有限公司

容器 DevOps 云原生 k8s最佳实践 Kubernetes从入门到精通

Android TTS语音播报实践

轻口味

android 音视频 TTS 11月日更

Python代码阅读(第49篇):限制一个数在指定范围内

Felix

Python 编程 Code Programing 阅读代码

微信朋友圈架构复杂度分析

Geek_nlp小咖

架构 微信朋友圈

crm的核心是什么?CRM对企业的核心作用是什么?

低代码小观

企业 企业管理 CRM 管理系统 CRM系统

架构实战营模块二作业

spark99

架构实战营

阿里云消息队列 RocketMQ 5.0 全新升级:消息、事件、流融合处理平台

阿里巴巴云原生

阿里云 产品 RocketMQ 云原生

趣谈装饰器模式,让你一辈子不会忘

Tom弹架构

Java 架构 设计模式

微信朋友圈复杂度分析

AHUI

架构实战营 「架构实战营」

全项指标第一,腾讯V265与新一代VAV1自研编码器登顶MSU视频编码器大赛

科技热闻

实时语音如何过质量关?

声网

深度学习 算法 音视频

Thoughtworks 正式成为阿里云云原生核心合作伙伴,携手共创数字新未来!

阿里巴巴云原生

阿里云 云原生 thoughtworks 合作伙伴

模块二作业

周文

架构实战营 「架构实战营」

Java 中 List 分片的 5 种方法!

王磊

Java List

为面试加油助力,90个常见的Kubernetes面试题,值得收藏学习

奔着腾讯去

Docker Kubernetes 容器 云原生 Go 语言

《黑客之到》- 全网最详细的kali系统安装教程

学神来啦

网络安全 渗透 kali kali基础

架构实战 - 模块二

唐敏

架构实战营

创业邦聚焦新消费,2021 跨时代消费新发展峰会圆满落幕

创业邦

元宇宙的三个阶段

石云升

元宇宙 11月日更 10月月更

分析微信朋友圈的高性能复杂度

Steven

架构实战营

亿滋中国X阿里云,释放新零售的数字化力量

阿里云大数据AI技术

大数据 零售

电商秒杀系统设计

张文龙

#架构实战营

架构设计第二周学习总结

周文

架构实战营 「架构实战营」

  • 扫码加入 InfoQ 开发者交流群
Facebook开源工具包LASER,支持93种语言_开源_HOLGER SCHWENK_InfoQ精选文章