創(chuàng)澤機器人 |
CHUANGZE ROBOT |
1. BERT模型深度解析
2. 大規(guī)模參數(shù)的語言模型Megatron-BERT
我們今天主要是溫故知新我先帶大家復(fù)習(xí)一下BERT模型的整體架構(gòu),內(nèi)容不會特別偏數(shù)學(xué),主要把BERT一些要點給大家說清楚,包括BERT的輸入/輸出以及具體它是怎么工作的,然后介紹NVIDIA基于BERT開發(fā)出的一系列好的模型。
首先介紹一下自然語言處理常見的應(yīng)用方向,第一類是序列標注,比如命名實體的識別、語義標注、詞性標注,循環(huán)智能也是用了序列標注。第二類是分類任務(wù),如文本分類和情感分析,這個方向目前在量化金融領(lǐng)域,尤其是對沖基金上應(yīng)用性很強,尤其是情感分析。我記得3、4年前,有一條新聞?wù)f斯坦福大學(xué)的一個碩士生,暑期在他的宿舍里用幾塊GPU卡,自己搭建了一個小的超級計算機,他把Twitter上的信息全部錄下來,每天更新。他使用了BERT進行情感分析,把每天每個人的信息分成三類:positive積極、neutral中性、negative消極。他把三類情感的量化信息和當(dāng)天納斯達克股票的升跌情況匯總,進行了統(tǒng)計分析,發(fā)現(xiàn)如果Twitter上的信息大部分都是積極的,那么股票就有很大的概率會上漲。我們現(xiàn)在把這類數(shù)據(jù)叫做情感分析因子,它在股票分析上是一個特別重要的推進方向,能讓模型越發(fā)準確。第三類NLP應(yīng)用方向就是對句子關(guān)系的判斷,如自然語言的推理、問答系統(tǒng),還有文本語義相似性的判斷。最后一類,是生成式任務(wù),如機器翻譯、文本摘要,還有創(chuàng)造型的任務(wù)比如機器寫詩、造句等。
BERT模型深度解析
現(xiàn)在我們進入正題:對BERT的講解。要了解BERT,首先我們要說一下Transformer,因為BERT最主要就是基于Transformer和注意力機制,這兩點也是BERT能從GPT、RNN、LSTM等一系列架構(gòu)中能脫穎而出的很大原因。Attention,專業(yè)的叫法是Attention Mechanism,Attention是一個Encoder+Decoder的模型機制。Encoder-Decoder模型是在深度學(xué)習(xí)中比較常見的模型結(jié)構(gòu):在計算機視覺中這個模型的應(yīng)用是CNN+RNN的編輯碼框架;在神經(jīng)網(wǎng)絡(luò)機器翻譯的應(yīng)用是sequence to sequence模型,也就是seq2seq。而編碼(Encoder)就是將序列編碼成一個固定長度的向量,解碼(Decoder)就是將之前生成的向量再還原成序列。
那么問題來了,為什么要在Encoder-Decoder模型機制中引入Attention呢?因為 Encoder-Decoder模型有兩個比較顯著的弊端:
一是Encoder會把序列信息壓縮成一個固定長度的向量,那么在Encoder的輸出中,我們暫且把它叫做語義編碼c,c就有可能無法完全地表示出全部序列的信息,尤其是當(dāng)信息特別長時。
二是先輸入到網(wǎng)絡(luò)中的信息會被后輸入的信息覆蓋掉,輸入的信息越長,對先前輸入信息的遺忘程度就越大。因為這兩個弊端,Decoder在解碼的一開始就沒有獲得一個相對完整的信息,也就是語義編碼c沒有一個相對完整的信息輸入,那么它解碼的效果自然就不好。有的同學(xué)可能會說想要解決RNN記憶力差的問題,可以考慮用LSTM。我們的確可以考慮LSTM,但LSTM對超長距離的信息記憶,效果也不是很好。
我們再來看看Attention為什么能夠解決這個問題。Attention,顧名思義是注意力。它是模仿人類的注意力,人類在處理一個問題時會把注意力放到那個特別重要的地方,比如我們在短時間內(nèi)去看一張照片,第一眼落到照片上的位置可能是某個建筑物或者是某個人,這取決于我們不同的目的和興趣等。我們不會在短時間之內(nèi)記清楚甚至是看清楚照片上的全部細節(jié),但是我們會將注意力聚焦在某個特定的細節(jié)上并記住它。Attention模型最終輸出結(jié)果也是能夠達到這么一個效果。
Attention的機制最早也是應(yīng)用在計算機視覺上面,然后是在自然語言處理上面發(fā)揚光大。由于2018年在GPT模型上的效果非常顯著,所以Attention和 Transformer才會成為大家比較關(guān)注的焦點。之所以Attention的能力在NLP領(lǐng)域得到了徹底釋放,是因為它解決了RNN不能并行計算的弊端,Attention使其每一步的計算不依賴于上一步的計算,達到和CNN一樣的并行處理效果。并且由于Attention只關(guān)注部分的信息,所以它的參數(shù)較少,速度就會快。其次RNN記憶能力較差,所以大家一開始想到的解決方式都是用LSTM和GRU(Gated Recurrent Unit)來解決長距離信息記憶的問題,但是都沒有起到很好的效果。Attention由于只關(guān)注長文本中的一個小部分,可以準確地識別出關(guān)鍵信息,所以取得了特別不錯的效果。
下面我們來說一下Attention是怎么實現(xiàn)的聚焦。主要是因為它是采用了雙向的RNN,能夠同時處理每個單詞前后的信息。在Decoder中,它首先計算每一個Encoder在編碼隱藏層的狀態(tài),然后會和Decoder隱藏層狀態(tài)比較,做出相關(guān)程度的評定。得到的權(quán)值會通過softmax歸一化得到使用的權(quán)重,也就是我們前面所說的編碼向量c。然后對Encoder中對應(yīng)的不同狀態(tài)的權(quán)重進行加權(quán)求和,有了編碼c之后,我們就可以先計算Decoder隱藏層的狀態(tài),然后再計算Decoder的輸出。這就是一個比較完整的在BERT當(dāng)中運用Attention以及Encoder-Decoder模型的使用案例。Attention根據(jù)計算區(qū)域、權(quán)值的計算方式等會有很多不同變種。
不止是在NLP領(lǐng)域,在其他很多領(lǐng)域中,Transformer的模型由于很好用都是大家首選的,主要的一個運用機制就是Attention。我們之后會說到的Transformer模型會用到 Multi-head Attention和Self-Attention。首先說一下Self-Attention,Self-Attention是將原文中每個詞和該句子中所有單詞之間進行注意力的計算,主要是為了尋找原文內(nèi)部的關(guān)系。對應(yīng)到閱讀理解任務(wù),這個模型就可以判定一篇文章中的兩段話是不是同一個意思。Multi-head Attention,則是對一段原文使用多次的注意力,每次會關(guān)注到原文的不同部分,相當(dāng)于多次地在單層中使用Attention,然后把結(jié)果給拼接起來。
機器人招商 Disinfection Robot 機器人公司 機器人應(yīng)用 智能醫(yī)療 物聯(lián)網(wǎng) 機器人排名 機器人企業(yè) 機器人政策 教育機器人 迎賓機器人 機器人開發(fā) 獨角獸 消毒機器人品牌 消毒機器人 合理用藥 地圖 |