最近阅读--关于数据合成、agent、reasoning和多任务
新增一个栏目,写写平时读的文献,主要看思路。
数据合成
多轮对话数据合成:Review-Instruct
原文:ACL2025:《Review-Instruct: A Review-Driven Multi-Turn Conversations Generation Method for Large Language Models》https://arxiv.org/abs/2505.11010
1、要解决的问题
现在的LLM使用的对话训练数据大部分是单轮的,而少量多轮的数据,上下文的逻辑联系也不多,导致在多轮对话场景下,LLM的能力相比单轮要差一些。
因此,要想办法提升多轮对话数据的上下文联系,和难度(最主要的就是难度)。
一些依赖LLM合成数据的方法,多样性和难度不足。
2、方法
Review-Instruct提出“Ask-Respond-Review”三阶段迭代流程,来提升多轮合成数据的难度。
具体来说,对于每一条query(相当于用户的第一轮问题),candidate LLM先生成对应的response。在这个条件下,我们想要获取和这轮对话深度相关的后续问答。
先使用一组reviewer(每个reviewer是一个LLM Agent)对前一轮生成的response进行评审,主要包括回答的深度、丰富度、相关性、连贯性等,并提出一些意见,比如“要在xx方面回答得更深入一些”“需要关注xx的长期影响力”。然后有一个chairman(也是一个LLM Agent),整合多个reviewer的意见,然后对前一轮的response进行追问(相当于用户的下一轮追问),这样多轮对话在上下文中的关联性和难度就获得了提升。
Agent
Toward a Theory of Agents as Tool-Use Decision-Makers
原文:https://arxiv.org/abs/2506.00886
主要是一些认知和agent设计原则:
- 知识边界:提升模型决策效率的一个要点是:知道自己知道什么,知道自己不知道什么
- 决策边界:模型需要知道自己什么时候“想”,什么时候“做”
- 理想情况是:知识边界和决策边界重合,知道的就想,不知道就找
- 想和做本质上应该是平等的,都是一个工具
最后这一点,把think看作工具,和下面这个有些相关。
Anthropic:把think当做工具
原文:https://www.anthropic.com/engineering/claude-think-tool
1、think tool 和 extended thinking
extended thinking:如DeepSeek-R1的深度思考,在正式回答前。
think tool:在回答过程中,可以停下来思考,模型自己决定什么时候需要停下来思考,就像在深度思考中调用工具一样自然。
2、think tool
说白了,think tool就是propmt + LLM,根据不同的需要求,设计propmt,接收不同的输入和输出。description会明确介绍这个思考工具的功能,好让模型自己决定什么时候调用。
用不同的prompt就可以得到不同的思考工具。
决定是否使用think tool:ReAct方式来决定工具的调用。
think tool获取的结果再通过prompt加到原模型的上下文。
reasoning模型
Innate Reasoning is Not Enough
原文:《Innate Reasoning is Not Enough: In-Context Learning Enhances Reasoning Large Language Models with Less Overthinking》https://arxiv.org/abs/2503.19602
1、背景
CoT在非reasoning模型上很有效果,那CoT在reasoning模型上效果如何?对这个问题做了一些实验。
2、发现
以R1-Qwen-xxB各种规模的模型做实验。
(1)CoT在reasoning LLM也有效果
CoT在不同规模的reasoning模型和不同任务上的效果:
小模型 | 大模型 | |
---|---|---|
简单任务 | CoT提升较多 | CoT提升较少 |
困难任务 | CoT提升较少 | CoT提升较多 |
总结来说,就是在模型容量适配的任务上,CoT效果更好。
在简单任务上,效果随着思考长度的增加,呈现先上升后下降的趋势。也就是,一定的思考可以提升效果,而过多的思考则损害效果。
(2)CoT能减少冗余思考
- 直接prompt:生成的思考token数量分布分散,且存在大量冗余
- Few-shot CoT:能有效集中思考token的分布,减少冗余
- Zero-shot CoT:介于直接提示和Few-shot CoT之间
直观上来想,有CoT或者few-shot,模型更容易理解指令,从而减少不必要的思考步骤。
Few-shot CoT中,One-shot CoT效果最佳。
(3)reasoning对反思词汇的attention异常高
分析attention logits发现:reasoning模型对反思相关词汇(如“Wait”“Ensure”)分配了异常高的注意力。
而基础模型未表现出这种模式,表明reasoning LLM在训练中过拟合了反思机制。
CoT提示通过外部引导缓解了这种过拟合行为。
Mixture-of-Thought
原文:《Learning to Reason via Mixture-of-Thought for Logical Reasoning》https://arxiv.org/abs/2505.15817
1、要解决的问题
让模型使用自然语言进行思考和推理是现在的主流方式,但是自然语言推理有其局限性,在很多问题上的效果不够好。
2、方法
(1)3种推理方式
既然一种推理方式有问题,那就多弄几种不同形式的推理CoT。
- 自然语言推理(NL CoT)
目前最常用。适合用于需要常识、逻辑深度较浅、开放语义场景的推理。
- 代码推理(code CoT)
结构化的推理方式,在这篇论文中仅写代码,不执行。
类定义、函数定义适用于规则约束、状态转移的场景。
- 真值表推理(Truth Table CoT)
这篇论文新创的,也是结构化的推理。真值表适用于多种情况需要遍历的场景。
(2)训练 & 推理
这3种方式适用于不同的情况,那么一个使用方式就是对于一个任务,用三种方式都跑一遍结果,然后投票。
为了提升效果,需要训练模型。训练数据是合成的,三种都合成,然后根据正确答案进行过滤,保留合理的推理轨迹。
然后用合成的数据训练模型。这个「合成数据」->「训练」的模型会迭代几次,下次的数据合成模型就用这轮训出来的最佳模型做。
训练方式
主动学习:Self-Adapting Language Models
原文:https://arxiv.org/abs/2506.10943
提出SEAL学习框架。
1、要解决的问题
背景是让LLM来处理新任务。
LLM依赖SFT或者ICL来处理新的任务,但是SFT需要预先获取大量高质量的训练数据;ICL不用训练,但ICL无法持久化,效果也不如SFT。
2、思路
SFT是被动地学习,而人在学习的时候,除了被动学习,还有主动学习,就像学生除了听课(被动学习)还会整理笔记(主动学习),用更清晰的格式和说法来帮助自己理解知识。写技术博客也是一种以输出帮助学习的方法。那模型如果能自己整理知识,那应该也能学得更好。
3、方法
自己整理知识自己学习,简单来说就是自己生成数据,再训练自己。
比如说现在要在一个知识数据集上训练,以提升LLM在这个领域的知识水平。原始的训练数据集D={(C,τ)},其中C是一个知识文档,τ是用于验证在这个文档上学习效果的数据,可以是C相关的知识问答题、选择题之类的(有答案的那种)。
本来微调是拿C直接训,而SEAL不拿C直接训,而是:
- 1、用LLM从C生成多个self-edit(SE)数据
- 2、在每个SE上用LoRA训练LLM,获得LLM'
- 3、用τ评测第2步训练出来的LLM',获得reward r
- 4、选择第3步中有正收益的SE,和对应的r,通过强化学习(ReST^EM方法)来更新LLM(不是LLM')
SE里除了来自C的增强数据,还有用于训练LLM的超参,这相当于让模型学习怎么更新自己的参数。
对于不同的数据类型,τ也不同,主要原则就是τ需要能够评测训练结果,获得reward。
多任务免训练泛化:Text-to-LoRA
原文:https://arxiv.org/abs/2506.06105
1、要解决的问题
如果我们有多个任务要处理,需要收集多个任务的数据,然后训练多个LoRA。这样的做法任务和LoRA一一对应,成本高,再加入新的任务的时候又要重新训练新的LoRA。
2、思路
如果能搞一个工具,这个工具的输入是文本,输出是LoRA,那么以后就不用训练LoRA了。Text-to-LoRA的目的就是搞这么一个工具。相当于获得LoRA泛化器,这个LoRA泛化器称之为T2L,是一个hypernetwork。hypernetwork的输出是另一个神经网络。
3、方法
T2L的输入是query,输出是LoRA参数。T2L本身也是个神经网络,原文设计了几个不同的变体,但是参数量都很少,比单个LoRA大不了多少。
获得T2L有两种方法。
(1)Reconstruction
如果我们已经有很多LoRA参数(实验是479)个,那么可以直接让T2L学习input query到LoRA参数的构建,误差就是hypernetwork输出的AB矩阵和真实的AB矩阵的误差。
(2)直接SFT
如果我们没有训练好LoRA,但是有数据(input,label),那对于每条input,可以先获得T2L的AB矩阵,把AB矩阵加到Base Model上,获得输出,计算输出和label的loss,反向传播训练T2L的参数。
4、效果
根据文中测试,T2L方法的效果介于单独LoRA训练和,和prompt engineering之间。
5、收益
收益就是如果T2L hypernetwork泛化性够好,那么就对于新任务,可以直接提升效果(效果优于prompt工程),而不需要训练新的LoRA了。
博客:http://www.linsight.cn/
知乎:Linsight
微信公众号:Linsight
博主微信号(添加请注明来意):
【推荐文章】
- Agent:
Agent完全手册(零):三大模块,三个理念
DeepResearch的报告生成方法
从RAG到DeepSearch
agent调研(1)--MetaGPT,OpenManus和OWL
Devin和Anthropic的Agent开发经验
- MoE:
DeepSeek-V3细节探索
MoE模型的前世今生
DeepSeek-V2和MLA
昆仑万维-SkyworkMoE
成本10w刀的JetMoE
MoE的top-p
routing
对MoE模型的一些观察
从dense到MoE -- sparse
upcycling
MoE路由--expert choice
routing
- 端侧模型:
苹果智能系统模型--AFM
MiniCPM
适合移动设备的语言模型--MobileLLM
phi系列模型
Gemma2
苹果的OpenELM
bilibili的index-1.9B
- 预训练:
Qwen3实测&技术报告
代码大模型(一)--业界现状
代码大模型(二)--OpenCoder
LLM高效预训练(一)
LLM高效预训练(二)
Llama3.1--预训练要点一览
Qwen2技术报告
Yi技术报告-划重点看细节
InternLM系列模型
GLM4报告的一些技术点
从Yuan2.0到Yuan2.0-M32
从loss视角理解大模型涌现能力
- 数据:
训练数据合成(一)
训练数据合成(二)
训练数据合成(三)
LLM预训练数据策略(一)
预训练数据处理--长度分解
- 长上下文:
Qwen2.5-1M技术解析
LLM长上下文的问题
解锁大模型长上下文能力
大模型推理窗口-从有限到无限大
prompt压缩(一)
prompt压缩(二)
reasoning压缩(一)
- 推理加速:
大模型推理加速-投机解码
大模型推理加速-MEDUSA
- 对齐:
深度求索DeepSeek-R1详解
基模型Cognitive
Behaviors对RL的影响
Llama3.1--post-training要点一览
模型平均 -- model
soup
大模型偏好对齐-DPO
大模型偏好对齐-ODPO
大模型偏好对齐-simPO
大模型偏好对齐-IPO
- Transformer:
理解Attention:从起源到MHA,MQA和GQA
LLM的重复生成和ICL
transformer中normalization的二三事
从代码实现看normalization-到底做了什么
稀疏注意力计算:sliding
window attention
理解LLM位置编码:RoPE
RoPE的远距离衰减
LLM水印
- 训练框架
LLM训练框架:从优化器和精度讲到ZeRO
LLM训练各种并行策略
- 项目应用:
一个模型支持智能助手系统
关于The Bitter
Lesson
- CV:
CV入门--关于Vision
Transformer
CV入门--无监督学习
- 多模态:
多模态入门(一)--CLIP
多模态入门(二)--Flamingo,LLaVA系列和BLIP系列
多模态入门(三)--MiniGPT4,DeepSeekVL,InternVL系列和QwenVL系列
多模态入门(四)--CogVLM,VILA,MM1,MM1.5和Pixtral-12B
多模态入门(五)--InternVL系列
小米的移动UI多模态模型--MobileVLM
DeepSeek-VL2的细节
- 大模型算法题:
(1)、 (2)、 (3)、 (4)、 (5)、 (6)、 (7)、 (8)、 (9)