HOME 首頁
SERVICE 服務(wù)產(chǎn)品
XINMEITI 新媒體代運(yùn)營
CASE 服務(wù)案例
NEWS 熱點資訊
ABOUT 關(guān)于我們
CONTACT 聯(lián)系我們
創(chuàng)意嶺
讓品牌有溫度、有情感
專注品牌策劃15年

    gpt和bert區(qū)別(bert和gpt2區(qū)別)

    發(fā)布時間:2023-03-13 09:21:24     稿源: 創(chuàng)意嶺    閱讀: 99        問大家

    大家好!今天讓創(chuàng)意嶺的小編來大家介紹下關(guān)于gpt和bert區(qū)別的問題,以下是小編對此問題的歸納整理,讓我們一起來看看吧。

    ChatGPT國內(nèi)免費(fèi)在線使用,一鍵生成原創(chuàng)文章、方案、文案、工作計劃、工作報告、論文、代碼、作文、做題和對話答疑等等

    只需要輸入關(guān)鍵詞,就能返回你想要的內(nèi)容,越精準(zhǔn),寫出的就越詳細(xì),有微信小程序端、在線網(wǎng)頁版、PC客戶端

    官網(wǎng):https://ai.de1919.com

    本文目錄:

    gpt和bert區(qū)別(bert和gpt2區(qū)別)

    一、磁盤初始化時選mbr還是選gpt,有什么區(qū)別

    MBR和GPT各有各的特點,這兩個現(xiàn)在都在使用,至于選哪一個是要分情況討論的。

    gpt和bert區(qū)別(bert和gpt2區(qū)別)

    在設(shè)置新磁盤時,系統(tǒng)會詢問你是想要使用MBR還是GPT分區(qū)。GPT是一種新的標(biāo)準(zhǔn),并在將來逐漸取代MBR。

    GPT為我們帶來了很多新的特性,但MBR仍然擁有最好的兼容性。GPT并不是Windows專用的新標(biāo)準(zhǔn),Mac OS X,Linux,及其他操作系統(tǒng)同樣使用GPT,實際上其他操作系統(tǒng)仍可以使用MBR。

    新磁盤在使用之前,必須對其進(jìn)行分區(qū)操作。MBR(Master Boot Record)和GPT(GUID Partition Table)是在磁盤上存儲分區(qū)信息的兩種不同方式。這些分區(qū)信息包含了每個分區(qū)從哪里開始的信息,這樣才能讓操作系統(tǒng)知道哪個扇區(qū)是屬于哪個分區(qū)的,以及哪個分區(qū)是可以啟動的。在磁盤上創(chuàng)建分區(qū)時,必須在MBR和GPT之間選擇一個適當(dāng)?shù)姆謪^(qū)管理方式。

    MBR的局限性

    MBR的意思是“主引導(dǎo)記錄”,最早在1983年在IBM PC DOS 2.0中提出。

    它是存在于驅(qū)動器開始部分的一個特殊的啟動扇區(qū),磁盤的第一個扇區(qū)。這個扇區(qū)包含了已安裝的操作系統(tǒng)的Bootloader和驅(qū)動器的邏輯分區(qū)信息。

    MBR最大支持2TB磁盤,它無法處理大于2TB容量的磁盤。MBR支持最多4個主分區(qū)——如果想要更多分區(qū),就需要創(chuàng)建所謂“擴(kuò)展分區(qū)”,并在其中創(chuàng)建邏輯分區(qū)。MBR已經(jīng)成為磁盤分區(qū)和啟動的工業(yè)標(biāo)準(zhǔn)。

    GPT的優(yōu)勢

    GPT意為GUID分區(qū)表。(GUID意為全局唯一標(biāo)識符)。這是一個正逐漸取代MBR的新標(biāo)準(zhǔn)。它和UEFI相輔相成——UEFI用于取代老舊的BIOS,而GPT則取代老舊的MBR。之所以叫作“GUID分區(qū)表”,是因為你的驅(qū)動器上的每個分區(qū)都有一個全局唯一的標(biāo)識符(globally unique identifier,GUID)——這是一個隨機(jī)生成的字符串,可以保證為地球上的每一個GPT分區(qū)都分配完全唯一的標(biāo)識符。

    GPT沒有MBR的那些限制。磁盤驅(qū)動器容量幾乎不限制(還是有限制的,只不過對我們來說它太大太大)。它還支持幾乎無限個分區(qū)數(shù)量,限制只在于操作系統(tǒng)——Windows支持最多128個GPT分區(qū),而且你還不需要創(chuàng)建擴(kuò)展分區(qū)。

    在MBR磁盤上,分區(qū)和啟動信息是保存在一起的。如果這部分?jǐn)?shù)據(jù)被覆蓋或破壞,事情就麻煩了。相對的,GPT在整個磁盤上保存多個這部分信息的副本,因此它更為健壯,并可以恢復(fù)被破壞的這部分信息。GPT還為這些信息保存了循環(huán)冗余校驗碼(CRC)以保證其完整和正確——如果數(shù)據(jù)被破壞,GPT會發(fā)覺這些破壞,并從磁盤上的其他地方進(jìn)行恢復(fù)。而MBR則對這些問題無能為力——只有在問題出現(xiàn)后,你才會發(fā)現(xiàn)計算機(jī)無法啟動,或者磁盤分區(qū)都不翼而飛了。

    現(xiàn)代操作系統(tǒng)也同樣支持GPT。Linux內(nèi)建了GPT支持。蘋果公司基于Intel芯片的MAC電腦也不再使用自家的APT(Apple Partition Table),轉(zhuǎn)而使用GPT。

    如果現(xiàn)在要進(jìn)行分區(qū)的話,推薦使用GPT對磁盤進(jìn)行分區(qū)。它更先進(jìn),更健壯,所有計算機(jī)系統(tǒng)都在向其轉(zhuǎn)移。如果你需要保持對舊系統(tǒng)的兼容性——比如在使用傳統(tǒng)BIOS的計算機(jī)上啟動Windows,你需要使用MBR。

    二、BERT預(yù)訓(xùn)練模型

    n-gram語言模型:根據(jù)前面n個詞預(yù)測當(dāng)前詞,它的缺點是,一般只能取1-2,n越大計算成本越高,這就使得它關(guān)注的信息是非常局限的。

    預(yù)訓(xùn)練語言模型:wordvec\glove\fasttext。wordvec是根據(jù)周圍詞預(yù)測當(dāng)前詞或當(dāng)前詞預(yù)測周圍詞,相比于n-gram,它關(guān)注了下文,但它仍然是關(guān)注局部信息。glove通過構(gòu)建詞頻共現(xiàn)矩陣來訓(xùn)練詞向量,將全局信息融入到詞向量中。fasttext仍然是局部的,只是他分詞是基于subword,對于oov詞相對友好。三者共同的缺點是,無法解決一詞多義問題。

    高級語言模型:elmo\GPT,elmo采用1層靜態(tài)向量+2層單向LSTM提取特征,并且能夠解決一詞多義,elmo是一個雙向語言模型,但實際上是兩個單向語言模型(方向相反)的拼接,這種融合特征的能力比 BERT 一體化融合特征方式弱。GPT采用Transformer的decoder單元提取特征,同樣也可以解決一詞多義問題,但GPT是單向的。所以,對上下文信息的融合,二者能力還不夠。

    bert是雙向語言模型,句子沒有shift_mask操作,所以是完整的上下文環(huán)境,證實了雙向語言模型對文本特征表示的重要性。bert同時證實了預(yù)訓(xùn)練模型能夠簡化很多繁重任務(wù)的網(wǎng)絡(luò)結(jié)構(gòu),在11個nlp任務(wù)上都有顯著提升。

    bert采用Transformer的encoder單元提取特征,encoder中包含幾個重要的機(jī)制:self-attention、muti-head attention、position encoding。

    bert分為bert_base和bert_large大小兩個模型,bert_base采用了12個encoder單元,768維隱藏層,12個attention。bert_base采用了24個encoder單元,1024維隱藏層,16個attention。

    input:單句或句對組合,有[cls]作為句子開頭的標(biāo)記,[sep]作為句子分隔和結(jié)束的標(biāo)記。

    token embedding:對于英文采用WordPiece embeddings,也就是一個單詞會被拆成詞根詞綴的,比如圖中的playing被拆成了play和ing兩個token;對于中文,就是單子拆分。

    segment embedding:相鄰句子采用不同的標(biāo)志分隔,形如111111111100000011111100000。

    position embedding:在transformer中,單詞之間是沒有先后順序的,而語言本身是有序的,所以采用采用正余弦函數(shù)來計算每個單詞的先后順序,這種方式有點勉強(qiáng),算是折中方式。

    前面講到elmo也是雙向語言模型,它是采用bi-LSTM來提取特征,如下:

    比如一句話:‘北京是中國的首都’,在LSTM中從左往右,預(yù)測‘中國’的時候只能看到‘北京’,從右往左,預(yù)測‘中國’的時候只能看到‘首都’,然后將兩個lstm的輸出做拼接來達(dá)到上下文信息融合的目的。其實是沒有完全做到雙向,只是以結(jié)構(gòu)的改變來接近雙向語言模型。真正的雙向是預(yù)測‘中國’的時候,需要同時看到‘北京’和‘首都’。由此,mask LM產(chǎn)生了。

    mask LM的原理是將‘中國’遮蓋住,同時用‘北京’和‘首都’來預(yù)測‘中國’?!本汀锥肌?lián)系起來語言模型很容易聯(lián)想到就是‘中國’啦。這個思想和wordvec的CBOW模型如出一轍,就是用周圍詞預(yù)測當(dāng)前詞,只是這個思想放在厲害的transformer中,便能大顯其能。

    BERT的mask方式:在選擇mask的15%的詞當(dāng)中,80%情況下使用mask掉這個詞,10%情況下采用一個任意詞替換,剩余10%情況下保持原詞匯不變。這樣mask的優(yōu)點是什么?

    1)被隨機(jī)選擇15%的詞當(dāng)中以10%的概率用任意詞替換去預(yù)測正確的詞,相當(dāng)于文本糾錯任務(wù),為BERT模型賦予了一定的文本糾錯能力;

    2)被隨機(jī)選擇15%的詞當(dāng)中以10%的概率保持不變,緩解了finetune時候與預(yù)訓(xùn)練時候輸入不匹配的問題(預(yù)訓(xùn)練時候輸入句子當(dāng)中有mask,而finetune時候輸入是完整無缺的句子,即為輸入不匹配問題)。

    在Mask LM任務(wù)中,模型學(xué)到了詞與詞之間的關(guān)系,而NSP任務(wù)是要模型學(xué)到句子與句子之間的關(guān)系,比如問答、推理等。它將訓(xùn)練語料分為兩類,一是將50%語料構(gòu)建成正常語序的句子對,比如A-B句子對,B就是A的實際下一個句子,并做標(biāo)記為isnext;二是將50%語料構(gòu)建成非正常語序句子對,B是來自語料庫的隨機(jī)句子,并做標(biāo)記為notnext。然后通過對句子對的關(guān)系做分類,預(yù)測B到底是不是A句子的下一個句子,使模型具有句子級別的識別能力。

    微調(diào)的目的在于我們的任務(wù)與bert預(yù)訓(xùn)練任務(wù)是不一致的,但是bert是非常好的語言模型,他具備提取詞法和句法的強(qiáng)大能力。將bert嵌入到我們的網(wǎng)絡(luò)結(jié)構(gòu)中,能夠簡化在語言模型方面的復(fù)雜結(jié)構(gòu)。只需要將輸入做成和bert適配的格式就行,而在bert后面接上全連接、CNN等簡單模型進(jìn)行訓(xùn)練,就能夠使訓(xùn)練得到一個比較好的效果。

    GPT 和 BERT 都采用Transformer,Transformer 是encoder-decoder 結(jié)構(gòu),GPT 的單向語言模型采用 decoder 部分,decoder 的部分見到的都是不完整的句子;BERT 的雙向語言模型則采用 encoder 部分,采用了完整句子。他倆最主要的區(qū)別在于BERT是雙向語言模型,更適合文本分類等任務(wù),GPT是單向語言模型,更適合生成式任務(wù)。

    1)低層網(wǎng)絡(luò)捕捉了短語級別的結(jié)構(gòu)信息

    2)表層信息特征在底層網(wǎng)絡(luò)(3,4),句法信息特征在中間層網(wǎng)絡(luò)(6~9),語義信息特征在高層網(wǎng)絡(luò)。(9~12)

    3)主謂一致表現(xiàn)在中間層網(wǎng)絡(luò)(8,9)

    1)ROBERTA

    •靜態(tài)mask->動態(tài)mask:在bert中每一個epoch被mask的是相同的詞,而ROBERTA在每一個epoch結(jié)束,重新隨機(jī)15%的詞,使不同的詞被mask。

    •去除句對NSP任務(wù),輸入連續(xù)多個句子:在bert中最長是512個token,輸入單句或者句對不容易把512個token占滿,ROBERTA輸入更多句子占滿512個坑位。

    •訓(xùn)練使用更多數(shù)據(jù) 更大batch size 更長時間

    2)ALBERT

    •減少參數(shù):詞表 V 到隱層 H 的中間,插入一個小維度 E,即一個VxH的embedding變成兩個VxE, ExH的兩個fc。

    •共享所有層的參數(shù):Attention 和 FFN,在bert中每一層的Attention 和 FFN的參數(shù)是不一樣的。

    •SOP 替換 NSP:負(fù)樣本換成了同一篇文章中的兩個逆序的句子,bert中是A-->B和A-->隨機(jī),ALBERT中是A-->B,B-->A。

    •BERT對MASK 15% 的詞來預(yù)測。ALBERT 預(yù)測的是 n-gram 片段,包含更完整的語義信息。

    •訓(xùn)練數(shù)據(jù)長度:90%取512,BERT90% 128

    •對應(yīng)BERT large:H:1024 ->4096  L:24->12  窄而深->寬而淺

    三、硬盤GPT分區(qū)與MBR分區(qū)的有什么區(qū)別?

    MBR的局限性

    MBR的意思是“主引導(dǎo)記錄”,最早在1983年在IBM PC DOS

    2.0中提出。

    之所以叫“主引導(dǎo)記錄”,是因為它是存在于驅(qū)動器開始部分的一個特殊的啟動扇區(qū)。這個扇區(qū)包含了已安裝的操作系統(tǒng)的啟動加載器和驅(qū)動器的邏輯分區(qū)信息。所謂啟動加載器,是一小段代碼,用于加載驅(qū)動器上其他分區(qū)上更大的加載器。如果你安裝了Windows,Windows啟動加載器的初始信息就放在這個區(qū)域里——如果MBR的信息被覆蓋導(dǎo)致Windows不能啟動,你就需要使用Windows的MBR修復(fù)功能來使其恢復(fù)正常。如果你安裝了Linux,則位于MBR里的通常會是GRUB加載器。

    MBR支持最大2TB磁盤,它無法處理大于2TB容量的磁盤。MBR還只支持最多4個主分區(qū)——如果你想要更多分區(qū),你需要創(chuàng)建所謂“擴(kuò)展分區(qū)”,并在其中創(chuàng)建邏輯分區(qū)。

    MBR已經(jīng)成為磁盤分區(qū)和啟動的工業(yè)標(biāo)準(zhǔn)。

    GPT的優(yōu)勢

    GPT意為GUID分區(qū)表。(GUID意為全局唯一標(biāo)識符)。這是一個正逐漸取代MBR的新標(biāo)準(zhǔn)。它和UEFI相輔相成——UEFI用于取代老舊的BIOS,而GPT則取代老舊的MBR。之所以叫作“GUID分區(qū)表”,是因為你的驅(qū)動器上的每個分區(qū)都有一個全局唯一的標(biāo)識符(globally

    unique

    identifier,GUID)——這是一個隨機(jī)生成的字符串,可以保證為地球上的每一個GPT分區(qū)都分配完全唯一的標(biāo)識符。

    這個標(biāo)準(zhǔn)沒有MBR的那些限制。磁盤驅(qū)動器容量可以大得多,大到操作系統(tǒng)和文件系統(tǒng)都沒法支持。它同時還支持幾乎無限個分區(qū)數(shù)量,限制只在于操作系統(tǒng)——Windows支持最多128個GPT分區(qū),而且你還不需要創(chuàng)建擴(kuò)展分區(qū)。

    在MBR磁盤上,分區(qū)和啟動信息是保存在一起的。如果這部分?jǐn)?shù)據(jù)被覆蓋或破壞,事情就麻煩了。相對的,GPT在整個磁盤上保存多個這部分信息的副本,因此它更為健壯,并可以恢復(fù)被破壞的這部分信息。GPT還為這些信息保存了循環(huán)冗余校驗碼(CRC)以保證其完整和正確——如果數(shù)據(jù)被破壞,GPT會發(fā)覺這些破壞,并從磁盤上的其他地方進(jìn)行恢復(fù)。而MBR則對這些問題無能為力——只有在問題出現(xiàn)后,你才會發(fā)現(xiàn)計算機(jī)無法啟動,或者磁盤分區(qū)都不翼而飛了。

    兼容性

    使用GPT的驅(qū)動器會包含一個“保護(hù)性MBR”。這種MBR會認(rèn)為GPT驅(qū)動器有一個占據(jù)了整個磁盤的分區(qū)。如果你使用老實的MBR磁盤工具對GPT磁盤進(jìn)行管理,你只會看見一個占據(jù)整個磁盤的分區(qū)。這種保護(hù)性MBR保證老式磁盤工具不會把GPT磁盤當(dāng)作沒有分區(qū)的空磁盤處理而用MBR覆蓋掉本來存在的GPT信息。

    在基于UEFI的計算機(jī)系統(tǒng)上,所有64位版本的Windows

    8.1、8、7和Vista,以及其對應(yīng)的服務(wù)器版本,都只能從GPT分區(qū)啟動。所有版本的Windows

    8.1、8、7和Vista都可以讀取和使用GPT分區(qū)。

    其他現(xiàn)代操作系統(tǒng)也同樣支持GPT。Linux內(nèi)建了GPT支持。蘋果公司基于Intel芯片的MAC電腦也不再使用自家的APT(Apple

    Partition Table),轉(zhuǎn)而使用GPT。

    我們推薦你使用GPT對磁盤進(jìn)行分區(qū)。它更先進(jìn),更健壯,所有計算機(jī)系統(tǒng)都在向其轉(zhuǎn)移。如果你需要保持對舊系統(tǒng)的兼容性——比如在使用傳統(tǒng)BIOS的計算機(jī)上啟動Windows,你需要使用MBR。

    四、BERT:深度雙向預(yù)訓(xùn)練語言模型

    論文標(biāo)題:BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding

    論文鏈接: https://arxiv.org/abs/1810.04805

    BERT(Bidirectional Encoder Representations from Transformers)通過預(yù)訓(xùn)練來學(xué)習(xí)無標(biāo)注數(shù)據(jù)中的深度雙向表示,預(yù)訓(xùn)練結(jié)束后通過添加一個額外的輸出層進(jìn)行微調(diào),最終在多個NLP任務(wù)上實現(xiàn)了SOTA。

    預(yù)訓(xùn)練語言模型在實踐中證明對提高很多自然語言處理任務(wù)有效,其中包括句子層級的任務(wù),比如自然語言推斷(natural language inference)和復(fù)述(paraphrasing),還有token層級的任務(wù),比如命名實體識別(named entity recognition)和問答(question answering)。

    在下游任務(wù)中應(yīng)用預(yù)訓(xùn)練語言模型表示的方法有兩種:feature-based的方法和fine-tuning的方法。舉例來說,ELMo這種預(yù)訓(xùn)練語言模型使用feature-based的方法,通過將ELMo的預(yù)訓(xùn)練的表示作為額外的特征輸入到特定于任務(wù)的模型中去;GPT使用fine-tuning的方法,通過引入少量的特定于任務(wù)的參數(shù),在下游任務(wù)中訓(xùn)練時所有的預(yù)訓(xùn)練參數(shù)。

    截止BERT之前的預(yù)訓(xùn)練語言模型都是單向的(unidirectional),包括GPT和ELMo,這樣的方法對句子層級的任務(wù)不是最優(yōu)的,而且對于token層級的任務(wù)比如問答非常有害。BERT使用masked language model(MLM)的方法來預(yù)訓(xùn)練,這種方法能夠訓(xùn)練一個雙向的(directional)語言模型。除了masked language model的預(yù)訓(xùn)練的方法,BERT還使用了next sentence prediction的預(yù)訓(xùn)練方法。

    BERT的使用分為兩個階段:預(yù)訓(xùn)練(pre-training)和微調(diào)(fine-tuning)。預(yù)訓(xùn)練階段模型通過兩種不同的預(yù)訓(xùn)練任務(wù)來訓(xùn)練無標(biāo)注數(shù)據(jù)。微調(diào)階段模型使用預(yù)訓(xùn)練參數(shù)初始化,然后使用下游任務(wù)(downstream task)的標(biāo)注數(shù)據(jù)來微調(diào)參數(shù)。

    BERT的一個顯著特點是它在不同的任務(wù)上有統(tǒng)一的架構(gòu),使用時只需要在BERT后面接上下游任務(wù)的結(jié)構(gòu)即可使用。

    BERT的模型架構(gòu)是一個多層雙向的Transformer的encoder。我們標(biāo)記模型的層數(shù)(每一層是一個Tranformer的block)為 ,模型的hidden size為 ,self-attention head的數(shù)量為 。兩個比較通用的BERT架構(gòu)為 和 。

    對比GPT,BERT使用了雙向self-attention架構(gòu),而GPT使用的是受限的self-attention, 即限制每個token只能attend到其左邊的token。

    BERT的輸入表示能夠是一個句子或者是一個句子對,這是為了讓BERT能夠應(yīng)對各種不同的下游任務(wù)。BERT的輸入是一個序列,該序列包含一個句子的token或者兩個句子結(jié)合在一起的token。

    具體地,我們會將輸入的自然語言句子通過 WordPiece embeddings 來轉(zhuǎn)化為token序列。這個token序列的開頭要加上 [CLS] 這個特殊的token,最終輸出的 [CLS] 這個token的embedding可以看做句子的embedding,可以使用這個embedding來做分類任務(wù)。

    由于句子對被pack到了一起,因此我們需要在token序列中區(qū)分它們,具體需要兩種方式:

    ①在token序列中兩個句子的token之間添加 [SEP] 這樣一個特殊的token;

    ②我們?yōu)槊總€token添加一個用來學(xué)習(xí)的embedding來區(qū)分token屬于句子A還是句子B,這個embedding叫做segment embedding。

    具體地,BERT的輸入由三部分相加組成:token embeddings、segment embeddings和position embeddings。如下圖所示:

    BERT使用兩個無監(jiān)督的任務(wù)進(jìn)行預(yù)訓(xùn)練,分別是Masked LM和Next Sentence Prediction(NSP)。如下圖所示,我們定義輸入的embedding為 ,BERT最終輸出的 [CLS] 的embedding為 ,最終輸出的第 個token的embedding為 。

    我們有理由相信一個深度雙向模型比left-to-right模型和left-to-right和right-to-left簡單連接的模型的效果更加強(qiáng)大。不幸的是,標(biāo)準(zhǔn)的條件語言模型只能夠夠left-to-right或者right-to-left地訓(xùn)練,這是因為雙向條件會使每個token能夠間接地“看到自己”,并且模型能夠在多層上下文中簡單地預(yù)測目標(biāo)詞。

    為了能夠雙向地訓(xùn)練語言模型,BERT的做法是簡單地隨機(jī)mask掉一定比例的輸入token(這些token被替換成 [MASK] 這個特殊token),然后預(yù)測這些被遮蓋掉的token,這種方法就是Masked LM(MLM),相當(dāng)于完形填空任務(wù)(cloze task)。被mask掉的詞將會被輸入到一個softmax分類器中,分類器輸出的維度對應(yīng)詞典的大小。在預(yù)訓(xùn)練時通常為每個序列mask掉15%的token。與降噪自編碼器(denoising auto-encoders)相比,我們只預(yù)測被mask掉的token,并不重建整個輸入。

    這種方法允許我們預(yù)訓(xùn)練一個雙向的語言模型,但是有一個缺點就是造成了預(yù)訓(xùn)練和微調(diào)之間的mismatch,這是因為 [MASK] 這個token不會在微調(diào)時出現(xiàn)。為了緩解這一點,我們采取以下做法:在生成訓(xùn)練數(shù)據(jù)時我們隨機(jī)選擇15%的token進(jìn)行替換,被選中的token有80%的幾率被替換成 [MASK] ,10%的幾率被替換成另一個隨機(jī)的token,10%的幾率該token不被改變。然后 將使用交叉熵?fù)p失來預(yù)測原來的token。

    一些重要的NLP任務(wù)如Question Answering (QA)或者Natural Language Inference (NLI)需要理解句子之間的關(guān)系,而這種關(guān)系通常不會被語言模型直接捕捉到。為了使得模型能夠理解句子之間的關(guān)系,我們訓(xùn)練了一個二值的Next Sentence Prediction任務(wù),其訓(xùn)練數(shù)據(jù)可以從任何單語語料庫中生成。具體的做法是:當(dāng)選擇句子A和句子B作為訓(xùn)練數(shù)據(jù)時,句子B有50%的幾率的確是句子A的下一句(標(biāo)簽是 IsNext ),50%的幾率是從語料庫中隨機(jī)選擇的句子(標(biāo)簽是 NotNext )。 [CLS] 對應(yīng)的最后一個隱層輸出向量被用來訓(xùn)練NSP任務(wù),這個embedding就相當(dāng)于sentence embedding。雖然這個預(yù)訓(xùn)練任務(wù)很簡單,但是事實上在微調(diào)時其在QA和NLI任務(wù)上表現(xiàn)出了很好的效果。在前人的工作中,只有sentence embedding被遷移到下游任務(wù)中,而BERT會遷移所有的參數(shù)來初始化下游任務(wù)模型。

    Transformer的self-attention機(jī)制允許BERT建模多種下游任務(wù)。對于包含句子對的任務(wù),通常的做法是先獨立地對句子對中的句子進(jìn)行編碼,然后再應(yīng)用雙向交叉注意(bidirectional cross attention)。而BERT使用self-attention機(jī)制統(tǒng)一了這兩個過程,這是因為對拼接起來的句子對進(jìn)行self-attention有效地包含了兩個句子之間的雙向交叉注意(bidirectional cross attention)。

    對于每個任務(wù)來說,我們只需要將任務(wù)特定的輸入輸出插入到BERT中然后端到端地微調(diào)即可。舉例子來說,BERT的預(yù)訓(xùn)練輸入句子A和句子B在微調(diào)時可以類比為:

    ①paraphrasing任務(wù)中的句子對;

    ②entailment任務(wù)中的hypothesis-premise對;

    ③question answering任務(wù)中的question-passage對;

    ④text classification或者sequence tagging任務(wù)中的text-∅對(也就是只輸入一個text,不必一定需要兩個句子)。

    對于BERT的輸出,對于一些token-level的任務(wù),BERT的token表示將被輸入到一個輸出層,比如sequence tagging或者question answering任務(wù);對于entailment或者sentiment analysis這樣的任務(wù),可以將 [CLS] 對應(yīng)的表示輸入到一個輸出層。

    我們使用 [CLS] 這個token的最后一層的隱層向量 作為聚合的表示,可以認(rèn)為是sentence embedding。在微調(diào)時只引入一個新的權(quán)重 ,這里的 代表標(biāo)簽的數(shù)量,然后計算標(biāo)準(zhǔn)分類損失 。下圖展示了BERT在GLUE上的效果:

    在這個數(shù)據(jù)集上,我們將question和passage拼接起來作為一個輸入序列(中間是 [SEP] )。在微調(diào)時引入一個start向量 和一個end向量 ,計算 和 的點積然后通過 函數(shù)作為word 是答案的span起始位置的概率: 。答案的終止位置也做上述類似處理。從 到 的候選區(qū)間的得分記作 ,我們挑選 的最大得分區(qū)間作為預(yù)測的結(jié)果。下圖展示了BERT在SQuAD v1.1上的效果:

    SQuAD v2.0有的question在提供的passage中沒有答案存在。在微調(diào)時我們設(shè)置沒有答案的問題的span的起始和結(jié)束位置都是 [CLS] 這個token,也就是start和end的可能性空間包含進(jìn)了 [CLS] 的位置。在預(yù)測時,我們比較沒有答案的span得分 和最優(yōu)的有答案得分 。當(dāng) 時,我們預(yù)測這是一個有答案的問題,這里的 用來在dev set上選擇最優(yōu)的 。下圖展示了BERT在SQuAD v2.0上的效果:

    微調(diào)時我們?yōu)锽ERT構(gòu)建4個輸入序列,每一個是所給的句子(句子A)和一個可能的延續(xù)(句子B)。然后引入一個向量,該向量和每一個輸入對應(yīng)的 [CLS] 的embedding的點積再通過一個 層來得到每個選擇的得分。下圖展示了BERT在SWAG上的效果:

    以上就是關(guān)于gpt和bert區(qū)別相關(guān)問題的回答。希望能幫到你,如有更多相關(guān)問題,您也可以聯(lián)系我們的客服進(jìn)行咨詢,客服也會為您講解更多精彩的知識和內(nèi)容。


    推薦閱讀:

    chatGPT怎么登陸(chatroulette怎么登錄)

    chatGPT翻譯語音(chat online翻譯)

    chatGPT火熱原因

    新農(nóng)村景觀設(shè)計特點有(新農(nóng)村景觀設(shè)計特點有哪些方面)

    小組隊標(biāo)logo簡筆畫