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