一、导读
作为非AI专业技术开发者(我是小小爬虫开发工程师😋)
本系列文章将围绕《大模型微调》进行学习(也是我个人学习的笔记,所以会持续更新),最后以上手实操模型微调的目的。
(本文如若有错误的地方,欢迎批评指正)
(写作不易,方便的话点个赞,谢谢)
✅《大模型微调》系列文章路径
01 | 大模型微调 | 从0学习到实战微调 | AI发展与模型技术介绍
1、本文摘要
本文以围绕语言模型为核心进行阶段发展阐述
- 以理解每个阶段特性就好了,缺陷更相关典型内容
- 然后下一个阶段解决了上一个阶段什么问题
本02内容,理论太多了,写的过程也是炸裂,但是莫得办法,实操马上在03.....QAQ
2、碎碎念
💪 为什么要学习AI呢? 💪
- 作为一名爬虫开发工程师,我深知技术领域的不断变革与发展
- 如今,AI 已然成为时代浪潮的核心驱动力,就如同 Windows 操作能力是从业者的基础技能,
- 我坚信未来 AI 开发应用必将成为程序员不可或缺的能力标签。
你可以阅读我下列文章
1️⃣ 关于langchain的系列文章(相信我把Langchain全部学一遍,你能深入理解AI的开发)
01|LangChain | 从入门到实战-介绍
02|LangChain | 从入门到实战 -六大组件之Models IO
03|LangChain | 从入门到实战 -六大组件之Retrival
04|LangChain | 从入门到实战 -六大组件之Chain
05|LangChain | 从入门到实战 -六大组件之Memory
06|LangChain | 从入门到实战 -六大组件之Agent
2️⃣ 关于Langchain的实战案例(自认为本地问答机器人的案例写的很好,很好理解ReAct)
Langchain-实战篇-搭建本地问答机器人-01
都2024了,还在纠结图片识别?fastapi+streamlit+langchain给你答案!
3️⃣ 关于Agent智能体开发案例(MCP协议)
在dify构建mcp,结合fastapi接口,以实际业务场景理解MCP
4️⃣ 推荐阅读一下transformer 文章,以便能更好的理解大模型
Transformer模型详解(图解最完整版)
Attention Is All You Need (Transformer) 论文精读
5️⃣ 除了在 CSDN 分享这些技术内容,我还将在微信公众号持续输出优质文章,内容涵盖以下板块:
(当然我也希望能够跟你们学习探讨😀)
关注😄「稳稳C9」😄公众号
- 爬虫逆向:分享爬虫开发中的逆向技术与技巧,探索数据获取的更多可能。
- AI 前沿内容:紧跟 AI 发展潮流,解读大模型、算法等前沿技术动态。
- 骑行分享:工作之余,用骑行丈量世界,分享旅途中的所见所感。
二、语言模型发展过程
阶段 | 核心定义 | 代表性成果 | 主要限制 | 推荐论文 |
---|---|---|---|---|
统计语言模型 | 基于概率统计的语言建模方法,通过马尔可夫假设简化条件概率,利用语料库统计词共现频率计算序列概率。 | - N-gram模型(如三元组"我 爱 自然",通过 ( P(自然 | 我, 爱) ) 建模局部依赖) - 早期应用:IBM语音识别系统(1990s)、输入法候选词推荐。 | - 参数爆炸:词汇量 ( V ) 时,n-gram参数规模达 ( O(V^n) )(如3-gram需 ( V^3 ) 存储) - 局部依赖局限:仅建模前 ( n-1 ) 个词,无法捕捉长距离语义关联(如“自然语言处理”中的跨词依赖)。 |
神经网络语言模型 | 利用神经网络学习分布式词向量(词嵌入),通过非线性变换建模上下文语义关联,端到端优化语言序列概率。 | - NNLM(Bengio, 2003):首个神经网络语言模型,引入词嵌入与多层感知机 - Word2Vec/GloVe(2013-2014):高效词向量生成模型,推动语义相似度计算突破 - LSTM语言模型:通过门控机制缓解RNN梯度消失,捕捉长距离依赖(如“她 出生 于 北京,那里 有 故宫”)。 | - 顺序计算瓶颈:RNN/LSTM依赖时序递推,无法并行处理长序列(如超长文本生成效率低下) - 固定窗口局限:早期前馈模型(如FFNNLM)依赖固定窗口大小,上下文建模能力有限。 | 《A Neural Probabilistic Language Model》(Bengio et al., 2003) 《Distributed Representations of Words and Phrases and their Compositionality》(Mikolov et al., 2013) |
基于Transformer的预训练语言模型 | 完全依赖自注意力机制建模全局语义关联,通过大规模无监督预训练(如掩码语言模型、自回归生成)学习通用语言表征,支持微调适配下游任务。 | - 编码器模型:BERT(2018,双向Transformer,在GLUE基准首次超越人类表现) - 解码器模型:GPT-3(2020,1750亿参数,实现少样本/零样本学习,如文本生成、代码补全) - 里程碑:Transformer架构(2017)统一自然语言理解与生成任务。 | - 计算复杂度高:自注意力机制时间复杂度 ( O(n^2) ),处理长文本(如4096+ tokens)显存消耗巨大 - 预训练成本高昂:GPT-3训练需数千张GPU运行月级时间,资源门槛极高 - 生成可控性差:开放式生成易出现逻辑错误或事实偏差(如“巴黎是英国的首都”)。 | 《Attention Is All You Need》(Vaswani et al., 2017) 《BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding》(Devlin et al., 2018) 《Language Models are Few-Shot Learners》(Brown et al., 2020) |
为什么要提到这3个过程?
从数据概率到大模型的过程,我们需要知道其要进行发展的原因
-
算法我是真的不太懂😭~~ 我还是以快速上手微调为目标
-
所以,下文案例,我尽量以生动形象的阐述,关于算法的详细论述就不过多展开了
PS:下面3个阶段为语言模型过程
- 红色代表问题
- 绿色代表解决了上一个阶段的问题
语言模型演进关系图
1. 经典统计语言模型(左)
- 核心缺陷(向下分支):
🔴 参数空间爆炸(n-gram参数随n指数增长,如10-gram参数达(10^{50}))
🔴 数据稀疏性(低频词组合概率估算失效,如“量子花园”)
🔴 语义建模弱(One-Hot编码无法捕捉词间关联,仅局部依赖) - 改进方向(向右箭头指向神经网络模型):
→ 被神经网络模型通过分布式表示和非线性建模解决
2. 神经网络语言模型(中)
- 解决的经典问题(向左箭头指向统计模型):
✅ 分布式表示(词嵌入降维,缓解参数爆炸和稀疏性)
✅ 非线性建模(捕捉高阶依赖,突破局部限制) - 新缺陷(向下分支):
🔴 计算复杂度高(RNN/LSTM顺序计算,训练慢)
🔴 长距离依赖不彻底(LSTM门控机制仍难处理极长序列)
🔴 数据依赖强(需海量标注数据,小数据过拟合) - 改进方向(向右箭头指向Transformer模型):
→ 被Transformer通过自注意力机制和并行计算解决
3. 基于Transformer的语言模型(右)
- 解决的神经网络问题(向左箭头指向神经网络模型):
✅ 全局依赖建模(自注意力直接捕捉长距离关联)
✅ 并行化能力(自注意力层可批量计算,训练速度提升)
✅ 位置编码(补充时序信息,弥补无循环结构缺陷) - 新缺陷(向下分支):
🔴 参数量爆炸(GPT-4达1.8万亿参数,训练成本极高)
🔴 数据需求激增(需TB级语料,小数据场景难适用)
🔴 生成质量问题(幻觉、长文本逻辑断层、事实错误)
三、经典统计语言模型
1、定义
统计语言模型(Statistical Language Model, SLM)是自然语言处理(NLP)领域的核心技术之一,通过概率方法量化语言序列的合理性。
统计语言模型是用于计算一个句子出现概率的概率模型,描述为字符串 ( s ) 的概率分布 ( P(s) )。
通过贝叶斯公式,可将其分解为条件概率的乘积:
P ( s ) = P ( w 1 ) P ( w 2 ∣ w 1 ) P ( w 3 ∣ w 1 , w 2 ) … P ( w l ∣ w 1 , w 2 , … , w l − 1 ) P(s) = P(w_1)P(w_2|w_1)P(w_3|w_1, w_2)\dots P(w_l|w_1, w_2, \dots, w_{l-1}) P(s)=P(w1)P(w2∣w1)P(w3∣w1,w2)…P(wl∣w1,w2,…,wl−1)
其中 ( w_1, w_2, \dots, w_l ) 为句子中的词,通过统计语料库获取条件概率,进而计算句子概率。
但该模型存在两个问题:
-
参数空间过大
。
若模型采用 ( 10 - gram )(即每个词依赖前面 10 个词),假设词汇量为 ( 10^5 )(实际语言的词汇量更大),那么仅计算 P ( w i ∣ w i − 1 , w i − 2 , … , w i − 10 ) P(w_i | w_{i-1}, w_{i-2}, \dots, w_{i-10}) P(wi∣wi−1,wi−2,…,wi−10) 这一层的参数数量就达到 ( 1 0 5 ) 10 (10^5)^{10} (105)10这是一个天文数字,存储和计算这些参数几乎不可能,严重体现了参数空间过大的问题。 -
模型过于稀疏
。
当生成句子“主人公在量子花园中寻找神秘钥匙”时,“量子花园”这样的组合在普通语料库中极少出现。
计算 P ( 花园 ∣ 量子 ) P(\text{花园} | \text{量子}) P(花园∣量子)时,由于缺乏足够的统计数据(语料库中“量子”后面接“花园”的实例极少甚至没有)
导致这个条件概率难以准确估算,模型无法有效处理这种罕见的词汇组合,
这就是模型过于稀疏的体现——大量词组合因未在语料库中出现或出现次数不足,使得概率计算失去可靠依据。
2、举例子理解
以手机语音输入的自动纠错功能为例,能生动展现统计语言模型的运作。
当你说 “我今天去超柿”,手机却显示 “我今天去超市”,这正是统计语言模型在 “幕后” 工作。
统计语言模型会计算 “超柿” 与 “超市” 在该语境中的出现概率。它基于大量语料库,分析 “超” 字后续接 “市” 和 “柿” 的条件概率。
比如,在海量文本中,“超” 后接 “市”(如 “超市”“商场” 等场景)的频率远高于 “柿”(仅指水果 “柿子”,与 “超” 搭配极少见)。
模型通过计算
P ( 市 ∣ 超 ) P(市∣超) P(市∣超)
和
P ( 柿 ∣ 超 ) P(柿∣超) P(柿∣超)
发现前者条件概率更高,再结合整句
P ( 我今天去超市 ) = P ( 我 ) P ( 今天 ∣ 我 ) P ( 去 ∣ 我今天 ) P ( 超 ∣ 我今天去 ) P ( 市 ∣ 我今天去超 ) P(我今天去超市)=P(我)P(今天∣我)P(去∣我今天)P(超∣我今天去)P(市∣我今天去超) P(我今天去超市)=P(我)P(今天∣我)P(去∣我今天)P(超∣我今天去)P(市∣我今天去超)
其整体概率远大于 “我今天去超柿”,于是自动纠错为 “超市”。
这个过程就像模型在 “猜测”:根据已有的语言习惯和语境,哪个词出现最合理?
通过条件概率的层层计算,最终给出符合常见语言模式的结果,让交流更顺畅。
3、典型算法
统计语言模型的核心算法围绕马尔可夫假设(Markov Assumption)和n-gram模型展开,通过简化条件概率的依赖关系解决参数空间爆炸问题。
3.1 马尔可夫假设与n-gram
马尔可夫假设认为:语言序列中某个词的出现仅依赖于其前有限个词,而非整个历史序列。具体来说,若假设当前词 ( w_i ) 仅依赖于前 ( n-1 ) 个词 ( w_{i-n+1}, \dots, w_{i-1} ),则构成 n-gram模型。其数学表达式为:
P ( w i ∣ w 1 , w 2 , … , w i − 1 ) ≈ P ( w i ∣ w i − n + 1 , … , w i − 1 ) P(w_i | w_1, w_2, \dots, w_{i-1}) \approx P(w_i | w_{i-n+1}, \dots, w_{i-1}) P(wi∣w1,w2,…,wi−1)≈P(wi∣wi−n+1,…,wi−1)
-
unigram(1-gram):假设词与词之间独立,概率退化为单词语法频率,即 ( P ( w i ∣ w i − 1 ) = P ( w i ) ( P(w_i | w_{i-1}) = P(w_i) (P(wi∣wi−1)=P(wi) ,忽略上下文依赖。
-
bigram(2-gram):考虑前一个词的影响,如 P ( w i ∣ w i − 1 ) P(w_i | w_{i-1}) P(wi∣wi−1) ,参数数量为 V 2 V^2 V2 (( V ) 为词汇量)。
-
trigram(3-gram):考虑前两个词的影响,如 [ P(w_i | w_{i-2}, w_{i-1}) ],参数数量为 ( V^3 )。
n-gram模型通过截断历史依赖,将参数空间从 [ O(V^l) )(( l ) 为句子长度)降至 ( O(V^n) \ ],显著提升了计算可行性。
例如,当 ( n=3 ) 且 ( V=10^5 ) 时,参数数量为 ( 10^{15} ),虽仍庞大但远低于10-gram的 ( 10^{50} )。
3.2 数据平滑技术
尽管n-gram模型缓解了参数空间问题,数据稀疏性
仍是核心挑战(如未登录词或低频词组合)。为此,需引入平滑算法调整概率估计,避免零概率问题。典型方法包括:
- 拉普拉斯平滑(Laplace Smoothing):对所有n-gram计数加1,确保未出现的组合概率非零,如:
P ( w i ∣ w i − 1 ) = C ( w i − 1 , w i ) + 1 C ( w i − 1 ) + V P(w_i | w_{i-1}) = \frac{C(w_{i-1}, w_i) + 1}{C(w_{i-1}) + V} P(wi∣wi−1)=C(wi−1)+VC(wi−1,wi)+1
其中 ( C(\cdot) ) 表示共现次数,( V ) 为词汇表大小。 - 插值法(Interpolation):结合低阶n-gram概率(如bigram与unigram),通过加权平均平滑高频与低频模式,公式为:
P ( w i ∣ w i − 2 , w i − 1 ) = λ 3 P ( w i ∣ w i − 2 , w i − 1 ) + λ 2 P ( w i ∣ w i − 1 ) + λ 1 P ( w i ) P(w_i | w_{i-2}, w_{i-1}) = \lambda_3 P(w_i | w_{i-2}, w_{i-1}) + \lambda_2 P(w_i | w_{i-1}) + \lambda_1 P(w_i) P(wi∣wi−2,wi−1)=λ3P(wi∣wi−2,wi−1)+λ2P(wi∣wi−1)+λ1P(wi)
其中 ( \lambda_1 + \lambda_2 + \lambda_3 = 1 ) 为权重系数。
4、应用
统计语言模型凭借对语言序列的概率建模能力,在自然语言处理领域有广泛应用
4.1 语音识别与手写体识别
在语音识别中,麦克风采集的声音信号经声学模型转换为候选词序列后,统计语言模型(如trigram)用于计算不同候选句子的概率 P ( s ) P(s) P(s) ,选择概率最高的序列作为最终识别结果。
例如,当声学模型输出"今天去超柿"和"今天去超市"时,语言模型通过 P ( 超市 ∣ 去 ) ≫ P ( 超柿 ∣ 去 ) P(超市|去) \gg P(超柿|去) P(超市∣去)≫P(超柿∣去) 辅助选择更合理的文本。
像国内的阿里识别,科大讯飞等等
4.2 机器翻译
在统计机器翻译中,模型需将源语言(如英语)译为目标语言(如汉语)。
统计语言模型负责评估译文的流畅度,即计算目标语言句子的 P ( 译文 ) P(译文) P(译文) ,与翻译模型的概率 P ( 译文 ∣ 原文 ) P(译文|原文) P(译文∣原文) 结合,通过贝叶斯公式选择最优译文。
例如,生成"寻找钥匙在花园"和"在花园中寻找钥匙"时,语言模型通过 P ( 在花园中 ) P(在花园中) P(在花园中) 的高频出现偏好后者。
比如百度翻译
4.3 文本生成与自动补全
输入法的候选词推荐、搜索引擎的自动补全(如输入"人工"后提示"智能")、机器写诗等场景,均依赖n-gram模型预测下一个最可能的词。例如,手机输入法根据用户输入的"我想吃",通过 ( P(火锅|我想吃) ) 的高概率推荐"火锅"作为补全词。
4.4 拼写纠错与语法检查
通过计算错误词序列与修正后序列的概率差异,统计语言模型可识别拼写错误并给出修正建议。
如用户输入"我门今天开会",模型发现 P ( 我们 ∣ 我 ) P(我们|我) P(我们∣我) 远高于 P ( 我门 ∣ 我 ) P(我门|我) P(我门∣我) ,从而纠正"门"为"们"。
搜狗输入法等
4.5 自然语言理解与舆情分析
在情感分析、文本分类等任务中,统计语言模型通过计算词序列的概率分布,辅助判断文本的语义倾向。
例如,判断句子"这部电影糟透了"的情感时,模型会捕捉"糟透了"作为负向词的高频共现模式,提升分类准确率。
统计语言模型虽受限于马尔可夫假设的局部依赖性(无法建模长距离依赖),但其简单高效的概率框架为后续深度学习模型(如RNN、Transformer)奠定了重要基础,至今仍是理解语言序列概率分布的核心技术之一。
拓尔思,中科天玑
5、相关阅读
-
自然语言处理:语言模型&递归神经网络
-
Statistical Language Modeling 统计语言建模
-
Language Model: A Survey of the State-of-the-Art Technology 语言模型:最先进的技术综述
-
N-gram Language Modeling in Natural Language Processing 自然语言处理中的N-gram语言建模
-
N-gram Language Models
-
统计语言模型,ngram和困惑度
四、神经网络语言模型
神经网络语言模型(Neural Language Model, NLM)通过
- 分布式表示
- 非线性建模
- 自注意力机制
突破了传统统计语言模型的参数爆炸与数据稀疏瓶颈,推动自然语言处理从规则驱动走向数据驱动,为预训练大模型时代奠定了技术基础。
1、核心思想
从符号表示到向量空间的革命 ,神经网络语言模型通过两大核心创新解决传统模型缺陷:
1.1 分布式表示
低维向量捕捉语义关联
传统统计模型痛点:
- 参数爆炸:n-gram参数规模为 ( O(V^n) ),如3-gram在词汇量 ( V=10^5 ) 时需 ( 10^{15} ) 参数,存储与计算不可行;
- 数据稀疏:未登录词组合(如“量子计算机”)因训练语料中无共现,概率计算失效。
分布式表示突破:
- 将词汇映射到低维连续向量空间(如50-1024维词嵌入),通过向量运算捕捉语义关系。
- 示例:“国王”向量 - “男人”向量 + “女人”向量 ≈ “女王”向量,体现语义类比能力;
- 参数共享:不同词的上下文依赖通过共享的嵌入矩阵学习,未登录词组合可通过向量插值泛化(如“量子花园”虽未出现,但“量子”与“花园”的向量组合能推断语义)。
1.2 非线性建模
捕捉复杂语义依赖
- 多层网络拟合复杂函数:通过ReLU、Sigmoid等非线性激活函数,多层神经网络可拟合任意复杂的条件概率 ( P(w_i | w_{i-1}, \dots, w_{i-n+1}) )。
- 例如:前馈神经网络通过多层变换,区分“苹果(水果)”与“苹果(公司)”的上下文歧义;
- 时序建模能力:循环神经网络(RNN)通过隐藏层状态 ( h_t ) 存储历史信息,理论上可处理长距离依赖(如“我小时候在乡下长大,那里的河流至今仍清晰记得”中“河流”与“乡下”的关联)。
2、早期模型
从简单到序列建模的探索
2.1 神经概率语言模型(NNLM,Bengio, 2003)
首个神经网络语言模型,奠定分布式表示与非线性建模基础
- 架构本质:基于前馈神经网络(FFNN),首次将词嵌入(Word Embedding)与多层感知机结合。
- 结构:
- 输入层:将前 ( n-1 ) 个词的嵌入向量拼接为 ( x \in \mathbb{R}^{D \times (n-1)} )(D为嵌入维度);
- 隐藏层:通过非线性激活函数(如Sigmoid)进行特征变换:
h = σ ( W h x + b h ) h = \sigma(W_h x + b_h) h=σ(Whx+bh) - 输出层:Softmax计算下一词概率分布:
P ( w i ) = Softmax ( W o h + b o ) P(w_i) = \text{Softmax}(W_o h + b_o) P(wi)=Softmax(Woh+bo)
- 核心创新:
- 引入词嵌入将词汇映射到低维连续空间(如“国王”“女王”的向量体现语义关联),解决传统模型的参数爆炸与数据稀疏问题;
- 通过多层非线性网络拟合复杂语言依赖,突破n-gram的线性建模限制。
- 参数规模:( O(V \cdot D + D^2) ),远低于n-gram的 ( O(V^n) )(如n=3时参数减少约99.9%)。
- 局限:仅能捕捉局部窗口依赖(如n=3时仅利用前2词),长距离语义建模能力不足。
2.2 循环神经网络 (RNN,1986年 Elman模型)
- 结构:
- 循环单元:隐藏层状态 ( h_t ) 由当前输入 ( x_t ) 和前一时刻状态 ( h_{t-1} ) 共同决定:
h t = σ ( W h x x t + W h h h t − 1 + b h ) (式1) h_t = \sigma(W_{hx} x_t + W_{hh} h_{t-1} + b_h) \quad \text{(式1)} ht=σ(Whxxt+Whhht−1+bh)(式1)
其中 ( W_{hx} ) 为输入到隐藏层权重,( W_{hh} ) 为隐藏层自环权重。
- 循环单元:隐藏层状态 ( h_t ) 由当前输入 ( x_t ) 和前一时刻状态 ( h_{t-1} ) 共同决定:
- 优势:理论上可捕捉任意长度依赖,适用于语音识别、文本生成等序列任务。
- 缺陷:梯度消失问题显著,实际仅能有效建模5-10步内的依赖。
可参考文章:- 深度学习教程
2.3 长短期记忆网络 (LSTM,1997年 Hochreiter & Schmidhuber)
- 门控机制创新:
- 遗忘门 ( f_t ):决定丢弃历史信息 ( h_{t-1} ) 的比例:
f t = σ ( W f [ h t − 1 , x t ] + b f ) (式2) f_t = \sigma(W_f [h_{t-1}, x_t] + b_f) \quad \text{(式2)} ft=σ(Wf[ht−1,xt]+bf)(式2) - 输入门 ( i_t ):控制当前输入 ( x_t ) 的存储量;
- 输出门 ( o_t ):调节隐藏层输出 ( h_t )。
- 遗忘门 ( f_t ):决定丢弃历史信息 ( h_{t-1} ) 的比例:
- 优势:通过门控机制选择性保留长期信息,有效建模长距离依赖(如机器翻译中源语言长句的上下文关联)。
- 应用:Google神经机器翻译系统(GNMT)基于LSTM编码器-解码器,首次实现端到端高质量翻译。
3、基于Transformer的突破
从序列到全局建模
建议阅读一下这一篇文章
Attention Is All You Need (Transformer) 论文精读
该博主的例子很好理解
3.1 自注意力机制
打破距离限制的语义关联
核心计算三步曲:
- Query-Key-Value生成:
输入词嵌入 ( x_i ) 经线性变换生成Query(Q)、Key(K)、Value(V):
Q i = W Q x i , K j = W K x j , V j = W V x j Q_i = W^Q x_i, \quad K_j = W^K x_j, \quad V_j = W^V x_j Qi=WQxi,Kj=WKxj,Vj=WVxj - 相似度计算与归一化:
位置 ( i ) 与所有位置 ( j ) 的关联得分:
score ( i , j ) = Q i K j ⊤ d k (缩放点积避免梯度消失) \text{score}(i,j) = \frac{Q_i K_j^\top}{\sqrt{d_k}} \quad \text{(缩放点积避免梯度消失)} score(i,j)=dkQiKj⊤(缩放点积避免梯度消失)
归一化后得到注意力权重 ( \alpha_{i,j} = \text{Softmax}(\text{score}(i,j)) )。 - 加权求和:
输出 ( z_i = \sum_j \alpha_{i,j} V_j ),融合全局上下文信息。
多头注意力(Multi-Head Attention):
并行计算h个独立注意力头,捕捉多维度语义关联(如语法依赖与语义相似性),最终拼接输出:
MultiHead ( Q , K , V ) = Concat ( head 1 , … , head h ) W O \text{MultiHead}(Q,K,V) = \text{Concat}(\text{head}_1, \dots, \text{head}_h) W^O MultiHead(Q,K,V)=Concat(head1,…,headh)WO
注:Transformer需额外添加位置编码(如正弦函数)注入词序信息,因自注意力本身不包含时序结构。
3.2 编码器模型
(BERT:双向语义理解标杆)
- 架构:仅使用Transformer编码器,支持双向上下文编码。
- 预训练任务:
- 掩码语言模型(MLM):随机遮蔽15%的词(如“我今天去[MASK]”),强制模型通过前后文预测(如结合“去”的动作推断“超市”而非“超柿”);
- 下一句预测(NSP):判断两个句子是否连续(如“我买了苹果”与“它很甜”为连续,与“天气很好”不连续)。
- 性能:在GLUE基准测试中准确率86.7%,超越人类水平;变体RoBERTa(动态掩码)、ALBERT(参数共享)进一步提升效率与性能。
模型 | 架构 | 核心优势 | 典型场景 |
---|---|---|---|
BERT | 编码器 | 双向语义理解 | 文本分类、问答、NER |
GPT | 解码器 | 单向生成能力 | 文本续写、代码生成、创作 |
3.3 解码器模型
(GPT:生成式建模的里程碑)
- 架构:仅使用Transformer解码器,自回归逐词生成(每个词仅依赖前文)。
- 预训练任务:自回归语言建模,如输入“Once upon a time”,预测下一词“there”,逐步生成完整故事。
- 演进:
- GPT-1(2018):12层解码器,1.17亿参数,开启“预训练+微调”范式;
- GPT-2(2019):15亿参数,零样本学习(如输入“翻译:I love NLP”直接输出中文),但单向生成导致复杂逻辑推理较弱。
4、预训练范式革命
从专用模型到通用智能
4.1 双向建模 vs 自回归生成
两大技术路径
范式 | 代表模型 | 核心原理 | 优势场景 | 挑战 |
---|---|---|---|---|
掩码语言模型 | BERT | 双向上下文预测(部分词遮蔽) | 语义理解(分类、推理) | 非生成式架构 |
自回归生成 | GPT | 单向序列生成(下一词预测) | 文本生成(创作、对话) | 生成效率低(顺序计算)、幻觉问题 |
5、相关阅读
参考文章
- What is a Language Model: Introduction, Use Cases 什么是语言模型:简介、用例
- Neural Probabilistic Language Models 神经概率语言模型
- Recurrent Neural Network Regularization 循环神经网络正则化
- Long Short-Term Memory 长短期记忆网络
- Attention Is All You Need 注意力是你所需的一切
- BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding BERT:用于语言理解的深度双向Transformer预训练
- Language Models are Unsupervised Multitask Learners 语言模型是无监督多任务学习者
- The Illustrated Transformer 图解Transformer
- Understanding LSTM Networks 理解LSTM网络
- 深度学习教程
按照时间线阅读
- 神经概率语言模型奠基:
Neural Probabilistic Language Models (2003)(Bengio et al.,首次引入词嵌入与非线性建模) - 循环神经网络经典:
Long Short-Term Memory (1997)(Hochreiter & Schmidhuber,LSTM门控机制) - Transformer里程碑:
Attention Is All You Need (2017)(Vaswani et al.,自注意力机制颠覆NLP) - 双向预训练突破:
BERT: Pre-training of Deep Bidirectional Transformers (2018)(Devlin et al.,MLM开启预训练时代) - 生成式建模标杆:
Language Models are Unsupervised Multitask Learners (2019)(Radford et al.,GPT-2零样本学习) - 可视化解读:
The Illustrated Transformer (2018)(直观解析自注意力机制)
五、基于 Transformer 的预训练语言模型
推荐阅读:Transformer 快速入门
Transformer架构的诞生彻底重塑了自然语言处理(NLP)的技术格局。
其核心创新——自注意力机制
——通过动态捕捉全局语义关联,解决了传统循环神经网络(RNN)的长距离依赖难题
并为预训练范式提供了坚实基础。基于Transformer的预训练语言模型(如BERT、GPT)通过“预训练+微调”模式
在语义理解、文本生成等任务中展现出惊人的泛化能力,推动NLP从工具化向智能化演进。
而中国企业**DeepSeek(深度求索)**通过对Transformer的深度优化与创新,在多个关键技术领域实现了突破,其技术路径和应用实践可作为本章节的重要补充。
1、核心技术突破
1.1 自注意力机制的数学基础与创新
自注意力机制通过Query(Q)、Key(K)、Value(V)的交互建模序列依赖。具体计算分为三步:
- 线性变换:输入词嵌入( x_i )经权重矩阵( W^Q, W^K, W^V )生成Q、K、V:
Q i = W Q x i , K j = W K x j , V j = W V x j Q_i = W^Q x_i, \quad K_j = W^K x_j, \quad V_j = W^V x_j Qi=WQxi,Kj=WKxj,Vj=WVxj - 相似度计算:通过点积计算位置( i )与所有位置( j )的关联得分:
score ( i , j ) = Q i K j T d k \text{score}(i,j) = \frac{Q_i K_j^T}{\sqrt{d_k}} score(i,j)=dkQiKjT
其中( \sqrt{d_k} )用于缩放,避免梯度消失。 - 加权求和:Softmax归一化后与V矩阵相乘,得到上下文感知的输出:
Attention ( Q , K , V ) = Softmax ( Q K T d k ) V \text{Attention}(Q,K,V) = \text{Softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)V Attention(Q,K,V)=Softmax(dkQKT)V
多头注意力通过并行计算多个头的注意力结果(如12头),捕捉不同语义子空间的信息,最终拼接输出:
MultiHead ( Q , K , V ) = Concat ( head 1 , … , head h ) W O \text{MultiHead}(Q,K,V) = \text{Concat}(\text{head}_1, \dots, \text{head}_h) W^O MultiHead(Q,K,V)=Concat(head1,…,headh)WO
1.2 位置编码的创新设计
Transformer本身不具备时序建模能力,需通过位置编码注入顺序信息。主流方法包括:
- 绝对位置编码:采用三角函数生成周期性向量,如:
P E p o s , 2 i = sin ( p o s / 1000 0 2 i / d ) PE_{pos,2i} = \sin(pos / 10000^{2i/d}) PEpos,2i=sin(pos/100002i/d)
P E p o s , 2 i + 1 = cos ( p o s / 1000 0 2 i / d ) PE_{pos,2i+1} = \cos(pos / 10000^{2i/d}) PEpos,2i+1=cos(pos/100002i/d)
其中( pos )为词位置,( d )为嵌入维度。这种设计使模型能泛化到训练长度之外的序列。 - 相对位置编码:建模词与词之间的相对距离,如T5通过正弦函数编码相对偏移,增强长文本建模能力。
1.3 DeepSeek的核心优化技术
1.3.1 混合专家(MoE)架构
DeepSeek的核心模型(如DeepSeek-V3、DeepSeek-R1)均以Transformer为底层架构,但在以下方面进行了创新性扩展:
- 动态路由与负载均衡:路由器根据输入动态选择专家,结合无辅助损失的负载均衡策略,避免传统MoE模型因强制负载均衡导致的性能下降,同时确保计算资源高效分配。例如,DeepSeek-V3的每个Transformer层包含256个路由专家和1个共享专家,每个token仅激活8个专家,总参数达6710亿,但激活参数仅370亿,显著降低计算成本。
1.3.2 多头潜在注意力(MLA)
通过低秩联合压缩技术,将Key-Value矩阵压缩至低维空间,减少显存占用和计算量。例如,MLA机制可将显存需求降低至传统模型的1/10,使端侧设备(如手机、PC)也能部署大规模模型。具体实现包括:
- 低秩分解:将高维KV矩阵分解为低维矩阵的乘积,如将7168维压缩至512维,显存占用仅为原始大小的6.7%。
- 分页KV缓存:采用离散存储、动态分配和块表管理,显存利用率提升3倍以上,处理4096 token仅需16GB显存的RTX 4090即可完成。
1.3.3 多Token预测(MTP)
同时预测多个后续Token,增加训练信号密度,显著提升模型对长期依赖关系的捕捉能力。例如,DeepSeek-V3在代码生成任务中,第二个Token预测接受率达85%-90%,且在HumanEval基准测试中通过率达40%,超越GPT-4 Turbo。
2、主流模型架构解析
2.1 编码器模型:BERT与语义理解
- BERT(Bidirectional Encoder Representations from Transformers)
- 双向编码:通过掩码语言模型(MLM)和下一句预测(NSP)预训练,捕捉双向语义。
- 例如,输入“我今天去[MASK]”,模型需结合前后文预测“超市”而非“超柿”。
- 变体优化:
- RoBERTa:取消NSP任务,采用动态掩码和更长训练时间,在自然语言推理任务中准确率提升2-3%。
- ALBERT:通过参数共享和矩阵分解,将参数量压缩至BERT的1/10,适用于资源受限场景。
- 应用案例:招商银行基于BERT的智能客服系统,问答准确率达92%,工单处理效率提升40%。
2.2 解码器模型:GPT与生成革命
- GPT系列(Generative Pretrained Transformer)
- 自回归生成:从左到右逐词预测,如GPT-3通过1750亿参数生成连贯小说、代码。
- 其“零样本学习”能力可直接处理未见过的任务,如输入“解释量子力学”,模型能生成科普文本。
- 技术突破:
- GPT-4o:支持文本、图像、音频多模态输入,响应速度达毫秒级,可实时分析用户情绪并生成个性化建议。
- GPT-5(2025年计划推出):整合o3推理引擎,错误率较GPT-4降低67%,支持语音交互和图像编辑,且计划免费开放基础功能。
2.3 编码器-解码器模型:T5与BART
https://medium.com/@lmpo/encoder-decoder-transformer-models-a-comprehensive-study-of-bart-and-t5-132b3f9836ed
-
T5(Text-to-Text Transfer Transformer)
- 统一任务框架:将所有NLP任务(如翻译、摘要)转化为文本到文本的生成问题。例如,输入“translate English to Chinese: I love NLP”,模型输出“我爱自然语言处理”。
- 参数规模:从110M到11B参数,在SuperGLUE基准测试中表现优异。
-
BART(Bidirectional and Auto-Regressive Transformers)
- 序列恢复预训练:通过掩码、删除、打乱等方式扰动输入,训练模型恢复原始文本。例如,输入“[MASK]天去超市”,模型需补全“今”字。
- 应用场景:在摘要生成任务中,BART的ROUGE-L得分较传统模型提升15%,广泛用于新闻摘要和客服工单总结。
2.4 DeepSeek的技术突破
2.4.1 DeepSeek-R1:推理专用模型
- 设计目标:专注于数学、代码生成和复杂逻辑推理。
- 训练方法:采用多阶段循环训练,包括基础训练、强化学习(RL)和微调的交替进行。例如,通过纯强化学习(无监督微调)实现逻辑推理能力跃升,思维链长度达数万字,在数学推理任务中性能接近GPT-4。
- 性能表现:在AIME 2024数学推理测试中,Pass@1从单阶段训练的63.6%提升至79.8%。
2.4.2 DeepSeek-V3:高效通用模型
- 架构:采用混合专家(MoE)架构,总参数6710亿(激活370亿),训练成本仅557万美元,远低于Meta Llama 3.1的5亿美元。
- 技术创新:
- FP8混合精度训练:结合硬件加速技术,在14.8万亿Token的数据集上仅用55天完成训练。
- 多模态支持:文本+图像+代码+PDF解析,适用于复杂场景。
2.4.3 DeepSeek-Coder:代码生成专家
- 技术优势:支持338种编程语言,上下文长度扩展至128K,在HumanEval基准测试中通过率达40%,超越GPT-4 Turbo和Claude 3.5。
- 应用案例:在电商系统订单处理模块中,生成包含库存管理、支付流程等复杂逻辑的代码框架,代码可读性和可维护性显著提升。
3、预训练范式的演进
3.1 预训练任务的多样化
- 掩码语言模型(MLM):随机遮蔽15%的词,迫使模型利用上下文预测。例如,BERT通过MLM学习词与词的语义关联,在情感分析中准确识别“糟透了”的负向情感。
- 自回归生成(AR):GPT系列通过预测下一个词学习语言生成模式,在代码生成中,GitHub Copilot基于Codex(GPT-3变体)使开发效率提升55%。
- 前缀语言模型:T5采用文本到文本框架,通过前缀提示(如“summarize:”)引导模型完成特定任务,支持零样本和少样本学习。
3.2 多模态融合的突破
- 图文联合建模:GPT-4o结合DALL-E技术,可根据文本描述生成图像(如“画一只穿着太空服的猫”),并支持图像编辑和多模态对话。
- 跨模态推理:PaLM-2通过多语言训练,可将数学公式转换为自然语言解释,或分析图表数据生成报告。
3.3 DeepSeek的预训练创新
3.3.1 多阶段训练策略
- 冷启动数据微调:通过监督微调(SFT)让模型学习基础推理逻辑,避免强化学习阶段出现无意义输出。
- 强化学习优化:结合拒绝采样和自我验证,生成高质量推理链。例如,DeepSeek-R1通过纯RL训练,在数学推理任务中性能接近GPT-4。
3.3.2 分阶段训练与硬件集成
- 训练阶段:预训练、对齐和领域微调。例如,DeepSeek-R1在华为Ascend 910C芯片上运行推理任务,无需NVIDIA GPU,大幅降低费用。
- 推理优化:MLA技术结合华为芯片的高性能计算能力,使DeepSeek-R1在保持高精度的同时,推理速度提升20%。
5、相关阅读
https://transformers.run/c1/transformer/
推荐打开这个网站,可以点击进行学习加以理解
六,总结
-
统计语言模型:
- 基于概率统计,利用马尔可夫假设和n - gram模型计算句子概率。
- 存在参数空间过大和模型稀疏问题,通过数据平滑技术缓解。
- 在语音识别、机器翻译等多领域有广泛应用,为后续模型发展奠定基础。
-
神经网络语言模型:
-
通过分布式表示和非线性建模突破传统模型瓶颈。
-
早期模型如NNLM奠定基础,RNN理论可捕捉长距离依赖但存在梯度消失问题,LSTM通过门控机制改善。
-
Transformer的自注意力机制实现全局建模,BERT和GPT分别在语义理解和文本生成方面取得突破,同时出现双向建模和自回归生成两种预训练范式。
-
-
基于Transformer的预训练语言模型:
-
Transformer架构凭借自注意力机制解决长距离依赖难题,基于此的预训练语言模型通过“预训练 + 微调”展现强大泛化能力。
-
介绍了自注意力机制计算、位置编码方式,以及DeepSeek在混合专家架构、多头潜在注意力、多Token预测等方面的优化技术。
-
解析了BERT、GPT、T5、BART等主流模型架构,以及预训练范式在任务多样化、多模态融合方面的演进和DeepSeek的预训练创新。