耶鲁团队揭示多头自注意力结构的上下文学习机制,证明梯度流算法的收敛性 耶鲁团队揭示多头自注意力结构的上下文学习机制,证明梯度流算法的收敛性
admin
2024-05-04 17:43:51
0

众所周知,目前的大模型大多基于 Transformer 架构。Transformer 的核心结构是多头自注意力模型(multi-head self-attention model)。

大模型的一个重要能力是所谓的“上下文学习”。具体来说,当大模型的参数训练好之后,用户和大模型的交互方式,是通过提供上文来获得大模型的下文,这时大模型的参数是固定的。

当所提供的上文包含一些关于同一主题的输入输出例子时,大模型可以根据给的这些例子,学到这些例子背后的主题,从而可以在给到一个新输入时,回答正确的输出。

比如,上文可以是:


(来源:资料图)

这时,Claude 3 大模型的回答是:


(来源:资料图)

由图可知,Claude 根据这些例子意识到“+”其实代表着减法,故能针对“10+5=?”这一新问题给出正确回答。

上下文学习,是大模型的一个基础能力。使用大模型时的其他更复杂方式比如 Chain-of-thought reasoning,都是以此为基础。

但是,从原理来看上下文学习的机制并不是很清楚。很大原因在于大模型作为一个系统,它不仅非常复杂,而且模型参数非常多,训练数据也非常大。

为了更好地理解上下文学习,美国斯坦福大学团队曾在 GPT-2 架构之下,针对大模型如何使用上下文,学习解决简单的回归预测进行了研究。

其发现当使用简单函数的数据来训练大模型时,训练好的大模型,可以通过上下文学到这些简单函数。

一个特别的例子便是线性函数。这时的训练数据是一些线性数据 x_1,w x_1,…,x_n,w x_n,其中 w 是高斯随机向量。

换句话说,每个“句子”里都有 n 个线性函数的例子,而这个线性函数是随机的。


(来源:https://arxiv.org/pdf/2208.01066.pdf)

以此为启发,美国耶鲁大学助理教授杨卓然和团队,希望可以从理论上研究这种训练过程是否收敛、以及收敛到哪里,也希望厘清多头自注意力结构到底是如何实现上下文学习的。

随后,他和所在团队考虑了一个最简单的模型:一层多头自注意力模型。


(来源:arXiv)

具体来说在本次课题之中,他们研究了训练多头自注意力模型(multi-head self-attention model)的优化问题。

尤其是,他们回答了这样一个问题:在使用一层多头自注意力模型(one-layer multi-head self-attention model)进行上下文学习时:

首先,梯度优化算法是否能够收敛?

其次,梯度优化算法收敛到的解统计性质如何?

再次,从网络结构的角度看,多头自注意力模型是如何进行上下文学习的?

期间,他们所使用的训练数据是多任务线性模型(multi-task linear regression)。

特别地,每个线性模型的参数 G 在一个固定的正交基下,有一个分块对角的分解。

也就是说如果能找到这组基,这个线性模型就可以分解成 H 个独立的线性模型。

对于每个参数 G,能够生成 L 个(x,y)对,并且可以让 Transformer 推测一个随机的 q 所对应的 y 是什么。


(来源:arXiv)

在这种多任务线性数据上,课题组使用梯度流来训练 Transformer,进而研究这一算法的收敛问题。

通过此,他们发现:梯度流算法的确是收敛的。并且收敛有三个阶段——(a)预热阶段、(b)任务分配阶段 、以及(c)最终收敛阶段。

在(a)这一预热阶段,损失函数缓慢下降。

在(b)这一“任务分配阶段”,损失函数迅速下降。并且,softmax 函数使得每一个自注意力头只关注多任务线性模型的一个任务,该团队把这一现象称为“任务分配”。

在(c)最终收敛阶段,每个自注意力头继续对它被分配的任务求解,最终达到收敛。


(来源:arXiv)

此外,他们还描述了梯度流学习的极限模型的上下文学习预测误差。

当 (d/L) 趋于零时,误差衰减到零,其中 d 是线性模型的维数,L 是上下文学习中(x,y)例子的数量。

并且,该团队还证明多头自注意力模型,显著好于单头自注意力模型。所预测的误差相差 H 倍之多,其中 H 是注意力头的个数。

换句话说,注意力头的个数越多,性能差距越大。

据介绍,该团队的分析主要基于对自注意力权重的分解。

自注意力机制里主要有两类权重:QK 权重(query-key)和 OV 权重(output-value)。其中,QK 权重反应着 query 和 key 的关系。

简单来说,就是给定了 query q(新的输入)和过去的例子(x,y)的关系。

而 QK 权重反应着 attention 对每一个过去的例子的重视程度。

OV 权重反应着输出和每一个输入例子(x,y)的关系,即 attention 如何通过组合上下文学习中的例子从而得到输出。

需要注意的是在回归问题里面,q 是一个输入,和 x 有一样的维度,输出和 y 有一样的维度。

课题组发现,QK 权重和 OV 权重都是分块的,并且 QK 权重的 X-X 分块和 OV 权重的 Y 分块最为重要。

也就是说,在回归问题里只需使用 q 和例子里的 x 比较得到注意力值(attention score)。

在输出时,只需要根据注意力值(attention score)来合并例子里的那些 y。

而通过利用数据的线性结构,他们发现 QK 权重和 OV 权重的分块结构,可以被梯度流算法保持。

更特别的是,因为多任务线性模型的参数 G 可以在某个基下分解,凭借此他们证明 QK 权重和 OV 权重也是可以被分解的。

这样一来,就可以把参数的梯度流化,简为奇异值的梯度流,这时就只需要分析奇异值的变化。

其中,总共有 H*(d_x + d_y)个奇异值,每个头的 QK 权重有 d_x 个奇异值,OV 权重有 d_y 个奇异值。

而 d_x 是 x 的维度,d_y 是 y 的维度,也就是多任务线性模型的任务数量。

并且,每个自注意力头的 OV 权重的奇异值,反应着自注意力头对于对应任务的重视程度。

随后,该团队开始分析这些奇异值的变化。他们发现自注意力头的任务分配基于“OV 权重–每个任务”的原则,来将最大的自注意力头分给对应的奇异值。

比如,第一个任务被分配给了第一个奇异值最大的自注意力头。

最终,在梯度流达到收敛之后,根据任务分配机制,每个自注意力头的 OV 权重只有唯一一个非零的奇异值。


(来源:arXiv)

至此,本次研究基本结束。日前,相关论文以《多头软 MAX 对情境学习的关注:出现性、收敛性和最佳性》(Training Dynamics of Multi-Head Softmax Attention for In-Context Learning: Emergence, Convergence, and Optimality)为题发在 arXiv[1]。


图 | 相关论文(来源:arXiv)

陈思宇和王天浩分别是第一作者和第三作者,杨卓然担任通讯作者。其中,王天浩将于 2025 年秋入职美国加州大学圣地亚哥分校。


图 | 杨卓然(来源:杨卓然)

不过,课题组仍然觉得自己对于 transformer 和上下文学习的理解还非常粗浅。

目前,他们只研究了一层自注意力模型。后续,他们希望能够研究多层的自注意力模型。

与此同时,目前他们只研究了线性模型。因此,他们也非常希望研究非线性的上下文学习问题。

此外,目前课题组给到 transformer 的输入,是独立同分布的(x,y)输入输出数据对,这里输入并没有任何复杂的前后依赖结构。

但是,实际用来训练 transformer 的数据都是文本数据,里面有复杂的依赖结构,针对此他们也将继续加以探索。

参考资料:

1.https://arxiv.org/pdf/2403.00993

排版:罗以

01/ 或将塑料转为小分子化合物,科学家实现聚苯乙烯的可控降解,降解产物分子量低于1000Da

02/ 北大团队发现类病毒颗粒新机制,将发展基于类病毒颗粒的RNA递送体系,助力研发新型疫苗

03/ 西交大团队实现自组装六方氮化硼纳米片制备大面积薄膜,兼具高探测率与低暗电流,可用于空间微光探测

04/ 光电催化制氢领域迎新突破:科学家开发氧化亚铜薄膜制备新方法,将载流子迁移率提升1个数量级

05/ 科学家提出GenAINet框架,能让工业机器人互换经验,让AI网络成为综合智能体


相关内容

热门资讯

【看表情包学Linux】进程地...   🤣 爆笑教程 👉 《看表情包学Linux》👈 猛...
育碧GDC2018程序化大世界... 1.传统手动绘制森林的问题 采用手动绘制的方法的话,每次迭代地形都要手动再绘制森林。这...
编译原理陈火旺版第三章课后题答... 下面答案仅供参考! 1.编写一个对于 Pascal 源程序的预处理程序。该程序的作用是...
MacBookPro M2芯片... MacBookPro M2芯片下如何搭建React-Native环境目录软件下载环境配置 目录 写在...
Android studio ... 解决 Android studio 出现“The emulator process for AVD ...
pyflink学习笔记(六):... 在pyflink学习笔记(一)中简单介绍了table-sql的窗口函数,下面简单介绍下...
创建deployment 创建deployment服务编排-DeploymentDeployment工作负载均衡器介绍Depl...
gma 1.1.4 (2023... 新增   1、地图工具    a. 增加【GetWorldDEMDataSet】。提供了一套 GEO...
AI专业教您保姆级在暗影精灵8... 目录 一、Stable Diffusion介绍    二、Stable Diffusion环境搭建 ...
vue笔记 第一个Vue应用 Document{{content}}{{...
Unity自带类 --- Ti... 1.在Unity中,自己写的类(脚本)的名字不能与Unit...
托福口语21天——day5 发... 目录 一、连读纠音 二、语料输入+造句输出 三、真题 一、连读纠音 英语中的连读方式有好几种...
五、排序与分页 一、排序 1、语法 ORDER BY 字段 ASC | DESC ASC(ascen...
Linux系统中如何安装软件 文章目录一、rpm包安装方式步骤:二、deb包安装方式步骤:三、tar....
开荒手册4——Related ... 0 写在前面 最早读文献的时候,每每看到related work部分都会选择性的忽略&...
实验01:吃鸡蛋问题 1.实验目的: 通过实验理解算法的概念、算法的表示、算法的时间复杂度和空间复杂度分析&...
8个免费图片/照片压缩工具帮您... 继续查看一些最好的图像压缩工具,以提升用户体验和存储空间以及网站使用支持。 无数图像压...
Spring Cloud Al... 前言 本文小新为大家带来 Sentinel控制台规则配置 相关知识,具体内容包括流控...
多项目同时进行,如何做好进度管... 多项目同时进行,如何做好进度管理? 大多数时候,面对项目进...
ATTCK红队评估实战靶场(二... 前言 第二个靶机来喽,地址:vulunstack 环境配置 大喊一声我...