KodCode(高质量多样化的code数据)
KodCode: A Diverse, Challenging, and Verifiable Synthetic Dataset for Coding
论文介绍了 KODCODE,这是一个包含 447K 编程问题的合成数据集,每个问题都配有经过验证的解决方案和单元测试。通过一个三步的流水线方法(问题合成、解决方案和测试生成、后训练数据合成),KODCODE 在多样性和质量上都优于现有的代码数据集。
第一步:编程问题合成(简单到复杂、多任务,多语言)
-
-
生成多样化和具有挑战性的编程问题,涵盖从基础编程练习到面试和竞赛编程挑战的各个领域。
-
使用 12 种不同的子集和 5 种不同的方法来确保问题的多样性和复杂性。
-
例如,通过扩展 MAGPIE 框架生成简单编程问题,利用现有的人类编写的编程评估数据集作为种子语料库来生成多样化的编程评估问题,将Python 数据结构和算法知识转换为评估问题等。
-
第二步:解决方案和测试生成(生成答案)
-
-
为第一步生成的问题生成解决方案和单元测试。
-
使用自验证过程,通过执行单元测试来验证解决方案的正确性。
-
对于难以生成正确解决方案的问题,分配额外的尝试次数而不是直接丢弃,从而保留具有挑战性的问题。
-
第三步:后训练数据合成(N选1提升质量+风格改写增加多样性)
-
-
通过重写问题格式和生成基于测试的拒绝采样过程中的推理模型(DeepSeek R1)的响应,为后训练生成高质量数据。
-
使用 LLM 基于的风格转换器将问题重新格式化为 Python 完成任务,增加问题的多样性。
-
LEMMA: Learning from Errors for MatheMatical Advancement in LLMs(从错误中学习)
论文提出了一种名为LEMMA的方法,通过系统地分析模型生成的错误类型,并构建错误纠正轨迹来增强LLMs的数学推理能力。LEMMA通过错误增强和两种修正策略(修复并继续和重新开始)生成多样化的修正轨迹,使模型能够在生成过程中自主检测和纠正错误。
论文探索了两种修正策略:
-
修复并继续(Fix & Continue):教师模型直接修正学生模型的第一个错误步骤,并继续推理以得出正确答案。
-
重新开始(Fresh & Restart):教师模型批评学生模型的错误,并从头开始推理,而不是从错误的中间步骤继续。这种方法模拟了人类在意识到初始方法有误时放弃原有步骤并重新开始的过程。
很常见,就是修正错误答案。
有可能的优势是:只获取正确的解题思路可能比较局限。考虑到错误的方法可能多种多样,从错误中总结反思出正确答案,或许可以增加数据的多样性。
CodeIO(代码推理数据)
CodeI/O: Condensing Reasoning Patterns via Code Input-Output Prediction
https://github.com/hkust-nlp/CodeIO
论文试图解决的问题是如何提升大型语言模型(LLMs)在多种推理任务上的表现。
-
数据收集:从多个来源收集原始代码文件,包括CodeMix、PyEdu-R和其他高质量代码文件,确保涵盖多种推理模式。
-
代码转换:将原始代码文件转换为统一格式,提取核心逻辑功能,使其可执行并生成输入输出对。
-
输入输出对生成:通过输入生成器为每个函数生成多个输入,并执行代码获得对应的输出,确保输出是确定性的。
-
构建训练样本:将函数、查询、参考代码和输入或输出组合成训练样本,使用DeepSeek-V2.5生成自然语言的推理链(CoT)作为响应。
-
验证与修正:通过代码执行验证预测的正确性,并在必要时进行多轮修正(运行错误的答案将原始结果和错误状态输入LLM模型重生成,此过程可以执行多轮,但是测试后发现,使用一次可以提升10%的效果,第二次对效果几乎没有影响),生成CODEI/O++数据集。
prompt格式大概是:函数功能描述+参考代码+根据输入预测输出/根据输出预测输入。
结果对比
通过测试单阶段混合训练和使用不同数据混合的两阶段训练,强调了使用CodeI/O数据进行单独训练阶段的必要性。
PAFT: Prompt-Agnostic Fine-Tuning
论文提出了一种名为提示无关微调(PAFT)的新方法,旨在解决大型语言模型(LLMs)在监督式微调(SFT)后容易过拟合到指定风格/类型的prompt的问题。PAFT通过提前生成多个不同风格的prompt并在训练过程中动态选择,使模型在训练过程中接触到多样化的提示,从而增强对提示变化的鲁棒性。
候选提示构建(Candidate Prompt Construction):
-
-
多模型生成:以覆盖不同的语言风格和任务解释。
-
少样本与零样本结合:少样本提示通过提供少量人工编写的示例来引导生成高质量的提示;零样本提示则鼓励模型生成更多样化的prompt,以涵盖更广泛的语言风格和任务表述。
-
动态微调(Dynamic Fine-Tuning):
-
-
在每个训练周期(epoch)中,随机从候选提示集合中选择一个prompt。
-
对于每个数据,使用选定的提示进行连续K步的训练,然后更新提示,以确保模型在单个周期内接触到多个不同的提示。
-
LIMR(RLHF过程的高质量数据)
LIMR: Less is More for RL Scaling
https://github.com/GAIR-NLP/LIMR
论文探索在有限数据下如何通过优化RL样本选择来提升模型性能,而不是单纯依赖数据规模的扩展。
之前有LIMO中提到少量高质量SFT数据就可以大幅提升模型性能。这里探索了RL训练数据的质量。
使用PPO进行训练,MATH-FULL数据集,使用 Qwen2.5-Math-7B作为初始策略模型,bs为 1,024,每个提示生成 8 个样本,温度为 1.2。训练过程使用bs大小 256,actor和critic模型的学习率分别设置为 5e-7 和 9e-6,KL 系数为 0.01。
论文采用基于规则的奖励函数,类似于 Deepseek R1 的设计:
-
如果答案正确,奖励为 1;
-
如果答案错误但格式正确,奖励为 -0.5;
-
如果答案格式错误,奖励为 -1。
LIMR 的核心是基于模型对齐的轨迹分析,通过评估训练样本对模型学习的贡献来量化样本的有效性。具体步骤如下:
-
计算模型平均奖励曲线:
r_{k_{avg}}=N1i=1∑Nrki$$
其中,rki 表示样本 i 在第 k 个训练周期的奖励,N 是样本总数。
-
计算样本对齐分数:
$$si=1−∑k=1K(1−rkavg)2∑k=1K(rki−rkavg)2$$
其中,si 表示样本 i 的对齐分数,分数越高表示样本的学习模式与模型整体学习轨迹的对齐程度越好。
-
样本选择策略: 根据对齐分数 si,LIM 实现了选择性采样策略,选择分数高于阈值 θ 的样本。在实验中,设置 θ=0.6,从原始数据集中筛选出 1,389 个高价值样本,形成了优化后的 LIMR 数据集。
总而言之就是看每个样本对模型的reward贡献和平均贡献方向一致,这个样本就是有效的。
最终效果:挑选的少部分数据完全可以达到全部数据的性能。
s1: Simple test-time scaling(少数高质量长thinking数据微调)
https://github.com/simplescaling/s1
论文试图解决如何在语言模型中实现测试时推理能力的提升,特别是如何通过增加测试时的计算资源(如推理时间、生成的token数量等)来提高模型在复杂推理任务上的表现。
通过在少量样本(1,000个)上进行监督微调,并结合预算强制技术控制测试时计算资源,模型(s1-32B)在多个推理基准测试中表现出色,显著优于其他开放模型。
论文提出了一种名为budget forcing的方法来实现测试时扩展,具体方法如下:
定义测试时扩展方法的分类:
-
顺序扩展(Sequential scaling):模型在测试时生成一系列推理步骤,后续步骤依赖于前面的步骤。这种方法允许模型基于中间结果进行更深入的推理和迭代改进。
-
并行扩展(Parallel scaling):模型并行生成多个解,并通过多数投票等方法选择最佳结果。
论文重点关注顺序扩展,认为其更适合推理任务,因为后续步骤可以基于前面的推理结果进行优化。
预算强制的具体实现:
-
-
强制最大推理token数:通过在生成的推理过程中插入结束标记(end-of-thinking token delimiter),强制模型在达到预设的token数量时停止推理,进入答案生成阶段。这可以控制模型的推理时间[^Budget Forcing^]。
-
强制最小推理token数:通过抑制结束标记的生成,并在模型尝试结束推理时追加“Wait”字符串,鼓励模型继续推理。这可以延长模型的推理时间,让模型有更多机会修正错误[^Budget Forcing^]。
-
SemiEvol: Semi-supervised Fine-tuning for LLM Adaptation
论文提出了一个名为 SEMIEVOL 的半监督微调框架,通过“传播-选择”的双层策略来利用标注数据和未标注数据。具体方法如下:
1. 使用标注数据SFT模型,然后将标注数据转成embedding,通过ANN检索作为few-shot辅助模型推理未标注的数据。(加了few-shot效果通常会更好一点)
2. N选1:使用多个SFT的模型推理,judge模型综合多个结果进行判断,选择最佳答案。
3. 数据筛选。对推理的数据,计算每个答案的熵(通过每步生成的负对数似然),作为模型对答案的置信度。使用标注数据的熵分布的百分位数作为动态阈值,筛选出置信度高的伪标签数据。使用这些高质量的伪标签数据对模型进行进一步微调,获得最终的进化模型。
Visual-RFT: Visual Reinforcement Fine-Tuning(visual领域的R1微调)
-
输入与输出:Visual-RFT接受图像和问题作为输入,LVLMs生成包含推理过程和最终答案的多个响应。这些响应通过可验证奖励函数评估后,用于更新模型。
-
可验证奖励函数设计:
-
检测任务中的IoU奖励:对于目标检测任务,奖励函数基于预测边界框与真实边界框的交并比(IoU)和置信度。具体来说,奖励函数包括IoU奖励、置信度奖励和格式奖励。IoU奖励计算所有边界框的平均IoU值;置信度奖励根据IoU值是否为零来调整置信度的奖励值;格式奖励确保模型输出符合预定义的HTML标签格式。
-
分类任务中的CLS奖励:对于分类任务,奖励函数包括准确率奖励和格式奖励。准确率奖励通过比较模型输出类别与真实类别来确定,正确分类得1分,错误分类得0分。
-
-
数据准备:为了训练Visual-RFT,作者设计了特定的提示格式,引导模型在输出最终答案前输出推理过程。这种格式化的输出不仅有助于模型的自我学习和改进,还通过奖励函数指导模型优化。
训练过程
-
Visual-RFT使用GRPO算法对模型进行微调。对于每个输入,模型生成多个响应,这些响应通过可验证奖励函数评估后,计算每个响应的相对质量,并通过策略梯度优化算法更新模型参数。
-
为了确保训练的稳定性,Visual-RFT还使用KL散度限制策略模型与参考模型之间的差异。
System Message Generation for User Preferences using Open-Source Models
这篇论文就是针对没有system prompt的数据,使用开源模型总结指定的tag,整理成system prompt,用于SFT训练。
Building A Proof-Oriented Programmer That Is 64% Better Than GPT-4o Under Data Scarsity
本文提出了一种针对证明导向编程(POP)的语言模型训练方法,旨在解决现有语言模型在数据稀缺情况下的不足。
具体方法
-
数据合成:从现有的开源代码片段中构造指令数据,生成多种类型的编程任务,包括自然语言到代码任务、证明导向代码补全任务和代码修复任务。
-
执行基础数据评估和数据集过滤:利用F*语言的特性,通过执行代码直接验证其正确性,保留成功编译和运行的数据,将错误数据及其错误信息存储用于修复数据集。
-
多样化:将其他语言的多样化指令调整数据对整合到数据集中,以增强模型的泛化能力。
REALTALK: A 21-Day Real-World Dataset for Long-Term Conversation
目前大多数长对话数据都依赖于合成数据,这些数据无法完全捕捉真实世界对话中的细微差别,因此无法准确评估聊天机器人的长期对话能力。
论文通过以下步骤解决这个问题:
-
数据收集:收集了一个名为REALTALK的真实世界对话数据集,包含10对参与者在21天内的对话。这些对话涵盖了日常闲聊、个人故事和偶尔的图片分享,旨在模拟真实的人类互动。
-
情感智能(EI)评估框架:开发了一个全面的EI评估框架,用于比较真实对话和LLM生成对话的差异。评估指标包括自我反思(Reflectiveness)、情感多样性(Emotion Diversity)、情绪稳定性(Sentiment Stability)、**共情(Empathy)**等。
-
标注记忆探测问题:为了评估LLM的记忆能力,论文还标注了728个记忆探测问题,这些问题需要模型参考过去的对话才能正确回答。
一、大模型风口已至:月薪30K+的AI岗正在批量诞生
2025年大模型应用呈现爆发式增长,根据工信部最新数据:
国内大模型相关岗位缺口达47万
初级工程师平均薪资28K
70%企业存在"能用模型不会调优"的痛点
真实案例:某二本机械专业学员,通过4个月系统学习,成功拿到某AI医疗公司大模型优化岗offer,薪资直接翻3倍!
二、如何学习大模型 AI ?
🔥AI取代的不是人类,而是不会用AI的人!麦肯锡最新报告显示:掌握AI工具的从业者生产效率提升47%,薪资溢价达34%!🚀
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
1️⃣ 提示词工程:把ChatGPT从玩具变成生产工具
2️⃣ RAG系统:让大模型精准输出行业知识
3️⃣ 智能体开发:用AutoGPT打造24小时数字员工
📦熬了三个大夜整理的《AI进化工具包》送你:
✔️ 大厂内部LLM落地手册(含58个真实案例)
✔️ 提示词设计模板库(覆盖12大应用场景)
✔️ 私藏学习路径图(0基础到项目实战仅需90天)
第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
* 大模型 AI 能干什么?
* 大模型是怎样获得「智能」的?
* 用好 AI 的核心心法
* 大模型应用业务架构
* 大模型应用技术架构
* 代码示例:向 GPT-3.5 灌入新知识
* 提示工程的意义和核心思想
* Prompt 典型构成
* 指令调优方法论
* 思维链和思维树
* Prompt 攻击和防范
* …
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
* 为什么要做 RAG
* 搭建一个简单的 ChatPDF
* 检索的基础概念
* 什么是向量表示(Embeddings)
* 向量数据库与向量检索
* 基于向量检索的 RAG
* 搭建 RAG 系统的扩展知识
* 混合检索与 RAG-Fusion 简介
* 向量模型本地部署
* …
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
* 为什么要做 RAG
* 什么是模型
* 什么是模型训练
* 求解器 & 损失函数简介
* 小实验2:手写一个简单的神经网络并训练它
* 什么是训练/预训练/微调/轻量化微调
* Transformer结构简介
* 轻量化微调
* 实验数据集的构建
* …
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
* 硬件选型
* 带你了解全球大模型
* 使用国产大模型服务
* 搭建 OpenAI 代理
* 热身:基于阿里云 PAI 部署 Stable Diffusion
* 在本地计算机运行大模型
* 大模型的私有化部署
* 基于 vLLM 部署大模型
* 案例:如何优雅地在阿里云私有部署开源大模型
* 部署一套开源 LLM 项目
* 内容安全
* 互联网信息服务算法备案
* …
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。
这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】