大模型工作原理理解
大模型工作原理
2017年,Transformer论文诞生,2018年,GPT模型诞生。
那么,GPT究竟是什么意思?
G(generative):代表“生成式”,意味着模型能够根据给定的起始词或句子,通过预测文字出现的先后概率生成一段文本
P(pre-train):代表“预训练”,在大模型被用于特定任务之前,先通过大规模的文本数据进行预训练
T(Transformer):代表"Transformer",一种特定的深度学习模型结构
Transformer架构:最初是2017年提出,内部基于注意力机制,用于处理序列到序列的任务。
神经网络到Transformer
-
神经网络:全称为人工神经网络(Artificial Netural Network,ANN),是模仿人类大脑神经网络系统启发而设计的计算模型。由大量相互连接的节点(神经元)组成
-
卷积神经网络(Convolutional Netural Network,CNN),特别适合处理图像,广泛应用于计算机视觉领域
-
循环神经网络(Recurrent Netural Network,RNN):用于处理序列数据,RNN原理是引入了隐状态h(hidden state)来对序列数据提取特征,再接着转换为输出,能够记住过去的信息,并将其应用当前的处理过程中。但是处理的序列不能过长,否则会有遗忘
-
长短时记忆网络(Long Short-Term Memory,LSTM):是一种特殊的循环神经网络(RNN),能更好的捕捉长距离依赖关系,但是计算效率低,并行计算能力不足,捕捉长距离依赖的能力比RNN好,但对于非常长的序列仍是有限。
Transformer也属于深度学习/深度神经网络的一种,目前大模型的架构基本上都是基于Transformer架构
Transformer的优势
- 并行计算:Transformer可以充分利用计算机硬件进行并行计算,极大提高了训练速度
- 捕捉长距离依赖:自注意力机制使得每个位置的输入可以与序列中其他位置的所有信息进行交互,这大大增强了模型捕捉长距离依赖的能力
- 可扩展性:Transformer架构更容易扩展到更大的模型和更多的数据,易提升模型的表达能力
- 灵活性和效果:Transformer 不仅能高效的处理长序列,还可以在多种NLP任务中。
工作原理
大模型工作原理可以分为以下四个步骤:

分词:大模型中最基本的处理单元(Token)。大模型在进行处理前需要先将语句拆解为一个个基础单元。
不同的模型,token的规则不同。
具体的分词逻辑可以阅读《数学之美》这本书。
1. 词嵌入
词嵌入是指将Token映射为蕴含语义的词向量技术。词嵌入是动态的过程。
2. 词向量:指代某个词在向量空间中的具体数值表示,在坐标系中既有方向又有大小的量
这里举个例子:
“沈阳的雪” --> 【"沈阳",“的”,“雪”】 (3个Token)
每个Token被换成一个由很多数字组成的列表,可以被称为词向量,
比如 “沈阳” = [0.8,-0.3,0.5···] 我们简化为 [3,2]
再比如说,“东”和“西” 互为反义词,这两者在坐标轴上的方向会完全相反。
Token经过词嵌入层训练后,相近意思的词具有相近的词向量

3. 自注意力机制(Self-Attention):大模型如何理解现有的文本,去预测出下一个词。这种捕捉词语之间的关联的能力。
Attention的核心是让模型处理某个Token时,动态关注其他相关的token。
- 2017年,《Attention is All You Need》提出了注意力机制,Transformer出现。
每个Token会生成三个向量:
- Query:当前token的“提问”
- Key:其他Token的“标识”
- Value:其他Token的“实际信息”
案例解析
当我们在用大模型的时候,提出:“从前有个修仙之人,”,大模型会给出一个还不错的回答。
那么大模型究竟是如何工作的呢?
第一步:分词,得到token
不同的大模型使用的分词算法不同,但是解析提示词时都是与大模型训练时所用的分词算法保持一致
从前有个修仙之人,将会分成:从前|有|个|修仙|之|人|,
第二步:词嵌入,将Token转化为词向量
我们假设大模型内部是一个巨大的仓库,大概有5万多个格子,这大概就是词表的大小,每个格子都会放一个词积木,每个积木都会有512个嵌入维度。512是目前主流的大模型的嵌入维度。
我们在初始拿到的这些Token它的词向量是固定的,这时候的词向量可以理解为词表向量。接下来会进行位置信息的嵌入,加在这512个维度中。
第三步:Transformer进行编码和解码的处理
自注意力机制开始修改,一般情况下是12层,当然这个12是在预训练中调好的参数。在多头注意力机制中,有的关注语法、有的关注时间、有的关注角色关系等
以“修仙”来举例:
- “从前”说明这是一个古代、且虚幻的时间
- “有”表示存在
- “个”是量词
- “,”表示句子要延续,(修仙要被描述了)
所以,在这个交流的下,当前的向量就会发生变化:【男性0.4⬇️,古风⬆️,男性⬆️...】
接下来就进入到前馈网络中“闭门思考”了
思考:“这个人肯定很厉害”
展开上述的思考:
想法1:这个是古代画风(+0.6)
想法2:这个是修仙虚幻场景(+0.7)
想法3:这个人是男性(+0.5)
多层变换(Transformer的层)
上述过程就像是多次开会,每次关注不同的点,从认知基本身份->定位故事环境->准备具体描述->预测下文发展
一般是12层
最终效果:
维度10:男性+0.8
维度20:古风+0.6
·····
基于上下文,生成预测
“从前有个修仙之人,”下个词的概率,比如是“他”出现的概率是50%,“她”出现的概率是20%,···
不断续写出:
从前有个修仙之人,他
从前有个修仙之人,他名字
从前有个修仙之人,他名字是
····
每一步都建立在前一步的基础上,通过数学变换,逐步将无序的文字转化为包含丰富语义并能指导未来生成的内部表示。
本文来自博客园,作者:前端加油站,转载请注明原文链接:https://www.cnblogs.com/bllx/p/19651506

浙公网安备 33010602011771号