
其中,"预训练模型"是总概念;BERT、GPT和多模态模型都是预训练思想在不同任务和不同架构上的具体实现。
一、什么是预训练模型
1. 基本思想
预训练模型可以理解为:先让模型学习大量通用知识,再让它学习某一个具体任务。
完整过程是:
第一阶段:预训练
在大规模通用数据上学习语言规律
第二阶段:微调
在较小的任务数据上学习具体任务
例如,我们要做"商品评价情感分类"。
传统方法是:
准备大量商品评论
→ 人工标注正面和负面
→ 从零训练分类模型
预训练模型的方法是:
先使用已经学习过大量语言知识的模型
→ 再用少量商品评论进行微调
→ 得到情感分类模型
这种方法背后包含三个核心概念:两阶段学习、迁移学习和参数共享。预训练模型先学习通用语言表示,再将这些知识迁移到文本分类、问答、命名实体识别等任务中,同一套基础参数还可以服务多个不同任务。
2. 为什么预训练模型很重要
传统NLP模型通常需要为每一个任务分别设计特征、准备大量标注数据并从头训练;预训练模型已经提前学习了词语、句子和上下文的规律,因此通常只需要较少的标注数据,就能适配新的下游任务。页面将二者概括为:
传统模型:从零开始训练,任务针对性强
预训练模型:预训练 + 微调,跨任务迁移能力更强
例如,预训练模型可能已经知道:
"满意""优秀""很好"通常具有正面倾向
"糟糕""失望""损坏"通常具有负面倾向
当我们再给它少量商品评论数据时,它不需要重新从零学习这些语言规律,只需要学习"在这个具体任务中如何输出正面或负面"。
二、预训练模型的发展过程
1. 静态词向量阶段
早期代表模型包括:
Word2Vec
GloVe
FastText
它们把一个词表示成固定向量。例如:
"苹果" → [0.13, -0.25, 0.78, ...]
问题在于,同一个词在不同句子中通常使用同一个向量:
我吃了一个苹果。
苹果发布了新手机。
第一句话中的"苹果"是水果,第二句话中的"苹果"是公司,但静态词向量通常不能根据上下文改变表示,因此难以正确处理一词多义。
2. 上下文感知阶段
ELMo、ULMFiT等模型开始根据上下文动态生成词向量。
于是:
"我吃了一个苹果"中的苹果
和:
"苹果发布了新手机"中的苹果
可以得到不同的表示。页面将这一阶段的突破总结为动态词向量、一词多义处理和双向语言建模。
3. Transformer预训练模型阶段
之后,BERT、GPT、T5等模型开始以Transformer为核心架构,通过更大规模的数据进行预训练,并展现出更强的迁移学习能力。
按照架构可以分成三类:
Encoder架构
代表:BERT、RoBERTa、ALBERT
特点:擅长理解文本
Decoder架构
代表:GPT系列
特点:擅长生成文本
Encoder-Decoder架构
代表:T5、BART
特点:擅长输入序列到输出序列的转换
三、预训练模型到底学什么
1. 自回归语言模型
自回归语言模型根据前面的词预测下一个词:
输入:人工智能正在快速
预测:发展
它学习的是:
P(当前词 | 前面所有词)
这正是GPT类模型的主要训练方式。
2. 掩码语言模型
掩码语言模型会隐藏句子中的某个词,然后让模型恢复:
原句:预训练模型很强大
掩码:预训练[MASK]很强大
预测:模型
模型必须同时观察 [MASK] 左边和右边的内容,才能判断被遮住的词是什么。这是BERT最核心的预训练任务之一。
3. 下一句预测
给模型两个句子,让它判断第二句是否可能紧接着第一句出现:
句子A:预训练模型很强大。
句子B:它们可以处理多种NLP任务。
这是合理的连续关系。
而:
句子A:预训练模型很强大。
句子B:今天天气真好。
通常不属于连续关系。BERT原始预训练任务中包含下一句预测,即NSP。
四、BERT:擅长理解文本的模型
1. BERT是什么
BERT全称是:
Bidirectional Encoder Representations from Transformers
它基于Transformer的Encoder部分构建,重点是生成能够同时包含左右上下文信息的文本表示。页面将BERT的核心特点概括为双向上下文建模。
例如:
他来到银行办理贷款。
河水淹没了两边的银行。
这里第二句为了教学故意使用了歧义表达。模型只有结合"贷款""河水"等上下文,才能判断某个词在句子中更接近金融机构还是河岸概念。
BERT的核心价值不是直接生成很长的文本,而是把输入文本转化成包含上下文信息的向量。
2. BERT的输入由什么组成
BERT的输入表示通常是三部分相加:
最终输入向量
=
Token Embedding
+
Position Embedding
+
Segment Embedding
Token Embedding
表示当前词或子词的语义。
例如:
自然 → 一个向量
语言 → 一个向量
处理 → 一个向量
Position Embedding
表示词语在句子中的位置。
因为:
小明帮助小红
和:
小红帮助小明
包含相同的词,但顺序不同,含义也不同。
Segment Embedding
用于区分句子A和句子B,在句子对任务中非常有用,例如:
句子A:小明买了一本书。
句子B:他非常喜欢这本书。
BERT页面将输入层概括为词嵌入、位置嵌入和段嵌入三部分。
3. BERT内部如何处理文本
输入向量进入多层Transformer Encoder。每个编码器块主要包含:
自注意力机制
前馈神经网络
残差连接
层归一化
自注意力让每个词查看句子中的其他词,从而获得上下文信息;前馈网络进一步转换特征;残差连接和层归一化帮助模型稳定训练。最后,BERT会为每一个输入Token输出一个上下文相关向量。
例如输入:
小明把苹果放在桌子上。
输出不是一个向量,而是每个Token都有一个表示:
小明 → 向量1
把 → 向量2
苹果 → 向量3
放在 → 向量4
桌子 → 向量5
上 → 向量6
其中"苹果"的向量已经融合了"小明""放在""桌子"等上下文信息。
4. BERT为什么叫"双向"
GPT在生成下一个词时只能读取前面的词,而BERT通过掩码语言模型,可以同时利用被遮蔽位置左右两边的内容。
例如:
小明在银行办理了[MASK]。
模型可以同时利用:
左侧:小明在银行办理了
右侧:句号
如果改成:
小明在银行办理了[MASK]手续。
它还可以利用右侧的"手续",更容易预测"贷款""开户"等词。
BERT页面将MLM描述为随机遮盖一部分输入Token,并根据上下文预测被遮盖内容。
5. BERT-base和BERT-large
页面给出的主要配置是:

模型越大,通常表示能力越强,但训练和推理需要更多内存、显存和计算时间。
6. BERT怎样用于具体任务
BERT预训练完成后,可以在顶部增加不同的任务层。
文本分类
输入文本
→ BERT
→ 取[CLS]位置向量
→ 全连接分类层
→ 类别
例如:
"这部电影非常精彩"
→ 正面
"剧情混乱,体验很差"
→ 负面
命名实体识别
对每个Token分别分类:
马云 → 人名
阿里巴巴 → 组织
杭州 → 地点
抽取式问答
输入问题和文章,模型预测答案在文章中的开始位置和结束位置。
文本相似度
把两个句子转为向量,再比较它们的距离或相似度。
页面将BERT类模型定位为适合分类、问答等理解类任务的Encoder架构。
7. BERT微调
标准微调流程是:
加载预训练BERT
→ 根据任务添加输出层
→ 准备标注数据
→ 使用较小学习率训练
→ 在验证集上评估
页面给出的常见设置包括较小学习率、批次大小16或32、训练2到4轮。它还比较了全参数微调、冻结BERT进行特征提取、Adapter和Prompt等策略。
可以通俗理解为:

8. BERT的主要变体
RoBERTa
页面列出的改进包括更大的批次、更长的训练、移除NSP以及动态遮盖。
ALBERT
通过跨层参数共享和嵌入分解减少参数量。
DistilBERT
利用知识蒸馏压缩模型,更适合资源有限或推理速度要求较高的场景。
ELECTRA
不再只预测 [MASK],而是判断Token是否被替换。
中文BERT
页面介绍了BERT-wwm、RoBERTa-wwm-ext、ERNIE和NEZHA等中文模型,并建议中文任务关注全词遮盖、中文分词边界和领域自适应预训练。
五、GPT:擅长连续生成文本的模型
1. GPT是什么
GPT是一类生成式预训练Transformer模型。它通常基于Transformer Decoder,通过大规模文本预训练学习语言规律,然后根据提示或已有上下文继续生成文本。
例如输入:
人工智能在医疗领域可以
GPT会一步一步生成:
帮助医生分析医学影像,并辅助整理患者信息......
注意,它不是一次把整段答案全部生成出来,而是重复执行:
根据当前内容预测下一个Token
→ 把预测结果接到后面
→ 再预测下一个Token
→ 不断循环
2. GPT的自回归原理

给定序列:
x₁, x₂, x₃, ..., xₙ
GPT将整句话的概率拆成:
第1个词的概率
×
在第1个词条件下第2个词的概率
×
在前两个词条件下第3个词的概率
×
......
也就是:
P(x) = ∏ P(xₜ | x₁, x₂, ..., xₜ₋₁)
例如:
输入:今天天气
模型可能预测:
很
然后输入变成:
今天天气很
再预测:
好
最终形成:
今天天气很好
3. GPT为什么使用掩码自注意力
训练时,模型不能提前看到未来的正确答案。
例如模型正在预测:
我喜欢学习____
它不能提前查看后面的"自然语言处理"。
因此Decoder使用因果掩码,也叫Masked Self-Attention:
第1个位置只能看第1个位置
第2个位置可以看第1、2个位置
第3个位置可以看第1、2、3个位置
后面位置同理
这可以防止未来信息泄露。GPT页面将掩码自注意力、位置编码和前馈网络列为Transformer Decoder的关键组件。
4. BERT和GPT的核心区别
可以把两者简单理解成:
BERT像阅读理解专家
GPT像连续写作专家
BERT:
输入一整段文字
→ 同时观察左右上下文
→ 理解、判断、分类、抽取
GPT:
读取前文
→ 预测下一个Token
→ 持续生成
BERT主要采用Encoder结构,适合理解类任务;GPT主要采用Decoder结构,适合文本生成。
六、GPT的文本生成策略

模型每一步都会输出整个词表上的概率,例如:
"好" 0.30
"快" 0.20
"重要" 0.15
"强大" 0.10
......
接下来如何选择Token,取决于解码策略。
1. 贪婪搜索
每次直接选择概率最高的Token。
优点:稳定、速度快
缺点:内容可能单调,容易陷入局部最优
2. 随机采样
根据概率随机选择,而不是永远选择第一名。
优点:结果更丰富
缺点:可能出现不连贯内容
3. Beam Search
同时保留多条候选生成路径,再从中选择整体概率较高的结果。
它不是只看当前一步,而是尽量考虑整个生成序列的整体质量。页面将其描述为在质量和多样性之间取得平衡的策略。
4. Temperature
Temperature控制概率分布的平滑程度。
较低Temperature
→ 高概率词更加突出
→ 输出更稳定、更保守
较高Temperature
→ 更多低概率词有机会被选择
→ 输出更多样,但可能更混乱
页面示例使用 temperature=0.7,并建议对比0.3、0.7和1.2的生成结果。
5. Top-k
只保留概率最高的k个候选Token。
例如:
top_k = 3
原本词表有几万个Token,现在只在概率最高的3个Token中采样。
6. Top-p
选择累计概率达到阈值的一组候选。
例如:
top_p = 0.9
模型从累计概率达到90%的候选集合中采样。候选数量不是固定的,而是随当前概率分布变化。页面将Top-k、Top-p和Temperature列为生成控制的关键参数。
7. Repetition Penalty
用于降低模型重复相同词语或句子的倾向。
例如没有重复惩罚时,可能生成:
这个产品很好很好很好,非常好,非常好。
加入适当重复惩罚后,可以减少机械重复。页面示例给出了 repetition_penalty 参数。
七、Prompt Engineering
GPT生成结果不仅取决于模型,也取决于输入提示。
页面总结了四个重要原则:
明确性
上下文
结构化
示例驱动
例如,较模糊的提示是:
介绍BERT。
更清晰的提示是:
你是一名NLP教师,请面向初学者介绍BERT。
要求说明:
1. BERT的输入结构;
2. MLM训练任务;
3. BERT与GPT的区别;
4. 给出一个中文例子。
后者明确了角色、目标、内容和格式,因此输出通常更符合预期。
页面还介绍了角色设定、步骤分解、格式指定和少样本示例等提示方法。
八、多模态预训练模型
1. 什么是"模态"
模态可以理解为信息的表现形式:
文本是一种模态
图像是一种模态
语音是一种模态
视频也是一种模态
传统文本模型只处理文字,图像模型只处理图片;多模态模型则试图同时理解多种信息,并学习不同模态之间的对应关系。
例如输入:
一张小狗图片
+
"这是一只正在草地上奔跑的小狗"
模型需要理解图片中的视觉内容与文字描述之间的对应关系。
2. 多模态学习的优势
页面总结了三个优势:
信息互补
鲁棒性增强
应用范围扩大
例如,图片能够提供颜色、形状、位置等视觉信息,文字能够提供类别、关系和抽象语义。当图片模糊时,文字可能提供补充;当文字描述不完整时,图片也可以提供信息。
九、CLIP:让图像和文本进入同一个向量空间

1. CLIP的双编码器结构
CLIP使用两个编码器:
图像
→ 图像编码器
→ 图像向量
文本
→ 文本编码器
→ 文本向量
图像编码器可以采用ViT或ResNet,文本编码器通常基于Transformer。然后模型比较图像向量和文本向量的相似度。
例如有一张猫的图片和三个文本:
文本1:一只猫
文本2:一辆汽车
文本3:一架飞机
模型分别计算:
猫图片 ↔ 一只猫
猫图片 ↔ 一辆汽车
猫图片 ↔ 一架飞机
相似度最高的文本应当是"一只猫"。
2. CLIP的对比学习
假设一个批次中有四组正确图文对:
图片I1 ↔ 文本T1
图片I2 ↔ 文本T2
图片I3 ↔ 文本T3
图片I4 ↔ 文本T4
模型计算一个相似度矩阵:
T1 T2 T3 T4
I1 高 低 低 低
I2 低 高 低 低
I3 低 低 高 低
I4 低 低 低 高
训练目标是:
正确配对的对角线相似度越来越高
错误配对的非对角线相似度越来越低
这就是CLIP对比学习的核心。
对应的核心流程是:
提取图像特征
提取文本特征
计算图文相似度矩阵
图像到文本计算一次损失
文本到图像再计算一次损失
两个方向的损失取平均
3. CLIP为什么能够零样本分类
普通图像分类模型通常有固定分类层:
猫、狗、汽车、飞机
要增加新类别,往往需要重新收集数据和训练。
CLIP可以把类别写成文本:
a photo of a cat
a photo of a dog
a photo of a car
a photo of a bird
然后计算图片与每条文本的相似度。相似度最高的文本可以作为预测类别,因此可以在不针对新类别重新训练分类层的情况下进行零样本分类。页面将零样本图像分类、图文检索和内容审核列为CLIP的重要应用。
十、DALL-E:从文本生成图像

CLIP主要解决:
图片和文字是否匹配
DALL-E主要解决:
根据文字生成图片
页面以早期DALL-E为例,将流程描述为:
输入文本
→ 文本Token
→ Transformer生成视觉Token
→ 图像解码器将视觉Token还原为图片
例如输入:
一只穿着宇航服的柴犬在太空站玩电子游戏
模型需要把文本中的对象、服装、场景和动作转换为视觉内容。
页面还概括了DALL-E后续版本向更高分辨率、更准确的文本理解和更复杂提示控制方向发展。
十一、四类知识的统一对比
| 类型 | 主要架构 | 输入 | 输出 | 核心能力 | 典型任务 |
|---|---|---|---|---|---|
| 通用预训练模型 | Encoder、Decoder或Encoder-Decoder | 文本 | 向量、标签或文本 | 迁移通用知识 | 分类、问答、生成 |
| BERT | Transformer Encoder | 完整文本 | 上下文向量 | 双向文本理解 | 分类、NER、问答 |
| GPT | Transformer Decoder | 前文或提示 | 后续文本 | 自回归生成 | 对话、写作、摘要 |
| CLIP | 图像编码器+文本编码器 | 图像和文本 | 跨模态相似度 | 图文对齐 | 图文检索、零样本分类 |
| DALL-E类模型 | 文本编码与图像生成结构 | 文本描述 | 图像 | 文本到视觉生成 | 文生图、设计辅助 |
这些分类与Encoder、Decoder、CLIP和DALL-E的整体定位一致。
十二、最容易混淆的几个问题
1. 预训练模型不等于生成模型
预训练是一种训练方式,不是一种具体任务。
BERT是预训练模型,但主要用于理解
GPT是预训练模型,主要用于生成
CLIP也是预训练模型,主要用于图文对齐
2. BERT不能简单理解为聊天模型
BERT的原始输出通常是上下文向量,不会像GPT一样自然地连续生成长文本。它更适合:
判断类别
抽取实体
找答案位置
生成文本特征
3. GPT不仅是"背答案"
GPT的基本训练目标是根据上下文预测下一个Token。生成时,它依据当前上下文不断计算概率并选择后续Token。
4. CLIP不会直接生成图片
CLIP主要计算图像和文本是否匹配;DALL-E类模型才主要负责根据文本生成图像。
5. 相似度高不代表模型真正具有人类式理解
CLIP通过训练让匹配的图文向量靠近,但这主要说明它在特征空间中学习到了统计对应关系。实际应用中仍需要考虑数据偏差、错误匹配和复杂推理能力的限制。
十三、完整知识脉络
浓缩为下面这条主线:

因此,选择模型时首先应当看任务目标:
