【学习笔记】大模型

ch01 大模型原理

典型的LLM结构

  1. 输入层:输入文本分词为词元(Token)序列;每个词元进一步映射到对应的Token ID;最终转换为多维数值矩阵。
  2. 多层Decoder堆叠结构:由多个完全相同的Decoder层堆叠而成。通过逐层计算,模型逐步总结和建模输入序列的深层语义与依赖关系。每个Decoder层的关键组件如下:
    1. 自注意力(Self-Attention)机制:通过查询(Q)、键(K)、值(V)向量进行注意力计算,并结合因果掩码,保证每个词元只能关注其之前的序列位置,使模型能够建模序列中不同词元之间的语义关系。自注意力机制通常以多头注意力(MHA)、多查询注意力(MQA)、分组查询注意力(GQA)、多头潜在注意力(MLA)等形式实现。
    2. 位置编码(Positional Encoding):通过引入序列中的词元位置信息,帮助模型理解序列的相对和绝对位置。RoPE方法被广泛使用。
    3. 前馈网络(Feed-Forward Network, FFN):对经过自注意力机制计算的隐藏状态(Hidden States)进行非线性变换,进一步提取特征和语义。FFN内部通常包含激活函数(例如 SwiGLU),以提高模型的非线性拟合能力,捕捉更复杂的模式。对于采用MoE结构的LLM,FFN部分通常由多个专家网络组成,并通过路由机制动态激活少数专家,从而提升模型的容量和计算效率。
    4. 归一化(Normalization):采用RMSNorm等层归一化(Layer Normalization)方法,稳定数值计算,提升训练稳定性并加速模型收敛。
    5. 残差连接(Residual Connection):在每个子层输入和输出之间添加残差连接,确保信息顺畅传递,缓解深层网络中的梯度消失问题,提升模型训练效率。
  3. 输出层:将Decoder输出的多维隐藏状态通过线性变换映射到全词表的Logits,得到词元候选的概率分布。随后,解码模块根据概率分布,采用不同的解码算法生成最终输出文本。
    1. 提取最后位置的Logits:推理时只计算最后一个位置的Logits。预测下一个词元仅依赖序列最后一个位置的Logits,因此需要从所有位置的Logits中提取最后一个位置的Logits。
    2. 解码(Decoding):根据概率分布,应用解码策略(随机采样、或选择最大概率)确定最终预测的下一个词元。例如,在贪婪搜索解码策略下,选择概率最高的词元作为预测结果。

(1)预填充阶段(Prefill):一次性处理完整的输入序列并计算其隐藏状态。随后,模型计算下一个词元的概率分布。

(2)继续生成:模型接续迭代计算,逐步生成其余Token。

模型在每个生成步骤中都需要重复计算相同的前缀。为提升推理效率,通常会采用KVCache等缓存机制来减少冗余计算。

每个词元对应的向量,是通过预训练学习得到的,蕴含了词元的语义信息。

相关推荐
码上地球12 分钟前
大数据成矿预测系列(九) | 数据的“自我画像”:自编码器如何实现非监督下的“特征学习”
人工智能·深度学习·机器学习·数学建模
진영_35 分钟前
深度学习打卡第R4周:LSTM-火灾温度预测
人工智能·深度学习·lstm
Francek Chen2 小时前
【自然语言处理】预训练06:子词嵌入
人工智能·pytorch·深度学习·自然语言处理·子词嵌入
金融小师妹3 小时前
基于多源政策信号解析与量化因子的“12月降息预期降温”重构及黄金敏感性分析
人工智能·深度学习·1024程序员节
nnn__nnn3 小时前
图像分割技术全解析:从传统算法到深度学习的视觉分割革命
深度学习·算法·计算机视觉
盼小辉丶3 小时前
PyTorch实战(10)——从零开始实现GPT模型
人工智能·pytorch·gpt·深度学习
Blossom.1184 小时前
大模型量化压缩实战:从FP16到INT4的生产级精度保持之路
开发语言·人工智能·python·深度学习·神经网络·目标检测·机器学习
Ro Jace4 小时前
三国华容道(横刀立马)移动策略
android·java·数据库·人工智能·深度学习·神经网络·游戏
wanzhong23335 小时前
CUDA学习2-CPU和GPU的性能优化
深度学习·gpu·cuda·高性能计算
晨非辰6 小时前
【数据结构】排序详解:从快速排序分区逻辑,到携手冒泡排序的算法效率深度评测
运维·数据结构·c++·人工智能·后端·深度学习·排序算法