接上文:大模型从基础到入门——基础知识-CSDN博客

本文主要记录入门大模型学习的相关知识,以期为后续工作学习提供帮助。(除了我自己截图外,引用的我尽量标注来源,有些忘记来源了请告诉我orz)、

更新ing

一、大模型进阶知识

先明确大模型的几个常见阶段:

名称 Pre-training 预训练 Continue Pre-training 增量预训练 Post-training 后训练 Continue-training 继续训练
意义 模型的初始阶段,基于大量数据训练模型,让模型学习通用知识和特征。 基于预训练模型,使用特定领域的数据训练模型,为模型注入邻域知识,为后续训练打基础。 基于预训练模型,针对特定任务进行额外训练,让模型适应新任务。 在预训练和可能的后训练模型基础上,使用新数据进行训练,让模型得到知识更新和性能提升。

其中,从提高模型性能角度来看,大部分情况下不用考虑增量预训练,因为其不仅需要大量高质量专业数据,训练难度也较高,从应用方面来看使用微调便可以轻松达到目的。

我们常用的SFT和RLHF主要是提升模型在特定邻域中的性能,故其和Continue-training可以视为Post-training的一部分。

当前主流大模型与相应技术

DeepSeek

在了解到大模型基础的Transformer结构后,为了解目前主流大模型,我们不妨从国内最火大模型DeepSeek开始:

  1. 2024 年 5 月DeepSeek 宣布开源第二代混合专家(MoE)大模型 DeepSeek-V2,并使用MLA改进MOE(MHA);
  2. 2024 年 12 月DeepSeek 发布了第三代大模型 DeepSeek-V3,引入MTP,无辅助损失负载均衡,FP8混合精度训练,FP8精度的KV cache(MQA);
  3. 2025 年 1 月DeepSeek 发布开源推理模型 DeepSeek-R1,引入强化学习框架GRPO、蒸馏、多阶段训练技术,加入冷启动数据。

MoE(sparse model)

混合专家架构/稀疏结构,最初是在深度学习中提出,用于解决计算资源限制大规模密集模型训练的问题,将大模型拆分为多个小模型,根据样本选择性激活一部分专家用于计算结果,从而达到增加训练参数量而不增加推理计算成本的目的,一般用一个门控单元控制激活专家的数量,引入额外超参数。

动机:解决scaling law中的不可能三角形,及模型规模、计算成本、模型性能不能在dense模型中同时提升。

方法:对模型规模与计算成本进行解耦,及增加模型规模的前提下不增加成本。同时,大模型知识是存储在FFN层,moe就是简单堆叠FFN,提高上限。

deepseek则引入细粒度专家划分和共享专家隔离策略,前者将一个专家进一步分为多个子专家,这样每个令牌可以关联更多的专家,且参数量不变;后者将一些专家标记为共享专家,在每次输出都进行激活,以捕捉共同知识、减少专家间冗余。(V3的16B模型激活了4个专家+2个共享专家;满血版则共256个专家,每次激活8个专家+1共享专家,除了前3层都使用MoE)

v3还对普通FFN的router进行修改,引入负载均衡分配token,防止有些expert在训练时因分配不均而训练不良,但负载均衡只能在训练时使用,在推理阶段使用会导致性能下降(因为不按相关性分配token)

密集结构的模型更容易微调、部署、跨硬件优化,而稀疏结构模型在同等推理预算下上限更高。(但目前moe结构训练较难,在训练最后阶段容易崩溃)

MLA

回到这张图:

前面已经提到,KVcache太多,存储成本太高,而减少KVcache,又导致性能下降。MLA的目的便是优化KVcache来减少显存占用:

通过对键值对KV的低秩压缩,减少推理过程中缓存的KV cache(由于低秩压缩的矩阵乘法不满足交换律,所以与RoPE不兼容,只能将输入拆为两部分,2/3一部分压缩,1/3一部分RoPE编码,再拼接起来),将访存密集型转化位计算密集型,充分发挥CPU算力。

deepseek也对q进行了压缩,将输入转化为两个低秩矩阵,一个用于高维映射还原K、V,一个用于还原Q,可以只用2.25倍的KVcache达到更好的效果。

从图中可以看出,DeepSeek缓存了只两个输入向量c_t^{KV},k_t^R,而这两个向量又可以通过输入与矩阵乘法得到,所以有人根据矩阵吸收提出Embedding-Cache方法:MLA放弃对KV的缓存,转而缓存输入X,同时对X进行低秩压缩,大大降低存储需求。

(个人感觉这与对KV定义有关,所以比起普通的KV缓存,MLA是缓存两个小向量,通过上下投影矩阵完成)

MTP

前面已经提到,大模型生成过程可分为两阶段:prefill和decode,其中后者采用token-by-token的生成方式,一次只生成一个token。

MTP的核心思想就是改变decode生成方式,使其一次可以输出多个token。

#Deepseek论文中MTP实现是这样的。

OLMo

OLMo模型引入2023 年的《Scaling Vision Transformers》论文中的QK-Norm,即在对Q、K矩阵进行RoPE操作前,先进行一次归一化,并只使用post-norm操作。

Gemma 3

谷歌提出的Gemma模型使用滑动窗口注意力降低计算成本:

将自注意力机制视为全局注意力,因为其对前文访问无限制,而滑动注意力则加入了滑动窗口,限制了当前查询位置周围的上下文大小。而模型结构中可以同时使用全局注意力和滑动窗口注意力,如Gemma3采用5:1的比例,每5个滑动窗口注意力层后才有一个全局注意力层,并减小窗口大小为1024,使模型专注于局部计算。

可以在对性能影响不大的情况下,减少kvcache开销。

同时,Gemma 3采用了前后归一化操作,即同时使用pre-norm和post-norm,

Llama 4

采用了MoE结构的400B模型,专家数量较少,但每个专家规模较大(2个激活专家,每个为8192,是DeepSeek的4倍),且每隔一层交替使用MoE和密集模块架构。

Qwen3

Qwen3 0.6B模型性能在小模型中最为出色,已经取代了Llama3 1B模型

比起Llama的宽结构(维度、序列长度较大),Qwen采用的是深结构(Transformer层数更多,但注意力头数、维度较小),所以Qwen3生成速度也较慢。

在MoE中,Qwen3放弃了共享专家,只用8个专家实现MoE结构。

Kimi K2

Kimi模型架构与DeepSeek V3基本相同,区别就是在MoE中使用规模更大的专家,在MLA中使用更少的头数。

大模型微调

微调方法:其实是迁移学习的一个实例,包括全面微调、参数高效微调PEFT

PEFT常用7方法:

LoRA:微调预训练大模型,在模型决定性层中引入小型、低秩矩阵,避免对模型结构的大幅度修改。可插拔性强,可作为adapter加载;

Prefix/Prompt Tuning:在模型输入或隐藏层添加k个额外可训练的前缀tokens,只训练这些参数;难以优化,性能随参数规模非单调变化,引入前缀token会减少处理下游任务序列长度;

Adapter Tuning:将小神经网络层插入模型的每一层,只训练这些适配器参数。有串行和并行两种,会引入额外计算,带来推理延迟。

LoRA引入低秩AB,其秩r远小于模型中参数dim,且训练时只训练A矩阵参数,B和模型参数不变。秩r影响性能和训练时间、缩放系数alpha确保训练稳定。

LoRA开始时随机高斯分布初始化矩阵A的缩放因子,B用0初始化,A矩阵使用随机高斯分布初始化是为了保持模型的表达能力,B矩阵初始化为0是为了减少训练初期对原始模型参数的影响。

P-tuning方法开销、时间远大于LoRA,而且其需要很多数据,容易过拟合,但效果一般比lora好;

强化学习

强化学习:源自机器学习中马尔可夫决策过程,学习器(Agent)对环境施加动作action,获得状态state、奖励reward。学习任务:确定获得最大奖励的策略policy。

在自然语言处理下,大模型就是agent,人类通过设置奖励,训练模型的过程叫RLHF。

RLHF:基于人类反馈的强化学习,SFT模型+奖励模型,让奖励模型对SFT模型输出打分,更新策略,目前主流方法有PPO、DPO、GRPO。

RFT(Rejection Sampling Fine-tuning):也是生成多个答案,但只筛去其中低质量、错误答案,不显示区分答案差异,也不更新策略分布;少了细粒度奖励;

PPO

近端策略优化,PPO对梯度更新做了一个裁剪,防止更新过于激进,提高模型训练稳定性,其在奖励函数中引入目标函数裁剪(避免完全离开旧策略);在Hugging face实现中,还在策略模型旁边保留一个参考模型,计算KL散度,使模型生成内容不会偏离SFT模型太远。PPO流程为:

  1. 使用原模型Policy model(\pi_\theta​)对输入的prompt生成响应序列;
  2. 对每个生成的token记录:1.policy model的log probability(log\pi_\theta​);2.参考模型的log probability(log\pi_{ref}​);3.价值模型对当前状态价值估计V(s_t)​;
  3. 对完整的响应序列,用奖励模型生成分数r;
  4. 计算每个token的KL散度(log\pi_\theta - log\pi_{ref}​)
  5. 用KL散度结合分数r计算最终的per-token奖励信号
  6. 由per-token奖励信号结合价值估计,通过GAE计算每个token的优势(Advantages) 和回报 (Returns)
  7. 基于上面数据计算损失,更新原模型和价值模型

一般来说,PPO中总收益v分为两部分,reward model得到的t即时奖励和critic model得到的t+1预测奖励,

PPO中clip操作,引入裁剪超参数\varepsilon​,旨在最大化预期优势,同时限制策略更新幅度,优势中隐式包含了KL散度计算。

DPO

Direct Preference Optimization,对PPO中四个模型进行优化,无需单独RL优化器,只用到了原模型和参考模型,并以SFT的方式直接更新原模型,所以需要有偏好数据集;

DPO的目标是让原模型\pi_\theta​对给定的prompt x,能倾向于生成偏好回答y_w​,而不是拒绝的回答y_l​,其通过最小化负对数似然形式的损失函数来实现:

L_{DPO(\pi_{\theta},\pi_{ref})} = -E_{(x,y_w,y_l)}[log(\sigma(\beta log(\frac{\pi_{\theta}(y_w|x)}{\pi_{ref}(y_w|x)}))) - \beta log(\frac{\pi_{\theta}(y_l|x)}{\pi_{ref}(y_l|x)}))) ]

其中,公式前半部分为偏好回答的奖励,后半部分为拒绝回答的奖励,我们希望前者大而后者小,并用一个超参数\beta​控制模型偏离程度,\beta​越大,代表需要其差异越大。

GRPO

Group Relative Preference Optimization,相比于PPO,用计算优势划分更新时的基线baseline,该方法则一次生成多个答案,对答案进行归一化,以相对奖励r'赋给输出该token的优势函数;不再需要一个大型价值网络来估计答案间的优劣,而是由分组对比获得;r'代替PPO中大型价值网络(区分答案好坏),提供基线baseline。

GRPO优化目标与PPO类似,区别在于该方法用整个序列的归一化奖励直接作为序列中每一个token的优势A,由于该优势是用群体相对表现计算的,比reward model对最后一个token打分的r更稳定。其流程为:

  1. 采样:对一批prompt由原模型生成G个响应;
  2. 评估:用奖励模型对每个响应打分,得到G个r;
  3. 计算优势:对G个r做归一化操作,以归一化后的数值作为每个prompt中每个token的相对优势;
  4. 更新原模型:使用PPO的clip机制,结合相对优势、KL散度,更新原模型。

reward model

奖励模型,可以是一个函数,自动评分,对生成内容有评估指标;人类评分,人工对输出内容打分;混合方式...

奖励模型的局限性:(主要是信息少,效率低,不稳定)

短期反馈:Reward Model提供的是即时奖励信号(即单步的 rt ),但无法直接衡量长期收益。

稀疏性问题:在稀疏奖励环境中(如只有最终成功时才给奖励),单纯依赖即时奖励会导致训练困难,因为缺乏中间步骤的指导信号。

非平稳性:如果奖励函数是动态学习的(如通过逆强化学习),其输出可能不稳定,直接用于策略优化会导致训练波动。

Critic Model 价值/批判模型

强化学习需要Critic Model(Value Model,价值模型)核心原因是其能在策略优化过程中提供价值评估和反馈,其包括状态价值函数V和动作奖励函数Q:

Advantage(s,a) = Q(s,a) - V(s)

价值模型有三个作用:

评估中间状态:Critical Model专注于文本生成过程中的中间状态,评估这些状态的质量。它通过识别文本中的各种问题,如不一致性或偏差,来帮助模型学习如何避免这些问题。

提高文本质量:通过持续的评估和反馈,Critical Model有助于生成更加连贯、准确和有逻辑性的文本。这对于提升最终输出的质量和可读性至关重要。

辅助Reward Model:Critical Model提供的信息可以作为Reward Model(奖励模型)的补充,帮助更全面地评估和优化模型的输出。Reward Model通常负责提供最终答案的评分,而Critical Model则关注生成过程中的中间步骤。

PPO是Actor-Critic框架,即不直接学习 Q(s,a),仅通过Critic网络学习 V(s),用 V(s)和奖励信号间接推导最终优势A

Tokenizer方法

BBPE

回到开始的tokenizer中,BPE在处理英文方面友好,但处理不了中文等多语言,于是BBPE(Byte-level Pair Encoding)被提出,其将文本转换为UTF-8字节序列后再处理,以字节对的形式进行合并,实现了真正的跨语言支持。

Tokenizer中算法

不妨再深入一点,子词算法除了BPE,还有wordPiece、Unigram。

WordPiece:与BPE流程相似,不过该算法选择能够提升语言模型概率最大的相邻子词加入词表,通过似然值变化衡量信息变化,比如将相邻x和y合并为z,则句子S的似然变化计算为:

logP(S) = \sum^n_{i=1}logP(t_i) \\ logP(t_z)-(logP(t_x)+logP(t_y))=log(\frac{P(t_z)}{P(t_x)P(t_y)})

Unigram:与前两个算法不同,不是一点点增加词表,而是从一个初始的大词表,以一定标准不断丢弃,直到词表大小满足条件。

涌现能力

指当模型规模扩大到一定程度时,模型性能呈现出显著的跃升趋势,并涌现出小模型不具备的能力:上下文学习、指令遵循、逐步推理

上下文学习(In-context Learning,ICL)

该能力最早由GPT-3研究中提出,通过在输入提示中提供任务示例和自然语言指令,可以在没有针对性训练的情况下,达到预期生成的输出。

指令遵循(Instruction Following)

该能力通常需要使用多任务示例数据集构成的自然语言指令对模型进行微调后,才能获得。可以在无显示示例的情况下,根据任务指令完成新任务。

逐步推理(Step-by-Step Reasoning)

该能力是针对传统语言模型在多步骤复杂推理任务表现不佳问题,通过思维链提示增强模型性能,可以在提示中插入中间推理步骤,辅助模型生成最终结果。

longformer

RoPE

生成参数

参考:

注意力机制进化史:从MHA、MQA、GQA、MLA到NSA、MoBA!_nsa mla-CSDN博客

DeepSeek V3推理: MLA与MOE解析 - 知乎

【DeepSeek三部曲】DeepSeek-R1论文详细解读 - 知乎

DeepSeek R1 论文中的蒸馏技术超详细解析_deepseek的蒸馏方法-CSDN博客

一文搞懂 DeepSeek 的蒸馏技术和案例实践-AI.x-AIGC专属社区-51CTO.COM

deepseek技术解读(1)-彻底理解MLA(Multi-Head Latent Attention) - 知乎

带你从头发明MLA - 知乎

deepseek技术解读(2)-MTP(Multi-Token Prediction)的前世今生 - 知乎

MTP——我对DeepSeek V3中多token预测MTP的代码实现(含对V3官方MoE、MLA推理代码的解读)_deepseek mtp代码-CSDN博客

PPO已经有了reward model 为何还要有critic model? - 知乎

PPO损失函数详解 - 知乎

能不能直观的解释下rlhf中的critical model的作用? - 知乎

大模型 LLM 架构对比,DeepSeek、Llama、Qwen、Kimi、Mistral、Gemma-腾讯云开发者社区-腾讯云

PPO算法学习_基于ppo强化学习的工作流程图-CSDN博客

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐