关于人工智能:模型训练语料少知识蒸馏解决烦恼

1次阅读

共计 3594 个字符,预计需要花费 9 分钟才能阅读完成。

作为深度学习的根底,人工神经网络模型始终是人工智能的钻研热点,也在各个领域施展着重要的作用。好的模型往往随同着宏大的体积和海量的参数,这不利于模型的复现和部署。

拿自然语言解决畛域(NLP)中最常见的词向量模型来举例。想要训练一个高质量的词向量模型,就须要大量优质的语料来反对。对于应用宽泛的语种,比方英语,获取语料和训练模型绝对容易。反观一些小语种,语料少,获取难,纵有再好的网络结构,训练进去的模型性能也不尽人意。

难道小语种的 NLP 钻研就没方法推动上来了吗?

常识蒸馏

常识蒸馏算法为解决这类问题提供了一种新的思路。在化学中,蒸馏是一个无效的拆散沸点不同的组分的办法,同理,简略地了解常识蒸馏, 它能将简单模型(Teacher)中的常识提取进去,迁徙到另一个轻量级模型(Student),达到压缩模型的目标。 这种做法既缩小了对硬件的要求,缩短了计算工夫,又能学到简单模型中的泛化能力,实现近似原模型的成果。

通过这种办法,小语种的词向量模型也能像英语词向量模型一样精确。
接下来让咱们看看,小模型是如何解决大问题的~

词向量是什么

所有自然语言解决工作都始于文本在计算机中的示意。随着文本示意办法的一直演变,目前最热门的办法当属词向量模型。 它的核心思想是通过大量的语料训练,将词转化为浓密的向量,映射到向量空间中,并且对于意思相近的词,它们对应的向量也相近。

精确的词向量模型是其余上游工作(文本类似度、情感分类、信息抽取等)的根底和保障。想要取得优质的词向量模型,须要大量高质量的语料的反对。然而,绝大多数现有的词向量办法都有一个共同点——它们只反对单语言,通常是英语。这使得它们无奈间接利用到其余语言场景中。

上图展现了一个词向量的简略例子:
词向量模型能够将“king”,“queen”,“man”,“woman”映射到一个向量空间中去,通过向量的根本运算(例如相加和相减),咱们能够计算出这些词之间的语义关系。
在这个例子中,queen=king-man+woman

词向量 + 常识蒸馏 =?

近年来,多语种的文本示意办法受到了宽泛的关注,人们提出了很多计划试图解决这个问题。常见的办法就是别离用每种语言来训练对应的词向量模型,但因为有些语种的语料很少,难以满足模型训练的要求。

曾有学者提出应用经典的基于 sequence-to-sequence 的 encoder-decoder 框架,首先实现从一种语言到另一种语言的机器翻译模型,而后将 encoder 层的输入作为句子的向量(LASER 模型)。

这种模型能够很好地辨认出被精确翻译成不同语言的句子,然而对于没有被精确翻译的句子,该模型很难评估他们的类似度。另外,训练这种模型也须要极高的硬件条件反对,失去一个反对 93 种语言的词向量模型,大概须要在 16 块 NVIDIA V100 GPUs 上训练 5 天工夫。

最近,有相干钻研人员想到了一个 idea 来解决这个问题:对于意思雷同,然而翻译成了不同语言的句子,他们映射到向量空间中的地位应该是统一的。基于此,他提出应用常识蒸馏的办法,将现有的单语言词向量模型扩大到新的语言下来。

整体的解决思路如下:
咱们须要一个源语言的词向量模型作为 teacher model,一个从源语言 s 到目标语言 t 的平行语料库 ((s1,t1), … ,(sn , tn)),值得注意的是,ti 能够是不同的语种。而后,应用均方误差作为 loss,训练一个 student model,使得 student model 的输入尽可能地凑近 teacher model。

通过这样的形式,student model 能够很好地学习到 teacher model 的泛化能力,并且领有两条十分重要的属性:

A. 跨语言的向量空间也呈现出一致性。换言之,由同一个句子翻译成的不同语言,它们的向量是十分靠近的;
B. teacher model 中所蕴含的向量空间的属性能被很好地转移到其余语种中去。

相比于其余的训练多语言词向量模型的办法,这种办法有如下几个长处:

A. 仅仅只须要十分大量的样本,就能够将已有的模型扩大到新的语言下来;
B. 它能够更容易地在向量空间中确保达到预期的性能;
C. 整个训练过程对硬件的要求非常低。

为了验证想法的可行性,相干科研人员做了以下的试验:

在模型的抉择方面 ,次要应用英语的 SBERT 模型作为 teacher model,应用 XLM-RoBERTa(XLM-R)作为 student model。英语的 SBERT 模型词典蕴含了 30k 的英语 tokens,在多个句向量工作中获得了 state-of-the-art 的成果。XLM- R 应用了 SentencePiece 作为文本分词器,很好地回避了某些语种所须要的非凡预处理,能够间接利用到所有语言的原始文本下来,此外,它的词典蕴含来自一百多种语言的 250k 的 tokens,非常适合做多语言词向量模型。

在训练数据方面 ,次要应用了以下的数据集:

对于某些资源较少的语言,获取平行语料是很艰难的,因而也应用了一些双语词典来裁减语料,本次试验次要应用到的词典有以下两个:
• MUSE
• Wikititles

为了验证模型成果,钻研人员次要在 Multi- and Cross-lingual Semantic Textual Similarity (STS),Bitext Retrieval 和 Cross-lingual Similarity Search 三个工作上进行了试验。

STS 工作的次要指标是为一对句子输入一个值来反映它们之间的语义类似度。 例如,能够用 0 分示意两个句子齐全无关,5 分示意两个句子的语义完全一致。

在公开数据集 STS 2017 dataset 上,作者应用斯皮尔曼等级相关系数来评估不同模型的成果。将多个语种的得分取平均值,咱们能够发现,蒸馏模型 XLM-R←SBERT-paraphrases 的后果(83.7)优于其余传统算法模型 LASER(67.0),mUSE(81.1),LaBSE(73.5)。

Bitext Retrieval 工作旨在从两个不同语种的语料库中辨认出互为翻译的句子对。 作者应用 BUCC mining task 中的数据集来计算模型的 F1 值,蒸馏模型 XLM-R←SBERT-paraphrases 的后果(88.6)和其余传统算法模型 LASER(93.0),mUSE(87.7),LaBSE(93.5)互有高下。因为蒸馏模型会把某些语义类似然而缺失局部细节元素(例如日期,地点等)的句子也判断成互为翻译的句子对,所以在这个工作下,它的后果不是最好的。然而这依然可能阐明,它非常适合寻找语义类似的句子对。

对于 Cross-lingual Similarity Search 工作,作者抉择了在 Tatoeba 数据库上进行试验。 这个工作须要找到与所有源语言的句子最类似的其余语言的句子,后果如下:

能够看到在小语种上,蒸馏模型的成果要显著好于传统模型。

明天和大家分享了一种基于蒸馏思维的训练词向量模型的办法,能够实现将一个高质量的单语言模型扩大到其余语言下来。从试验后果来看,对于常见问题,蒸馏模型也能有不错的成果,在小语种上的体现尤为突出,同时蒸馏模型也节俭了很大一部分的硬件开销,是很值得尝试的一种办法。

后续咱们还会分享更多相干畛域的文章,感兴趣的小伙伴们不要忘了关注咱们的账号 LigaAI@sf,同时欢送点击咱们的官方网站 LigaAI- 新一代智能研发治理平台,理解咱们~

参考文献:

[1] Reimers N , Gurevych I . Making Monolingual Sentence Embeddings Multilingual using Knowledge Distillation[J]. 2020.
[2] Artetxe M , Schwenk H . Massively Multilingual Sentence Embeddings for Zero-Shot Cross-Lingual Transfer and Beyond[J]. 2019.
[3] Chidambaram M , Yang Y , Cer D , et al. Learning Cross-Lingual Sentence Representations via a Multi-task Dual-Encoder Model[C]// Proceedings of the 4th Workshop on Representation Learning for NLP (RepL4NLP-2019). 2019.
[4] Yang Y , Cer D , Ahmad A , et al. Multilingual Universal Sentence Encoder for Semantic Retrieval[J]. 2019.
[5] Feng F , Yang Y , Cer D , et al. Language-agnostic BERT Sentence Embedding[J]. 2020.
图源:https://www.ed.ac.uk/informat…

正文完
 0