08 预训练语言模型:BERT 与 GPT

08 预训练语言模型:BERT 与 GPT

系列文章目录


前言

上一篇我们学完了 Transformer------它只是一个大模型"地基",本身并不能直接用于具体任务。要让 Transformer 真正"懂"语言,还需要在大量语料上进行预训练(Pre-training) ,然后针对具体任务微调(Fine-tuning)

2018 年,两条基于 Transformer 的技术路线几乎同时横空出世,奠定了之后所有大语言模型的发展方向:

  • BERT :Google 提出,主打"理解"

  • GPT :OpenAI 提出,主打"生成"

一句话结论:BERT 和 GPT 都采用"预训练 + 微调"范式,区别在于 BERT 双向编码擅长理解任务,GPT 单向生成擅长生成任务。


1. 什么是预训练语言模型

1.1 核心思想

传统的 NLP 是"为每个任务单独训练一个模型",数据少、效果差。预训练语言模型(Pre-trained Language Model, PLM)的做法是:

先用海量无标注文本(如维基百科、全网网页)训练一个"通用的语言理解模型",再用少量标注数据针对具体任务做"微调"。

这就像一位"通才"先在书海中广泛阅读,具备了强大的语言功底;再花少量时间专门训练某个具体技能(比如分类、问答)。

1.2 为什么是革命性的

对比维度 传统方法 预训练 + 微调
所需标注数据 大量 少量
通用语言知识 有(预训练获得)
训练成本 每任务重新训练 预训练一次,微调很轻
效果 受限于小数据 显著提升

2. BERT:双向编码器

2.1 核心思想

BERT(Bidirectional Encoder Representations from Transformers)的核心特点是双向(Bidirectional)

BERT 在理解一个词时,同时看它左边和右边的上下文。

比如理解句子中的"苹果":

复制代码
"昨天我买了一个苹果,非常甜" —— BERT 会同时结合左右文判断这是"水果"
"我新买了一部苹果手机"        —— BERT 会结合"手机"判断这是"品牌"

这正好解决了 Word2Vec 静态词向量无法处理一词多义 的问题------BERT 输出的词向量是上下文相关的动态向量

2.2 两个预训练任务

BERT 的预训练包含两个自监督任务:

任务 名称 做法 学习内容
任务1 掩码语言模型(MLM) 随机遮盖句中 15% 的词,让模型预测被遮盖的词 双向理解
任务2 下一句预测(NSP) 判断两个句子是否相邻 句子间关系

MLM 示例

复制代码
输入:我 [MASK] 学习 自然语言处理
预测:喜欢

模型必须结合"我......学习自然语言处理"这个上下文,才能猜出被遮住的词是"喜欢"。

2.3 BERT 的应用方式

BERT 预训练完成后,通过"预训练 + 微调"适配各种理解任务:

复制代码
文本分类:   [CLS] 这句话很赞 → 输出:好评
命名实体识别:句子 → 逐词标注实体类型
问答:      问题 + 文章 → 输出答案片段

3. GPT:单向生成器

3.1 核心思想

GPT(Generative Pre-trained Transformer)的核心特点是单向(Unidirectional)生成(Generative)

GPT 预测下一个词时,只看它左侧(前面)的上下文,一个词一个词地从左到右生成。

复制代码
输入:"我喜欢学习"
预测下一个词:"自然语言"(根据前面的"我喜欢学习")
​
继续:
输入:"我喜欢学习自然语言"
预测下一个词:"处理"

GPT 的本质就是一个强大的"下一个词预测器"------而这恰好就是"生成"的本质:给定前文,续写后文。

3.2 预训练任务

GPT 的预训练任务只有一个,也是最朴素的:

语言建模(Language Modeling):给定前文,预测下一个词。

复制代码
最大化 P(w1) × P(w2|w1) × P(w3|w1w2) × ... × P(wn|w1...w(n-1))

💡 关键洞察 :正是这个"朴素"的预测任务,让 GPT 不需要任何标注数据,只需海量文本就能训练,还能一路无限扩展------数据越多、参数越多,生成能力越强,最终演变为今天的大语言模型(LLM)。

3.3 GPT 的进化

版本 年份 参数量 特点
GPT-1 2018 1.1 亿 提出预训练 + 微调范式
GPT-2 2019 15 亿 展示强大的零样本生成能力
GPT-3 2020 1750 亿 少样本学习(In-context Learning)
ChatGPT 2022 --- 加入人类反馈对齐(RLHF),对话能力爆发

4. BERT vs GPT 对比

对比维度 BERT GPT
全称 Bidirectional Encoder Rep. from Transformers Generative Pre-trained Transformer
架构 仅编码器(Encoder-only) 仅解码器(Decoder-only)
编码方式 双向(看左右) 单向(只看左)
预训练任务 MLM + NSP 语言建模(预测下一个词)
擅长任务 理解:分类、抽取、问答 生成:写作、对话、翻译、代码
训练目标 预测被遮盖的词 预测下一个词
代表演进 BERT → RoBERTa → ERNIE GPT → GPT-2/3/4 → LLM

💡 记忆口诀:BERT 是"填空小能手"(理解),GPT 是"续写狂魔"(生成)。


5. 使用 Hugging Face 实战

如今,使用预训练模型最方便的方式是 Hugging Face Transformers 库。下面演示加载 BERT 做文本分类,以及用 GPT 做生成。

5.1 用 BERT 做情感分类

复制代码
from transformers import pipeline
​
# 一行代码加载预训练情感分析模型
classifier = pipeline("sentiment-analysis", model="uer/roberta-base-finetuned-jd-binary-chinese")
​
result = classifier("这个手机很好用,我很喜欢!")
print(result)
# 输出示例:[{'label': 'positive', 'score': 0.99...}]

5.2 用 GPT 做文本生成

复制代码
from transformers import pipeline
​
# 加载中文生成模型
generator = pipeline("text-generation", model="uer/gpt2-chinese-cluecorpussmall")
​
result = generator("深度学习是一种", max_length=30, num_return_sequences=1)
print(result[0]["generated_text"])

5.3 为什么不推荐直接造轮子

  • 预训练需要几十万到上百万美元的算力成本

  • 开源社区提供了大量现成的预训练权重

  • pipeline 几行代码即可调用,重点是理解"如何微调"和"如何应用"

⚠️ 提示 :上面示例中的模型名请以 Hugging Face 实际可用的模型为准,国内可优先选择中文模型(如 bert-base-chinesemengzi 等)。


6. 从 BERT/GPT 到大语言模型(LLM)

BERT 和 GPT 之后,NLP 进入了"军备竞赛"时代:

  • BERT 系(理解向):RoBERTa、ALBERT、ERNIE、DeBERTa......

  • GPT 系(生成向):GPT-3、GPT-4、以及开源生态的 LLaMA、ChatGLM、DeepSeek、Qwen......

当 GPT 系模型参数规模达到千亿级 、配合人类反馈对齐(RLHF) 后,就变成了我们今天所熟知的大语言模型(LLM)------不仅会生成文本,还涌现出推理、翻译、写代码、多轮对话等强大能力。

这是下一篇的内容。


总结

这一篇我们掌握了:

  • 预训练 + 微调:先在海量语料上预训练通用语言能力,再针对任务微调

  • BERT:双向编码器,通过 MLM 理解上下文,擅长理解任务,解决一词多义

  • GPT:单向解码器,通过预测下一个词实现生成,擅长生成任务

  • BERT vs GPT:理解 vs 生成、双向 vs 单向

  • Hugging Face 实战:几行代码调用强大的预训练模型

下一篇,我们将站上时代浪尖,看看从 GPT-3 到 ChatGPT,大语言模型(LLM) 是如何诞生,以及如何用 Prompt 驾驭它。

📌 下篇预告09 大语言模型(LLM)演进与 Prompt 入门


参考资料

  • Devlin et al. BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding, 2018

  • Radford et al. Improving Language Understanding by Generative Pre-Training, 2018

  • Hugging Face Transformers 官方文档:https://huggingface.co/docs/transformers/

相关推荐
feasibility.1 小时前
ABot-World-0:当一块 RTX 5090 能编织无限世界——交互式世界模型的高德解法
人工智能·aigc·视频·地图·具身智能·英伟达·世界模型
leoZ2311 小时前
第 6 篇:SchemaForm 渲染器核心实现
前端·javascript·vue.js·人工智能·神经网络·机器学习·自然语言处理
故七月1 小时前
优胜劣汰·动态赋能——锦邻创享OPC社区的考核管理与退出机制
大数据·人工智能
枫叶林FYL1 小时前
【群体智能集群控制工程实践】第10章 无人舰队核心功能实现
大数据·人工智能·算法
昵称画2 小时前
POC验证怎么设计用例?不走过程的实操要点
大数据·数据库·人工智能·低代码·excel
2601_967212722 小时前
新一代电源轨道系统技术甄别维度与行业技术路线分析
大数据·网络·人工智能
Lucas_coding2 小时前
【Codex Remote】 Codex App通过SSH连接远程Linux开发环境
人工智能
EQUINOX12 小时前
【论文精读】| MiniGPT-4精读
论文阅读·人工智能·深度学习
赖赖-2 小时前
化工车间定制一体机案例:从需求到量产的完整技术拆解
人工智能·电脑·硬件架构·边缘计算