最近阅读3-关于蒸馏,attention结构改动,和模型对齐

蒸馏

LoT

原文:《Learning from Teaching Regularization: Generalizable Correlations Should be Easy to Imitate》

1、要解决的问题

训练数据中有很多噪音,而神经网络容量很大,很可能在训练中拟合了噪音。

要减少噪音的拟合,常用方法是使用L1/L2 regularization、dropout和模型平均等做法,而这些做法依赖人工设计。

另一个方法是用一个教师模型进行知识蒸馏,尝试把知识抽象出来。

那么怎么让模型更好地学习可泛化的知识,减少拟合噪音呢?

2、思路

一个假设是,可泛化的知识,更容易被模型学习(因为有规律有关联有逻辑),而噪音数据更难学习。

比如一首古诗,容易背诵,但是一个乱码字符串,就不好背诵。

3、方案

基于这个思路,论文优化了一个知识蒸馏的做法。

具体来说,在原来知识蒸馏的方案上,计算一个关于「学生模仿教师的难度」的指标,作为正则化项。

这个「模仿难度」计算用的是教师和学生之间的KL散度,也就是 KL(S||T)(KL散度是不对称的)。

蒸馏的时候,计算教师模型的loss为正常token分类损失(即task loss),加上这个正则项KL(S||T),而学生模型的loss依然是知识蒸馏的KL散度,KL(T||S)。

训练的时候,不只学生模型更新,而且教师模型也会更新。教师模型更新一步,学生模型学习N步,这期间教师模型保持不变。

效果上,算是略略有提升吧。

AgentDistill

原文:《AgentDistill: Training-Free Agent Distillation with Generalizable MCP Boxes》

1、背景

传统的agent模型蒸馏,是用教师agent生成「思考-工具-思考-工具」的长链,并让学生agent学习每一步的操作。

这样的学习粒度很细,难度比较大。而且由于轨迹比较长,动作空间很大,探索过的路径很稀疏,学生agent比较难泛化到没见过的情况。

核心问题就是要降低学生agent的成本,提升学生agent的效果。

2、方案

(1)MCP构建

发现教师agent在处理问题时,会调用很多工具,这些工具可以通过抽象、聚类、合并等方法构建成一个MCP库,这里面的工具可以仅通过改变参数来获得不同的能力。

(2)学生agent推理

学生推理的时候,不用学习细粒度的内容,而只要学习怎么调用这些工具即可。

而这些工具可以通过description进行功能描述,从而使得学生agent不用训练也能有效果提升。

其实相当于教师agent用它的经验总结了一批操作,固定了其中的细节;而学生agent直接使用这些工具,不需要知道其中的细节,只需要作出high level的决策,难度就降低了。

Reinforcement Learning Teachers of Test Time Scaling

原文:《Reinforcement Learning Teachers of Test Time Scaling》

1、要解决的问题

要优化一个模型的效果,存在几个方法。

一个方法是RL,而RL的问题是reward依赖最终答案质量,因此奖励信号比较稀疏,这就有两个问题:

  • Exploration Challenge:actor模型在训练起始的时候,具备一定的能力,能够探索到正确答案,也就是要有足够的潜力
  • 效率不高:稀疏的奖励信号使得需要进行较多的尝试才能获得有效反馈,整体的训练效率不高

另一个模型优化方法是使用监督蒸馏:收集teacher模型的输出轨迹,过滤出正确case,并用后处理(如语法修正)制作数据集蒸馏学生模型。

不过蒸馏同样存在局限性:

  • teacher模型和student模型的起始分布差异较大,teacher的轨迹可能不适合student学习,蒸馏效果不好
  • 为了弥补teacher模型和student模型起始的gap,需要进行一些中间训练对齐阶段,或者数据的后处理

2、思路

这篇论文的思路是结合RL和蒸馏这两个方法,合成一个新框架 -- Reinforcement-Learned Teachers, RLT。

RLT的核心思想是将传统的RL训练目标从“从零开始解决问题”转变为“提供有效的解释以帮助学生模型学习”。

3、方案

RLT框架里有两个模型,教师模型和学生模型,这两个可以初始化自相同模型,也可以不同。

(1)数据

首先需要一个包含问题、答案和推理过程的数据集,文中用的是包含17k样本的数学 & 代码数据集。

(2)格式学习

用准备的数据集,对教师模型(也就是RLT)进行小规模的预训练,主要是学习数据的格式:学习「给定问题和答案」 -> 「生成步骤」的格式。

提升后续RL阶段初期探索的成功率。

(3)强化学习

RL阶段所用优化方法是GRPO。

step 1

对每个输入的 问题(\(q_i\))+ 答案(\(s_i\)) 数据,RLT采样生成多组解释步骤(\(o_i\))。

step 2

计算奖励,奖励分成2部分。

一个是学生对于一个解释的理解程度,学生能否基于解释\(t_{o_i}\)预测正确答案\(s_i\)\(t_{o_i}\) 是从 \(o_i\) 里抽出来的思考内容,不包含答案。

具体计算是:

\[\log\pi_s(s_i | t_{o_i}, q_i)\]

这个越高越好。

另一个奖励是逻辑自然性。具体来说,在上下文只有问题的情况下,教师模型和学生模型的思考token分布的相近程度:

\[D_{KL}(\pi_{\theta}^{t_{o_i}} \| \pi_s^{t_{o_i}})\]

这个越低越好。

根据奖励更新RLT的参数,而不动学生模型。

这一步相当于让RLT学习怎么教学生。

(4)蒸馏

用上一步得到的RLT,生成数据,给学生模型学习。

attention结构

2-SIMPLICIAL ATTENTION

原文:《FAST AND SIMPLEX: 2-SIMPLICIAL ATTENTION IN TRI-TON》

1、背景

常规的attention限制了scaling law的发展,现有的优化方法有:

  • 线性注意力(Mamba):计算效率高,但是效果差点
  • 循环transformer:效果不错,但是不好加深模型训练

这些方法没有改变attention的计算,只能评议scaling law曲线,不能改变缩放系数。

2、思路

直接改attention,提升计算效率效果。

3、方法

把linear attention改成trilinear attention。

什么是trilinear attention?简单来说linear attention捕捉的是两个向量之间的关系;而trilinear attention,顾名思义,捕捉的是三个向量之间的关系。

直观不严谨地理解一下:

  • 双线性:判断“A 和 B 是否相关”。
  • 三线性:判断“A、B、C 是否满足特定逻辑规则”。

多了一个输入,trilinear attention能捕捉的关系就更为复杂。

不过trilinear attention在transformer上的应用也更为复杂,计算复杂度也更高。具体看下表:

模块 标准 Transformer (双线性) 2-Simplicial Transformer (三线性) 变更说明
投影矩阵 3个:\(W_Q, W_K, W_V \in \mathbb{R}^{d \times d}\) 5个:新增 \(W_{K'}, W_{V'} \in \mathbb{R}^{d \times d}\) 参数增加 67%,输入相同序列 \(X\),输出多两组 Key/Value 向量
Q/K/V 计算 \(Q = XW_Q\), \(K = XW_K\), \(V = XW_V\) 新增 \(K' = XW_{K'}\), \(V' = XW_{V'}\) 每个 token 额外产生两个表征向量
注意力 Logits \(A_{ij} = \langle q_i, k_j \rangle / \sqrt{d}\) \(A_{ijk}^{(2s)} = \langle q_i, k_j, k_k' \rangle / \sqrt{d}\) 维度从 \(n \times n\) 变为 \(n \times n \times n\),需三线性计算
输出计算 \(\tilde{v}_i = \sum_j S_{ij} v_j\) \(\tilde{v}^{(2s)}(i) = \sum_{j,k} S_{ijk}^{(2s)} (v_j \circ v_k')\) 输出融合两个 Value 的 Hadamard 积 (\(\circ\)) 而非单一 Value
位置编码 RoPE 直接适用 需改造:使用行列式 \(\operatorname{det}(\cdot)\) 函数 因三线性破坏旋转不变性,需基于体积计算的新形式(公式9)
复杂度 \(\mathcal{O}(n^2)\) 全序列 \(\mathcal{O}(n^3)\),窗口优化后 \(\mathcal{O}(n w_1 w_2)\) 需滑动窗口限制计算范围(如 \(w_1=512\), \(w_2=32\))

由于计算复杂度太高,文中实现用到了滑动窗口。

另外效果还不太明朗,需要让子弹飞一会。

模型对齐

Well Begun is Half Done

原文:《Low-resource Preference Alignment by Weak-to-Strong Decoding》

1、要解决的问题

核心问题:在低资源条件下(少数据/少卡),如何高效提升LLM的对齐能力,同时避免对齐税和计算开销。

通常来说,大模型需要微调,以适配人类的偏好,包括提升安全性之类的。但是直接微调有几个问题:

  • 对于大模型,成本不低
  • 预训练的能力可能在微调阶段受损,也就是对齐税

2、思路

直观来说,给定一个输入,base模型(未对齐)最开始生成的token,要符合人类要求,是一个难度比较大的任务。这个难度是相对靠后生成的token而言的。

因为response中,开头部分的token决定了后续token生成的思路,靠后的token只需要跟着前面token的思路继续完善细节就可以。

这是直觉的想法,那怎么量化一个token生成的难度呢?ppl可以作为一个指标。生成一个token时,如果ppl很高,说明选择很不确定,难度就大,反之难度就小。

以ppl为指标,文中做了实验。

首先,抽样一批包含well-aligned response的query数据。对于每个query,采样生成9条response的前100个token,可以称之为sample predix。

这9条sample prefix和well-aligned response的前100个token放在一起,计算每条的平均ppl,发现well-aligned response的排名并不高。

这说明在生成的早期阶段,从ppl上看,「好」的response并不突出,base模型(未对齐)并不容易选中这个路径。

另外,发现随着token数增多,后续token的ppl迅速降低,这也和前面直觉的认知一致。

总结起来就是:生成的开头部分很重要。

那就有一个思路了:着重解决开头的生成问题,把前面对齐好。

3、方案

基于这个思路,论文提出Weak-to-Strong Decoding (WSD)框架:通过小的对齐模型(draft model)起草响应开头,大基础模型(base model)继续生成剩余部分。

小模型还是按正常的方法微调。

那么有一个问题就是什么时候从对齐的小模型切换到未对齐的大模型。

文中用的方法:

  • 用一个大小为w的滑动窗口,跟踪最后w个token上,大模型的置信度
  • 计算滑动窗口内置信度的几何平均,如果这个平均值超过阈值,说明当前prefix提供的信息已经足够且稳定,可以切换了

博客:http://www.linsight.cn/
知乎:Linsight
微信公众号:Linsight
博主微信号(添加请注明来意):


【推荐文章】
- Agent:
DeepResearch的报告生成方法
从RAG到DeepSearch
阿里通义Lab: WebWalker,WebDancer和WebSailor
Agent评测数据集
Agent完全手册(零):三大模块,三个理念
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的细节
- 论文阅读:
最近阅读--关于数据合成、agent、reasoning和多任务
最近阅读2-关于自适应深度思考、context engineering和模型训练
- 大模型算法题:
(1)(2)(3)(4)(5)(6)(7)(8)(9)