谷歌NLP新模型「大鳥」突破BERT限制,稀疏注意力機制更省記憶體
最近Google又發了一個NLP模型,名字也很喜感Big Bird!這隻大鳥在長文字任務中能勝過BERT,它有哪些獨特之處呢?
谷歌最近又推出了一個重磅的稀疏注意力模型:Big Bird。
之前各種刷榜的BERT和它的各種衍生版本RoBERTa等,都是構建在Transformer基礎上。
這些模型的核心競爭力就是全注意力機制,但這種機制會產生序列長度的二次依賴,如果輸入的token過長,會撐爆記憶體,而長文字摘要等任務中,BERT的512token,就顯得有點捉襟見肘。
- 二次依賴限制了BERT
BERT中token的長度一般設定為512,這對普通的NLP任務來說足夠了,但是想對一整篇文章或者一本書進行資訊挖掘,也就是長文字任務,512的長度就有點短,把token長度變為1024的話,所需的計算量就會變成原來的4倍,對記憶體是很傷的。
如果能把這個n^2的複雜度降下來,那麼就能實現一個長距的上下文注意力機制,而不會把記憶體撐爆,這就是Big Bird要做的事。
谷歌團隊解決這個問題的方法,是引入一種全新的稀疏注意力機制:Big Bird。
- 谷歌「大鳥」:稀疏注意力機制更省記憶體
Big Bird相對於傳統的全注意力機制來說變的更稀疏,作為更長序列上的Transformer,Big Bird不僅能注意到更長的上下文資訊,還將計算的二次依賴降低到了線性。
我們來看下Big Bird是如何構建的。
圖(a)表示r=2的隨機注意力機制,圖(b)表示w=3的區域性注意力機制,圖(c)表示g=2的全域性注意力機制,圖(d)是三者加起來的Big Bird模型。
圖中空白的部分表示沒有注意,有顏色的部分才能得到關注,有點像dropout的選擇性丟棄。
注意的部分減少了,效能會不會打折扣,我們來看下實驗結果。
- 實驗:三種注意力機制結合效果最好
只採用隨機注意力機制、區域性注意力機制,或者兩者融合起來,都沒有三者合體的效果好。
Global+R+W在MLM任務上超過了BERT-base,在SQuAD和MNLI任務上接近了BERT-base,但是考慮到記憶體上節省了很多資源,還是有其實用價值。
使用基礎的模型,在HotpotQA、Natural QA、 TriviaQA和WikiHop四個問答任務上進行了測試,結果表明Big Bird均超越了RoBERTa和Longformer。
在長文字摘要中,Big Bird也是表現出了很好的潛力,在Arxiv,PubMed,BigPatent上均取得了最好成績。
使用這些資料集,因為它們都是長文件,輸入不僅僅是512個token,更容易對比長文字的特徵提取能力和模型的總體效能。
reddit上有網友對Big Bird提出了質疑認為Big Bird只是另一種Longformer,沒有什麼本質創新。
有網友說,最近爆火的GPT-3也用了稀疏注意力機制,但是因為OpenAI的blocksparse太久沒更新了,所以不知道二者有沒有內在的相似性。
谷歌發表的一些研究,之前也有人提出過類似的,但只有谷歌發出來,才能得到廣泛的關注,進大廠發論文的機率還是高啊。
期待Big Bird給NLP任務帶來新的驚喜!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69946223/viewspace-2710743/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 最強NLP預訓練模型!谷歌BERT橫掃11項NLP任務記錄模型谷歌
- Bengio等人新作:注意力可被視為RNN,新模型媲美Transformer,但超級省記憶體RNN模型ORM記憶體
- jvm:記憶體模型、記憶體分配及GC垃圾回收機制JVM記憶體模型GC
- 谷歌Chrome瀏覽器引入省記憶體/省電模式:減少記憶體佔用谷歌Chrome瀏覽器記憶體模式
- Java記憶體模型,垃圾回收機制,常用記憶體命令及工具Java記憶體模型
- Glide 這樣用,更省記憶體!!!IDE記憶體
- JavaScript 記憶體機制JavaScript記憶體
- 效能媲美BERT,引數量僅為1/300,谷歌最新的NLP模型谷歌模型
- 一種比較省記憶體的稀疏矩陣Python儲存方案記憶體矩陣Python
- 深入理解BERT Transformer ,不僅僅是注意力機制ORM
- js記憶體回收機制JS記憶體
- javaScript 記憶體管理機制JavaScript記憶體
- Java記憶體管理機制Java記憶體
- 【AIX】AIX記憶體機制AI記憶體
- linux記憶體機制Linux記憶體
- Qt 記憶體管理機制QT記憶體
- jvm記憶體管理機制JVM記憶體
- 突破oracle for win2K的2G記憶體限制Oracle記憶體
- JVM併發機制探討—記憶體模型、記憶體可見性和指令重排序JVM記憶體模型排序
- Android彈藥庫——記憶體管理機制與程式模型Android記憶體模型
- 理解BERT:一個突破性NLP框架的綜合指南框架
- 全記憶體的redis用習慣了?那能突破記憶體限制類redis產品ssdb呢?記憶體Redis
- RAG新突破:塊狀注意力機制實現超低延遲檢索增強
- NLP與深度學習(六)BERT模型的使用深度學習模型
- linux記憶體回收機制Linux記憶體
- Qt 記憶體管理機制薦QT記憶體
- linux記憶體管理機制Linux記憶體
- Java的記憶體回收機制Java記憶體
- oracle 9i 突破win2003記憶體限制Oracle記憶體
- 突破oracle for win2K的2G記憶體限制 (轉)Oracle記憶體
- 可能用於記憶控制的新機制
- 注意力機制
- 記憶體模型記憶體模型
- 程式設計師修仙之路--突破記憶體限制的高效能排序程式設計師記憶體排序
- NLP與深度學習(五)BERT預訓練模型深度學習模型
- Redis 記憶體淘汰機制詳解Redis記憶體
- 淺析java記憶體管理機制Java記憶體
- 記憶體管理機制的發展記憶體