TinyBERT搜索: 比BERT快10倍,小20倍

2020 年 1 月 18 日 专知

【导读】TinyBERT是谷歌开发的新模型,与传统BERT相比,它快10倍,小20倍,可在CPU上运行。


作者:Jack Pertschuk,Cole Thienes


最近,Google推出了一种新的搜索模型。该方法基于流行的开源Transformer BERT,它使用语言理解来解决传统关键字方法无法做到的搜索,提升搜索的体验。


特别是对于更长的,更多的对话查询,或诸如“ for”和“ to”之类的介词与含义有很大关系的搜索,改进后的搜索引擎将能够理解查询中单词的上下文。用户可以通过一种自然的方式进行搜索。

-Google搜索副总裁Pandu Nayak


本文构建了NBoost模型,并在此过程中使用了TinyBERT进行搜索,以使非专业人也可以轻松使用高级搜索排名模型


更小,更快的BERT


BERT可以改善搜索结果,但有一个要点:要运行这些查询理解模型需要资源。尤其是当响应时间至关重要且必须处理数百万次搜索时。这项挑战是如此艰巨,以至于Google甚至构建了自己的硬件(云TPU)来运行模型。


为了在标准硬件上运行这些模型,我们使用知识蒸馏,该过程,用较大的教师网络训练较小的学生网络,学生网络保证了大多数准确性,但使用的层数较少(通常较小),从而使其变得更小且更快。

TinyBERT架构

参考华为的代码(https://github.com/huawei-noah/Pretrained-Language-Model/tree/master/TinyBERT),并对其进行了修改,我们进行了知识蒸馏。并在MS Marco数据集进行训练和评估。我们先使用MS Marco训练三元组在PyTorch中训练了一个基于bert的教师网络。然后,我们用它作为教师来训练一个较小的学生BERT网络,该网络只有4个隐藏层(标准BERT是12)。此外,这些层中的每一个只有312维(标准BERT是768),从而使模型更加轻巧。我们在BERT的末尾增加二元分类的前馈网络来生成得分以进行搜索排名。

以下是我们使用的tinyBERT架构的示例bert_config.json,与标准bert_config的显着区别是加粗的。

{
“attention_probs_dropout_prob”: 0.1,
“cell”: {},
“emb_size”: 312,
“hidden_act”: “gelu”,
“hidden_dropout_prob”: 0.1,
“hidden_size”: 312,
“initializer_range”: 0.02,
“intermediate_size”: 1200,
“max_position_embeddings”: 512,
“num_attention_heads”: 12,
“num_hidden_layers”: 4,
“pre_trained”: “”,
“structure”: [],
“type_vocab_size”: 2,
“vocab_size”: 30522

}

评估


MS Marco是现实世界中搜索引擎使用情况数据的最大公共来源,使其非常适合评估搜索和问答模型。当BERT Base首次在MSMarco上使用时,它以0.05的MRR击败了最新技术。基于BERT的解决方案仍然位于排行榜的顶部。我们的目标是找到一种方法,以一种足以在现实世界中使用的模型来实现这一目标。

TinyBERT,虽然不如BERT Base有效,但我们的实验表明,它保留了BERT Base MRR分数的90%(0.26与BM25排名前50位的0.29对比0.29,而使模型快10倍,小20倍)。但是,基于学术基准(例如MS Marco)的结果通常缺乏现实世界的可概括性,因此应谨慎考虑。


原文链接:https://towardsdatascience.com/tinybert-for-search-10x-faster-and-20x-smaller-than-bert-74cd1b6b5aec




专知,专业可信的人工智能知识分发,让认知协作更快更好!欢迎注册登录专知www.zhuanzhi.ai,获取5000+AI主题干货知识资料!
欢迎微信扫一扫加入专知人工智能知识星球群,获取最新AI专业干货知识教程视频资料和与专家交流咨询
点击“阅读原文”,了解使用专知,查看5000+AI主题知识资料
登录查看更多
4

相关内容

BERT全称Bidirectional Encoder Representations from Transformers,是预训练语言表示的方法,可以在大型文本语料库(如维基百科)上训练通用的“语言理解”模型,然后将该模型用于下游NLP任务,比如机器翻译、问答。
BERT技术体系综述论文:40项分析探究BERT如何work
专知会员服务
137+阅读 · 2020年3月1日
BERT进展2019四篇必读论文
专知会员服务
64+阅读 · 2020年1月2日
【Google论文】ALBERT:自我监督学习语言表达的精简BERT
专知会员服务
22+阅读 · 2019年11月4日
使用BERT做文本摘要
专知
23+阅读 · 2019年12月7日
绝对干货!NLP预训练模型:从transformer到albert
新智元
13+阅读 · 2019年11月10日
基于知识蒸馏的BERT模型压缩
大数据文摘
18+阅读 · 2019年10月14日
BERT源码分析PART I
AINLP
38+阅读 · 2019年7月12日
站在BERT肩膀上的NLP新秀们:XLMs、MASS和UNILM
PaperWeekly
16+阅读 · 2019年6月6日
使用 Bert 预训练模型文本分类(内附源码)
数据库开发
102+阅读 · 2019年3月12日
BERT大火却不懂Transformer?读这一篇就够了
大数据文摘
11+阅读 · 2019年1月8日
图解2018年领先的两大NLP模型:BERT和ELMo
新智元
9+阅读 · 2018年12月14日
Revealing the Dark Secrets of BERT
Arxiv
4+阅读 · 2019年9月11日
Arxiv
6+阅读 · 2019年8月22日
Arxiv
11+阅读 · 2019年6月19日
How to Fine-Tune BERT for Text Classification?
Arxiv
13+阅读 · 2019年5月14日
Arxiv
21+阅读 · 2019年3月25日
VIP会员
相关资讯
使用BERT做文本摘要
专知
23+阅读 · 2019年12月7日
绝对干货!NLP预训练模型:从transformer到albert
新智元
13+阅读 · 2019年11月10日
基于知识蒸馏的BERT模型压缩
大数据文摘
18+阅读 · 2019年10月14日
BERT源码分析PART I
AINLP
38+阅读 · 2019年7月12日
站在BERT肩膀上的NLP新秀们:XLMs、MASS和UNILM
PaperWeekly
16+阅读 · 2019年6月6日
使用 Bert 预训练模型文本分类(内附源码)
数据库开发
102+阅读 · 2019年3月12日
BERT大火却不懂Transformer?读这一篇就够了
大数据文摘
11+阅读 · 2019年1月8日
图解2018年领先的两大NLP模型:BERT和ELMo
新智元
9+阅读 · 2018年12月14日
相关论文
Revealing the Dark Secrets of BERT
Arxiv
4+阅读 · 2019年9月11日
Arxiv
6+阅读 · 2019年8月22日
Arxiv
11+阅读 · 2019年6月19日
How to Fine-Tune BERT for Text Classification?
Arxiv
13+阅读 · 2019年5月14日
Arxiv
21+阅读 · 2019年3月25日
Top
微信扫码咨询专知VIP会员