大模型0基础开发入门与实践:第7章 “预训练”的革命:从BERT到GPT的模式变ioen

部署运行你感兴趣的模型镜像

第7章 “预训练”的革命:从BERT到GPT的模式变ioen

1. 引言

在上一章,我们花费了巨大的心力,彻底解构了Transformer这一宏伟的建筑。我们现在拥有了一台性能极其强大的“引擎”。但是,一台崭新出厂、从未运转过的引擎,是没有任何动力的。同样,一个刚刚搭建好的Transformer模型,其内部的数亿个参数(权重)都是随机初始化的,它就像一个结构精密但空无一物的“水晶大脑”,对世界一无所知。

在Transformer诞生之前,训练一个NLP模型通常采用“监督学习”的方式:我们需要为每一个特定任务(如情感分析、机器翻译)都准备大量的、人工标注好的任务专属数据集,然后从零开始训练模型。这种方式存在两个严重问题:

  1. 数据贪婪且昂贵:高质量的标注数据非常稀缺且获取成本高昂。
  2. 知识无法迁移:为一个任务训练好的模型,其学到的知识很难被应用到另一个任务中。一个“情感分析专家”并不会自动懂得如何“进行机器翻译”,每次都得另起炉灶。

我们人类学习语言的方式并非如此。在专门学习“阅读理解”或“写作文”之前,我们早已通过数年的阅读、交谈,从海量的、**未经任何人“标注”**的语言环境中,潜移默化地掌握了语法、语感和关于世界的基本常识。

那么,我们能否让AI模型也模仿这种学习方式呢?——先让它在互联网上“博览群书”(预训练),自主学习语言的通用规律和世界知识,然后再针对特定任务,给它少量“习题”进行练习(微调)。

这,就是预训练-微调(Pre-training and Fine-tuning)范式的核心思想。它的出现,与Transformer架构的诞生交相辉映,共同开启了现代大语言模型的黄金时代。本章,我们将探索这一革命性的训练模式,并认识两位基于此范式的“绝代双骄”:BERTGPT

本章学习目标:

  • 理解预训练-微调范式:掌握其核心思想、流程,以及为什么它能如此高效。
  • 深入理解BERT模型:学习其创新的**掩码语言模型(MLM)下一句预测(NSP)**两大预训练任务,并理解其作为“双向编码器”的本质。
  • 深入理解GPT模型:学习其经典的自回归语言模型预训练任务,并理解其作为“单向解码器”的本质。
  • 辨析BERT与GPT的核心异同:明白它们分别适合处理什么样的任务(理解型 vs 生成型),以及它们架构上的关键差异。
  • 展望范式变迁:初步了解从“预训练-微tuning”到“预训练-提示-预测”的模式演进。

本章核心问题:

  • 在没有任何人工标注的情况下,模型如何从纯文本中“自主学习”?BERT和GPT分别设计了怎样巧妙的“自监督”任务?
  • BERT为什么被称为“双向”模型?这种“双向性”是如何实现的,又为它带来了什么优势?
  • GPT为什么被称为“单向”或“自回归”模型?这种设计如何让它天生就擅长文本生成?
  • 对于一个具体的下游任务,例如“文本分类”,我们应该如何利用预训练好的BERT或GPT模型来解决它(即如何进行Fine-tuning)?

欢迎来到大模型时代的“思想”层面。在这里,我们将不再纠结于具体的矩阵运算,而是去理解那些赋予模型“智能”的宏大范式和深刻洞见。


2. 正文

2.1 新范式:预训练-微调的力量

直观比喻:一位AI学生的成长之路

想象一下培养一位顶尖的AI学生来参加“高考”(解决特定任务)。

  • 旧范式(直接监督学习):我们直接把他扔进一个“高三班”,只给他做和他要考的“数学”科目相关的模拟题。他可能会成为一个解题高手,但对语文、物理、历史一窍不通。换个科目,他就得重学。
  • 新范式(预训练-微调)
    1. 预训练阶段(基础教育):我们先让他进入一个巨大的“图书馆”(海量无标签文本数据,如维基百科、网页),让他自由阅读所有书籍。我们不告诉他具体要考什么,只给他设定一些通用的学习目标,比如“完形填空”或“预测下一句话”。通过这种“自学”,他逐渐掌握了语言的通用规律(语法、词汇)和世界的基本常识。这个阶段结束后,他成了一个知识渊博、基础扎实的“通才”。
    2. 微调阶段(针对性备考):在“高考”前夕,我们告诉他要考的是“数学”。于是,我们给他少量的数学模拟题进行练习。由于他已经具备了强大的基础知识和学习能力,他能够非常快地掌握解题技巧,并取得优异成绩。更棒的是,如果明年要改考“物理”,我们只需要在他已有的知识基础上,再用物理题进行微调即可,无需从零开始。

流程图

graph TD
    subgraph Pre-training Phase (通用学习, 计算量巨大)
        A[海量无标签文本<br/>(e.g., 整个互联网)] --> B{Transformer模型<br/>(Encoder or Decoder)};
        B -- "在自监督任务上训练<br/>(e.g., 完形填空)" --> C[预训练好的模型<br/>(参数已具备通用知识)];
    end

    subgraph Fine-tuning Phase (任务专属, 计算量小)
        D[少量有标签数据<br/>(e.g., 1000条情感分类样本)] --> E{加载预训练模型};
        E -- "在特定任务上继续训练<br/>(微调参数)" --> F[微调后的模型<br/>(成为任务专家)];
    end

    C -- "作为初始化权重" --> E;

这个范式的威力在于,它将模型学习分成了两个阶段,将对昂贵的人工标注数据的依赖降到了最低,并使得构建一个能够轻松适应多种任务的“通用基础模型”成为可能。

2.2 “完形填空”大师:BERT (Bidirectional Encoder Representations from Transformers)

2018年,来自Google的BERT横空出世,它在11项主流NLP任务上刷新了记录,真正展示了预训练模型的巨大潜力。BERT的核心思想,是成为一个深刻的语言理解者

架构:一个纯粹的“编码器”
BERT的架构,就是我们上一章学到的Transformer的编码器(Encoder)部分。它舍弃了解码器,只保留了编码器的堆叠。这意味着BERT的唯一工作,就是输入一个完整的句子(或句子对),然后输出其中每个词的、深度融合了上下文信息的表示向量。

预训练任务:BERT如何“自学”?

BERT设计了两个巧妙的“自监督”任务来进行预训练。

1. 掩码语言模型 (Masked Language Model, MLM)
这正是我们前面比喻的“完形填空”。

  • 做法:随机地将输入句子中的一部分词(例如15%)替换成一个特殊的 [MASK] 标记。然后,模型的任务就是只根据被遮盖词的上下文,来准确地预测出这个被遮盖的词
  • 例子
    • 原始句子:my dog is hairy
    • 输入给BERT:my dog is [MASK]
    • BERT的目标:输出一个概率分布,其中 hairy 这个词的概率最高。
  • 核心洞见:为了做好这个“完形填空”,模型被迫去学习每个词左右两侧的上下文信息。例如,要预测出[MASK]hairy,模型必须同时理解左边的my dog is和右边的(如果有的话)信息。这就迫使BERT学习到双向的、深度的上下文表示。这正是BERT名字中“Bidirectional”的由来。

2. 下一句预测 (Next Sentence Prediction, NSP)
这个任务是为了让BERT理解句子与句子之间的关系

  • 做法:在预训练时,模型会接收一对句子 A 和 B。它需要判断,句子B是否是句子A在原文中的下一句。训练数据中,50%的情况B是真实的下一句,另外50%的情况B是从语料库中随机挑选的一句话。
  • 例子
    • 输入1 (IsNext): [CLS] a man went to the store [SEP] he bought a gallon of milk [SEP] -> 目标: IsNext
    • 输入2 (NotNext): [CLS] a man went to the store [SEP] penguins are flightless birds [SEP] -> 目标: NotNext
    • 注:[CLS][SEP]是特殊的标记,分别用于表示句子开头和分隔句子。
  • 核心洞见:这个任务让BERT能够处理像问答(QA)、自然语言推断(NLI)这类需要理解句子间逻辑关系的任务。

如何使用BERT进行微调?

当BERT预训练完成后,我们就得到了一个强大的“通用语言理解器”。要让它解决特定任务,我们只需在BERT的顶部,加上一个简单的、任务专属的输出层,然后用少量标注数据进行“端到端”的微调。

  • 文本分类:将 [CLS] 标记对应的最终输出向量,送入一个简单的分类器(如一个全连接层),来预测整个句子的标签。
  • 命名实体识别:将每一个词对应的最终输出向量,分别送入一个分类器,来预测该词的标签(如“人名”、“地名”)。
graph TD
    subgraph Fine-tuning BERT for Classification
        A[Input Sentence] --> B[Pre-trained BERT];
        B --> C["Output Embeddings<br/>(for each word)"];
        C -- "Take the [CLS] token's embedding" --> D["[CLS] Embedding"];
        D --> E[Simple Classifier<br/>(e.g., a Linear Layer)];
        E --> F[Class Label (e.g., 'Positive'/'Negative')];
    end

2.3 “文字接龙”高手:GPT (Generative Pre-trained Transformer)

与BERT几乎同时期,来自OpenAI的GPT系列则走向了另一条技术路线。GPT的目标,是成为一个强大的语言生成者。我们今天所熟知的ChatGPT,正是其一脉相承的后代。

架构:一个纯粹的“解码器”
GPT的架构,是我们上一章学到的Transformer的解码器(Decoder)部分。更准确地说,是解码器中的**“带掩码的自注意力”**部分。它没有编码器,也不需要Encoder-Decoder Attention层。

预训练任务:传统的语言模型 (Language Model)

GPT的预训练任务非常经典和简洁,就是我们俗称的“文字接龙”。

  • 做法:给定一段文本,模型的任务是根据前面的所有词,来预测下一个最可能出现的词
  • 例子
    • 输入给GPT:my dog is
    • GPT的目标:输出一个概率分布,其中 hairy 这个词的概率最高。
  • 核心洞见:这种任务天然地训练了模型的生成能力。为了能够准确地预测下一个词,模型必须学习到从左到右的语言规律、语法结构和事实知识。这种从左到右的依赖关系,我们称之为“自回归(Autoregressive)”。而由于在预测当前词时,模型不能看到未来的词,这正是Transformer解码器中**掩码自注意力(Masked Self-Attention)**的用武之地。因此,GPT被称为“单向(Uni-directional)”或“自回归”模型。

如何使用GPT进行微调?

GPT的微调方式与BERT类似,但通常会根据其生成特性进行一些调整。例如,在做文本分类时,可以通过添加特定格式的提示(Prompt),将其转化为一个生成任务。但其最强大的应用,还是在于直接利用其生成能力,进行**零样本(Zero-shot)少样本(Few-shot)**学习,这一点我们会在后续章节深入探讨。

2.4 双雄对比:BERT vs. GPT

特性BERT (Bidirectional Encoder)GPT (Generative Pre-trained Transformer)
核心思想深刻的语言理解流畅的语言生成
架构Transformer 编码器Transformer 解码器 (Masked Self-Attention)
注意力双向 (能同时看到左右上下文)单向/自回归 (只能看到左侧上下文)
预训练任务MLM (完形填空) & NSP (下一句预测)LM (标准语言模型/文字接龙)
擅长任务理解型任务:文本分类、命名实体识别、问答生成型任务:文本生成、对话、摘要
比喻一位做“阅读理解”的学霸一位写“命题作文”的文豪

3. 总结与预告

本章,我们攀上了大模型时代的第二个重要阶梯——预训练-微调范式,并认识了奠定江山的BERT和GPT两大模型家族。

本章核心要点

  • 范式革命预训练-微调范式通过在海量无标签数据上进行自监督学习,极大地提升了模型的泛化能力和数据效率,是现代大模型成功的关键。
  • BERT:基于Transformer的编码器,通过掩码语言模型(MLM)任务学习双向上下文表示,是一个强大的语言理解模型。
  • GPT:基于Transformer的解码器,通过标准语言模型任务学习单向(自回归)预测,是一个强大的语言生成模型。
  • 模式分野:BERT和GPT的架构和预训练任务的差异,决定了它们分别在**自然语言理解(NLU)自然语言生成(NLG)**任务上的天然优势。

我们已经有了强大的架构(Transformer)和高效的训练范式(预训练)。接下来,一个朴素而又关键的问题摆在了面前:如果模型不够“聪明”,我们该怎么办?一个简单粗暴却被证明极其有效的答案是:把模型做得更大!

在下一章 《“大力出奇迹”的哲学:大语言模型的核心技术揭秘》 中,我们将探讨“规模化法则(Scaling Laws)”——当模型参数、数据量和计算量同步增长时,模型性能会以可预测的方式持续提升。我们将深入了解那些让训练千亿、万亿参数模型成为可能的核心技术,真正进入“大”语言模型的时代。


4. 课后练习

  1. 任务匹配:假设你有以下三个任务,请判断它们更适合使用BERT还是GPT,并简要说明理由。
    • A. 判断一条电影评论是正面还是负面。
    • B. 为一篇长新闻报道自动生成一个简短的摘要。
    • C. 从一段医疗报告中,抽取出所有的“疾病”和“药品”名称。
  2. 思想实验:如果我们将BERT的MLM任务,从“预测被遮盖的词”改成“预测被遮盖的词的下一个词”,你认为会对BERT的能力产生什么影响?它还是一个纯粹的“双向”模型吗?
  3. GPT的“双向”能力:我们说GPT是单向的,因为它在生成时只能看到左边的上下文。但在我们与ChatGPT对话时,它似乎完全能理解我们整句话的意思(包括我们提问的后半部分)。请思考一下,它是如何做到这一点的?(提示:可以从它处理我们输入的方式,以及自注意力机制本身的工作原理来思考。)

您可能感兴趣的与本文相关的镜像

GPT-oss:20b

GPT-oss:20b

图文对话
Gpt-oss

GPT OSS 是OpenAI 推出的重量级开放模型,面向强推理、智能体任务以及多样化开发场景

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

THMAIL

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值