【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(yty<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.mzph.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) 错误处理…