最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

70 BERT微調(diào)【動手學(xué)深度學(xué)習(xí)v2】

2022-12-28 17:13 作者:如果我是泡橘子  | 我要投稿

BERT 微調(diào)

  • 對于自然語言處理應(yīng)用可以設(shè)計不同的模型,比如基于循環(huán)神經(jīng)網(wǎng)絡(luò)卷積神經(jīng)網(wǎng)絡(luò),注意力多層感知機(jī),這些模型在有空間或者時間限制的情況下是有幫助的,但是為每個自然語言處理任務(wù)都設(shè)計一個特定的模型實(shí)際上是不可行的
  • BERT 預(yù)訓(xùn)練模型可以對廣泛的自然語言處理任務(wù)進(jìn)行最少的架構(gòu)更改
  • BERT 模型的提出改進(jìn)了各種語言處理任務(wù)的技術(shù)水平
  • 原始 BERT 模型的兩個版本分別帶有 1.1 億 3.4 億個參數(shù),因此,當(dāng)有足夠的計算資源時可以考慮為下游自然語言處理應(yīng)用微調(diào) BERT
  • 和圖片分類的不同之處在于,圖片分類訓(xùn)練好了 ResNet 之后,可以用來做圖片分類,也是一個正常的任務(wù);但是 BERT 本身的兩個任務(wù)是沒有意義的,很少會有做完形填空和預(yù)測兩個句子是否相鄰的情況,因此 BERT 主要用于做微調(diào)
  • 自然語言處理應(yīng)用可以分為序列級詞元級:序列級包括單文本分類任務(wù)文本對分類(或回歸)任務(wù);詞元級包括文本標(biāo)注回答
  • 在微調(diào)期間,不同應(yīng)用之間的 BERT 所需的“最小架構(gòu)更改”是額外的全連接層
  • 在下游應(yīng)用的監(jiān)督學(xué)習(xí)期間,額外的參數(shù)是從零開始學(xué)習(xí)的,而預(yù)訓(xùn)練 BERT 模型中的所有參數(shù)都是微調(diào)的



微調(diào) BERT

1、在訓(xùn)練好 BERT 之后,句子(含分類標(biāo)識符句子分隔符)進(jìn)入 BERT ,BERT 會對每一個 token 返回一個長為 128 (BERT-Base:768;BERT-Large:1024)的特征向量(因?yàn)槭?transformer ,所以可以認(rèn)為這些特征已經(jīng)包含了整個句子的信息的特征表示)

  • BERT 對每一個詞元返回抽取了上下文信息的特征向量

2、不同的任務(wù)使用不同的特征





例:句子分類

1、如何將文本輸入的 BERT 表示轉(zhuǎn)換為輸出標(biāo)簽?將 <cls> 對應(yīng)的向量輸入到全連接層分類

2、單句子分類:單文本分類將單個文本序列作為輸入,并輸出其分類結(jié)果

  • 特殊分類標(biāo)記 <cls> 用于序列分類
  • 特殊分類標(biāo)記 <sep> 用于標(biāo)記單個文本的結(jié)束或者分隔成對文本
  • 將句子輸入到 BERT 模型中,然后只將句子開始的 <cls> 標(biāo)識符輸出對應(yīng)的特征向量,然后將這個特征向量輸入到一個二分類(或者是 n 分類)輸出層中做 softmax 進(jìn)行分類
  • 單文本分類應(yīng)用中,特殊標(biāo)記 <cls> 的 BERT 表示對整個輸入文本序列的信息進(jìn)行編碼,作為單個文本的表示,它將被送入到由全連接(稠密)層組成的小多層感知機(jī)中,以輸出所有離散標(biāo)簽值的分布


3、句子對分類:以一對文本作為輸入但輸出連續(xù)值

  • 對于句子對也是一樣的,將句子輸入到 BERT 模型中,也是只將句子開始的 <cls> 標(biāo)識符輸出對應(yīng)的特征向量,然后將這個特征向量輸入到一個二分類(或者是 n 分類)輸出層中做 softmax 進(jìn)行分類
  • 與單文本分類相比,文本對分類的 BERT 微調(diào)在輸入表示上有所不同

2、為什么使用句子開始的標(biāo)識符 <cls> ,而不是用別的東西?

  • 在做預(yù)訓(xùn)練的時候,判斷兩個句子是不是相鄰的時候使用的是 <cls> 這個標(biāo)識符,所以也是在告訴 BERT 這個標(biāo)識符是在做句子級別上分類所使用的向量,所以盡量將它對應(yīng)輸出的特征向量做得便于做分類
  • 其實(shí)換成其他的也可以,反正最終需要進(jìn)行微調(diào),在訓(xùn)練的時候會更新 BERT 的權(quán)重,所以可以改變 BERT 的權(quán)重,使得最終輸出的特征向量包含自己所想要的特征





例:命名實(shí)體識別

1、識別一個詞元是不是命名實(shí)體,例如人名、機(jī)構(gòu)、位置

2、BERT 如何表示輸入并轉(zhuǎn)換為輸出標(biāo)簽?將非特殊詞元放進(jìn)全連接層分類

  • 句子輸入到 BERT 模型之后,將非特殊詞元(丟棄掉 <cls> 、<sep> 等特殊詞元,只留下真正的 token)放進(jìn)全連接層進(jìn)行分類,對每一個詞進(jìn)行詞級別的分類判斷(二分類或者是多分類)
  • 與單文本分類的相比,唯一的區(qū)別在于,在命名實(shí)體識別中,輸入文本的每個詞元的 BERT 表示被送到相同的額外全連接層中,以輸出詞元的標(biāo)簽





問題回答

1、給定一個問題它的描述文字,找出一個片段作為回答

  • 給定一段話,然后提出一個問題,將描述中對應(yīng)的詞或者是句子截取出來作為回答
  • 問答反映閱讀理解能力

2、如何實(shí)現(xiàn)?BERT 如何表示輸入并轉(zhuǎn)換為輸出標(biāo)簽?

  • 首先將問題和描述性文字做成兩句話(如果描述性文字是一段的話也不要緊,可以做成一個很長的序列,這也是為什么 BERT 長度通??梢宰龅?1024 ,因?yàn)樗斎氲臄?shù)據(jù)可能確實(shí)比較長):第一句話是問題,問題不需要進(jìn)行輸出;第二句話是問題的描述文字,可能會比較長
  • 分類器的作用:對于問題的描述性文字的每一個詞,預(yù)測它是答案開始的那個詞、結(jié)束的那個詞還是什么都不是(這是一個三分類的問題),即對片段中的每個詞元預(yù)測它是不是回答的開頭或者結(jié)束(開始結(jié)束或者其他





總結(jié)

1、對于問題回答句子分類或者詞分類,雖然想要的東西不太一樣,但是對于 BERT 來講都是做成一個句子對輸入到模型中,最后連接一個全連接層進(jìn)行分類

  • 全連接層所要看的 token 對應(yīng)的特征向量可能不太一樣,但是整體來講,最后 BERT 模型所有的權(quán)重都是可以直接使用預(yù)訓(xùn)練好的模型
  • 只有最后的輸出層是真的需要從零開始訓(xùn)練的

2、即使 NLP 的任務(wù)各有不同,在使用 BERT 微調(diào)的時候都只需要增加輸出層就可以了,而不需要在意怎樣表示句子信息、段落信息詞信息,這些已經(jīng)假設(shè) BERT 已經(jīng)提前做好了,只需要加一個簡單的輸出層就可以了

3、根據(jù)任務(wù)的不同,輸入的表示和使用的 BERT 特征也會不一樣,但是整體來講,使用了 BERT 之后,使得整個微調(diào)相比于之前簡單很多,而且 BERT 對于整個任務(wù)的提升也是非常顯著的(比從零開始訓(xùn)練可能效果會好很多)

4、現(xiàn)在在 NLP 領(lǐng)域基本上也是轉(zhuǎn)向微調(diào)的路線

5、對于序列級和詞元級自然語言處理應(yīng)用,BERT 只需要最小的架構(gòu)改變(額外的全連接層)

6、在下游應(yīng)用的監(jiān)督學(xué)習(xí)期間,額外層的參數(shù)是從零開始學(xué)習(xí)的,而預(yù)訓(xùn)練 BERT 模型中的所有參數(shù)都是微調(diào)的

7、可以針對下游應(yīng)用對預(yù)訓(xùn)練的 BERT 模型進(jìn)行微調(diào),在微調(diào)過程中,BERT 模型成為下游應(yīng)用模型的一部分,僅與訓(xùn)練前損失相關(guān)的參數(shù)在微調(diào)期間不會更新





Q&A

  • 1、請問 bert 微調(diào)的時候,是固定預(yù)訓(xùn)練模型的參數(shù)嗎?fine tuning 的時候,預(yù)訓(xùn)練的 model 的參數(shù)也會調(diào)整嗎?
  • ?
    QA P4 - 00:00
    ?
  • 2、老師,請問為什么我嘗試把之前訓(xùn)練的 d2l.train_char6 中的圖形化的東西刪掉后反而訓(xùn)練不了?
  • ?
    QA P4 - 00:31
    ?
  • 3、老師,請問 YOLO 的代碼可以也分享到課程當(dāng)中嗎?
  • ?
    QA P4 - 00:49
    ?
  • 4、請問老師,bert 在實(shí)際應(yīng)用的時候,一般如何部署呢?用 C++ 寫預(yù)測代碼嗎?
  • ?
    QA P4 - 01:49
    ?
  • 5、如果設(shè)備性能不是很高,是不是不建議使用 bert ?
  • ?
    QA P4 - 03:26
    ?





----end----

其他參考

1、《動手學(xué)深度學(xué)習(xí)》課程 PPT ,https://courses.d2l.ai/zh-v2/assets/pdfs/part-4_7.pdf

2、《動手學(xué)深度學(xué)習(xí)》,教程,https://zh-v2.d2l.ai/chapter_natural-language-processing-applications/finetuning-bert.html

3、《動手學(xué)深度學(xué)習(xí)》,教程,https://zh-v2.d2l.ai/chapter_natural-language-processing-applications/natural-language-inference-and-dataset.html

4、《動手學(xué)深度學(xué)習(xí)》,教程,https://zh-v2.d2l.ai/chapter_natural-language-processing-applications/natural-language-inference-bert.html

70 BERT微調(diào)【動手學(xué)深度學(xué)習(xí)v2】的評論 (共 條)

分享到微博請遵守國家法律
广丰县| 宁南县| 响水县| 若尔盖县| 耒阳市| 永德县| 会理县| 荃湾区| 县级市| 望奎县| 九龙城区| 建水县| 离岛区| 东明县| 玛纳斯县| 济阳县| 永济市| 绥芬河市| 聊城市| 泾川县| 扬中市| 仁化县| 渭源县| 伊金霍洛旗| 华亭县| 梅河口市| 将乐县| 定结县| 金堂县| 东丰县| 皮山县| 友谊县| 泰顺县| 文成县| 贺兰县| 贵阳市| 高台县| 门头沟区| 泸定县| 铁岭市| 巴南区|