今天淺談一下「繼續(xù)預訓練」
最近和同事聊天,聊到一次面試時,同事作為面試官,提問了一個小問題:「如果你擁有的預訓練的語料和下游任務的語料分布差異很大,你會怎么做」
「那他答上來了嗎」我問到
「沒有」他說
一、基本概念
繼續(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ù)預訓練」

請輸入評論內(nèi)容...
請輸入評論/評論長度6~500個字
最新活動更多
推薦專題
- 1 UALink規(guī)范發(fā)布:挑戰(zhàn)英偉達AI統(tǒng)治的開始
- 2 北電數(shù)智主辦酒仙橋論壇,探索AI產(chǎn)業(yè)發(fā)展新路徑
- 3 降薪、加班、裁員三重暴擊,“AI四小龍”已折戟兩家
- 4 “AI寒武紀”爆發(fā)至今,五類新物種登上歷史舞臺
- 5 國產(chǎn)智駕迎戰(zhàn)特斯拉FSD,AI含量差幾何?
- 6 光計算迎來商業(yè)化突破,但落地仍需時間
- 7 東陽光:2024年扭虧、一季度凈利大增,液冷疊加具身智能打開成長空間
- 8 地平線自動駕駛方案解讀
- 9 封殺AI“照騙”,“淘寶們”終于不忍了?
- 10 優(yōu)必選:營收大增主靠小件,虧損繼續(xù)又逢關稅,能否乘機器人東風翻身?