在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

BERT烹飪之法:fintune 的藝術(shù)

電子工程師 ? 來源:lq ? 2019-04-23 17:22 ? 次閱讀

BERT 預(yù)訓(xùn)練模型就如宰好待烹的豬,則 finetune 便是烹飪之法,豬頭能用來做成香糯濃醇的燒豬頭肉,豬蹄能用來做成勁道十足的紅燒豬蹄,身上的梅花肉,五花肉,里脊肉也各有各的做法。于是對于 Bert finetune,也就有各種料理之法。

序言

自去年 BERT 論文發(fā)出,正巧半年,不光各大榜單上盡是 BERT 之名,最近公布 NAACL 最佳長論文也給了 BERT,正所謂實至名歸。

正巧在讀 BERT 相關(guān)論文, 順便總結(jié)下,給大家介紹 BERT 論文發(fā)出半年后的今天,大概都有哪些與 BERT finetune 相關(guān)的研究。

先來簡單介紹 BERT,再進(jìn)入正題。

何謂 BERT,全稱 Bidirectional Encoder Representations from Transformers(Transformer 雙向編碼器特征),縮寫為芝麻街的主角之一 BERT。

取名的惡趣味,導(dǎo)致之后微軟,百度的改進(jìn)模型,都叫 Big-Bird 和 ERNIE,儼然走錯片場,進(jìn)入了芝麻街的世界。

BERT 最主要是開創(chuàng)性地提出同時用 Masked Language Model (掩語言模型) 和 Next Sentence Prediction(下句預(yù)測)兩個任務(wù),加上大量的數(shù)據(jù),來預(yù)訓(xùn)練出一個大型的 Transformer 模型。

而這個模型,也就是今天的主角 BERT。

BERT 主要部件

既然要各自 finetune,那便得先了解 BERT 這頭大肥豬的主要部位。

首先是最關(guān)鍵的輸入部分,之后大部分 finetune 和這部分聯(lián)系很大。

自上向下一一可知,BERT 輸入最主要組成部分便是,詞(token 這里姑且理解為詞)向量、段(segment)向量、位置向量。

詞向量很好理解,也是模型中關(guān)于詞最主要信息所在;段向量是因為 BERT 里有下句預(yù)測任務(wù),所以會有兩句拼接起來,上句與下句,上句有上句段向量,下句則有下句段向量,也就是圖中A與B。此外,句子末尾都有加[SEP]結(jié)尾符,兩句拼接開頭有[CLS]符;而位置向量則是因為 Transformer 模型不能記住時序,所以人為加入表示位置的向量。

之后這三個向量拼接起來的輸入會喂入BERT模型,輸出各個位置的表示向量。

Finetune 標(biāo)準(zhǔn)四法

關(guān)于 Finetune,這里定義 BERT 論文上提到的四種方法為標(biāo)準(zhǔn)法,而此外各種方法,則定義為花式。而如果只是對標(biāo)準(zhǔn)法輕微改動,也歸入標(biāo)準(zhǔn)。

標(biāo)準(zhǔn)四法第一法,雙句分類任務(wù)。

很簡單就像 BERT 的設(shè)定一般,兩句拼起來,加上[CLS]和[SEP],直接取[CLS]位置輸出向量預(yù)測,進(jìn)行 finetune。

標(biāo)準(zhǔn)四法第二法,單句分類任務(wù)。

和雙句不同的是,直接拿單句,前面加入[CLS]輸入,之后同樣取[CLS]位置輸出來預(yù)測,進(jìn)行 finetune。

標(biāo)準(zhǔn)四法第三法,問答(QA)任務(wù)。

將問題和答題所需上下文分別作為上句與下句,加入[CLS]和[SEP]特殊符,之后通過在上下文部分預(yù)測答案所在位置開頭(Start)與結(jié)尾(End),進(jìn)行 finetune。

標(biāo)準(zhǔn)四法第四法,單句標(biāo)注任務(wù)。

之前單句分類,先加入[CLS],但是最后取其他位置輸出,預(yù)測相應(yīng)標(biāo)注,進(jìn)行 finetune。

Finetune 之標(biāo)準(zhǔn)篇

先來介紹論文中用到標(biāo)準(zhǔn)法的。

雙句分類

標(biāo)準(zhǔn)法的雙句分類,在類似文檔檢索任務(wù)中,將query與文檔作為上下句,拿[CLS]的輸出來預(yù)測,finetune。

有這兩篇論文:

Simple Applications of BERT for Ad Hoc Document Retrieval

Passage Re-ranking with BERT

如果說這樣的文檔檢索主要有三步:

第一,先用工具或算法(BM25等)獲得最初候選;

第二,用方法對query與候選匹配重新打分,按照分?jǐn)?shù)重新排序;

第三,最上面多少條作為所需。

這里最主要是對第二步處理。

Simple Applications of BERT for Ad Hoc Document Retrieval

主要測試了兩個任務(wù),首先是 Microblog 的句級別檢索匹配,用 Anserini IR toolkit 工具先根據(jù) query 召回1000條候選,然后候選和 query 拼接喂入 BERT 得到分?jǐn)?shù),之后取 BERT 分?jǐn)?shù)和 Anserini 分?jǐn)?shù)的線性插值,作為結(jié)果分?jǐn)?shù),重新排序。

然后在 newswire 上長片段檢索,文檔長度拼接 query 會大于 BERT 預(yù)訓(xùn)練模型最大長度512個token。其實大體步驟與句級別相同,不過會先在句級別 finetune,之后,計算文檔分句后各句分?jǐn)?shù),取top n加權(quán),再和 Anserini 的分?jǐn)?shù)插值,重新排序。

Passage Re-ranking with BERT

大體和上篇類似,數(shù)據(jù)集有些不同,也是先第一步用 BM25 算法,獲得1000篇相關(guān)候選,然后把 query 作為上句候選作為下句,BERT 打分,最后對候選重新排序。

和上面做法不同的是,對于 query 超過64個token部分截斷,以及 query 和候選拼接總長超過512部分截掉。訓(xùn)練時,拿1000個中相關(guān)的作為正例,不相關(guān)作為負(fù)例,取[CLS]向量二分類 finetune。

單句標(biāo)注

Google 公開的 BERT 預(yù)訓(xùn)練模型,根據(jù)語言,可分為英文,中文,多語言(104種語言)。這里介紹的大部分論文都是拿英文模型直接 finetune,而中文沒有,這一篇是唯一一篇用多語言 finetune 的。

75Languages,1Model:ParsingUniversalDependenciesUniversally

這篇論文用到的是斯坦福的 Universal Dependencies 數(shù)據(jù)集,里面包含了多達(dá)75種語言的語料,任務(wù)和標(biāo)注也涵蓋了從形態(tài)學(xué),到POS,再到依存關(guān)系等等多級任務(wù)。

最早入門 NLP,本人拿來第一個練手的數(shù)據(jù)集也是這個,深知這個數(shù)據(jù)集的困難,諸多語言有些聞所未聞,里面還有各種設(shè)定(無標(biāo)注,低資源),多任務(wù)訓(xùn)練如何設(shè)定...

而這篇文章,直接用 BERT 多語言預(yù)訓(xùn)練模型在所有語言上,所有任務(wù)上,進(jìn)行 finetune。

首先,多語言里一個大問題是如何將詞分開,因為如此多語言,詞表會非常大,這里作者用 BERT 自帶 WordPiece 直接分詞,然后用分完后第一個子詞位置的輸出向量來預(yù)測。

關(guān)于多任務(wù),對 UPOS,UFeats 是直接各位置softmax輸出,Lemmas 也類似標(biāo)注任務(wù),不過會有后處理,Deps 則是用了Manning組提出的 “graph-based biaffine attention parser“。

最后 finetune 時,直接拿單句加上[CLS]輸入,但要注意的是,這里拿的不是最上一層的輸出,而是用到一個可學(xué)習(xí)各層權(quán)重的"Layer Attention"來對不同層加和。

如此操作是因為之前多個研究表面,低層任務(wù)(比如POS)特征主要在網(wǎng)絡(luò)底層,而高層任務(wù)特征(比如依存)主要在高層。之后結(jié)果也表明這一點,如下圖。

為避免過于依賴某層,還加入 Layer Dropout,訓(xùn)練中隨機會不用某層輸出。

結(jié)果在依存任務(wù)上超過之前 SOTA,其他任務(wù)達(dá)到匹敵程度。還有在低資源 finetune 的結(jié)果提升最明顯。

雙句分類+問答

還有些論文可能一個標(biāo)準(zhǔn)法不夠,所有拿兩個同時進(jìn)行,其實也可理解為一種多任務(wù)學(xué)習(xí)。

A BERT Baseline for the Natural Questions

主要針對谷歌自己的 Natural Questions 數(shù)據(jù)集,給出相應(yīng)的 fintune 方法。

Natural Question 數(shù)據(jù)集,也是個問答任務(wù),簡單介紹就是 query 會是 google 搜索時的 query,而答案可能在給出的相關(guān)維基百科頁面。其中問題分好幾種答案,long,short,yes/no,還可能沒答案。

其實它這里的做法和原論文中的問答比較像,不過增加了問題分類環(huán)節(jié)。將頁面文檔分成多個片段,和 query 拼接,然后同時對幾個問題,用[CLS]進(jìn)行預(yù)測問題種類,而其他 token 的位置預(yù)測所在范圍,最后將一個大頁面中的所有片段的分?jǐn)?shù)排序,挑出最高者。

單句分類+標(biāo)注

這篇來自達(dá)摩院。

BERT for Joint Intent Classification and Slot Filling

其實很簡單,就是在最上面一層直接拿兩個任務(wù)進(jìn)行 finetune。Finetune 時用多任務(wù),也就是 joint 訓(xùn)練。[CLS] 對 Intent Classification 進(jìn)行預(yù)測,而其他的token則對 Slot Filling 預(yù)測標(biāo)注。

火力全開

既然可以兩個任務(wù)同時進(jìn)行多任務(wù) finetune,那能不能把四種標(biāo)準(zhǔn)法都用上進(jìn)行 finetune 呢。當(dāng)然可以。

Multi-Task Deep Neural Networks for Natural Language Understanding

這篇來自微軟的 MTDNN 就是先 pretrain,然后拿 GLUE 數(shù)據(jù)集中的任務(wù)同時進(jìn)行 finetune,最后發(fā)現(xiàn)多任務(wù)對性能的幫組。

關(guān)于詳細(xì)如何訓(xùn)練,可參考論文。

Finetune 之花式

這里會介紹一些用到異于上述標(biāo)準(zhǔn) finetune 法的論文,因為方法各異,故冠名花式。

Fine-tune BERT for Extractive Summarization

這篇將 BERT 用于抽取式文本摘要,主要是選擇性抽取文本中的句子作為最后的摘要。這個任務(wù)最大的問題是如何獲得每個句子向量,然后把向量用于二分類,判斷去留。

而 BERT 原模型只能生成單句的句子向量,或者句子對的。

于是,作者們的第一個改進(jìn)是,簡單粗暴地將文檔中每句話前加[CLS]后加[SEP],然后輸入 BERT,而每個 [CLS] 對應(yīng)的位置就是每句的句向量。

為了進(jìn)一步增加句之間的互動,作者們又在 BERT 之上加了一層 Transformer 的 Summarization Layer,只輸入每個[CLS]的向量,最后輸出預(yù)測當(dāng)前句是否保留,finetune。

Utilizing BERT for Aspect-Based Sentiment Analysis via Constructing Auxiliary Sentence

該篇中了 NAACL2019.

用于基于方面(aspect)的情感分析(ABSA)任務(wù),主要通過構(gòu)建附加句,將 ABSA 任務(wù)轉(zhuǎn)換成了句子對分類任務(wù)。方法和最早看 GPT2 非監(jiān)督一樣,出奇簡單,卻有效。

雖然之后 finetune 過程和標(biāo)準(zhǔn)法里的雙句分類相似,但因其構(gòu)建下句的方法特別,所以拿到花式來講。

具體做法是,通過把原句作為 BERT 上句,然后人為構(gòu)建下句,分四種情況(假設(shè)句中方面用[ASP]而其對應(yīng)分類為[C])

QA-M:在句后加上 " what do you think of the [C] of [ASP] ?"

NLI-M:在后面加一個"[ASP]-[C]"的擬句

QA-B:在后面加肯定句“thepolarityoftheaspect[C]of[ASP]ispositive”,轉(zhuǎn)換成二分類任務(wù)

NLI-B:同樣在擬句后面直接加標(biāo)簽"[ASP]-[C]-positive"

之后用在這幾種方法分別在BERT上進(jìn)行雙句分類 finetune,然后比較結(jié)果。結(jié)果是在不同評估指標(biāo)上各有優(yōu)劣,詳見論文。

Conditional BERT Contextual Augmentation

這篇比較好玩的是,不像之前論文是拿詞向量進(jìn)行一些修改,而是拿段(segment)向量進(jìn)行修改。

作者的做法是將 BERT 原有的 segment 向量替換成 label 向量,然后用單句分類任務(wù)進(jìn)行 finetune。比如說可以根據(jù)情感識別里的標(biāo)簽,positive 或 negative 來作為label。

最后通過將 positive 的向量替換成 negative,或者反過來,輸出預(yù)測結(jié)果,進(jìn)行數(shù)據(jù)增強,這樣子它就會只替換情感最強烈部分讓意思反過來,而大體結(jié)構(gòu)不變。該研究與文本的風(fēng)格遷移也相關(guān)。

VideoBERT:AJointModelforVideoandLanguageRepresentationLearning

最后拿這篇來自 BERT 東家谷歌我心目中覺得最棒的來壓軸吧。

這篇通過用 BERT 在語言和視頻多模態(tài)上進(jìn)行 finetune,學(xué)習(xí)了視覺和語言之間的聯(lián)系。

數(shù)據(jù)利用了 Youtube 的烹飪類視頻(因為語言與動作更吻合),文本信息用 ASR(語音識別)自動生成,而視頻用 Vector Quantization (矢量量化)來表示。特別值得指出的是這都是無監(jiān)督的。

首先,用 ASR 獲得的文本作為 BERT 輸入的上句;之后,再對視頻特征向量進(jìn)行 tokenize,作為下句;最后用最初的 [CLS] 來判斷是否文字與視頻一致。

關(guān)于視頻特征具體提取過程,先利用 S3D 模型(詳見 Rethinking Spatiotemporal Feature Learning: Speed-Accuracy Trade-offs in Video Classification,推薦閱讀)提取視頻特征,1024維。

之后利用 hierachy clustering (層次聚類)來將這些特征進(jìn)行 tokenize,總共12^4=20736個 token,再將這些 token 作為新詞加入詞表。最后,像 BERT 預(yù)訓(xùn)練中一樣,隨機掩蓋(mask)掉一些 token,包括文字和視頻token,同時預(yù)測被mask掉部分內(nèi)容和上下句是否對應(yīng),進(jìn)行 finetune。

之后使用時,可以用下面兩個例子說明。

圖片分類。下句中輸入視頻信息,上句輸入 “now let me show you how to [MASK] the [MASK]” ,就可以直接在 [MASK] 位置獲得視頻中的動作與物品(amazing!);

字幕生成。與1相同,不過下句用 “now let’s [MASK] the [MASK] to the [MASK], and then [MASK] the [MASK].” 之后拿獲得的 [MASK] 位置向量與視頻信息向量拼接,用于下一步字幕生成。

總而言之真的是很 fancy 的研究。

彩蛋

除以上所提到所有 finetune 方法,我還想提一個 finetune 方法。它沒有專門作為一篇論文,而是出現(xiàn)在大批量訓(xùn)練 BERT 論文中的一小節(jié)中。

論文中的問題,為了更快訓(xùn)練,有用到這樣一個技巧,將訓(xùn)練分為兩個階段。第一個階段,用 256 長度 64k 批量來訓(xùn)練;而第二階段,則用 512 長度 32k 批量來訓(xùn)練。

這里第二階段其實也可看做是一種 finetune,而且正是對上面論文一直沒用到的位置向量的 finetune。它可以看做是先在只有 256 個的位置向量上進(jìn)行預(yù)訓(xùn)練,之后再擴(kuò)展到 512 個位置進(jìn)行 finetune。因此里面也用了 finetune 的一些技巧,比如說第二階段會有一個重新預(yù)熱(re-warmup)過程。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 算法
    +關(guān)注

    關(guān)注

    23

    文章

    4701

    瀏覽量

    94853
  • 線性
    +關(guān)注

    關(guān)注

    0

    文章

    200

    瀏覽量

    25540
  • 數(shù)據(jù)集
    +關(guān)注

    關(guān)注

    4

    文章

    1223

    瀏覽量

    25302

原文標(biāo)題:BERT烹飪之法:fintune 的藝術(shù)

文章出處:【微信號:BigDataDigest,微信公眾號:大數(shù)據(jù)文摘】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦
    熱點推薦

    BERT原理詳解

    BERT原理詳解
    發(fā)表于 07-02 16:45

    串行BERT軟件安裝指南

    7G / 13.5G 串行 BERT 固化軟件和 GUI 軟件的文檔。
    發(fā)表于 09-10 11:05

    串行BERT用戶指南

    A guide on using the Serial BERT
    發(fā)表于 09-23 11:01

    串行BERT編程指南

    A guide on programming the Serial BERT
    發(fā)表于 09-24 17:15

    J-BERT N4903A高性能串行BERT手冊

    Brochure for the Keysight J-BERT N4903A High-Performance Serial BERT: 4 pages
    發(fā)表于 09-26 12:17

    回收M8040A 64 Gbaud 高性能 BERT

    回收M8040A 64 Gbaud 高性能 BERT曾S:***;Q號:3140751627;M8040A 64 Gbaud 高性能 BERTM8030A 多通道比特誤碼率測試儀M8062A
    發(fā)表于 07-03 11:08

    BERT模型的PyTorch實現(xiàn)

    BertModel是一個基本的BERT Transformer模型,包含一個summed token、位置和序列嵌入層,然后是一系列相同的self-attention blocks(BERT-base是12個blocks, BERT
    的頭像 發(fā)表于 11-13 09:12 ?1.4w次閱讀

    XLNet vs BERT,對比得明明白白!

    訓(xùn)練語料庫:Wikipedia + BooksCorpus,在處理Wikipedia時使用了與BERT repo相同的工具,但出于某種原因,我們的Wiki語料庫僅有20億單詞,BERT使用了25億單詞,因此XLNet的訓(xùn)練數(shù)據(jù)略少于BE
    的頭像 發(fā)表于 07-27 07:14 ?4645次閱讀
    XLNet vs <b class='flag-5'>BERT</b>,對比得明明白白!

    一篇BERT用于推薦系統(tǒng)的文章

    今天給大家介紹一篇BERT用于推薦系統(tǒng)的文章,題目是《BERT4Rec: Sequential Recommendation with Bidirectional Encoder
    的頭像 發(fā)表于 11-03 17:11 ?3293次閱讀
    一篇<b class='flag-5'>BERT</b>用于推薦系統(tǒng)的文章

    圖解BERT預(yù)訓(xùn)練模型!

    BERT的發(fā)布是這個領(lǐng)域發(fā)展的最新的里程碑之一,這個事件標(biāo)志著NLP 新時代的開始。BERT模型打破了基于語言處理的任務(wù)的幾個記錄。在 BERT 的論文發(fā)布后不久,這個團(tuán)隊還公開了模型的代碼,并提供了模型的下載版本
    的頭像 發(fā)表于 11-24 10:08 ?3994次閱讀

    如何優(yōu)雅地使用bert處理長文本

    這是今年清華大學(xué)及阿里巴巴發(fā)表在NIPS 2020上的一篇論文《CogLTX: Applying BERT to Long Texts》,介紹了如何優(yōu)雅地使用bert處理長文本。作者同時開源了
    的頭像 發(fā)表于 12-26 09:17 ?9093次閱讀
    如何優(yōu)雅地使用<b class='flag-5'>bert</b>處理長文本

    什么是BERT?為何選擇BERT

    由于絕大多數(shù) BERT 參數(shù)專門用于創(chuàng)建高質(zhì)量情境化詞嵌入,因此該框架非常適用于遷移學(xué)習(xí)。通過使用語言建模等自我監(jiān)督任務(wù)(不需要人工標(biāo)注的任務(wù))訓(xùn)練 BERT,可以利用 WikiText 和 BookCorpus 等大型無標(biāo)記數(shù)據(jù)集
    的頭像 發(fā)表于 04-26 14:24 ?4870次閱讀

    何亞東:數(shù)字烹飪創(chuàng)造家庭烹飪新價值

    文章來源:新華網(wǎng) 老板電器高級副總裁何亞東在接受采訪時表示,用科技助力烹飪,降低烹飪門檻。老板電器認(rèn)為數(shù)字烹飪能夠降低烹飪的門檻,讓更多人有意愿、有動力走進(jìn)廚房。同時,也可以增加
    發(fā)表于 09-08 10:38 ?452次閱讀

    總結(jié)FasterTransformer Encoder(BERT)的cuda相關(guān)優(yōu)化技巧

    FasterTransformer BERT 包含優(yōu)化的 BERT 模型、高效的 FasterTransformer 和 INT8 量化推理。
    的頭像 發(fā)表于 01-30 09:34 ?3330次閱讀
    總結(jié)FasterTransformer Encoder(<b class='flag-5'>BERT</b>)的cuda相關(guān)優(yōu)化技巧

    NLP入門之Bert的前世今生

    對于每個詞只能有一個固定的向量表示,今天我們來介紹一個給NLP領(lǐng)域帶來革新的預(yù)訓(xùn)練語言大模型Bert,對比word2vec和Glove詞向量模型,Bert是一個動態(tài)的詞向量語言模型,接下來將帶領(lǐng)大家一起來聊聊Bert的前世今生,
    發(fā)表于 02-22 10:29 ?1142次閱讀
    NLP入門之<b class='flag-5'>Bert</b>的前世今生
    主站蜘蛛池模板: 色多多福利网站老司机 | 日本不卡高清视频 | 色多多污网站在线观看 | 在线看av的网址 | 狠狠色丁香婷婷 | 国产三级视频在线播放 | 亚洲 欧美 日韩 在线 中文字幕 | 高清在线免费观看 | 在线天堂中文新版有限公司 | 婷婷色网 | 天天操天天干天天爽 | 亚洲第一中文字幕 | 午夜影院一级片 | 免看乌克兰a一级 | 一本到午夜92版免费福利 | 久久久久青草 | 四虎黄色影院 | 亚洲男女免费视频 | 天天爽夜夜爽 | 亚洲国产精品综合久久网络 | 激情玖玖| 国产成人1024精品免费 | 女69女人poren25| 欧美日韩高清一本大道免费 | 国产精品美女在线 | 欧美一区精品 | 国产精品久久永久免费 | 永久在线免费观看 | 五月天激情开心网 | 四虎永久网址在线观看 | 精品国产一区二区三区国产馆 | 亚洲色图综合图区 | 精品一区二区三区免费毛片爱 | 亚洲国产成+人+综合 | 国卡一卡二卡三免费网站 | 免费一级片在线观看 | 真实国产伦子系 | 色拍拍综合网 | 四虎欧美| 夜夜操天天干 | 国产成年女一区二区三区 |