谷歌NLP新模型「大鸟」突破BERT限制,稀疏注意力机制更省内存

本文涉及的产品
NLP自然语言处理_基础版,每接口每天50万次
NLP 自学习平台,3个模型定制额度 1个月
NLP自然语言处理_高级版,每接口累计50万次
简介: 最近Google又发了一个NLP模型,名字也很喜感Big Bird!这只大鸟在长文本任务中能胜过BERT,它有哪些独特之处呢?

微信图片_20220109141451.png


谷歌最近又推出了一个重磅的稀疏注意力模型:Big Bird。
 之前各种刷榜的BERT和它的各种衍生版本RoBERTa等,都是构建在Transformer基础上。 这些模型的核心竞争力就是全注意力机制,但这种机制会产生序列长度的二次依赖,如果输入的token过长,会撑爆内存,而长文本摘要等任务中,BERT的512token,就显得有点捉襟见肘。  


二次依赖限制了BERT


BERT中token的长度一般设置为512,这对普通的NLP任务来说足够了,但是想对一整篇文章或者一本书进行信息挖掘,也就是长文本任务,512的长度就有点短,把token长度变为1024的话,所需的计算量就会变成原来的4倍,对内存是很伤的。       


微信图片_20220109141454.png    

如果能把这个n^2的复杂度降下来,那么就能实现一个长距的上下文注意力机制,而不会把内存撑爆,这就是Big Bird要做的事。      


微信图片_20220109141456.png      

 谷歌团队解决这个问题的方法,是引入一种全新的稀疏注意力机制:Big Bird。


谷歌「大鸟」:稀疏注意力机制更省内存


Big Bird相对于传统的全注意力机制来说变的更稀疏,作为更长序列上的Transformer,Big Bird不仅能注意到更长的上下文信息,还将计算的二次依赖降低到了线性。 我们来看下Big Bird是如何构建的。

     微信图片_20220109141457.png


图(a)表示r=2的随机注意力机制,图(b)表示w=3的局部注意力机制,图(c)表示g=2的全局注意力机制,图(d)是三者加起来的Big Bird模型。 


图中空白的部分表示没有注意,有颜色的部分才能得到关注,有点像dropout的选择性丢弃。 注意的部分减少了,性能会不会打折扣,我们来看下实验结果。 


实验:三种注意力机制结合效果最好


只采用随机注意力机制、局部注意力机制,或者两者融合起来,都没有三者合体的效果好。 Global+R+W在MLM任务上超过了BERT-base,在SQuAD和MNLI任务上接近了BERT-base,但是考虑到内存上节省了很多资源,还是有其实用价值。


      微信图片_20220109141459.png      


使用基础的模型,在HotpotQA、Natural QA、 TriviaQA和WikiHop四个问答任务上进行了测试,结果表明Big Bird均超越了RoBERTa和Longformer。 


微信图片_20220109141501.png


在长文本摘要中,Big Bird也是表现出了很好的潜力,在Arxiv,PubMed,BigPatent上均取得了最好成绩。


微信图片_20220109141503.png


使用这些数据集,因为它们都是长文档,输入不仅仅是512个token,更容易对比长文本的特征提取能力和模型的总体性能。 reddit上有网友对Big Bird提出了质疑认为Big Bird只是另一种Longformer,没有什么本质创新。

        微信图片_20220109141505.png      

有网友说,最近爆火的GPT-3也用了稀疏注意力机制,但是因为OpenAI的blocksparse太久没更新了,所以不知道二者有没有内在的相似性。      


微信图片_20220109141507.png  

谷歌发表的一些研究,之前也有人提出过类似的,但只有谷歌发出来,才能得到广泛的关注,进大厂发论文的概率还是高啊。


期待Big Bird给NLP任务带来新的惊喜!

相关文章
|
6天前
|
机器学习/深度学习 自然语言处理 PyTorch
从零开始构建nlp情感分析模型!
本教程介绍了如何使用PyTorch和Hugging Face的Transformers库构建一个情感分析模型。主要内容包括导入所需库、读取训练数据集、加载预训练的BERT模型和分词器、定义情感数据集类、划分训练集和验证集、创建数据加载器、设置训练参数、训练模型、评估模型性能以及定义和测试预测函数。通过这些步骤,可以实现一个简单而有效的情感分析模型。
17 2
|
1月前
|
自然语言处理 PyTorch 算法框架/工具
掌握从零到一的进阶攻略:让你轻松成为BERT微调高手——详解模型微调全流程,含实战代码与最佳实践秘籍,助你应对各类NLP挑战!
【10月更文挑战第1天】随着深度学习技术的进步,预训练模型已成为自然语言处理(NLP)领域的常见实践。这些模型通过大规模数据集训练获得通用语言表示,但需进一步微调以适应特定任务。本文通过简化流程和示例代码,介绍了如何选择预训练模型(如BERT),并利用Python库(如Transformers和PyTorch)进行微调。文章详细说明了数据准备、模型初始化、损失函数定义及训练循环等关键步骤,并提供了评估模型性能的方法。希望本文能帮助读者更好地理解和实现模型微调。
63 2
掌握从零到一的进阶攻略:让你轻松成为BERT微调高手——详解模型微调全流程,含实战代码与最佳实践秘籍,助你应对各类NLP挑战!
|
24天前
|
机器学习/深度学习 人工智能 自然语言处理
【大语言模型-论文精读】谷歌-BERT:用于语言理解的预训练深度双向Transformers
【大语言模型-论文精读】谷歌-BERT:用于语言理解的预训练深度双向Transformers
42 1
|
1月前
|
机器学习/深度学习 自然语言处理 并行计算
探索深度学习中的Transformer模型及其在自然语言处理中的应用
【10月更文挑战第6天】探索深度学习中的Transformer模型及其在自然语言处理中的应用
81 0
|
1月前
|
机器学习/深度学习 自然语言处理 异构计算
【NLP自然语言处理】初识深度学习模型Transformer
【NLP自然语言处理】初识深度学习模型Transformer
|
1月前
|
机器学习/深度学习 自然语言处理 算法
【NPL自然语言处理】带你迅速了解传统RNN模型
【NPL自然语言处理】带你迅速了解传统RNN模型
|
3月前
|
机器学习/深度学习 自然语言处理 PyTorch
PyTorch与Hugging Face Transformers:快速构建先进的NLP模型
【8月更文第27天】随着自然语言处理(NLP)技术的快速发展,深度学习模型已经成为了构建高质量NLP应用程序的关键。PyTorch 作为一种强大的深度学习框架,提供了灵活的 API 和高效的性能,非常适合于构建复杂的 NLP 模型。Hugging Face Transformers 库则是目前最流行的预训练模型库之一,它为 PyTorch 提供了大量的预训练模型和工具,极大地简化了模型训练和部署的过程。
161 2
|
6月前
|
PyTorch 算法框架/工具
Bert Pytorch 源码分析:五、模型架构简图 REV1
Bert Pytorch 源码分析:五、模型架构简图 REV1
89 0
|
6月前
|
PyTorch 算法框架/工具
Bert Pytorch 源码分析:五、模型架构简图
Bert Pytorch 源码分析:五、模型架构简图
65 0
|
1月前
|
机器学习/深度学习 自然语言处理 知识图谱

热门文章

最新文章