9

速度×6,模型缩小20倍:用华为&华科的TinyBERT做搜索,性能达BERT 90%

 4 years ago
source link: https://www.qbitai.com/2020/01/11099.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

原作:Jack Pertschuk

鱼羊 编译整理

量子位 报道 | 公众号 QbitAI

在各大NLP榜单大杀四方的BERT,自打正式加入搜索引擎中,用户搜索体验确实更丝滑了。

不过,强大往往也意味着复杂。

BERT对算力、内存要求很高,为了使其顺利应对成百万次的搜索,谷歌不得不搭建起专门的Cloud TPU来满足其计算量。

那么,问题来了。不像谷歌那样财大气粗,就用不上BERT搜索了呗?

不知道你是否听说过,华为诺亚方舟实验室和华中科技大学联手打造的 TinyBERT

现在,就有人用这个Transformer蒸馏方法,让BERT搜索 变快6倍 ,模型大小则只有原来的 1/20

7RZJFnU.jpg!web

TinyBERT搜索

首先,用微软的MS Marco训练三元组,在PyTorch中训练一个基于BERT的教师网络。

注:MS Marco:微软机器阅读理解数据集,由10万个问答组成

然后,让教师网络训练一个较小的学生BERT网络,这个学生网络只有4个隐藏层,而非标准的12层。

每一层的大小仅为312,以使模型更为轻巧。

在整个模型的最后,采用前馈二进制分类层来生成得分,进行搜索排名。

JzyAR37.jpg!web

模型的具体参数如下,加粗部分是与标准BERT不同的部分。

<img src="http://www.qbitai.com/wp-content/uploads/2020/01/屏幕快照-2020-01-23-上午10.54.25-300x184.png" alt="" width="300" height="184" srcset="https://www.qbitai.com/wp-content/uploads/2020/01/屏幕快照-2020-01-23-上午10.54.25-300x184.png 300w, https://www.qbitai.com/wp-content/uploads/2020/01/屏幕快照-2020-01-23-上午10.54.25-768x472.png 768w, https://www.qbitai.com/wp-content/uploads/2020/01/屏幕快照-2020-01-23-上午10.54.25-1024x629.png 1024w, https://www.qbitai.com/wp-content/uploads/2020/01/屏幕快照-2020-01-23-上午10.54.25.png 1026w" sizes="(max-width: 300px) 85vw, 300px" />

那么,用TinyBERT来做搜索,效果如何呢?

作者用MS Marco数据集对其进行检验。这一数据集采集自Bing的实际使用情况,是最大的公共搜索引擎使用情况数据集。

J736zii.jpg!web

虽然在搜索效果的改进上,TinyBERT的性能只达到了BERT的90%,但速度提升了5倍,并且模型大小仅为BERT的1/20。

谷歌:用BERT做搜索

2019年10月底,谷歌将BERT加入到他们的搜索引擎当中。

谷歌搜索副总裁Pandu Nayak表示:

对于比较长、会话性比较强的查询,或者在“for”、“to”这样的介词比较重要的语句中,使用了BERT的搜索引擎能够更好地理解查询中单词的上下文。

比如,当输入“2019 brazil traveler to usa need a visa”(2019年前往美国的巴西旅行者需要签证)这样一条查询语句时,“to”这个词起到了关键的联系作用(巴西人→美国)。

iAvYreU.jpg!web

BERT未加入前,搜索引擎的算法无法理解这种关联,因此返回了有关前往巴西的美国公民(美国人→巴西)的结果。

而有了BERT,搜索引擎就能把握住其中细微而关键的差别了。

IjABFva.jpg!web

TinyBERT

而针对BERT这样的庞大模型难以部署到算力、内存有限的设备中的问题,华为诺亚方舟实验室和华中科技大学合作开源了 TinyBERT

Zn2MJjA.jpg!web

应用知识蒸馏(knowledge distillation,KD)的方法,大型教师模型BERT中编码的大量知识,能被很好地迁移到小型学生模型TinyBERT中。

研究人员还提出了一种专门用于TinyBERT的两段式学习框架,分别在预训练阶段和特定任务学习阶段进行transformer蒸馏。

这样,就能确保TinyBERT可以获取教师模型在通用和特定任务知识上的经验。

2iUBBzQ.jpg!web

在GLUE基准上,TinyBERT的性能与BERT相当,仅下降了3个百分点。

MVNniib.jpg!web

并且,模型大小不到不到BERT的1/7,推理速度是BERT的9.4倍。

v2yy2aA.jpg!web

传送门

博客:https://towardsdatascience.com/tinybert-for-search-10x-faster-and-20x-smaller-than-bert-74cd1b6b5aec

TinyBERT论文:https://arxiv.org/abs/1909.10351

TinyBERT开源地址:https://github.com/huawei-noah/Pretrained-Language-Model/tree/master/TinyBERT

— 完 —

版权所有,未经授权不得以任何形式转载及使用,违者必究。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK