分享

Green Deep Learning:NLP在大模型之外的另一种思路!

 520jefferson 2022-01-20

Image


编辑整理徐泽凯 爱丁堡大学

出品平台:DataFunTalk


导读:过去的一两年内,关于预训练模型的信息会频繁的出现在各种各样的公共论坛及公众号上。从最开始的谷歌推出来的各种非常大的模型到现在每个公司都开始去做自己的预训练模型,这些新闻都已经不足为奇,然而这些大模型背后都有一个共同的特点就是计算量爆炸,所以Green Deep Learning是在大时代背景下被提出的一个全新的方向。

今天的介绍会围绕下面三点展开:

  • 绿色深度学习是什么

  • 绿色的神经网络结构搜索

  • 绿色词表学习

01
绿色深度学习是什么

首先给大家介绍下绿色深度学习。

1. 绿色深度学习的目的

Image

让我们的AI模型在得到新的或者更好的结果的情况下,可以使环境更加友好,可以让使用的计算量更低,或者是在不增加计算量的情况下得到更好的结果。它提出让大家去探索除了增加数据和增加模型以外的另一种可能。

2. 随之而来的好处

对于各大工业界来说,以前在线上运用的时候可能需要有一些规定的指标,而模型小了之后,自然而然一些好结果可以上线。随着时代的发展,NLP的Research越来越需要算力,很多关注度比较多的论文都是一些大公司贡献出来的,尽管这些公司凭借着自己的算力来推动整个业界的发展是非常好的,但是green NLP可以鼓励更多的人来参与到research中,这样对整个NLP的发展会有一些良性的反馈。

02
绿色的神经网络结构搜索

神经网络结构搜索这个想法是指在给定一个任务的情况下,利用算力来代替人力来设计出一些更好的网络结构模型。

1. 传统的NAS

Image

为了检测模型的效果,很多传统的NAS需要在下游的任务上对结构进行训练验证,整个过程十分麻烦,而且如果数据集较大的话,那么验证模型是否有效的计算量也是很大的。

2. Training-free Green NAS

① 想法与贡献

在不需要下任务或尽可能少任务的情况下去训练和评测模型结构。

Image

② MGM Kernel

Image

理解:把所有的网络模型结构拉成一个向量,那么每一个样本的梯度也是这样的一个向量,不同样本之间的向量乘起来就可以组成一个矩阵,那么这个矩阵任意的一个元素就相当于第i个数据和第j个数据之间关联的一个点集。核被广泛用到了算模型结构,收敛性,还有一些泛化性的分析上。

Image

③ KNAS

  • Step 1: Architectures with top-k MGM kernels

  • Step 2: Evaluate them

因为存在着一个正相关关系,所以不是最大的就一定好。大概的流程是首先取一个tradeoff并将其top-K MGM 核取出,然后再下达任务去进行训练。

Image

接下来把我们的方案与之前的方案进行对比。基于梯度的方法是之前常用的一个方法,利用梯度去进行搜索从而让模型去学习一个策略,优点是效果比较快,但效果不是很稳定。还有一些传统的方法,优点是效果很好,但是却不一定能够做得很快。而我们的方法相当于是一个折衷,优点是获得结果的速度很快并且在一些基准数据集上验证了其效果。它的实际效果如上图所示,蓝色的柱状代表正确度,而红色的柱状代表加速比,最后一列是最终结果。很明显,我们方法结果的正确度和其他的已经基本持平,这是一个非常有竞争力的结果,与此同时加速比也是非常显著的,所以这个数据集上的表现十分出色。

Image

为了分析泛化性,我们在一些文本分析类的任务,比如说MRPC或者RTE上做了验证,结果很不错,上图也很明显的体现出了比Roberta-large更好的效果。

03
绿色词表学习

无论是业务还者研究,比如情感分析、机器翻译,所有代码基本上都离不开词表。

1. 评价词表

什么会影响一个词表的好坏,这里就主要考虑了两个因素,一个是熵(Information Per Char(IPC)),一个是词表大小。

Image

① 词表大小

词表大小的因素是显而易见的,词表大意味着叙述单词多,同时也会影响模型的参数量。

② 熵(InformationPer Char(IPC))

越小越好,因为semantic meanings越少,也就意味着一词多义的现象越少,所以模型会更容易去区分和理解。

③ 最大边际收益

其衡量的是每一个单位的成本的增长能够带来的最大收益。如果把词表大小看成成本,把IPC看成收益,这样就可以自然而然的找到一个最大收益,这即是最终的目的。

Image

将MUI指标和下游的MT的表现做一个简单的联系,随后通过BPE的方式可以得到很多的词表,根据最大边际收益的算法算出每个词表的分数,可以发现在所有的参数都一定的情况下,MUI和BLEU有一定的相关关系。但是值得强调的一点是这个关系不是一个很强的相关关系,因为很多因素可能影响这个结果比如模型架构和模型参数量等等。

2. 寻找最优词表

有了最大边际收益之后,自然而然寻找最优词表的问题就转化成一个离散优化的问题,相当于从离散空间里找到分数最大的词表。OT就是解决方法之一。

① Optimal Transport

Image

在第二次世界大战中,在前线死亡了很多士兵,所以需要新的士兵支援,然而支援的士兵在不同的后方且对不同的前线有着不同的距离,与此同时不同的前线对士兵有不同的需求,而optimal transport是总的转移代价最低的一个方案。

将训练集里面的character看成是一个士兵比如a,c,t,数它们的在训练集出现的频率就可以得到它们的数目,随后将所有的tokens看成前线,即频率就是它们的需求,比如cat,可能需要60个a,60个c,60个t来组合成它,不同的token都有自己的需求,但不是所有的token都可以实现自己的需求,因为character的个数是有限的,如下图。

Image

② Experiments

Image

首先将VOLT在Bilingual MT上做了一个实验,可以看到词表大小减少明显,同时BLEU基本上和之前持平。

Image

在Multilingual MT上,蓝色的柱状是流行的baseline,红色的是这里用到的一个baseline,可以看到它的效果是比之前的效果更好。

04
精彩问答

Q:中文词表优化有没有比较好的方法?比如说VOLT这项技术的话,怎么在中文应用以及在工业界落地,有没有更好的一些经验?

A:VOLT其实没有针对任何一个词表,它是可以用到中文的处理的。中文最传统的词表可能就是去切一下,现在词级别的,比如sentencepiece把整个句子看成是一个东西,然后用subword去切,目前这种方式比较普遍。所以如果只是用的话,目前sentencepiece那一套是一个很不错的词条解决方案。VOLT的贡献是在选择中文词表的时候,可以告诉你到底选多少词,以及选多大的词,很有意思的一点是VOLT搜索出来的词表大小,如果用BPE sentencepiece那一套的话,其实也可以得到一个还不错的效果,所以从这种层面上来讲,VOLT也可以看作是一个size寻找的工具。与此同时,VOLT在中英翻译上做实验的效果也还是不错的。

今天的分享就到这里,谢谢大家。


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多