Skip to content

Meta 系列

📅 发表于 2026/09/23
🔄 更新于 2026/09/23
👁️ — 次访问
📝 6825 字
⏳ 20 分钟
mainllm
#基模
#Pretrain
#SFT
#RL

变化点 ​

2025

2025.10 · CWM

  • Python 执行轨迹与 Forager 交互数据用于世界模型 MidTrain,学习状态变化与动作后果。
  • 三轮自举 SFT 后执行 SWE、编程、数学联合 RL,以执行反馈提高仓库任务能力。
2024 及以前

2024.07 · Llama 3 / 3.1

  • 以 15T+ 语料扩展 Dense 模型,分阶段提升代码、数学、多语言与长上下文数据质量。
  • 结合拒绝采样、SFT 与迭代 DPO,并把 405B 能力迁移到较小模型。

(2510) CWM (32B Code World Model,执行轨迹 + Agent RL) ​

🌺 论文摘要

CWM 论文摘要

参考链接

问题背景

  • 静态代码训练主要学习代码形式,缺少 执行状态变化 与 工具操作后果 的监督。
  • SWE Agent 需要理解仓库环境,并在多轮执行、测试与修改中完成任务。

核心方法

  • 代码世界模型数据:Python 执行轨迹 + ForagerAgent,同时学习动作和环境反馈。
  • 长上下文 MidTrain:8T 通用预训练 → 5T MidTrain,混合局部/全局注意力支持 131K。
  • 自举 SFT:三轮 SWE RL → 成功轨迹筛选 → SFT,建立稳定工具调用与推理能力。
  • 联合 RL:SWE、竞赛编程、Agentic Coding、数学混合训练,改进 GRPO 并异步采样。

模型效果(CWM-32B,SFT + Joint RL)

  • SWE-bench Verified 单次 53.9%,生成候选与测试后 best@16 达 65.8%。
  • LiveCodeBench v5 68.6%;CruxEval-O 推理模式 94.3%,完整执行轨迹预测 87.7%。

重要结论

  • 执行轨迹 强化运行语义,Agent 交互轨迹 更直接改善仓库级任务,两类数据互补。
  • RL 后更频繁运行测试、定位相关文件;更换 Harness 和工具格式仍会明显影响效果。

核心贡献

  • 将代码训练扩展到 状态—动作—下一状态 建模,贯穿 MidTrain、SFT 与可验证 RL。

未来方向

  • 扩展其他语言与符号执行,将世界模型用于规划、稀疏奖励 RL 和更复杂的软件任务。

问题背景 ​

静态代码与运行语义

执行状态监督不足

  • 源码描述程序,执行轨迹提供变量值、控制流与函数调用的实际变化。
  • 世界模型学习给定状态与动作后的环境变化,为代码推理和行动规划提供基础。

仓库交互成本高

  • 修复 Issue 涉及依赖安装、文件定位、编辑和测试,单个代码补全样本难以覆盖。
  • 需要可执行仓库与长轨迹训练数据,使模型理解正确操作和失败操作的后果。

核心方法 ​

可执行仓库与代码世界模型数据 ​

Python 执行轨迹

仓库环境

  • Repo Agent 根据仓库文档安装依赖、配置测试;Activ 复用 GitHub Actions 构建环境。
  • Activ 在 CI 测试启动时捕获容器与依赖,保存为可重复执行的 Docker 镜像。
  • 共构建超过 35K 个仓库镜像,支持程序追踪与 Agent 交互。

函数与仓库追踪

  • 函数输入由 fuzzing 与 Llama 生成,累计追踪超过 120M 个函数。
  • 仓库数据覆盖约 21K 个可追踪仓库镜像,通过测试执行捕获不同提交版本的调用轨迹。
  • 每一步记录 局部变量状态、当前代码行、执行后的状态,保留调用和返回事件。
  • 将长调用栈切成函数级片段,并补充相关源码上下文;不重复记录未变化的变量。

自然语言轨迹

  • 使用 Qwen 将结构化执行过程转成自然语言,保留变量变化与最终输出。
  • 过滤输出错误样本,连接程序运行语义与自然语言推理。
ForagerAgent:仓库交互轨迹

任务构建

  • 收集约 3M 条轨迹,来自 10.2K 个镜像、3.15K 个仓库。
  • Issue 修复 55%:回到 Bug 修复前的提交,根据 Issue 与测试反馈生成修复轨迹。
  • 变异修复 45%:修改 AST、删除语句或替换运算符,仅保留会使原测试失败的变异。
  • Llama、Qwen 作为 Agent,使用 bash、文件编辑与导航工具探索环境。

数据筛选与训练目标

  • 排除 SWE-bench 仓库及其分叉;按动作序列去重,减少重复交互。
  • 同时保留成功与失败轨迹,使模型学习失败操作对应的环境变化。
  • 对 Agent 动作与环境 observation 都计算预测损失。
  • observation 重复度高,随机屏蔽其中 50% 的损失,降低低信息反馈的训练占比。

混合注意力与长上下文 MidTrain ​

模型结构与数据混合

模型架构

  • 32B Dense,64 层,局部注意力与全局注意力按 3:1 交替。
  • 局部窗口 8K,全局窗口 131K;文档之间使用 attention mask 隔离。
  • 使用 Llama 3 tokenizer,并增加执行轨迹、推理格式的专用 token。

通用预训练 → 世界模型 MidTrain

  • 通用预训练 8T tokens,上下文 8K,代码占 30%。
  • MidTrain 5T tokens,上下文扩展到 131K,延续预训练优化器与学习率调度。
  • 数据混合:30% CWM 相关数据 + 40% 通用代码 + 30% 通用预训练数据回放。
  • CWM 数据包含执行轨迹、ForagerAgent,以及 GitHub PR、编译器表示、Triton、Lean 等。

长序列训练

  • 使用 Scaled RoPE,MidTrain 持续混合长文档,约 30% 文档超过 65K。
  • 按长度分桶组织 batch,减少不同设备的计算时长差异。
  • 通用数据回放用于保持知识、数学与普通代码能力。

成功轨迹自举与 SFT ​

SWE 轨迹自举

三轮自举

  • 从已有 SFT 模型开始 SWE RL,筛选 成功、格式正确、工具调用有效 的轨迹。
  • 每轮用本轮筛选轨迹替换旧轨迹,从原始 MidTrain checkpoint 重做 SFT,再启动下一轮 SWE RL。
  • 早期记录每题离线成功率,下一轮用作 GRPO 基线,可将每题 rollout 数降至 1。
  • 最终 Joint RL 恢复在线组内基线。
  • 重复三轮,用改进后的交互数据建立最终 SFT 模型,再进入联合 RL。

SFT 数据与目标

  • 混合指令数据、SWE 成功轨迹与 OpenMathReasoning、OpenCodeReasoning 推理数据。
  • 保留 30% MidTrain 数据回放,学习通用能力与执行状态预测。
  • 训练 assistant 输出,支持普通回答和显式推理两种模式。
  • RL 阶段改用 <think> 标签,引入新的推理格式,增加初始探索空间。

多任务 Agent RL 与异步训练 ​

可验证任务与奖励

SWE 任务

  • 从仓库镜像、Issue/PR 以及 SWE-Gym、R2E-Gym 构造约 12.6K 个任务。
  • 按 SFT 模型多次试解的成功率分层,过滤过易任务,初期为零成功率难题提供提示。
  • 动作空间:bash + edit + create + submit;最多 128 轮,保留历史推理。
  • 全部测试通过奖励 +1;失败时,patch 相似度高于阈值给 0,否则 -1。

竞赛编程与 Agentic Coding

  • 约 81K 个编程问题,去重并排除评测污染;答案通过全部单测才获得正奖励。
  • 普通编程直接生成答案;Agentic Coding 可写测试、编译执行、分析失败并修改代码。
  • Agentic Coding 使用 Python/C++;普通编程后续加入 Rust、Go、Java、JavaScript。

数学任务

  • 约 278K 道可验证问题,去除 SFT 模型不推理也能全部答对的简单题。
  • 验证最终答案等价性,并检查推理结束与答案格式;正确 +1,错误 -1。
  • 部分数学任务允许 Python 工具调用,单条轨迹最多 4 次。
GRPO:长度偏置与多轮交互

优势与损失

  • 只对 Agent 生成 token 计算策略损失,屏蔽工具 observation。
  • 优势使用 return − 组内基线,去掉标准差归一化,减少题目难度偏置。
  • 基线按 Agent token 数对轨迹 return 加权,缓解长失败轨迹主导 token 梯度的问题。
  • 损失除以固定 token 上限,避免按实际轨迹长度归一化产生长度偏置。

稳定训练

  • 非对称 clipping:εlow=0.2, εhigh=0.25,比例截断区间为 [0.8, 1.25];不加 KL 正则。
  • 跳过零优势轨迹与过旧轨迹;按 token 上限组 batch,降低有效 batch 的波动。
  • 结合罕见 token 与低生成概率检测乱码,防止偶然成功的异常轨迹被强化。

长度奖励调度

  • 编程和数学初期容易迅速拉长回答,给正确但过长的回答施加线性奖励衰减。
  • 软阈值从 8K 逐步提高到 64K,先学习有效推理,再释放更长推理预算。
联合课程与异步系统

任务混合

  • 初期 SWE/编程/数学按 40%/40%/20% 采样;后续调整为 30%/50%/20%。
  • 移除难题提示,按当前成功率重新采样,主要保留成功率 0.1–0.7 的有效学习任务。
  • 部分 SWE 轨迹关闭编辑插件,训练模型仅通过 shell 命令完成编辑。
  • 训练数据中 1/3 用于 SFT 数据回放,NLL 系数 0.1,减轻能力遗忘。

异步 rollout

  • worker 持续采样,trainer 持续更新;每 4 个更新步向 worker 广播权重。
  • 权重可在轨迹中途更新,沿用已有 KV Cache,减少等待长轨迹造成的空闲。
  • 保存每个 token 实际生成时的 log-prob,计算重要性权重。
  • 仅当轨迹最后生成的 token 仍落后当前策略超过 100 步时丢弃。
  • 权重经 CPU 内存异步分发,环境在独立容器中执行,模型训练与代码执行解耦。

实验设置(MidTrain + SFT + Joint RL) ​

训练与评测设置

基础模型与训练超参

  • 从头训练 32B;预训练与 MidTrain 共 13T tokens,峰值学习率 8e-4。
  • SFT:约 100B tokens,50K 步,上下文 32K,batch 约 2M tokens,学习率 1e-5。
  • Joint RL:约 172B tokens,学习率 2.5e-7,每题 8 条 rollout。
  • RL batch 从 8.4M 增至 16.8M tokens;最大上下文 131K,梯度裁剪 0.1。
  • 预训练使用 2048 H100;RL 使用约 2560–4608 H100,采样与训练分开部署。

数据消融

  • 8B 模型统一预训练 6T,再用 1T MidTrain 比较 PR、执行轨迹、Forager 数据组合。
  • 各组均完成同类 SFT,不进行 RL,比较执行预测、轨迹 NLL 与 SWE 解题率。

评测协议

  • 默认 temperature=1.0, top-p=0.95;SWE 单次结果取 4 轮评测平均。
  • SWE TTS:每题生成 16 个 patch 和 40 个新测试。
  • 先过滤无法复现原 Bug 的测试,再保留 Top-5 多数测试。
  • 先按已有测试筛候选,再按新测试选择;并列时优先多数 patch,再选更短轨迹。
  • 执行预测:CruxEval;代码:LiveCodeBench、Aider Polyglot;长上下文:LoCoDiff、RULER。

关键结果(CWM-32B,SFT + Joint RL) ​

世界模型数据的作用

执行理解与 Agent 交互分别获益

  • 8B 消融中,加入执行轨迹后 CruxEval-O 从 44.6 → 73.9,运行语义预测明显提升。
  • 继续加入 Forager 数据,SWE 从 18.4 → 22.1,同时降低 Agent 轨迹 NLL。
  • PR 数据提供补丁监督,执行轨迹提供运行状态,交互轨迹补充仓库操作,三者组合效果最好。

世界模型与自然语言推理互补

  • 最终 CWM 的 CruxEval-O:自然语言推理 94.3%,完整执行轨迹预测 87.7%。
  • 完整轨迹平均约 497 tokens,自然语言推理约 1164 tokens,执行表示更紧凑。
  • 模型能预测中间变量与执行动作,为后续规划、验证研究提供了可操作的状态表示。
SWE 效果与交互行为

候选选择决定 TTS 收益

  • SWE 单次 53.9%,测试辅助 best@16 达 65.8%;单纯 patch 多数投票为 58.4%。
  • 40 个候选的 pass@40 达 80.4%,但 best@k 在约 16 个候选后趋于饱和。
  • 正确候选存在与正确选择候选是两项能力,测试质量仍限制 TTS 收益。

RL 学习实际工作习惯

  • 前 4000 步中,主动运行测试的轨迹比例从 57% → 74%。
  • 修改相关文件的召回率从 58% → 66%,文件定位随 RL 改善。
  • 更换为 OpenHands,128 轮时得分 42.6%;原 Harness 的 bash-only 为 42.1%。
  • 工具格式与训练分布匹配仍影响效果,增加交互轮数不保证持续提升。

代码与数学能力

  • LiveCodeBench v5/v6 为 68.6%/63.5%,具备同规模模型中较强的竞赛编程能力。
  • MATH-500 96.6%、AIME 2024 76.0%;数学能力仍弱于部分同规模专门推理模型。

未来方向 ​

代码世界模型的扩展
  • 数据覆盖:从显式 Python 执行扩展到其他编程语言、符号执行与更复杂环境。
  • 规划与验证:利用预测的执行状态筛选行动、验证推理,减少真实环境交互成本。
  • 世界模型与 RL:让模型先理解环境动力学,再通过稀疏可验证奖励学习行动策略。
  • 跨任务泛化:研究怎样通过提示与微调,稳定地将执行建模收益迁移到更多任务。

(2407) Llama 3 / 3.1 (405B,数据质量 + RS/SFT/DPO) ​

🌺 论文摘要

Llama 3 论文摘要

参考链接

  • 📝 paper。
  • 报告 The Llama 3 Herd of Models 的主要实验对应 2024.07 发布的 Llama 3.1。

问题背景

  • 提升开放权重模型的通用能力,同时支持代码、推理、多语言、长上下文与工具调用。
  • 模型扩大后,数据质量、训练稳定性与能力间的数据配比成为关键问题。

核心方法

  • 预训练:网页精细清洗、领域筛选与数据配比,15.6T tokens,上下文 8K → 128K。
  • 迭代后训练:RM 选优 → RS/SFT → DPO,共 6 轮,加入格式 mask 与 chosen NLL。
  • 能力数据构建:代码执行反馈、推理验证、长文档合成、逐消息工具反馈,补足难样本。
  • 多模态扩展实验:冻结语言模型,分别接入视觉与语音编码器、adapter。

模型效果(Llama 3.1-405B-Instruct,SFT + DPO)

  • HumanEval 89.0、MATH 73.8、IFEval 88.6、BFCL 88.5。
  • 通用能力接近同期闭源模型;代码、复杂推理与部分多语言任务仍有差距。

重要结论

  • 高质量数据、规模与简单训练流程 是主要收益来源,Dense 架构即可取得较强效果。
  • 405B 直接学习自身未验证的代码输出收益有限,执行反馈与纠错 是合成数据的关键。
  • 少量长上下文 SFT 数据可保留长文档能力;只做短文本 SFT 会造成退化。

核心贡献

  • 公开 8B/70B/405B 基础与指令模型,给出数据处理、后训练和大规模训练的完整工程路线。

未来方向

  • 继续提高数据质量与训练规模,扩展多模态能力,并改善推理泛化、事实可靠性和评测。

问题背景 ​

从通用语言模型到可用助手

系列变化

  • Llama 3,2024.04:8B/70B,主要面向英语,上下文 8K。
  • Llama 3.1,2024.07:新增 405B,统一扩展到 128K,增强多语言与工具调用。

训练难点

  • 通用、代码、数学与多语言数据存在质量和比例差异,单纯增加 token 不足以平衡能力。
  • 合成回答可能重复模型错误,需要外部执行反馈、偏好评价与难度筛选。
  • 长上下文预训练能力容易在短文本后训练中丢失,需要配套的数据与训练流程。

核心方法 ​

高质量预训练与上下文扩展 ​

网页清洗与领域数据

网页处理

  • 自建 HTML parser,去除导航等模板内容,保留代码结构、数学公式和图片 alt 属性中的公式文本。
  • URL 去重 保留最新页面;MinHash 文档去重 去除近似重复;行级去重 清理高频模板。
  • 根据重复 n-gram、异常 token 分布等规则,过滤日志、乱码与低质量文档。
  • 用 Llama 标注质量,再训练 DistilRoBERTa 分类器,批量筛选高质量网页。

领域筛选与数据配比

  • 代码、数学独立构建分类器与提取规则,保留推导过程、STEM 推理及代码解释。
  • 多语言数据先识别语言,再执行语言内去重、质量过滤与排序。
  • 最终配比约为通用知识 50%、数学/推理 25%、代码 17%、多语言 8%。
  • 用知识类别分类器降低过量网页类别的占比,再通过小规模实验比较混合方案。

高质量数据验证

  • 对训练中期的 8B 模型做短程退火,混入候选数据,低成本判断小数据源是否有效。
  • 用 训练计算量 → 下游任务 NLL → 任务准确率 的两阶段拟合,预测大模型效果。
Dense 架构与长上下文

架构调整

  • 保持 Dense Transformer,使用 GQA,8 个 KV heads,降低解码缓存开销。
  • 词表扩至 128K,增加非英语 token,提高文本压缩率与多语言表示效率。
  • RoPE 基频 500K;同一 packed sequence 的不同文档之间屏蔽 attention。

预训练流程

  • 以 8K 上下文完成主体预训练,随后用约 800B tokens 逐步适配长序列。
  • 分 6 个阶段扩展至 128K;每阶段检查短文本效果恢复与长文档检索能力。
  • 最后使用高质量数据退火,学习率降至 0,并对末期 checkpoint 做参数平均。
  • 405B 按计算预算选取规模;8B/70B 训练更充分,以降低部署时的计算需求。
大规模训练与推理

4D 并行

  • 组合 TP、PP、CP、FSDP,分别切分张量、模型层、上下文和数据/优化器状态。
  • 长上下文按前后成对的片段分配设备,平衡因果注意力不同位置的计算量。
  • 调整 pipeline micro-batch 调度与首尾层分配,减少流水线空闲和设备负载差异。

FP8 推理

  • 主要量化 FFN,保留 attention、首尾 Transformer 层的精度。
  • 按行计算量化尺度,并限制异常激活造成的尺度扩大,减少生成异常。
  • 同时检查大批回答的 RM 分布,补充传统 benchmark 难以反映的质量变化。

RM、拒绝采样与迭代 DPO ​

六轮后训练

人类偏好与 RM

  • 同一 prompt 从不同模型采样两个回答,人工比较,并进一步编辑较好的回答。
  • 构造 edited > chosen > rejected 的排序,用历轮偏好数据训练 RM。
  • 过滤差异过小的回答对,保留有明确偏好的样本。

拒绝采样与 SFT

  • 每个 prompt 从上一轮强模型生成约 10–30 个回答,使用 RM 选择最优候选。
  • 混合拒绝采样结果、专项合成数据和少量人工数据,训练目标回答的交叉熵。
  • 405B 的输出还用于改善 8B/70B 的后训练数据质量。

迭代更新

  • 每轮重新收集偏好、更新合成数据,再执行 SFT 与 DPO,共 6 轮。
  • RM 使用已有全部有效偏好数据;DPO 主要使用最新一批,贴近当前模型分布。
  • 在 RM、SFT、DPO 各阶段,对不同数据或超参实验的模型做参数平均。
DPO 稳定性与数据筛选

DPO 修改

  • 对 chosen/rejected 的 消息头、终止符等格式 token 屏蔽 DPO loss。
  • 减少对共同格式 token 的冲突优化,缓解结尾重复和过早终止。
  • 对 chosen 回答加入 NLL,系数 0.2,防止其生成概率下降并保持格式稳定。

质量、难度与多样性

  • 对样本标注主题、质量与难度,分别控制能力分布和复杂度。
  • RM 高分或 Llama 评审高分的样本进入候选,结合两类信号保留更多有效数据。
  • 对话聚类后按 质量 × 难度 排序,再做语义去重。
  • 难题若因回答错误被过滤,优先修订回答,避免训练集逐渐只剩简单问题。

事实性与安全数据

  • 从预训练文档生成事实问题;反复回答仍错误的样本,构造不确定或拒答示范。
  • 混合对抗请求与相近的正常请求,平衡安全拒答和错误拒答。

代码、推理与工具数据构建 ​

代码专家与执行反馈

领域专家

  • 从主预训练分支继续训练代码专家,约 1T tokens,代码占比超过 85%。
  • 通过仓库代码将专家上下文扩至 16K,再做代码 SFT/DPO,辅助标注与拒绝采样。

执行反馈合成

  • 随机代码片段引导生成多样问题,再生成解法、注释与单元测试。
  • 先经过 parser/linter,再在容器执行单测,检查语法、运行时与部分语义错误。
  • 将错误代码与 stdout/stderr/return code 回传模型,迭代修正代码或测试。
  • 只保留通过检查的对话,同时收录失败到纠正的过程;约 20% 解法经过自纠正。

语言翻译与回译

  • 将 Python/C++ 样本转成较少见语言,再经解析、编译与执行检查。
  • 对注释、文档、解释任务,先生成说明,再由说明回译代码,与原代码比较一致性。
  • 代码合成数据累计超过 2.7M 条,覆盖生成、解释、文档与调试。
数学推理与长文档合成

推理数据

  • 按数学技能分类收集问题,并从预训练材料构造问答,补充薄弱技能。
  • 生成多条逐步解答,通过最终答案验证、自检与过程奖励模型过滤错误步骤。
  • 难题使用 MCTS + 步骤奖励模型 搜索有效推理链;代码执行提供额外验证信号。
  • 保留错误解答及反馈纠正,训练模型利用反馈改善推理。

长上下文 SFT

  • 长文档分成 8K 片段生成 QA,训练时提供完整文档,要求定位相关信息。
  • 分块摘要后再汇总,构造需要全局理解的摘要与问答。
  • 仓库中移除被多个文件依赖的模块,让模型根据依赖关系识别缺失模块并补全代码。
  • 按 16K/32K/64K/128K 分桶,约 0.1% 长上下文样本即可兼顾短长任务。

多语言补充

  • 多语言专家提供高质量标注,结合原生语言对话、NLP 数据改写和拒绝采样。
  • 翻译经验证的数学推理数据,补足非英语定量推理能力。
工具轨迹与逐消息反馈

工具任务合成

  • 支持搜索、Python 和 Wolfram Alpha;完整样本包含 请求 → 调用 → 输出 → 回答。
  • 多步任务交替生成推理与工具调用,工具结果由真实执行获得。
  • 加入启用工具但无需调用的简单问题,训练模型判断何时使用工具。

人类反馈

  • 对工具调用前后每一条 assistant 消息做偏好比较或编辑,再继续对话。
  • 人工评价调用是否合适、如何解释输出;不修改工具返回内容。
  • 工具任务未使用拒绝采样,主要依靠合成冷启动与后续逐消息反馈。

新工具泛化

  • 从 The Stack 提取真实函数定义与调用,生成对应自然语言请求。
  • 覆盖单次、嵌套、并行调用,以及多轮 API 对话,训练时提供工具签名与说明。

组合式多模态扩展 ​

视觉与语音研究模型

视觉接入

  • ViT 编码图像,通过插入语言模型的 cross-attention 接入视觉特征。
  • 冻结语言模型,训练视觉 encoder 与 adapter,保持原有文本能力。
  • 用约 6B 图文对训练,再进行高分辨率退火与多模态 SFT/DPO。
  • 视频增加时间聚合器与视频 cross-attention,压缩多帧表示,仅更新视频相关参数。

语音接入

  • Conformer 使用约 15M 小时音频做自监督训练,再由 adapter 转成语言模型输入表示。
  • 联合训练 ASR、翻译与语音对话,更新语音 encoder/adapter,继续冻结语言模型。
  • 语音生成利用 Llama 中间表示改善文本归一化与韵律,支持流式输出。
  • 上述多模态部分为报告中的研究实验,区别于本次公开的 Llama 3.1 文本模型。

实验设置(预训练、SFT 与 DPO) ​

训练配置与评测协议

模型与预训练

  • 模型规模 8B/70B/405B;主要报告 405B 的完整训练流程。
  • 405B:126 层、hidden size 16384、128 个 attention heads,训练 15.6T tokens。
  • AdamW,峰值学习率 8e-5,warmup 8000 步;batch 从 4M → 8M → 16M tokens。
  • 训练最多使用 16K H100,长上下文阶段开启 CP;比较小模型与大模型的 scaling 预测。

后训练

  • SFT 学习率 1e-5,每轮约 8.5K–9K 步,prompt token 不计算损失。
  • DPO 学习率 1e-5、β=0.1,chosen NLL 系数 0.2。
  • 各轮同时评估代码、推理、通用对话、长上下文与多语言,调整混合比例。

评测任务

  • 代码:HumanEval、HumanEval+、MBPP/EvalPlus、MultiPL-E,报告 pass@1。
  • 数学:GSM8K 8-shot CoT、MATH 0-shot CoT;通用:MMLU、MMLU-Pro、IFEval。
  • 工具:BFCL、Nexus、API-Bank、API-Bench;长上下文:Multi-needle、InfiniteBench。
  • 人评约 7000 个 prompt,覆盖单轮、多轮及多语言;按能力与难度分层采样。
  • 后训练数据用 benchmark prompt 精确匹配去污染,并另做预训练数据污染分析。

关键结果(Llama 3.1-8B/70B/405B-Instruct) ​

模型规模与能力提升

代码与推理

  • HumanEval:8B/70B/405B 分别为 72.6/80.5/89.0,模型扩大带来稳定收益。
  • 405B 的 HumanEval+ 为 82.3,更严格的测试仍会暴露原始单测未覆盖的错误。
  • MATH 为 51.9/68.0/73.8;大模型改善数学能力,复杂推理仍未全面达到同期最强模型。

指令、工具与多语言

  • 405B 的 IFEval 为 88.6,BFCL 为 88.5,多轮偏好对齐与工具数据有效。
  • MGSM 为 91.6,多语言专家和推理数据扩充改善非英语数学能力。
  • 人评中多轮推理、代码强于 GPT-4,但部分多语言能力仍落后;各能力收益不完全一致。

长上下文

  • 405B Multi-needle 平均召回 98.1,InfiniteBench En.MC 83.4。
  • 检索、长文档理解均有较强表现;128K 适配需要预训练与 SFT 数据共同支持。
数据与训练结论

合成数据需要验证

  • 小模型能从强教师直接获益;405B 使用自身未经验证的输出,可能没有收益甚至退化。
  • 执行反馈提供额外正确性信号,迭代纠错使模型学习超出原始回答的数据。
  • 严格过滤可能同时丢失难题,修订难题回答比单纯删除更有利于保持训练难度。

长上下文与对齐可以兼顾

  • 只用短文本 SFT 会损伤长上下文能力;加入少量合成长文档样本即可明显缓解。
  • 在长上下文 SFT 之后,短文本 DPO 未造成同样的退化,阶段间需要不同数据配置。

效率与多模态扩展

  • 405B 大规模训练 BF16 MFU 约 38%–43%;FP8 推理的 prefill 吞吐最高提升约 50%。
  • 视觉研究模型 405B-V 的 MMMU 为 64.5、DocVQA 为 92.6,冻结语言骨干仍能扩展视觉能力。

未来方向 ​

数据、泛化与多模态
  • 质量与规模:扩大高质量、多样化数据,继续优化配比与可稳定扩展的训练流程。
  • 推理泛化:改善对抗数学、复杂代码与多语言任务,减少对题目形式和分布的依赖。
  • 多模态整合:完善视觉、视频和语音模块,推进组合式模型的进一步训练与评估。
  • 可靠性与评测:持续改善事实性与安全性,控制训练污染与 benchmark 过拟合。
总访客数:— · 总访问量:—
PLM's Blog @ 2016 - 2026