4.1 LLaMA 系列:从 LLaMA-1 到 LLaMA-3

4.1 LLaMA 系列:从 LLaMA-1 到 LLaMA-3(含 LLaMA-2 的后训练与 Code Llama)

本节围绕 LLaMA 系列的三条主线展开:(1)基础架构与训练配方的关键选择;(2)从 LLaMA-2 开始成体系的后训练(SFT / 拒绝采样 / RLHF / DPO);(3)面向代码与长上下文的扩展(Code Llama、LLaMA-3/3.1)

讨论默认以论文与技术报告中的描述为准,并配合必要的直观案例帮助理解。


1. LLaMA-1:Open & Efficient Foundation LM 的核心设计

1.1 模型结构:在"标准 Decoder-only Transformer"上做的关键改动

LLaMA-1 本质上是一个 decoder-only Transformer(自回归语言模型),但它对训练稳定性、吞吐与长序列建模做了几项工程上非常关键的选择。

1)Pre-RMSNorm:提升训练稳定性与可扩展性

传统 Transformer 通常使用 LayerNorm;而 LLaMA-1 使用 RMSNorm ,并采用 Pre-Norm(先归一化再做子层计算)的形式。直观上理解:

  • Pre-Norm:把每个子层输入先"拉回稳定尺度",减少深层网络训练中的梯度不稳定。
  • RMSNorm:只根据均方根做缩放,不显式减去均值,计算更简单,实践中训练更稳定。

一个简化表达是:对向量 x∈Rdx \in \mathbb{R}^dx∈Rd,
RMSNorm(x)=x1d∑i=1dxi2+ϵ⊙g \text{RMSNorm}(x) = \frac{x}{\sqrt{\frac{1}{d}\sum_{i=1}^{d} x_i^2 + \epsilon}} \odot g RMSNorm(x)=d1∑i=1dxi2+ϵ x⊙g

其中 ggg 是可学习的缩放参数,ϵ\epsilonϵ 为稳定项。

直观类比:LayerNorm 像"把均值拉到 0、方差拉到 1";RMSNorm 更像"只把整体幅度压到合适范围",简单直接。

2)SwiGLU:更强的 FFN 表达能力

LLaMA-1 把 FFN 的激活函数换成 SwiGLU(一种门控激活结构)。门控的核心思想是:FFN 不只是"非线性映射",而是"选择性放大/抑制特征通道"。

一个常见的 SwiGLU 形式可以写成:
SwiGLU(x)=(xW1)⊙SiLU(xW2) \text{SwiGLU}(x) = (xW_1) \odot \text{SiLU}(xW_2) SwiGLU(x)=(xW1)⊙SiLU(xW2)

其中 ⊙\odot⊙ 是逐元素乘法,SiLU(z)=z⋅σ(z)\text{SiLU}(z)=z\cdot\sigma(z)SiLU(z)=z⋅σ(z)。

案例直觉:当输入包含多种混杂信号(语义、句法、格式、数字等),门控能让模型在某些 token 上更关注"结构/推理通道",在另一些 token 上更关注"语言流畅通道",从而提升整体表达效率。

3)RoPE:相对位置信息更适合长序列外推

位置编码方面,LLaMA-1 使用 RoPE(Rotary Positional Embedding) 。它把位置以"旋转"的方式注入到注意力的 Q,KQ,KQ,K 中,使得注意力天然携带相对位置信息,对长序列更友好。

直观上你可以把它理解成:把 Q,KQ,KQ,K 的每对维度当作二维平面坐标,随着位置 ppp 旋转一个角度 θ(p)\theta(p)θ(p)。

RoPE 的一个常见写法(示意)是:
RoPE(x,p)=R(p) xR(p)=[cos⁡θ1(p)−sin⁡θ1(p)sin⁡θ1(p)cos⁡θ1(p)⋱cos⁡θd/2(p)] \begin{aligned} \text{RoPE}(x, p) &= R(p)\,x \\ R(p) &= \begin{bmatrix} \cos \theta_1(p) & -\sin \theta_1(p) & & \\ \sin \theta_1(p) & \cos \theta_1(p) & & \\ & & \ddots & \\ & & & \cos \theta_{d/2}(p) \\ \end{bmatrix} \end{aligned} RoPE(x,p)R(p)=R(p)x= cosθ1(p)sinθ1(p)−sinθ1(p)cosθ1(p)⋱cosθd/2(p)

其中 θi(p)\theta_i(p)θi(p) 通常按不同频率随位置变化。

实用直觉:在长文本里,"第 5000 个 token 与第 5010 个 token 的距离是 10"比"它们分别是 5000、5010"更重要;RoPE 更自然地把这种相对距离编码到注意力相似度里。

4)Tokenizer:SentencePiece 的 BPE + 数字拆分 + UTF-8 回退到字节

LLaMA-1 使用 SentencePiece 实现 BPE 分词,并有两点很关键:

  • 数字拆分为单个数字 :例如 "123.5" 可能被拆成 "1 2 3 . 5"
    这会让模型更容易学习"数字的组合规律"(尤其在算术/计数等任务上),避免把某个长数字当成不可分解的整体。
  • 未知 UTF-8 字符回退到字节:遇到罕见字符时,能保证可编码性,不至于出现无法表示的符号。

词表大小:32k


1.2 训练方式:纯自监督预训练(无特定任务微调)

LLaMA-1 是典型的基础模型:对海量无标注语料做自回归语言建模训练,目标是最大化序列概率:

给定 token 序列 x1:Tx_{1:T}x1:T,
P(x1:T)=∏t=1TP(xt∣x<t) P(x_{1:T}) = \prod_{t=1}^{T} P(x_t \mid x_{<t}) P(x1:T)=t=1∏TP(xt∣x<t)

训练等价于最小化负对数似然:
L=−∑t=1Tlog⁡P(xt∣x<t) \mathcal{L} = -\sum_{t=1}^{T} \log P(x_t \mid x_{<t}) L=−t=1∑TlogP(xt∣x<t)

直观案例:句子 "The cat sat on the mat."

模型学习的是:看到 "The cat sat on the" 时,预测下一个 token 更可能是 "mat" 而不是 "airplane"。


1.3 训练配方:AdamW + 余弦学习率 + warmup + 权重衰减 + 梯度裁剪

1)AdamW:更清晰地处理权重衰减

AdamW 的关键区别在于把权重衰减从梯度更新里"解耦"出来。一个常见形式为:

θt+1=θt−η⋅m^tv^t+ϵ−η⋅λθt \theta_{t+1} = \theta_t - \eta \cdot \frac{\hat{m}_t}{\sqrt{\hat{v}_t}+\epsilon} - \eta \cdot \lambda \theta_t θt+1=θt−η⋅v^t +ϵm^t−η⋅λθt

  • η\etaη:学习率
  • m^t,v^t\hat{m}_t,\hat{v}_tm^t,v^t:一阶/二阶矩的偏差校正估计
  • λ\lambdaλ:权重衰减系数

直观上:最后那项 −ηλθt-\eta\lambda\theta_t−ηλθt 是"直接把参数往 0 拉一点",与梯度无关,使正则更干净。

2)余弦学习率调度(Cosine LR)

余弦退火常用于大规模预训练:前期学习率较高促进探索,中后期逐步降低以稳定收敛。常见写法:
η(t)=ηmin⁡+12(ηmax⁡−ηmin⁡)(1+cos⁡(πtT)) \eta(t) = \eta_{\min} + \frac{1}{2}(\eta_{\max}-\eta_{\min})\left(1+\cos\left(\pi \frac{t}{T}\right)\right) η(t)=ηmin+21(ηmax−ηmin)(1+cos(πTt))

其中 ttt 是当前步数,TTT 是总步数。

3)Warmup:训练初期稳定动态

warmup 的直觉是:刚开始参数随机、梯度波动大,直接用大 LR 容易发散;先线性升高 LR 更稳。
η(t)=ηmax⁡⋅ttw,0≤t≤tw \eta(t)=\eta_{\max}\cdot \frac{t}{t_w},\quad 0\le t \le t_w η(t)=ηmax⋅twt,0≤t≤tw
twt_wtw 为 warmup 步数。

4)权重衰减与梯度裁剪:防过拟合与数值稳定
  • 权重衰减(如 0.1)抑制参数无限增大。
  • 梯度裁剪(如 global norm 1.0)防止某些 batch 出现异常大梯度导致训练崩坏。
    若全局梯度范数为 ∣∣g∣∣||g||∣∣g∣∣,阈值为 ccc,则:
    g←g⋅min⁡(1,c∣∣g∣∣) g \leftarrow g \cdot \min\left(1,\frac{c}{||g||}\right) g←g⋅min(1,∣∣g∣∣c)

1.4 训练数据:公开混合语料,规模约 1.4T tokens

LLaMA-1 的预训练数据是多个公开来源的混合,并通过设置采样比例形成最终语料。总体规模约 1.4T tokens

"混合 + 采样比例"的意义:

如果某一类数据(例如代码、百科、论坛)过多,模型可能在对应风格上过拟合;合理的采样能平衡"知识覆盖、语言流畅、推理形态、代码结构"等多种能力。


2. LLaMA-2:从基础模型到对齐模型的系统化后训练

LLaMA-2 仍然是 decoder-only Transformer,但在 LLaMA-1 基础上升级了:更强训练数据、更长上下文、更成熟的对齐流程

2.1 结构差异:GQA 与 FFN 维度扩充

1)GQA:减少 KV cache 与推理成本

LLaMA-2 的大模型引入 GQA(Grouped-Query Attention)

核心思想:多个 Query head 共享同一组 Key/Value head,减少 K,VK,VK,V 的头数,从而降低显存与带宽。

设 Query head 数为 HqH_qHq,Key/Value head 数为 HkvH_{kv}Hkv,且 Hkv<HqH_{kv} < H_qHkv<Hq。则每组 Query 共享同一 K,VK,VK,V。

直观结果:推理时 KV cache 更小、更快,尤其在长上下文生成中收益明显。

2)FFN 维度扩充:增强容量与泛化

FFN 的隐层维度通常与模型宽度成比例,扩充 FFN 维度会增加参数量与非线性容量。直观上:注意力负责"信息路由",FFN 负责"特征变换与组合",更大的 FFN 往往带来更强表达。

2.2 上下文长度:2K → 4K

LLaMA-2 把上下文窗口从 2K 扩展到 4K。这对多轮对话、长文摘要、代码文件理解等任务更关键。

小案例:

2K 的上下文可能放不下完整的函数定义 + 调用链 + 单元测试;4K 更可能完整覆盖,从而减少"看不全导致的幻觉"。

2.3 训练数据:预训练约 2T tokens(公开可用源)

LLaMA-2 预训练数据规模提升到约 2T tokens。论文强调数据质量的重要性,并在后训练阶段更强调"高质量人工偏好数据"的作用。


3. LLaMA-2 的对齐:SFT、拒绝采样、RLHF 与迭代式改进

LLaMA-2 的后训练(post-training)核心是:把基础模型从"会写"变成"更有用、更安全、更符合指令"。

3.1 核心组件:Reward Model(RM)

Reward Model 使用人类偏好数据训练:给定同一 prompt 下的两个回答 y(w)y^{(w)}y(w)(更好)与 y(l)y^{(l)}y(l)(更差),希望 RM 给更好回答更高分。一个常见的偏好学习目标(示意):
LRM=−log⁡σ(rϕ(x,y(w))−rϕ(x,y(l))) \mathcal{L}{\text{RM}} = -\log \sigma\left(r\phi(x, y^{(w)}) - r_\phi(x, y^{(l)})\right) LRM=−logσ(rϕ(x,y(w))−rϕ(x,y(l)))

其中 rϕ(⋅)r_\phi(\cdot)rϕ(⋅) 是 RM 打分函数。

直观案例:

Prompt:解释"梯度裁剪"的作用。

  • 回答 A:给出定义 + 公式 + 适用场景(更好)
  • 回答 B:只说"让训练更稳定"(更差)
    RM 学会偏好 A。

3.2 Reject Sampling(拒绝采样):先用 RM "挑最好",再用它做训练数据

在 LLM 对齐里,拒绝采样更像 Best-of-N

  1. 对同一 prompt 采样 KKK 个回答 {y1,...,yK}\{y_1,\dots,y_K\}{y1,...,yK}
  2. 用 RM 打分 rϕ(x,yi)r_\phi(x,y_i)rϕ(x,yi)
  3. 选择最高分 y∗=arg⁡max⁡irϕ(x,yi)y^*=\arg\max_i r_\phi(x,y_i)y∗=argmaxirϕ(x,yi)
  4. 用 (x,y∗)(x,y^*)(x,y∗) 作为高质量监督样本去做 SFT

用公式表达选择过程:
y∗=arg⁡max⁡y∈{y1,...,yK}rϕ(x,y) y^* = \arg\max_{y \in \{y_1,\dots,y_K\}} r_\phi(x,y) y∗=argy∈{y1,...,yK}maxrϕ(x,y)

小案例:

Prompt:写一段"如何排查 CUDA OOM"的步骤。

模型采样 8 个回答,其中有的漏了关键步骤、有的包含错误命令、有的结构清晰。

RM 选择结构清晰且信息完整的那个作为训练样本,逐步"把模型推向更好写法"。

拒绝采样的优势是:实现简单、稳定、对算力友好,非常适合在 RLHF 前期快速提升质量。


3.3 SFT:监督微调的定位与经验判断

SFT 的本质是最大化对高质量示例的条件概率:
max⁡θ∑(x,y)∈Dlog⁡Pθ(y∣x) \max_\theta \sum_{(x,y)\in \mathcal{D}} \log P_\theta(y\mid x) θmax(x,y)∈D∑logPθ(y∣x)

经验上,SFT 的作用类似"把模型拉到标注者平均水平并建立基本指令遵循形态"。

如果标注质量一般,过久的 SFT 可能把模型限制在较低上限;因此实践中常见观点是:SFT 不必无限堆数据,而是尽快进入偏好优化阶段(RM / RL / DPO 等),让模型朝更强目标推进。


3.4 RLHF(以 PPO 为代表):用 RM 直接优化策略

RLHF 的目标可以理解为:在保证不偏离参考策略 πref\pi_{\text{ref}}πref 太多的前提下,提高 RM 奖励期望。一个典型形式:
max⁡π Ex∼D, y∼π(⋅∣x)[rϕ(x,y)]−β Ex[DKL(π(⋅∣x) ∥ πref(⋅∣x))] \max_\pi\ \mathbb{E}{x \sim \mathcal{D},\, y \sim \pi(\cdot\mid x)}\left[r\phi(x,y)\right] - \beta\, \mathbb{E}{x}\left[D{\text{KL}}\left(\pi(\cdot\mid x)\,\|\,\pi_{\text{ref}}(\cdot\mid x)\right)\right] πmax Ex∼D,y∼π(⋅∣x)[rϕ(x,y)]−βEx[DKL(π(⋅∣x)∥πref(⋅∣x))]

  • 第一项让模型"更符合偏好"
  • KL 项让模型"别跑太远"(避免崩坏与不可控)

训练层面的直觉:

  • 拒绝采样像"挑好样本做模仿学习"
  • PPO 像"直接在策略空间做带约束的偏好最大化"

你提到的观察非常关键:在 LLaMA-2 的多轮迭代里,前期大量使用 Best-of-N / 拒绝采样,最后阶段才引入 PPO,这说明在工程上 对齐的关键并不只在于"用了哪种 RL 算法" ,而在于 偏好信号(HF)如何被高效、稳定地注入模型


3.5 奖励数据为何"最好来自自己模型"?

一个很实用的经验是:RM 的训练数据尽量来自"将要被优化的模型分布",否则会出现分布不匹配。

直觉用一句话表达:RM 学到的是"在它见过的回答分布里如何排序",而不是"全宇宙回答如何排序"。

案例:

如果 RM 只看过 GPT-4 风格的长链路推理,而你的 7B 模型生成往往更短、更口语、更不规范,那么 RM 对你模型的输出可能判断不稳,导致优化方向噪声更大。

因此常见做法是:对不同大小版本模型、用不同温度采样产生候选,再做人工偏好标注,让 RM 覆盖"自己模型会生成的空间"。


3.6 迭代式训练:对齐更像多轮"宏观梯度下降"

迭代的核心在于:每一轮模型提升后,生成分布会变化;随之偏好数据与 RM 也要更新,才能继续推动模型往更高质量区域走。

可以把"第 kkk 轮对齐"抽象成:

  • 用当前策略 πk\pi_kπk 生成样本
  • 标注偏好训练 RM rϕkr_{\phi_k}rϕk
  • 用 rϕkr_{\phi_k}rϕk 改进策略得到 πk+1\pi_{k+1}πk+1

这类过程的关键是:信号与策略共同演化,而非一次性训练一劳永逸。


4. Code Llama:基于 LLaMA-2 的代码领域扩展

Code Llama 是在 LLaMA-2 基础上进一步面向代码数据与代码任务训练得到的系列模型。其标志性任务之一是 infilling(代码填空)

4.1 Infilling 任务:给定上下文预测被挖空的代码片段

任务设置直觉:从完整代码里挖去一段,用特殊标记占位,模型需要生成缺失片段,使得整体代码语义与风格一致。

例子(概念示意):

原始代码:一个函数里有参数校验、日志、核心逻辑、返回值。

挖空:把"核心逻辑"部分替换为 <MASK>

模型需要根据前后文把核心逻辑补回,并保证变量名一致、控制流合理。

这种训练让模型更擅长:

  • 按既有风格续写(保持缩进、命名风格)
  • 在"前后约束同时存在"的情况下生成(比纯左到右生成更贴合编辑场景)
  • 代码修复与补全

5. LLaMA-3 / 3.1:Token、数据与上下文的系统级升级

LLaMA-3 系列的主要看点可以概括为三点:tokenizer 升级、数据规模大幅增加、长上下文与工具使用能力增强(尤其在 3.1 方向)

5.1 模型结构:Tokenizer 从 SentencePiece → tiktoken,词表 32k → 128k

  • LLaMA-3 将 tokenizer 换成 tiktoken 风格(与 GPT 系列一致),词表扩大到 128k
  • 更大的词表通常意味着:
    • 更细粒度地覆盖常见片段(尤其是代码、专业术语、URL、符号组合)
    • 减少过度碎片化带来的序列长度膨胀
    • 对多语言的子词覆盖更灵活

案例直觉:

在代码里,"__init__", "torch.nn.functional" 这类片段如果被过度拆分,会拉长序列、增加建模难度;更合适的词表能减少无意义的切分。

5.2 GQA:8B 与 70B 都采用

LLaMA-3 的 8B 与 70B 都采用 GQA,这是对推理成本与长上下文的重要支撑,尤其对部署与推理吞吐很关键。

5.3 上下文:8k 起步,并通过多阶段长上下文训练扩展到更长

LLaMA-3 的上下文长度基础为 8k,并在后续训练阶段通过多阶段策略扩展到更长(你提到预训练后期多阶段长文本训练可到 128K 的方向,属于"逐步适配长上下文"的典型路线)。

为什么要分阶段?

直接从短上下文跳到超长上下文训练往往不稳定,且算力昂贵;分阶段能让模型逐步学会在更大窗口里组织信息。

5.4 训练数据:约 15T+ tokens,代码提升显著,多语言占比增加

LLaMA-3 将预训练 token 数提升到 15T+(数量级增长),并显著增加代码比例、引入超过 5% 的非英语 token(覆盖 30+ 语言)。此外强调数据过滤与去重:

  • 启发式过滤(规则)
  • NSFW 过滤
  • 语义去重(降低重复带来的"记忆式拟合")
  • 质量预测分类器(更像 learned filter)

这里体现了一个非常关键的经验:扩数据量之前先把数据"变干净、变可控",否则规模越大,噪声与偏置放大越严重。


6. LLaMA-3 的训练流程:预训练 + 对齐(Instruct)

LLaMA-3 系列通常明确区分:

  • 预训练模型:LLaMA-3
  • 对齐模型:LLaMA-3-Instruct

6.1 预训练阶段:初始预训练 → 长上下文预训练 → 退火(Annealing)

可以把预训练流程理解为三段:

1)初始预训练:建立广泛语言能力与知识覆盖

2)长上下文预训练:适配更大窗口下的注意力组织与长程依赖

3)退火:进一步降低学习率、稳定收敛,让模型在最终分布上更"定型"


7. LLaMA-3 的后训练:SFT / 拒绝采样 / RLHF / DPO 与"模型平均化"

LLaMA-3 在后训练上强调:数据质量与偏好数据的构造方式对最终 Instruct 能力影响极大

7.1 后训练的四个关键环节(概念链路)

1)Reward Model(RM)

用人类偏好训练 RM,作为"可学习的质量评估器"。

2)SFT:用筛过的高质量示例建立指令遵循基线

常见做法是先对提示与回答做筛选(含拒绝采样),把更好的样本用于 SFT:
max⁡θ∑(x,y)∈DSFTlog⁡Pθ(y∣x) \max_\theta \sum_{(x,y)\in \mathcal{D}{\text{SFT}}} \log P\theta(y\mid x) θmax(x,y)∈DSFT∑logPθ(y∣x)

3)DPO:直接用偏好对优化策略(不显式训练 RM)

DPO 的核心思想是:给定偏好对 (y(w),y(l))(y^{(w)}, y^{(l)})(y(w),y(l)),让策略更偏向 y(w)y^{(w)}y(w),同时用参考策略 πref\pi_{\text{ref}}πref 进行约束。常见目标形式之一(示意):
LDPO=−E[log⁡σ(β(log⁡πθ(y(w)∣x)−log⁡πθ(y(l)∣x)−log⁡πref(y(w)∣x)+log⁡πref(y(l)∣x)))] \mathcal{L}{\text{DPO}} = - \mathbb{E}\left[\log \sigma\left(\beta\left(\log \pi\theta(y^{(w)}\mid x)-\log \pi_\theta(y^{(l)}\mid x) - \log \pi_{\text{ref}}(y^{(w)}\mid x)+\log \pi_{\text{ref}}(y^{(l)}\mid x)\right)\right)\right] LDPO=−E[logσ(β(logπθ(y(w)∣x)−logπθ(y(l)∣x)−logπref(y(w)∣x)+logπref(y(l)∣x)))]

这里 β\betaβ 控制偏好优化的"力度"。

直观解释:

如果当前策略相对参考策略更偏向好答案、远离坏答案,则损失变小;反之损失变大,促使更新把概率质量转移到偏好答案上。

4)模型平均化(Model Averaging)

把不同阶段、不同数据版本、不同超参训练得到的模型权重做平均,目的是提升稳定性、降低对单一训练设置的过拟合。

概念上可以写为(示意):
θavg=∑i=1Nαiθi,∑i=1Nαi=1 \theta_{\text{avg}} = \sum_{i=1}^{N} \alpha_i \theta_i,\quad \sum_{i=1}^{N}\alpha_i = 1 θavg=i=1∑Nαiθi,i=1∑Nαi=1

直觉:多个模型像"多个视角",平均化相当于把它们的泛化优势融合起来,减少某一次训练带来的偶然偏差。


8. LLaMA-3 对 DPO 的两个稳定性改进:mask 特定 token + NLL 正则

你提到的两点非常典型,核心目标都是:避免 DPO 的对比学习信号把模型推向不期望的"格式行为"

8.1 在 DPO loss 中 mask 格式化 token(标题 / 终止 token 等)

原因直觉:DPO 是 chosen vs rejected 的对比目标,两者往往共享大量格式 token(标题、分隔符、固定开头结尾)。对这些 token 同时施加"提高/降低概率"的拉扯,可能导致:

  • 尾部重复(为了强化某些 token 的相对优势)
  • 过早终止(EOS 概率异常抬升)
  • 格式怪异(标题符号被过度强化)

mask 的意思是:这些 token 不参与 DPO 的对比梯度,减少冲突信号。

8.2 加入 chosen response 的 NLL 正则(系数约 0.2)

为了防止 DPO 更新把 chosen 的整体概率也拉低(或破坏期望格式),加入一个"保持 chosen 可解释性与格式"的监督项:
L=LDPO+λLNLL \mathcal{L} = \mathcal{L}{\text{DPO}} + \lambda \mathcal{L}{\text{NLL}} L=LDPO+λLNLL

其中
LNLL=−E[log⁡πθ(y(w)∣x)] \mathcal{L}{\text{NLL}} = - \mathbb{E}\left[\log \pi\theta(y^{(w)}\mid x)\right] LNLL=−E[logπθ(y(w)∣x)]
λ\lambdaλ 例如取 0.2。

直觉:

DPO 负责"相对偏好方向",NLL 负责"别把 chosen 本身学坏、别把格式弄崩"。


9. 一个把全流程串起来的直观案例:从"能答"到"答得更好"

设想一个指令:

"用三点解释为什么 AdamW 比 Adam 更适合大模型预训练,并给出一个简单公式说明。"

  • 预训练模型可能回答:概念正确但结构松散、公式缺失或解释不清。
  • SFT把回答变得更像"标准三点结构 + 有公式"。
  • 拒绝采样让模型更倾向于选择"解释更完整、条理更清晰"的答案风格。
  • RLHF / DPO 进一步强化:
    • 不胡编
    • 不跑题
    • 更能按用户要求组织输出(比如必须三点、必须有公式)
  • 模型平均化提升稳定性:减少某轮训练导致的"突然爱重复、突然爱早停、突然爱加废话"。

最终 Instruct 模型表现为:结构稳定、指令遵循强、解释清晰、格式可靠。


10. 小结:LLaMA 系列的关键演进逻辑

  • LLaMA-1:高效的基础模型范式(Pre-RMSNorm + SwiGLU + RoPE + 合理 tokenizer),在公开数据上做高质量自监督预训练。
  • LLaMA-2:更大更干净的数据、更长上下文、更系统的对齐流程(RM + 拒绝采样 + RLHF),并强调"偏好数据分布匹配与迭代"。
  • Code Llama:在 LLaMA-2 基础上面向代码强化,并用 infilling 提升编辑式生成能力。
  • LLaMA-3/3.1:tokenizer 与数据规模的系统升级(128k vocab、15T+ tokens、多语言与代码增强),并在后训练上引入更成熟的稳定化技巧(DPO 的 token mask 与 NLL 正则、模型平均化),支持更长上下文与更强的通用指令能力。

相关推荐
lijianhua_97123 小时前
国内某顶级大学内部用的ai自动生成论文的提示词
人工智能
EDPJ3 小时前
当图像与文本 “各说各话” —— CLIP 中的模态鸿沟与对象偏向
深度学习·计算机视觉
蔡俊锋3 小时前
用AI实现乐高式大型可插拔系统的技术方案
人工智能·ai工程·ai原子能力·ai乐高工程
自然语3 小时前
人工智能之数字生命 认知架构白皮书 第7章
人工智能·架构
大熊背3 小时前
利用ISP离线模式进行分块LSC校正的方法
人工智能·算法·机器学习
eastyuxiao4 小时前
如何在不同的机器上运行多个OpenClaw实例?
人工智能·git·架构·github·php
诸葛务农4 小时前
AGI 主要技术路径及核心技术:归一融合及未来之路5
大数据·人工智能
光影少年4 小时前
AI Agent智能体开发
人工智能·aigc·ai编程
极梦网络无忧4 小时前
OpenClaw 基础使用说明(中文版)
python
codeJinger4 小时前
【Python】操作Excel文件
python·excel