如您有工作需要分享,欢迎联系:aigc_to_future
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个记忆探测问题,这些问题需要模型参考过去的对话才能正确回答。
致谢
如果您觉得这篇文章对你有帮助或启发,请不吝点赞、在看、转发,让更多人受益。同时,欢迎给个星标⭐,以便第一时间收到我的最新推送。每一个互动都是对我最大的鼓励。让我们携手并进,共同探索未知,见证一个充满希望和伟大的未来!
技术交流
加入「AI生成未来社区」群聊,一起交流讨论,涉及 图像生成、视频生成、3D生成、具身智能等多个不同方向,备注不同方向邀请入群!可添加小助手备注方向加群!
没有评论:
发表评论