chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

如何讓Bert模型在下游任務(wù)中提高性能?

深度學(xué)習(xí)自然語(yǔ)言處理 ? 來源:簡(jiǎn)書 ? 作者:小蛋子 ? 2021-03-12 18:19 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

隨著Transformer 在NLP中的表現(xiàn),Bert已經(jīng)成為主流模型,然而大家在下游任務(wù)中使用時(shí),是不是也會(huì)發(fā)現(xiàn)模型的性能時(shí)好時(shí)壞,甚至相同參數(shù)切換一下隨機(jī)種子結(jié)果都不一樣,又或者自己不管如何調(diào),模型總達(dá)不到想象中的那么好,那如何才能讓Bert在下游任務(wù)中表現(xiàn)更好更穩(wěn)呢?本文以文本分類為例,介紹幾種能幫你提高下游任務(wù)性能的方法。

Further Pre-training

最穩(wěn)定也是最常用的提升下游任務(wù)性能的手段就是繼續(xù)進(jìn)行預(yù)訓(xùn)練了。繼續(xù)預(yù)訓(xùn)練目前有以下幾種模式。

二階段

首先回顧一下,Bert 是如何使用的呢?

我們假設(shè)通用泛化語(yǔ)料為 ,下游任務(wù)相關(guān)的數(shù)據(jù)為 , Bert 即在通用語(yǔ)料 上訓(xùn)練一個(gè)通用的Language Model, 然后利用這個(gè)模型學(xué)到的通用知識(shí)來做下游任務(wù),也就是在下游任務(wù)上做fine-tune,這就是二階段模式。

大多數(shù)情況下我們也都是這么使用的:下載一個(gè)預(yù)訓(xùn)練模型,然后在自己的數(shù)據(jù)上直接fine-tune。

三階段

在論文Universal Language Model Fine-tuning for Text Classification[1]中,作者提出了一個(gè)通用的范式ULMFiT:

在大量的通用語(yǔ)料上訓(xùn)練一個(gè)LM(Pretrain);

在任務(wù)相關(guān)的小數(shù)據(jù)上繼續(xù)訓(xùn)練LM(Domain transfer);

在任務(wù)相關(guān)的小數(shù)據(jù)上做具體任務(wù)(Fine-tune)。

那我們?cè)谑褂肂ert 時(shí)能不能也按這種范式,進(jìn)行三階段的fine-tune 從而提高性能呢?答案是:能!

比如邱錫鵬老師的論文How to Fine-Tune BERT for Text Classification?[2]和Don't Stop Pretraining: Adapt Language Models to Domains and Tasks[3]中就驗(yàn)證了,在任務(wù)數(shù)據(jù) 繼續(xù)進(jìn)行pretraining 任務(wù),可以提高模型的性能。

那如果我們除了任務(wù)數(shù)據(jù)沒有別的數(shù)據(jù)時(shí),怎么辦呢?簡(jiǎn)單,任務(wù)數(shù)據(jù)肯定是相同領(lǐng)域的,此時(shí)直接將任務(wù)數(shù)據(jù)看作相同領(lǐng)域數(shù)據(jù)即可。所以,在進(jìn)行下游任務(wù)之前,不妨先在任務(wù)數(shù)據(jù)上繼續(xù)進(jìn)行pre-training 任務(wù)繼續(xù)訓(xùn)練LM ,之后再此基礎(chǔ)上進(jìn)行fine-tune。

四階段

我們?cè)趯?shí)際工作上,任務(wù)相關(guān)的label data 較難獲得,而unlabeled data 卻非常多,那如何合理利用這部分?jǐn)?shù)據(jù),是不是也能提高模型在下游的性能呢?答案是:也能!

在大量通用語(yǔ)料上訓(xùn)練一個(gè)LM(Pretrain);

在相同領(lǐng)域 上繼續(xù)訓(xùn)練LM(Domain transfer);

在任務(wù)相關(guān)的小數(shù)據(jù)上繼續(xù)訓(xùn)練LM(Task transfer);

在任務(wù)相關(guān)數(shù)據(jù)上做具體任務(wù)(Fine-tune)。

而且上述兩篇論文中也給出了結(jié)論:先Domain transfer 再進(jìn)行Task transfer 最后Fine-tune 性能是最好的。

如何further pre-training

how to mask

首先,在further pre-training時(shí),我們應(yīng)該如何進(jìn)行mask 呢?不同的mask 方案是不是能起到更好的效果呢?

在Roberta 中提出,動(dòng)態(tài)mask 方案比固定mask 方案效果更好。此外,在做Task transfer 時(shí),由于數(shù)據(jù)通常較小,固定的mask 方案通常也容易過擬合,所以further pre-training 時(shí),動(dòng)態(tài)隨機(jī)mask 方案通常比固定mask 效果更好。

而ERNIE 和 SpanBert 中都給出了結(jié)論,更有針對(duì)性的mask 方案可以提升下游任務(wù)的性能,那future pre-training 時(shí)是否有什么方案能更有針對(duì)性的mask 呢?

劉知遠(yuǎn)老師的論文Train No Evil: Selective Masking for Task-Guided Pre-Training[4]就提出了一種更有針對(duì)性的mask 方案Selective Mask,進(jìn)行further pre-training 方案,該方案的整體思路是:

在 上訓(xùn)練一個(gè)下游任務(wù)模型 ;

利用 判斷token 是否是下游任務(wù)中的重要token,具體計(jì)算公式為:, 其中 為完整句子(序列), 為一個(gè)初始化為空的buffer,每次將句子中的token 往buffer中添加,如果加入的token 對(duì)當(dāng)前任務(wù)的表現(xiàn)與完整句子在當(dāng)前任務(wù)的表現(xiàn)差距小于閾值,則認(rèn)為該token 為重要token,并從buffer 中剔除;

利用上一步中得到的token label,訓(xùn)練一個(gè)二分類模型 ,來判斷句子中的token 是否為重要token;

利用 ,在domain 數(shù)據(jù)上進(jìn)行預(yù)測(cè),根據(jù)預(yù)測(cè)結(jié)果進(jìn)行mask ;

進(jìn)行Domain transfer pre-training;

在下游任務(wù)進(jìn)行Fine-tuning。

上述方案驗(yàn)證了更有針對(duì)性的mask 重要的token,下游任務(wù)中能得到不錯(cuò)的提升。綜合下來,Selective Mask > Dynamic Mask > Static Mask

雖然selective mask 有提升,但是論文給出的思路太過繁瑣了,本質(zhì)上是判斷token 在下游任務(wù)上的影響,所以這里給出一個(gè)筆者自己腦洞的一個(gè)方案:「通過 在unlabeled 的Domain data 上直接預(yù)測(cè),然后通過不同token 下結(jié)果的熵的波動(dòng)來確定token 對(duì)下游任務(wù)的影響」。這個(gè)方案我沒有做過實(shí)驗(yàn),有興趣的可以試試。

when to stop

在further pretraining 時(shí),該何時(shí)停止呢?是否訓(xùn)練的越久下游任務(wù)就提升的越多呢?答案是否定的。在進(jìn)行Task transfer 時(shí),應(yīng)該訓(xùn)練多少步,論文How to Fine-Tune BERT for Text Classification?[5]進(jìn)行了實(shí)驗(yàn),最后得出的結(jié)論是100k步左右,下游任務(wù)上提升是最高的,這也與我自己的實(shí)驗(yàn)基本吻合,訓(xùn)練過多就會(huì)過擬合,導(dǎo)致下游任務(wù)上提升小甚至降低。

此外,由于下游任務(wù)數(shù)據(jù)量的不同,進(jìn)行多少步結(jié)果是最優(yōu)的也許需要實(shí)驗(yàn)測(cè)試。這里給出一個(gè)更快捷穩(wěn)妥的方案:借鑒PET本質(zhì)上也是在訓(xùn)練MLM 任務(wù),我們可以先利用利用PET做fine-tuning,然后將最優(yōu)模型作為預(yù)訓(xùn)練后的模型來進(jìn)行分類任務(wù)fine-tuning,這種方案我實(shí)驗(yàn)后的結(jié)論是與直接進(jìn)行Task transfer性能提升上相差不大。不了解PET的可以查看我之前博文PET-文本分類的又一種妙解[6].

how to fine-tuning

不同的fine-tuning 方法也是影響下游任務(wù)性能的關(guān)鍵因素。

optimizer

關(guān)于優(yōu)化方案上,Bert 的論文中建議使用與bert 預(yù)訓(xùn)練時(shí)一致的方案進(jìn)行fine-tuning,即使用weighted decay修正后的Adam,并使用warmup策略 搭配線性衰減的學(xué)習(xí)率。不熟悉的同學(xué)可以查看我之前的博文optimizer of bert[7]

learning rate

不合適的learning rate可能會(huì)導(dǎo)致災(zāi)難性遺忘,通常learning rate 在 之間,更大的learning rate可能就會(huì)發(fā)生災(zāi)難性遺忘,不利于優(yōu)化。

60d32dfa-82c5-11eb-8b86-12bb97331649.png

此外,對(duì)transformer 逐層降低學(xué)習(xí)率也能降低發(fā)生災(zāi)難性遺忘的同時(shí)提升一些性能。

multi-task

Bert在預(yù)訓(xùn)練時(shí),使用了兩個(gè)task:NSP 和 MLM,那在下游任務(wù)中,增加一個(gè)輔助的任務(wù)是否能帶來提升呢?答案是否定的。如我之前嘗試過在分類任務(wù)的同時(shí),增加一個(gè)相似性任務(wù):讓樣本與label desc的得分高于樣本與其他樣本的得分,但是最終性能并沒有得到提升。具體的實(shí)驗(yàn)過程請(qǐng)看博文模型增強(qiáng)之從label下手[8]。

此外,論文How to Fine-Tune BERT for Text Classification?[9]也任務(wù)multi-task不能帶來下游任務(wù)的提升。

which layer

Bert的結(jié)構(gòu)上是一個(gè)12層的transformer,在做文本分類時(shí),通常我們是直接使用最后一層的[CLS]來做fine-tuning,這樣是最優(yōu)的嗎?有沒有更好的方案?

論文How to Fine-Tune BERT for Text Classification?[10]中針對(duì)這個(gè)問題也做了實(shí)驗(yàn),對(duì)比了不同的layer不同的抽取策略,最終結(jié)論是所有層拼接效果最好,但是與直接使用最后一層差距不大。

6110dd9e-82c5-11eb-8b86-12bb97331649.png

而論文Hate Speech Detection and Racial Bias Mitigation in Social Media based on BERT model[11]中,作者通過組合多種粒度的語(yǔ)義信息,即將12層的[CLS]拼接后,送人CNN,在Hate Speech Detection 中能帶來8個(gè)點(diǎn)的提升!cnn.png)

所以在fine-tuning時(shí),也可以想一想到底是哪種粒度的語(yǔ)義信息對(duì)任務(wù)更重要。

Self-Knowledge Distillation

self-knowledge distillation(自蒸餾)也是一種常用的提升下游任務(wù)的手段。做法是先在Task data上fine-tuning 一個(gè)模型,然后通過模型得到Task data 的soft labels,然后使用soft labels 代替hard label 進(jìn)行fine-tuning。更多細(xì)節(jié)可以查看之前的博文Knowledge Distillation之知識(shí)遷移[12]

知識(shí)注入

通過注入外部知識(shí)到bert中也能提升Bert的性能,常用的方式主要有兩種:

在bert embedding 層注入:通過將外部Embedding 與Bert token-embedding 拼接(相加)進(jìn)行融合,然后進(jìn)行transformer一起作用下游;

在transformer的最后一層,拼接外部embedding,然后一起作用下游。

如Enriching BERT with Knowledge Graph Embeddings for Document Classification[13]中,通過在transformer的最后一層中拼接其他信息,提高模型的性能。

616694e6-82c5-11eb-8b86-12bb97331649.png

數(shù)據(jù)增強(qiáng)

NLP中數(shù)據(jù)增強(qiáng)主要有兩種方式:一種是保持語(yǔ)義的數(shù)據(jù)增強(qiáng),一種是可能破壞語(yǔ)義的局部擾動(dòng)增強(qiáng)。

保持語(yǔ)義通常采用回譯法,局部擾動(dòng)的通常使用EDA,更多細(xì)節(jié)可以查看之前博文NLP中的數(shù)據(jù)增強(qiáng)[14]

原文標(biāo)題:【BERT】如何提升BERT在下游任務(wù)中的性能

文章出處:【微信公眾號(hào):深度學(xué)習(xí)自然語(yǔ)言處理】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

責(zé)任編輯:haq

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

    關(guān)注

    1

    文章

    3645

    瀏覽量

    51685
  • nlp
    nlp
    +關(guān)注

    關(guān)注

    1

    文章

    491

    瀏覽量

    23182

原文標(biāo)題:【BERT】如何提升BERT在下游任務(wù)中的性能

文章出處:【微信號(hào):zenRRan,微信公眾號(hào):深度學(xué)習(xí)自然語(yǔ)言處理】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    提高RISC-V在Drystone測(cè)試中得分的方法

    性能:內(nèi)存的讀寫速度、延遲和帶寬等都會(huì)影響到 Drystone 的性能。 指令集優(yōu)化:對(duì)RISC-V指令集的優(yōu)化也會(huì)影響性能。例如,對(duì)于特定的應(yīng)用或計(jì)算任務(wù),可以通過定制指令集來
    發(fā)表于 10-21 13:58

    【產(chǎn)品介紹】Altair HPCWorks高性能計(jì)算管理平臺(tái)(HPC平臺(tái))

    AltairHPCWorksAltair高性能計(jì)算平臺(tái)最大限度地利用復(fù)雜的計(jì)算資源,并簡(jiǎn)化計(jì)算密集型任務(wù)的工作流程管理,包括人工智能、建模和仿真,以及可視化應(yīng)用。強(qiáng)大的計(jì)算助力研發(fā)增速
    的頭像 發(fā)表于 09-18 17:56 ?512次閱讀
    【產(chǎn)品介紹】Altair HPCWorks<b class='flag-5'>高性能</b>計(jì)算管理平臺(tái)(HPC平臺(tái))

    NVMe高速傳輸之?dāng)[脫XDMA設(shè)計(jì)27: 橋設(shè)備模型設(shè)計(jì)

    構(gòu)造 PCIe Switch 模型。 最小橋設(shè)備模型結(jié)構(gòu)如圖 1所示。圖1 最小橋設(shè)備模型結(jié)構(gòu)圖 最小橋設(shè)備模型只包含一個(gè)唯一的上游端口和一個(gè)下游
    發(fā)表于 09-18 09:11

    訊飛星辰MaaS平臺(tái)實(shí)現(xiàn)高性能DeepSeek V3上線

    以DeepSeek模型為代表的MoE技術(shù)路線,正不斷突破通用大模型的效果上限。其創(chuàng)新的PD優(yōu)化與大EP推理方案,推動(dòng)大模型邁向“高性能、低成本、強(qiáng)普惠”的新階段。
    的頭像 發(fā)表于 06-04 10:15 ?1120次閱讀

    KaihongOS操作系統(tǒng)FA模型與Stage模型介紹

    KaihongOS中提供了不同的開發(fā)方式和架構(gòu)選擇,Stage模型因其在分布式應(yīng)用開發(fā)中的優(yōu)勢(shì)而被推薦使用。 說明:KaihongOS文檔中心中應(yīng)用開發(fā)(開發(fā)準(zhǔn)備、快速入門、進(jìn)階提高模塊中的示例代碼均基于Stage
    發(fā)表于 04-24 07:27

    RAKsmart高性能服務(wù)器集群:驅(qū)動(dòng)AI大語(yǔ)言模型開發(fā)的算力引擎

    RAKsmart高性能服務(wù)器集群憑借其創(chuàng)新的硬件架構(gòu)與全棧優(yōu)化能力,成為支撐大語(yǔ)言模型開發(fā)的核心算力引擎。下面,AI部落小編帶您了解RAKsmart如何為AI開發(fā)者提供從模型訓(xùn)練到落地的全鏈路支持。
    的頭像 發(fā)表于 04-15 09:40 ?506次閱讀

    【「基于大模型的RAG應(yīng)用開發(fā)與優(yōu)化」閱讀體驗(yàn)】+大模型微調(diào)技術(shù)解讀

    同時(shí)優(yōu)化多個(gè)相關(guān)任務(wù)的損失函數(shù)來提升模型的泛化能力。學(xué)習(xí)率調(diào)整策略:合理的學(xué)習(xí)率調(diào)整可以加速模型收斂,提高最終的性能。常用的學(xué)習(xí)率調(diào)整方法包
    發(fā)表于 01-14 16:51

    鴻蒙原生頁(yè)面高性能解決方案上線OpenHarmony社區(qū) 助力打造高性能原生應(yīng)用

    隨著HarmonyOS NEXT的正式推出,鴻蒙原生應(yīng)用開發(fā)熱度高漲,數(shù)量激增。但在三方應(yīng)用鴻蒙化進(jìn)程中,性能問題頻出。為此,HarmonyOS NEXT推出了一整套原生頁(yè)面高性能解決方案,包括
    發(fā)表于 01-02 18:00

    【「具身智能機(jī)器人系統(tǒng)」閱讀體驗(yàn)】2.具身智能機(jī)器人大模型

    的設(shè)計(jì)不僅提高了機(jī)器人對(duì)環(huán)境的理解能力,還使其能夠更精準(zhǔn)地執(zhí)行復(fù)雜任務(wù)。 擴(kuò)散模型的新思路 除了大模型,擴(kuò)散模型的引入為機(jī)器人控制開辟了新的
    發(fā)表于 12-29 23:04

    使用任務(wù)通知提高RTOS應(yīng)用的效率

    在實(shí)時(shí)嵌入式系統(tǒng)中,性能和資源效率是決定設(shè)計(jì)成敗的關(guān)鍵因素。傳統(tǒng)的實(shí)時(shí)操作系統(tǒng)(RTOS)提供了如隊(duì)列、信號(hào)量和事件組機(jī)制,實(shí)現(xiàn)任務(wù)之間的同步和通信。FreeRTOS/SAFERTOS還提供一種方法可以使這些過程更快、更輕量化,即任務(wù)
    的頭像 發(fā)表于 12-27 14:54 ?1057次閱讀

    《具身智能機(jī)器人系統(tǒng)》第7-9章閱讀心得之具身智能機(jī)器人與大模型

    布外任務(wù)展示出多樣化和復(fù)雜的推廣能力。 知識(shí)載體 知識(shí)嵌入在訓(xùn)練期間學(xué)習(xí)的模型參數(shù)中。 知識(shí)載體是記憶和隱藏狀態(tài),專注于上下文學(xué)習(xí)和適應(yīng)。 可擴(kuò)展性 通過擴(kuò)展參數(shù)和預(yù)訓(xùn)練數(shù)據(jù)集提高性能。 通過擴(kuò)展元
    發(fā)表于 12-24 15:03

    【「大模型啟示錄」閱讀體驗(yàn)】+開啟智能時(shí)代的新鑰匙

    ,NVDIA與微軟的競(jìng)爭(zhēng) 。計(jì)算能力的飛速提升是大模型得以興起的重要基石。GPU/TPU 等高性能計(jì)算設(shè)備的迅猛發(fā)展,宛如為大模型的訓(xùn)練打造了一臺(tái)強(qiáng)大的引擎。它們能夠以極高的速度處理海量的數(shù)據(jù),使得訓(xùn)練
    發(fā)表于 12-24 13:10

    在A/D轉(zhuǎn)換過程中,高速ADC與低速ADC在提高性能指標(biāo)上,考慮的點(diǎn)有什么不同?

    在A/D轉(zhuǎn)換過程中,高速ADC與低速ADC在提高性能指標(biāo)上,考慮的點(diǎn)有什么不同?
    發(fā)表于 12-18 07:07

    【「大模型啟示錄」閱讀體驗(yàn)】如何在客服領(lǐng)域應(yīng)用大模型

    訓(xùn)練模型BERT、GPT等。這些模型在理解自然語(yǔ)言、生成文本、處理對(duì)話等方面具有不同的能力。因此,在選擇模型時(shí),需要了解每個(gè)模型的特點(diǎn)和優(yōu)
    發(fā)表于 12-17 16:53

    如何優(yōu)化自然語(yǔ)言處理模型性能

    優(yōu)化自然語(yǔ)言處理(NLP)模型性能是一個(gè)多方面的任務(wù),涉及數(shù)據(jù)預(yù)處理、特征工程、模型選擇、模型調(diào)參、
    的頭像 發(fā)表于 12-05 15:30 ?2370次閱讀