【NLP】27. 語言模型訓練以及模型選擇:從預訓練到下游任務

語言模型訓練:從預訓練到下游任務

本文詳細講解大型語言模型(LLMs)是如何訓練的,包括不同的模型類型(Encoder、Decoder、Encoder-Decoder),以及各類預訓練任務的原理、對比、適用場景,幫助你構建完整的語言建模理解體系。


一、三種主流語言模型結構

語言模型(LLMs)主要分為三種結構,每種結構的訓練方式、能力邊界、應用場景均有所不同:

類型代表模型輸入處理輸出形式典型用途
編碼器(Encoder)BERT輸入整句(遮掩詞)詞級表示向量NER、分類、匹配等
解碼器(Decoder)GPT輸入前文自回歸生成后文生成、續寫、對話等
編碼-解碼結構T5、BART編碼整句 → 解碼目標文本對到文本對翻譯、問答、摘要等

**注:**目前主流大模型如 GPT-4、Claude 多為 decoder-only 結構。


二、訓練語言模型的基本思想

無論是哪類模型,訓練過程都遵循一條核心路徑:

給定原始文本,稍作修改(如遮蓋、替換、刪除),訓練模型去“恢復或識別修改處”。

這種方式不僅可以學習詞與詞之間的語義關系,還能促使模型理解上下文和結構。


三、常見的訓練任務詳解與對比

1?? Next Token Prediction(下一個詞預測)

  • 用于: Decoder 模型(如 GPT)

  • 機制: 給定文本開頭,預測下一個詞

  • 建模目標:

y ^ t = arg ? max ? P ( y t ∣ y < t ) \hat{y}_{t} = \arg\max P(y_t \mid y_{<t}) y^?t?=argmaxP(yt?y<t?)

  • 例子:
    輸入:The weather is → 輸出:sunny

  • 優點: 能處理文本生成任務

  • 缺點: 單向上下文,只能看到前文


2?? Masked Token Prediction(遮蓋詞預測)

  • 用于: Encoder 模型(如 BERT)

  • 機制: 輸入句子中隨機遮蓋若干 token,模型預測遮蓋位置的原始詞

  • 例子:

    輸入:The capital of France is [MASK]
    輸出:Paris
    
  • 注意: 非遮蓋詞位置不參與 loss 計算

  • 對比 GPT: 能看到前后文(雙向上下文),但不能用于生成任務


3?? Span Prediction(SpanBERT)

  • 區別: 遮蓋連續多個詞(而不是單詞)

  • 目的: 強化模型處理片段(span)的能力,更適合問答等任務

  • 例子:

    輸入:Chocolate is [MASK] [MASK] [MASK] good
    輸出:incredibly irresistibly tasty
    
  • 難度更高 → 更強能力


4?? Random Token Correction(BERT)

  • 機制: 隨機替換句子中的詞,模型需判斷哪個詞錯了

  • 例子:

    I like MLP (原來是NLP)
    輸出:發現 MLP 是錯的
    
  • 挑戰: 模型要全局理解文本含義,避免僅依靠表層詞頻


5?? Token Edit Detection(ELECTRA)

  • 流程:

    • 由小型 generator 替換部分 token(偽造)
    • 判別器判斷每個 token 是否被替換
  • 優點: 所有 token 都參與訓練(比 BERT 更高效)

  • 訓練目標:

    Output i = { S , token?是原始 E , token?是生成 \text{Output}_i = \begin{cases} S, & \text{token 是原始} \\ E, & \text{token 是生成} \end{cases} Outputi?={S,E,?token?是原始token?是生成?


6?? Combination(BERT 擴展任務)

  • 整合多種任務:Masked + Replacement + 原文保留
  • 效果: 模型能更全面學習語義結構、對抗擾動

7?? Next Sentence Prediction(BERT)

  • 機制: 判斷兩句話是否為上下文連續

  • 例子:

    A: I like NLP
    B: I like MLP	
    輸出:是否 Next Sentence?
    
  • 后續研究發現: 該任務效果有限,RoBERTa 移除該任務后表現反而更好


四、Encoder-Decoder 專屬訓練任務(如 T5、BART)

? 1. Masked Sequence Prediction(遮蓋詞預測)

  • 輸入

    I attended [MASK] at [MASK]
    
  • 輸出目標

    I attended a workshop at Google
    

? 2. Deleted Sequence Prediction(刪除預測)

  • 輸入

    I watched yesterday
    
  • 輸出目標

    I watched a movie on Netflix yesterday
    
  • 錯誤答案示例(模型需要避免)

    I watched a presentation at work yesterday
    

? 3. Deleted Span Prediction(刪除片段預測)

  • 輸入

    She submitted the assignment
    
  • 輸出目標(分段補全)

    <X>: yesterday evening, <Y>: on Canvas
    

? 4. Permuted Sequence Prediction(打亂順序重構)

  • 輸入

    Netflix the on movie watched I
    
  • 輸出目標

    I watched the movie on Netflix
    

? 5. Rotated Sequence Prediction(旋轉預測)

  • 輸入

    the conference in I presented paper a
    
  • 輸出目標

    I presented a paper in the conference
    

? 6. Infilling Prediction(間隙填空)

  • 輸入

    She [MASK] the [MASK] before [MASK]
    
  • 輸出目標

    She completed the report before midnight
    

Encoder-Decoder 架構能更靈活地處理“輸入 → 輸出”任務,適合做結構性轉換。其訓練任務也更具多樣性:


任務類型模型示例輸入輸出(目標)
Masked SequenceBARTI submitted [MASK] to [MASK]I submitted the report to my supervisor
Deleted SequenceBARTI submitted to my supervisorI submitted the report to my supervisor
Span MaskT5I submitted to : the report, : my supervisor
Permuted SequenceBARTMy supervisor to the report submitted II submitted the report to my supervisor
Rotated SequenceBARTTo my supervisor I submitted the reportI submitted the report to my supervisor
Infilling PredictionBARTI [MASK] the [MASK] to [MASK]I submitted the report to my supervisor

這些任務強化了模型處理不定結構輸入的能力,提升其在翻譯、摘要等任務中的泛化表現。


五、預訓練 vs 微調:對比分析

對比維度預訓練(Pre-training)微調(Fine-tuning)
執行頻率只做一次每個任務可單獨訓練一次
訓練時間較長(幾周/月)可長可短
計算資源通常需大規模 GPU(集群)可在小規模 GPU 運行
數據來源原始文本(如 Wikipedia, BooksCorpus)任務特定數據(分類、問答等)
學習目標通用語言理解(語義、上下文、關系)針對具體任務性能最優

六、如何使用語言模型做任務?

模式一:使用語言模型作為特征提取器

  • 提取詞向量或句向量 → 輸入到后續任務模型
  • 類似于早期使用 Word2Vec 或 GloVe 向量
  • BERT 特別適合這種方式

模式二:將任務直接表述為語言建模

  • 直接將任務轉為“生成”問題

  • GPT 類型模型常用此方式

  • 示例:

    問答:Q: Who discovered gravity? A: → Isaac Newton
    翻譯:Translate: Hello → Bonjour
    

任務結構對比分析

📘 情感分析任務(模擬課程評價)

模型結構輸入內容輸出內容
EncoderThe student submitted the assignment on time. Rating: [MASK]5
DecoderThe student submitted the assignment on time. Rating:5
Enc-DecThe student submitted the assignment on time. Rating: : 5

📘 命名實體識別(NER)

模型結構輸入內容輸出內容
EncoderThe student submitted the assignment on time[O, O, O, O, B-TASK, O, B-TIME]
DecoderThe student submitted the assignment on timeassignment: Task, on time: Time
Enc-DecThe student submitted the assignment on timeassignment → Task on time → Time

📘 共指消解(改寫句子以引入代詞)

例句:The student told the lecturer that he was late.

模型結構輸入內容輸出內容
EncoderThe student told the lecturer that he was latehe → student / lecturer(需結構化解碼)
DecoderThe student told the lecturer that he was late“he” refers to the student
Enc-DecThe student told the lecturer that he was latehe → student

📘 文本摘要(擴展長句 → 摘要)

長句:The student, after days of hard work and late nights, finally submitted the assignment well before the deadline.

模型結構輸入內容輸出內容
DecoderThe student, after days of hard work…The student submitted early
Enc-DecSame as aboveSubmitted the assignment

📘 翻譯任務(英 → 法)

模型結構輸入內容輸出內容
DecoderTranslate: The student submitted the assignment on time.L’étudiant a rendu le devoir à temps.
Enc-DecTranslate English to French: The student submitted…L’étudiant a rendu le devoir à temps.

模型結構與任務適配總結

任務類型Encoder (如 BERT)Decoder (如 GPT)Encoder-Decoder (如 T5, BART)
分類/回歸? 非常適合? 也可建模? 靈活,適合文本→標簽結構
實體識別? 標準做法(token 分類)?? 需序列生成? 可做 span 生成
共指消解?? 通常需外部處理?? 表達模糊? 可結構化生成
摘要? 不能生成? 具備能力? 最適合(輸入輸出解耦)
翻譯? 無法實現? 可做(Prompt式)? 最佳(標準 Encoder-Decoder 應用)

七、總結與延伸

  1. 訓練語言模型的核心在于構造“預測式任務”:不論是預測下一個詞、恢復遮蓋詞,還是判斷偽造 token,本質上都在訓練模型理解語言結構與上下文。
  2. 模型結構決定其能力邊界:Encoder 適合理解類任務,Decoder 擅長生成任務,而 Encoder-Decoder 靈活兼容。
  3. 預訓練提供通用語義能力,微調實現任務定制:這是現代 NLP 模型最核心的工作流。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/904373.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/904373.shtml
英文地址,請注明出處:http://en.pswp.cn/news/904373.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

通過 ModernBERT 實現零樣本分類的性能提升

文本分類 是機器學習中最基礎的任務之一&#xff0c;擁有悠久的研究歷史和深遠的實用價值。更重要的是&#xff0c;它是許多實際項目中不可或缺的組成部分&#xff0c;從搜索引擎到生物醫學研究都離不開它。文本分類方法被廣泛應用于科學論文分類、用戶工單分類、社交媒體情感分…

基于SpringBoot網上書店的設計與實現

pom.xml配置文件 1. 項目基本信息(沒什么作用) <groupId>com.spring</groupId> <!--項目組織標識&#xff0c;通常對應包結構--> <artifactId>boot</artifactId> <!--項目唯一標識--> <version>0.0.1-SNAPSHOT</ve…

STM32H743單片機實現ADC+DMA多通道檢測+事件組

在上個文章基礎上改用事件組進行處理&#xff0c;以便實時任務。 stm32cubeMX自動生成代碼 osEventFlagsId_t adctestEventHandle; const osEventFlagsAttr_t adctestEvent_attributes {.name "adctestEvent" };adctestEventHandle osEventFlagsNew(&adctest…

AI Agent開發第57課-AI用在銷售歸因分析場景中-用隨機森林從0構建自己的“小模型”

開篇 在前一篇《機器學習的基礎-線性回歸如何應用在商業場景中》里,我們說到了如果我們只是簡單的分析和預測一下投入廣告費用和銷售額增長是否存在必然關系,我們用了線性回歸法得到了分析,得到的分析結果極其精準,以及提到了:如果當銷售因素是非線性的并且有著額外一些如…

Linux運維——Vim技巧三

Vim技巧 一、按 按模 模式 式匹 匹配 配及 及按 按原 原義 義匹 匹配1.1、調整查找模式的大小寫敏感性1.2、按正則表達式查找時&#xff0c;使用 \v 模式開關1.3、按原義查找文本時&#xff0c;使用 \V 原義開關1.4、使用圓括號捕獲子匹配1.5、界定單詞的邊界1.6、界定匹配的邊…

NLTK庫(1): 數據集-語料庫(Corpus)

1.簡介 NLTK &#xff08;Natural Language Toolkit&#xff09; 是自然語言處理&#xff08;NLP&#xff09;任務的 Python 庫&#xff0c;內置大量NLP數據集與計算包。 NLP數據集也叫語料庫 (Corpus), 若無特殊格式或標記&#xff0c;數據集通常來自txt等文本文件。 本教程…

spring詳解-循環依賴的解決

Spring循環依賴 重點提示&#xff1a; 本文都快寫完了&#xff0c;發現“丈夫” 的英文是husband… 在“②有AOP循環依賴” 改過來了&#xff0c;前面用到的位置太多了就沒改。我是說怎么idea的hansband英文下面怎么有波浪線。各位能夠理解意思就行&#xff0c;英文拼寫不要過…

隨機快速排序算法

一、隨機化原理 經典快速排序 選取固定的“樞軸”&#xff08;通常取第一個或最后一個元素&#xff09;&#xff0c;在最壞情況下&#xff08;如已經有序&#xff09;會退化為 。 隨機快速排序 在每次分區前隨機地從當前區間 [p..r] 中等概率選取一個樞軸&#xff0c;將它與末…

數據可視化與分析

數據可視化的目的是為了數據分析&#xff0c;而非僅僅是數據的圖形化展示。 項目介紹 項目案例為電商雙11美妝數據分析&#xff0c;分析品牌銷售量、性價比等。 數據集包括更新日期、ID、title、品牌名、克數容量、價格、銷售數量、評論數量、店名等信息。 1、數據初步了解…

美團Java高級配送員面經分享|玩梗版

美團Java高級配送員面經分享&#xff01;純玩梗&#xff01;

在windows中卸載mysql

一、停止服務 winR快捷鍵 -->> 輸入services.msc -->> 進入服務窗口關閉Mysql服務 二、卸載程序&#xff08;可選&#xff09; 如果是通過解壓壓縮包安裝的則跳過這一步&#xff0c;如果是使用.msi文件驅動安裝則需要卸載 控制面板 -->> 程序和功能 -->…

https://juejin.cn/editor/drafts/7262346366541070395

.Net Core從零學習搭建權限管理系統教程 推薦一組WPF自定義控件開源項目。 項目簡介 這是基于WPF開發的&#xff0c;為開發人員提供了一組方便使用自定義組件&#xff0c;并提供了各種常用的示例。 包含組件&#xff1a;數據表格、屬性列表、樹形列表、選色器、單選框列表、…

三、網絡管理

網絡管理 一、IP地址 原理&#xff1a; 定義與作用&#xff1a;IP 地址是互聯網協議地址&#xff0c;用于在網絡中唯一標識一臺設備。它如同現實生活中的家庭住址&#xff0c;確保數據能準確無誤地從源設備傳輸到目標設備。地址分類&#xff1a;IP 地址分為 IPv4 和 IPv6 兩種…

Auto.js 腳本:清理手機數據但保留賬號

Auto.js 腳本&#xff1a;清理手機數據但保留賬號 以下是一個使用 Auto.js 實現的腳本&#xff0c;它可以幫你清理手機數據&#xff08;類似恢復出廠設置&#xff09;&#xff0c;同時盡可能保留已登錄的賬號狀態。請注意&#xff0c;這個腳本不能完全等同于真正的恢復出廠設置…

LeetCode 熱題 100 279. 完全平方數

LeetCode 熱題 100 | 279. 完全平方數 大家好&#xff0c;今天我們來解決一道經典的動態規劃問題——完全平方數。這道題在 LeetCode 上被標記為中等難度&#xff0c;要求找到和為給定整數 n 的完全平方數的最少數量。 問題描述 給定一個整數 n&#xff0c;返回和為 n 的完全…

【coze】手冊小助手(提示詞、知識庫、交互、發布)

【coze】手冊小助手&#xff08;提示詞、知識庫、交互、發布&#xff09; 1、創建智能體2、添加提示詞3、創建知識庫4、測試智能體5、添加交互功能6、發布智能體 1、創建智能體 2、添加提示詞 # 角色 你是幫助用戶搜索手冊資料的AI助手 ## 工作流程 ### 步驟一:查詢知識庫 1.每…

一個基于Asp.Net Core + Angular + Bootstrap開源CMS系統

從零學習構建一個完整的系統 推薦一個功能強大、易于擴展、安全可靠的開源內容管理系統&#xff0c;適用于各種類型和規模的網站。 項目簡介 MixCoreCMS是一個基于.NET Core框架的開源內容管理系統&#xff08;CMS&#xff09;&#xff0c;提供了豐富的的基礎功能和插件&…

【Python】常用命令提示符

Python常用的命令提示符 一、Python環境基礎命令【Windows】 于Windows環境下&#xff0c;針對Python&#xff0c;在CMD&#xff08;命令提示符&#xff09;常用的命令以及具體用法&#xff0c;怎么用&#xff1b; ??主要包含&#xff1a;運行腳本、包管理、虛擬環境、調試與…

提示詞優化:檢索歷史提示確定方向→生成候選提示并控制修改幅度→基于準確率迭代優化

提示詞優化器 Unleashing the Potential of Large Language Models as Prompt Optimizers: Analogical Analysis with Gradient - based Model Optimizers 《Unleashing the Potential of Large Language Models as Prompt Optimizers: Analogical Analysis with Gradient - …

如何設計一個網頁計算器?—— 從需求分析到測試的全流程

1. 需求分析與功能設計 核心功能 基礎運算:+ - * / 高級運算:% (取模)、^ (冪運算)、√ (開平方) 記憶功能:M+ (累加)、M- (累減)、MR (讀取)、MC (清除) 交互優化: 支持鍵盤輸入(0-9、Enter、Backspace) 實時計算(類似 Google 計算器,輸入 2+3= 自動顯示 5) 錯誤處理…