訂閱
糾錯
加入自媒體

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

2022-07-27 10:58
程序媛驛站
關注

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

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

「沒有」他說

一、基本概念

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

常見為:

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

· pre-training + fine-tuning

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

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

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

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

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

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

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

那么,領域差距是怎么造成的?

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

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

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

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

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

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

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

 · 【任務適應/領域適應】方法

 · 如: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

 · 設計訓練方法:

 · 新詞挖掘 + whole word masking

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

 · 知識增強的mlm

 · 實體 mask

 · 如:ERNIE2.0

 · 數(shù)據(jù)增強:

 · UDA(Unsupervised Data Augmentation)

 · 對抗訓

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

 · 對比學習(infoNCE-loss)

參數(shù)設計

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

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

模型設計

· 模型學習使用領域知識:

· 固定原始PLM,額外訓練一個adapter去學習/利用領域知識

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

· 模型適應不同任務:

· 多任務學習(偏向于Pre-train+Massive Multi-tasking的領域)

· prompt

三、現(xiàn)存問題

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

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

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

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

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

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

 · 如:Enhancing Language Model Pre-training with Dictionary

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

 · 分布不全面或有偏差

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

 · 類別不均衡

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

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

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

· 可以使用交叉驗證/置信學習/聚類分析的方法來解決

知識缺乏

預訓練與下游任務存在偏差,模型缺乏下游特定知識

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

知識引入方法:

· 顯式:通過語料/詞條釋義/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ī)模語言模型學習到,而長尾數(shù)據(jù)中包含的知識由于模型見的比較少,其中的知識很難學到,所以解決知識問題研究者們通常會從長尾數(shù)據(jù)入手,但-解決「數(shù)據(jù)長尾」問題并不等于解決「知識缺乏」問題!

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

· 如:

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

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

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

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

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

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

理解缺乏

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

· 引用:

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

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

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

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

· Chain of Thought Prompting Elicits Reasoning in Large Language Models

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

四、參考文獻

論文

· 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

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

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

發(fā)表評論

0條評論,0人參與

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

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

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

暫無評論

暫無評論

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

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