訂閱
糾錯
加入自媒體

今天淺談一下「繼續(xù)預(yù)訓(xùn)練」

最近和同事聊天,聊到一次面試時,同事作為面試官,提問了一個小問題:「如果你擁有的預(yù)訓(xùn)練的語料和下游任務(wù)的語料分布差異很大,你會怎么做」

「那他答上來了嗎」我問到

「沒有」他說

一、基本概念

繼續(xù)預(yù)訓(xùn)練是什么?

常見為:

· 基于大規(guī)模預(yù)訓(xùn)練語言模型(如bert/ernie/gpt等),針對(或使用)下游NLP任務(wù)的特定語料,對模型進(jìn)行領(lǐng)域/任務(wù)的繼續(xù)訓(xùn)練。范式的更迭可以表示為:

· pre-training + fine-tuning

· pre-training + continual pre-training + fine-tuning

為什么要繼續(xù)預(yù)訓(xùn)練?

繼續(xù)預(yù)訓(xùn)練的目的:

· 為了得到適應(yīng)不同行業(yè)/任務(wù)領(lǐng)域的預(yù)訓(xùn)練模型,提升下游任務(wù)的效果

什么時候需要繼續(xù)預(yù)訓(xùn)練?

· 預(yù)訓(xùn)練(pre-train)的語料與下游任務(wù)(finetune)語料的【數(shù)據(jù)分布/領(lǐng)域差異】大時

· 例如:現(xiàn)在你的任務(wù)是從法律文件中做NER任務(wù),但你使用的bert模型為普通的bert-base-chinese,那么如果想要達(dá)到一個下游任務(wù)上更好的效果,你最好使用大量的法律領(lǐng)域語料來繼續(xù)預(yù)訓(xùn)練從而得到一個適應(yīng)法律領(lǐng)域的預(yù)訓(xùn)練模型。

那么,領(lǐng)域差距是怎么造成的?

· 領(lǐng)域差距的本質(zhì),究其根本原因,還是數(shù)據(jù)問題。

· 本質(zhì):詞匯/n-gram不匹配

· 領(lǐng)域差距主要是由特定領(lǐng)域的n-gram的不同以及其出現(xiàn)的上下文的不同造成的

· 不同領(lǐng)域的token/word/n-gram的不同直接導(dǎo)致了語言模型可以在相應(yīng)領(lǐng)域語料中獲取的embedding/feature表征的不同,因此在通用領(lǐng)域上預(yù)訓(xùn)練好的模型feature在特定領(lǐng)域語料上使用時往往不會達(dá)到最優(yōu)的效果。

二、如何繼續(xù)預(yù)訓(xùn)練?

數(shù)據(jù)設(shè)計直接設(shè)計數(shù)據(jù)是解決數(shù)據(jù)的領(lǐng)域差異的一種通用且高效的方法(畢竟領(lǐng)域差距的本質(zhì),究其根本原因,還是數(shù)據(jù)問題)。

· 挖掘領(lǐng)域數(shù)據(jù):

 · 【任務(wù)適應(yīng)/領(lǐng)域適應(yīng)】方法

 · 如:Don’t Stop Pretraining: Adapt Language Models to Domains and Tasks

 · BioBERT: a pre-trained biomedical language representation model for biomedical text mining

 · SCIBERT: A Pretrained Language Model for Scientific Text

 · FinBERT: Financial Sentiment Analysis with Pre-trained Language Models

 · 設(shè)計訓(xùn)練方法:

 · 新詞挖掘 + whole word masking

 · 行業(yè)/領(lǐng)域新詞挖掘

 · 知識增強(qiáng)的mlm

 · 實(shí)體 mask

 · 如:ERNIE2.0

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

 · UDA(Unsupervised Data Augmentation)

 · 對抗訓(xùn)

 · 練偽標(biāo)簽(半監(jiān)督)

 · 對比學(xué)習(xí)(infoNCE-loss)

參數(shù)設(shè)計

· 參數(shù)平滑泛化:

 · SWA(Stochastic Moving Average,隨機(jī)滑動平均)和EMA(Exponential Moving Average,指數(shù)滑動平均)

模型設(shè)計

· 模型學(xué)習(xí)使用領(lǐng)域知識:

· 固定原始PLM,額外訓(xùn)練一個adapter去學(xué)習(xí)/利用領(lǐng)域知識

· 如:Taming Pre-trained Language Models with N-gram Representations for Low-Resource Domain Adaptation

· 模型適應(yīng)不同任務(wù):

· 多任務(wù)學(xué)習(xí)(偏向于Pre-train+Massive Multi-tasking的領(lǐng)域)

· prompt

三、現(xiàn)存問題

數(shù)據(jù)問題

· 數(shù)據(jù)數(shù)量

· 如數(shù)據(jù)數(shù)量不夠/缺少人工標(biāo)注

· 數(shù)據(jù)長尾

· 數(shù)據(jù)普遍遵循長尾理論,存在大多數(shù)數(shù)據(jù)出現(xiàn)次數(shù)少,少數(shù)數(shù)據(jù)出現(xiàn)次數(shù)多的特點(diǎn)。出現(xiàn)次數(shù)少的大多數(shù)數(shù)據(jù)即為長尾數(shù)據(jù),長尾數(shù)據(jù)的特征表示往往很難準(zhǔn)確建模。

 · 可以通過針對長尾數(shù)據(jù)做特定的知識引入的方式來解決

 · 如:Enhancing Language Model Pre-training with Dictionary

 · 數(shù)據(jù)分布

 · 分布不全面或有偏差

 · 如現(xiàn)有醫(yī)療數(shù)據(jù)-外科類別,只是醫(yī)療體系中的冰山一角,并不能覆蓋全部的所需醫(yī)療行業(yè)知識。

 · 類別不均衡

 1 可以使用數(shù)據(jù)增強(qiáng)/過采樣/欠采樣/集成學(xué)習(xí)/resample/reweight的方法來解決

· 標(biāo)注數(shù)據(jù)的噪音/質(zhì)量

· 如雖然數(shù)據(jù)有標(biāo)注,但是不同標(biāo)注人員對于數(shù)據(jù)存在認(rèn)知偏差

· 可以使用交叉驗(yàn)證/置信學(xué)習(xí)/聚類分析的方法來解決

知識缺乏

預(yù)訓(xùn)練與下游任務(wù)存在偏差,模型缺乏下游特定知識

· 前面我們說過「領(lǐng)域差距的本質(zhì),究其根本原因,還是數(shù)據(jù)問題,是不同領(lǐng)域之間的詞匯/n-gram的不匹配」,這其中也是領(lǐng)域知識不匹配的問題。

知識引入方法:

· 顯式:通過語料/詞條釋義/SPO等引入知識;隱式:通過向量方法。

· 現(xiàn)有論文&解決方案:

· Enhancing Language Model Pre-training with Dictionary

· Kformer:Knowledge Injection in Transformer Feed-Forward Layers

· Decomposable Knowledge-enhanced Pre-trained Language Model for  Natural Language Understanding

但這里需要注意的是:常見數(shù)據(jù)中的知識含量會很容易的被大規(guī)模語言模型學(xué)習(xí)到,而長尾數(shù)據(jù)中包含的知識由于模型見的比較少,其中的知識很難學(xué)到,所以解決知識問題研究者們通常會從長尾數(shù)據(jù)入手,但-解決「數(shù)據(jù)長尾」問題并不等于解決「知識缺乏」問題!

· 因?yàn)殚L尾數(shù)據(jù)并不一定是需要引入知識的數(shù)據(jù),也有可能是錯誤的表述方法導(dǎo)致出現(xiàn)的數(shù)據(jù)

· 如:

· 對于句子:「醫(yī)生:那你最近的話,給寶寶多吃一點(diǎn)白粥米湯淌少喝一點(diǎn),然后吃一點(diǎn)媽咪愛或者益生菌類的菜!

· 如果進(jìn)行長尾數(shù)據(jù)的檢測,其中的「米湯淌」和「媽咪愛」很容易會被判別為長尾數(shù)據(jù),其中「媽咪愛」作為一種藥的別稱或許是需要相關(guān)詞條/知識的引入,但人類很容易看出「米湯淌」并不需要引入知識

· 如果不加判斷的把所有的長尾數(shù)據(jù)都加入知識,很大概率會引入大量噪音,導(dǎo)致最終效果不升反降。

那么如何判別長尾數(shù)據(jù)是否需要引入知識呢?

· 一些論文提出了知識實(shí)體的判別方法

· 如:Decomposable Knowledge-enhanced Pre-trained Language Model for  Natural Language Understanding

理解缺乏

現(xiàn)存的模型普遍缺乏深度理解,偏向于字面匹配,推理成分較少,能力較弱。

· 引用:

· 如:模型無法很好的處理下述問題

雖然現(xiàn)有的大模型在發(fā)布/發(fā)論文的時候,給出的指標(biāo)都看起來是非常高(各個任務(wù)上都是8/90+),但本質(zhì)上這些數(shù)據(jù)集提供的都是一些偏向于使用學(xué)習(xí)字面含義就能夠解決的任務(wù),如文本分類/生成/NER等。

然而,一旦使用一些較難的,需要推理能力的任務(wù),所有的模型都會出現(xiàn)遠(yuǎn)不如人類的奇差的表現(xiàn)。如:

現(xiàn)有論文&解決方案:

· Chain of Thought Prompting Elicits Reasoning in Large Language Models

大模型推理能力「reasoning」的研究,是一個難點(diǎn),也是一個亮點(diǎn)

四、參考文獻(xiàn)

論文

· Don’t Stop Pretraining: Adapt Language Models to Domains and Tasks

· Taming Pre-trained Language Models with N-gram Representations for Low-Resource Domain Adaptation

· Exact solutions to the nonlinear dynamics of learning in deep linear neural networks

· BioBERT: a pre-trained biomedical language representation model for biomedical text mining

· SCIBERT: A Pretrained Language Model for Scientific Text

· FinBERT: Financial Sentiment Analysis with Pre-trained Language Models

· Enhancing Language Model Pre-training with Dictionary

· Knowledge Injection in Transformer Feed-Forward Layers

· Decomposable Knowledge-enhanced Pre-trained Language Model for  Natural Language Understanding

· Chain of Thought Prompting Elicits Reasoning in Large Language Models

       原文標(biāo)題 : 今天淺談一下「繼續(xù)預(yù)訓(xùn)練」

聲明: 本文由入駐維科號的作者撰寫,觀點(diǎn)僅代表作者本人,不代表OFweek立場。如有侵權(quán)或其他問題,請聯(lián)系舉報。

發(fā)表評論

0條評論,0人參與

請輸入評論內(nèi)容...

請輸入評論/評論長度6~500個字

您提交的評論過于頻繁,請輸入驗(yàn)證碼繼續(xù)

  • 看不清,點(diǎn)擊換一張  刷新

暫無評論

暫無評論

    掃碼關(guān)注公眾號
    OFweek人工智能網(wǎng)
    獲取更多精彩內(nèi)容
    文章糾錯
    x
    *文字標(biāo)題:
    *糾錯內(nèi)容:
    聯(lián)系郵箱:
    *驗(yàn) 證 碼:

    粵公網(wǎng)安備 44030502002758號