Skip to content

Code 全训练 论文阅读

📅 发表于 2025/12/28
🔄 更新于 2025/12/28
👁️ -- 次访问
📝 0 字
0 分钟
code-llm
#KAT-Dev
#Mid-Training
#SFT
#轨迹数据合成
#RFT
#AgenticRL
#难度和熵感知增强探索
#seed-coder
#预训练数据Pipeline
#Github数据处理
#Commit数据处理
#Code-Web数据处理
#CPT-高质数据处理
#CPT-长上下文数据处理
#预训练策略
#2阶段后训练
#指令微调数据构建
#高质量数据合成
#DPO偏好数据构建
#LongCoT RL

(2512) IQuest-Coder-V1

🌺 论文摘要

论文摘要

参考链接

模型效果

核心方法

重要结论

关键贡献

问题背景

问题背景

问题背景

核心方法

📕核心方法

核心方法

实验设置

✍️实验设置

实验设置

基础模型

训练任务/数据

评测任务/数据

算法/策略

超参

关键结果

🍑关键结果

关键结果

模型效果

重要结论

关键贡献

未来方向

未来方向

未来方向

(2512) Nex- N1

摘要
  • paper,通用agent,代码是其一部分

(2510) KAT-Dev

🌺 论文摘要

论文摘要
  • paper, KAT-Dev
  • Mid继续预训练:20B SWE库+CoT轨迹等。
  • SFT指令微调:100wSFT数据,20语言+10任务+10环境。LLM+IDE工具 收集轨迹
  • RFT有参考答案的RL相对参考答案的奖励在线轨迹修正
  • AgenticRL真实环境探索训练:前缀树,感知难度和熵 缩放优势增强探索

问题背景

❓问题背景

问题背景

概览

  • 过去到现在:被动代码生成 -> agentic coding
    • 近期引入规划和工具使用:SWE-Agent, OpenHands, ClaudeCode等
  • 传统codellm:静态文本训练交互式实际应用 有gap。
    • 缺乏自适应能力,环境会改变。
    • 早期主要是单轮指令,近期在处理长依赖上下文切换任务时,效果一般。

学术数据 vs 实际应用的差异

  • SFT阶段数据:从学术框架蒸馏的数据(如SWE-agent)。
  • 数据特征:线性对话单session同质化pipeline
  • 实际情况:非线性对话多轮推理异构多样pipeline
  • 不匹配导致:benchmark分数很高但实际没法用(如IDE)

训练概览

📕核心方法

核心方法
  • Mid-Term Training/继续预训练
    • 真实SWE语料库 + 合成agent轨迹激活拓展推理、规划和反思性思维能力。
    • 继续预训练20B数据
  • 监督微调 (SFT)/指令对齐
    • 构建百万数据集, 20编程语言+10种开发环境+10种任务类型。
    • 数据标准:语言+开发环境+任务
  • 强化微调 (RFT)/带有参考答案的RL
    • 引入多基准(multi-ground-truth)奖励公式相对评估方案,实现了稳定且样本高效的策略优化。
  • 代理强化学习 (Agentic RL)/自主探索
    • Trie-Packed Training :高吞吐量的多轨迹优化。
    • 难度和熵感知的Rescaling:保证探索多样性、防止熵崩塌、增强策略鲁棒性。

Mid-Term-Training

拓展模型的推理、规划、交互等能力。

Train Recipe

Train Recipe

  • 真实SWE语料库:20B token,包括PRIssueCommitPatch等。
  • 推理和反思增强:利用SOTA开源模型,生成CoT轨迹,解决复杂问题。
  • Agent交互模拟:构建模拟环境,合成Plan-Action-Observation轨迹。
  • 复杂质量遵循和约束对齐:构建可验证逻辑和结构指令跟随数据集

SFT 训练

SFT 数据源

数据源

多维度均衡覆盖

  • 编程语言、开发环境、任务类型。
  • 最终,100w SFT样本,覆盖多种语言、上下文和任务类型,为后续RFT和RL提供基础。

数据源及统计分析

  • GitHub仓库、StackOverFlow讨论。
  • commit code diff review comment QA讨论帖 做分析,总结用户模式开发者意图,按其采样。

编程语言

  • 20种主流语言。

任务类型

  • 10种任务类型。实现、修改、调试、重构、代码解释文档、代码分析、大码生成、测试用例生成、配置和部署等。

SFT 轨迹数据合成

生产轨迹数据收集及训练

LLM + 生产级工具收集轨迹

  • 使用KAT-Coder + 生产级工具,收集真实的执行轨迹数据
    • 工具包括:ClaudeCode/Cline/RooCode/CodeFlicker等

存在2个问题

  • 工具冗余/错误调用多:真实场景agent会和10+不同工具交互(调试/静态检查/包管理器等)。
  • 非线性上下文边界逻辑中断需压缩或截断上下文前后因果关系被截断难学会长规划

两种解决方法

  • Error-Masked SFT:使用执行反馈日志判断工具是否调用成功,mask掉这部分工具调用的梯度,但保留反思信号。
  • Tree-Structured FT:可以把长任务拆成多个子数/子逻辑,分别SFT。

RFT 训练

RFT

问题背景

  • 传统RL使用绝对reward,但粗只能不稳定和样本效率低下的问题。

核心方法

  • 采样相对奖励对比GT轨迹线基准计算相对差异,作为奖励信号。
  • 在线纠偏对采样轨迹做在线修正,再去计算奖励信号。
    • 避免某一步错误,全盘皆输的情况。提高学习效率。
  • 增强训练稳定性和样本效率:早停重采样机制,离基准太远就早停

AgenticRL 训练

Tried Packed Training 提升训练速度

背景

  • RL 多条探索路径,但开头可能很像,GPU需要重复计算

前缀树

  • 推理时缓存前缀树,反向时设计数学公式,精确分配缩放回传梯度
  • 树很大,GPU放不下:使用动态规划,把树枝打包进batch里。
  • 底层加速:手写CUDA算子,重新定义位置编码等。

难度和熵感知缩放优势增强探索

  • 第i组任务,难度= 1-成功率

    Di=1ri
  • 组级缩放因子

    αigroup=1+λ(DiD¯)
  • 样本级缩放因子:H¯i:平均熵,Hi,j:组i样本j的策略熵

    βi,jsample=1+μ(Hi,jH¯i)
  • 优势缩放

    Ai,j=αigroupβi,jsampleAi,j
  • 梯度更新

    θθ+ηθlogπθ(a|s)A(s,a)

算法实验

实验设置

✍️实验设置

实验设置

关键结果

🍑关键结果

关键结果
  • 数学推理:在AIME 2025上获得72.5分,显著优于所有对比模型
  • 工具调用:在TAU2-Bench Retail上达到62.3分,展示了强大的工具交互能力
  • 代码生成:在HumanEval上达到96.3分,表明了强大的基本编码能力
  • 智能体编码:最重要的是,在Claude Code下评估时,在SWE-Bench-Verified上达到73.4分,超过了Qwen3-Coder-480B (69.6)、Kimi-k2-0905 (65.8) 和Claude 4 Sonnet (72.7)

未来方向

⛳ 未来方向

未来方向

(2507) Qwen3-Coder

Qwen3-Coder (2507)

参考链接

关键技术

  • MoE, 480A35B,上下文256k -> 1M, YaRN。
  • 预训练 + 所有代码可执行的Code RL训练。

训练数据

  • 预训练
    • 通用、数学 + 代码, 7.5T tokens (70%)
    • 合成数据:利用Qwen2.5-Coder对低质数据做清洗和重写,提升质量。
  • RL
    • 不仅是竞赛代码,对所有代码做执行驱动的RL。

数据清洗

关键结果

  • Agentic Coding、Agentic Browser-Use 和 Agentic Tool-Use 开源SOTA,可与Claude Sonnet4 媲美

(2506) Seed-Coder

🌺 论文摘要

论文摘要
  • paper
  • Seed-Coder的详细训练说明。包括预训练、后训练指令微调、推理模型等,以及详细的模型评估。

问题背景

❓问题背景

问题背景
  • CodeLLM在代码生成/解释/Debug/SWE等任务上好

    • 顶尖都是闭源很少披露数据细节
    • DeepSeek-R1, Qwen2.5-Coder等开源仅报告预训练后训练技术,数据概括无细节
  • 利用人类专业知识策划和完善数据集能提高预训练数据质量

    • 但人工规则成本高、且容易相互冲突,具有局限性,阻碍发展。
      • DeepSeekCoder和DeepSeekCoderV2,沿用StarCoder过滤规则
      • Qwen2.5-Coder:类似于DeepSeek-Coder 规则过滤方法。
      • OpenCoder:130条带有自定义权重的人工过滤规则

预训练 (Base)

📕核心方法

Data Pipeline 概览

预训练数据处理 Pipeline 概览

原始数据

  • Github数据、Web数据

处理步骤 (预处理+过滤)

  • 预处理
    • 去重精确去重近似去重
    • Mini规则过滤:去掉不相关非代码数据
  • LLM质量过滤
    • 过滤后数据分为4类
      • 文件级代码 + 仓库级代码 + Github Commits + 代码相关的web数据

处理结果

  • 核心预训练数据
  • 继续预训练数据高质量数据 + 长上下文数据

Github 数据处理

Github 数据处理

数据预处理

  • 文件级去重 + 仓库级去重
    • 精准去重(SHA256)、近似去重(MinHash)
    • 文件级:短上下文学习;仓库级:保留项目结构,长上下文学习
  • 去掉存在语法错误的文件
    • 使用语法解析器检查文件是否存在语法错误
  • 最终减少98%原始数据。

质量过滤

  • 规则过滤存在挑战:需要多个专家共同编辑,很难一致,而且很难去评估。

  • 文件级质量评分模型

    • 四维度:可读性(注释合理)、模块化(结构好)、清晰度(少冗余)、复用性(易集成)。

    • 输出0-1分过滤低质量代码文件无需复杂标准。过滤一些自动生成的代码。

    • 微调1.3B模型回归Head,训练1个epoch,MSEloss,类别平均MAE观测指标。

    • 训练数据21种语言,使用GPT-4/DeepSeek-Coder-33B(V2-Chat)构造GT

  • 最终去除10%数据

Commit 数据处理

Commit 数据处理

Commit原始数据

  • 14w 高质量仓库7400w次提交
    • 高质量仓库:100star、10个fork、100次提交、100天的维护活动

Code Change 预测任务

  • Code change prediction 任务数据格式:
    • 给定提交信息上下文,模型预测被修改的文件代码变化
    • 上下文:README目录结构、BM25算法检索的top5相关文件
  • 经过去重和预处理后,获得100b tokens。
  • 提供 真实Code变化 强监督信号

Code-Web 数据处理

Code-Related Web Data

核心

  • web数据(common crawl等)中,提取出高质量代码相关的数据。

预处理

  • 代码提取:带有显示<code></code>>标签的数据,非显示代码标签的数据。
  • 去重:使用精确去重近似去重,同github数据一样。
  • 启发式过滤方法去掉低质量文档(如低于10个单词)。

质量过滤

  • 核心:识别代码相关内容 + 评估内容质量

  • FastText 召回代码内容

    • 没有代码标签的数据中召回代码内容
    • 提取并评分1000w个候选网页,标注数据,70%作为种子语料库、30%用于验证
    • 训练fastText模型识别检索代码内容。99%召回率、45%精确率。
    • 约3%识别为代码内容 (common crawl)
  • LLM 过滤低质数据:打0-10分

    • 不同类别的网站质量分数存在差异。
      • 电商平台/文档站点/等:结构清晰,分数较高
      • 社区论坛:得分较低,因为结构化低、混杂多

Continue Pretrain 数据处理

CPT-高质量数据
  • 数据来源:主流编程语言、算法、应用开发、jupyter、通用代码数据。
  • 高质量fastText 检索高质量数据
    • 针对每种特征的数据:划分小且多样高质量种子数据,10w样本,作为正样本,
    • 训练fastText模型
      • 使用10w正样本负样本随机选择精心构建2部分组成。
      • 迭代训练:训练->召回新数据->把最好的加入种子库->重新训练
    • 经过2-3轮fastText模型训练
      • 逐渐扩充正样本,最终得到130b高质量数据,用作CPT
CPT-长上下文数据
  • 长上下文数据
    • 文件级:结合LLM过滤,从中筛选出长上下文数据
    • 仓库级:根据文件的平均质量分数选择高质量仓库
      • 主流语言(python/java/c):基于文件依赖关系拼接
      • 其他语言(HTML/SQL/Shell):随机拼接
      • 每个仓库,作为一个单一的字符串
  • 32k长上下文,两个阶段:原始 -> 8k -> 32k

预训练策略

预训练策略

模型架构

  • LLama3,8.2B参数,36层,隐藏层大小为4096,中间层大小为14336,
  • 采用GQA,32个query头,8个key-value头。

上下文长度

  • 初期:8k
  • CPT:32k

Token和学习率参数

  • 初期(基础):3e-4,1万亿token,代码web+数学web数据
  • 中期(专业数据)4万亿token精选代码数据
  • CPT(冲刺)高质量长上下文数据
    • 学习率降低10倍,训400b token
    • 学习率降低到3e-5,继续训练600b token
FIM任务
  • Prefix Suffix Middle vs Suffix Prefix Middle

    • 实验SPM效果更好,可能和Attention机制有关系,Prefix后面紧接Middle。
  • FIM训练比例

    • 初期:50%时间在训练FIM,非常重视代码补全能力
    • 后期:降到10%,需要探索长文本和整体生成能力

后训练(Instruct)

后训练整体包括指令微调SFT +增强代码能力DPO

2阶段后训练(SFT+DPO)

两阶段训练

SFT

  • 构建的高质量300w指令微调数据
  • 难度感知采样优先训练高难度数据
  • 3 epoch, lr=2e-5
  • 采用sequence packing 提高训练效率

DPO

  • DPO 增强代码生成和推理能力,专注于领域中有挑战的样本,2w个高质量偏好对

指令微调SFT 数据Pipeline

指令微调

数据集

  • 数百万,关注多样性质量难度

数据源

  • github + code-text混合数据:提取出高质量代码片段
  • 公开指令数据:构建meta-style数据。

数据合成

  • 指令-回复 数据合成用LLM对这些数据合成多样化风格化指令回复
  • 指令-回复 数据过滤:基于rule-based+model-based,确保高质量和难度适当
  • 回复 数据优化:基于沙箱的self-correction机制来迭代优化输出

合成数据(多样性+质量+难度)

合成数据构建质量数据

背景

  • 若仅使用Github代码微调,会导致模型只会写代码、难以听懂指令
  • 若仅用模型自己生成的指令,会太像机器人
  • 通过合成数据,来解决数据多样化的问题
    • 构建具有多样性有难度可扩展高质量指令数据
多样性+质量+难度

多样性

  • 种子片段多样性
    • 单一代码文件:从多个高质数据源,提取代码片段,做质量过滤
    • 真实社区混合数据源:Jupter Notebooks, StackExchange, Markdown等,
      • 包括代码上下文(图表/讨论/问题等)
    • 给定代码片段+上下文,让模型去生成真实指令
      • 对齐真实开发者指令(写作/解释/寻求帮助)等。
  • 风格多样性
    • LLM生成指令风格单一(结构化/完整/太完美),和真实prompt有gap (随意/不讲语法/)。
    • 公开数据 收集多种真实指令
      • 构建meta-style-set,并做风格增强:随机选2个风格,合成新风格
    • WildChat数据(真实ChatGPT用户对话记录)
      • 提取数据SFT数据集

质量过滤

  • Rule-Based:使用Tree-Sitter 过滤有语法错误的。
  • Model-Based:使用Prompt+LLM来打分,判断是否解决问题,过滤低分数据

难度过滤

  • 先做主题分类每个主题内,用LLM做难度评分(满分10分),过滤低于3分数据
基于sandbox的self-correction

背景

  • 难度高的例子,错误率较高,导致被过滤掉
  • 需要难数据SFT数据集中。

sandbox + self-correction

  • Prompt模型生成 解决方案 + 测试用例
  • sandbox环境执行测试迭代修复解决方案,直到通过所有测试用例或达最大修改次数。

DPO 偏好数据构建

DPO 增强代码生成和推理能力
  • 选择任务相关promptrollout多个答案
  • 基于sandbox 利用单元测试对答案做评估。构建偏好数据

后训练(LongCoT-Reasoning)

数据集

LongCoT 数据集
  • WarmUp阶段
    • 真实竞赛数据:CodeContests, ICPC, 使用R1生成回复
      • 用sandbox做拒绝采样,仅保留正确答案。保证更强的监督信号
    • 开源cot数据:open-r1, codeforces-cots
  • RL阶段WarmUp 数据 + LiveCodeBench数据

LongCoT RL训练

Warmup 冷启动
  • 模型:从Base模型训练,而非Instruct模型。
    • 指令模型在RL过程,会坍塌回典型的SFT模式,导致RL后性能下降。
  • 数据:数千个LongCoT样本
    • 为保留探索空间,不扩大蒸馏数据规模鼓励模型探索
  • 超参:lr=2e-5,
LongCoT RL 训练过程

基础设置

  • verl, GRPO, DAPO技巧
    • clip_ratio_high=0.28, token-level-loss, 过滤超长样本
  • bs=128, 初始lr=1e-6,temperature=0.6,去掉KL Loss

课程学习

  • 本质GRPO是课程学习:会过滤全对或全错的样本。
  • 优化:过滤掉简单样本
    • 简单样本为了拿思考奖励、废话多、浪费token

渐进式探索策略

  • 第一阶段:16k,rollout 16
  • 第二阶段:32k,rollout 32

效果评估

对比模型

对比系列
  • (2024) StarCoder2
    • The Stack + The Stack v2,覆盖619种语言,67.5TB代码数据,3B-7B-15B模型
  • (2024) Codestral
    • MistralAI,22B模型,80多种语言训练
  • (2024) CodeLlama
    • LLama2 base,代码500B-1T 训练,5B 人类指令训练。7B-70B。
  • (2024) DeepSeek-Coder
    • 2万亿token从头训练,87%代码+13%中英文自然语言。repo-level预训练和代码补全。
  • (2024) CodeQwen1.5
    • Qwen1.5-7B, 3万亿代码token训练,覆盖92语言。
  • (2024) Yi-Coder
    • 1.5B和9B,2.4万亿token序列(Github+commoncrawl),52中语言。
  • (2025) OpenCoder
    • 1.5B和8B,2.5万亿token,从头训练,90%代码,10%code相关web数据。
  • (2024) DeepSeek-Coder-V2
    • MoE模型,16B-A2.4B,236B-A21B。
    • 在DeepSeek-V2训练至4.2万亿token时,使用额外6万亿token进一步预训练而来。
    • 6万亿token:60%源代码,10%数学,30%自然语言。
  • (2024) Qwen2.5-Coder
    • 代码大模型系列,0.5B-32B。在Qwen2.5基础上,使用5.5万亿代码token预训练而来。
  • (2025) Qwen3
    • 包括Dense和MoE。思考和非思考。

Base模型评估

Base模型评估

代码生成

  • HumanEval
  • MBPP
  • MultiPL-E:多语言

代码补全

  • CrossCodeEval
  • RepoEval:真实github仓库的补全,归功于FIM和大量仓库级数据训练。
  • Single-line MultiPL-HumanEval FIM

代码推理

  • CRUXEval:
    • 给代码,预测输出结果。
    • 给输出结果,预测输入是什么。

长上下文能力

  • Needle in the Code:32k长代码里有一个函数,问模型该函数是干嘛的。

指令模型评估

danger 模型评估

代码生成

  • HumanEval、MBPP:大家分数都很高,区分度不明显了。
  • MHPP:人工选的难题。pass@1=36.2%
  • BigCodeBench:要求调用库函数来解决问题,而非从0手写代码。pass@1=26.4%
  • LiveCodeBench:最近几个月的新题。pass@1=24.7%
  • MBXP:多语言。
  • NatrualCodeBench:在线编程平台的真实用户题。
  • FullStackBench:3.3k人工编码问题,覆盖11个领域(DA/ML/DB/Web等)和16种编程语言。55.8%

代码推理

  • CRUXEval

代码编辑

  • Aider:来自Exercism的133个编程练习,编辑现有代码并格式化修改内容。
  • CanItEdit:105个手工指令代码编辑问题,包括描述性和懒惰性指令。
  • CodeEditorBench:Debug+Translate+Switch改需求()+Polish(润色)。

软件工程

  • SWE-Bench-Verified:Github Issue,经过人工验证的500个python实例。
  • Multi-SWE-bench:8种语言,mini版本包括400个实例,每语言50个。
  • Agent 脚手架
    • Agentless:固定人工设计的工作流,把任务分解为SOP,包括故障定位代码修复补丁验证
      • 19%和4%解决率。
    • OpenHands完全自主的agent平台,无需固定工作流,依赖LLM自身规划和推理能力
      • 11.2%能力,8B小模型突破
    • 目前大部分AgentLess效果更好,但随着模型能力提升,OpenHands自主会超过Agentless。
  • 得益于:执行遵循(DPO+数据清洗) + Commit数据(100B)

推理模型评估

推理模型评估
  • LiveCodeBench(2410-2502):Pass@1
  • IOI (Internaltional Olympiad in Informatics):Open-r1,41个子任务,146分,超过QwQ-32B, DeepSeek-R1
  • Codeforces:CodeElo,1553分,远超QwQ-32B-Preview。

算法实验

实验设置

✍️实验设置

实验设置

关键结果

🍑关键结果

关键结果

未来方向

⛳ 未来方向

未来方向

(2503) Ling-Coder-Lite

Ling-Coder-Lite (2503)

参考链接

关键技术

  • MoE,top6 路由,改进的NormHead。
  • 共享/常驻专家:shared+routed expertes,DeepSeekV2首创设计。
  • 训练策略:继续预训练、指令优化(SFT + DPO)

训练数据

  • 指令优化数据:高质量、可执行仓库结构数据

数据清洗

关键结果

  • HumanEval, MBPP, LiveCodeBench, BigCodeBench等
总访客数:   ·   总访问量:
PLM's Blog @ 2016 - 2026