Transformer架构的自我对抗机制
基于数学理论,研究Transformer注意力机制中token在超球面上的聚集与坍缩现象。实验发现,架构驱动token聚集并最终坍缩,而训练后的权重学会抵抗这一过程,使激活空间保持各向同性分布。
本文为系列文章的开篇之作,核心目标是将注意力机制的数学理论与实际训练好的Transformer模型进行对比分析。话不多说,直接进入正题。
相关链接:
[GitHub仓库]: 实验代码
[原始论文]: Geshkovski等人的论文,是本研究的理论基础
[YouTube讲解视频]: 对原始论文的详细解读
研究背景
先来回顾一下基本框架。这些实验建立在Geshkovski等人那篇题为《Transformer的数学视角》的论文基础之上。这里需要给出“簇”的定义,并描述自注意力机制因其架构而在激活空间中形成的结构。强烈建议阅读原始论文,或观看上述YouTube视频以加深理解。
该论文从数学上证明:如果所有权重矩阵(Q、K、V等)均设为单位阵,那么自注意力机制的激活空间里就会自然形成簇。本博客系列所描述的实验正是这项工作的延伸。我们要探讨的问题是:“如果不用单位阵,而采用随机初始化的矩阵或训练后的矩阵,会发生什么变化?”
论文重点聚焦于自注意力机制。自注意力层之间的层归一化,使得Transformer的残差流可以看作位于维度为d_model的超球面上。注意力的具体形式(源自论文公式2.4和2.5)如下所示。
(公式1)
当所有权重矩阵均设为单位阵时,注意力简化为:
(公式2)
逆温度β决定了注意力集中的锐利程度。这样一来,我们就不再把QK和VO电路视为一套用于搬运信息的管道,而是将注意力看作一组从某个初始条件出发、位于超球面上的粒子,随着注意力在网络各层推进而发生相互作用。我们的Transformer本质上是一个粒子系统。
论文的视角是:这些相互作用的粒子其实就是来自提示(prompt)的令牌(token),穿过嵌入层后被放置到超球面上,然后在球面上彼此互动。这就是我们激活空间的结构。初始时,粒子会依据嵌入层学习到的内容以及位置编码的叠加而分布。论文证明了:如果层数无限多,所有粒子都会坍缩到球面上的一个点(前提是所有矩阵均为单位阵)。在论文的命题3.4中,我们展示了存在一个需要最大化的能量,其定义如下:
(公式3)
最大化此项 → 最大化指数中的内积 → 粒子间的内积越来越大 → 粒子在超球面上演化时相互靠近。粒子聚集成簇。
真正有趣的事情发生在将粒子放到超球面上之后、穿过无限多层之前。粒子并不会各向同性地坍缩到那个最终点,而是在激活空间中聚成一团一团的,形成离散的簇。这种“亚稳态”的中间阶段——我们称之为簇——才是本研究要考察的对象。
一句话概括
Transformer的架构驱动令牌在穿过网络层时先聚集再坍缩。神经网络的权重在训练中学会了抵抗聚集和阻止坍缩。Transformer的工作方式,恰恰是抵抗自身的架构冲动。
实验设置
[机器生成]
模型
GPT-2:
选择它是因为其规模覆盖面广、熟悉度高且表达能力强。GPT-2 small在机械可解释性领域非常受欢迎,被认为是一个足够小便于实验,又足够大可视为“真正”模型(而非玩具模型)的模型。整个家族系列都被使用,以覆盖不同的深度和维度。
GPT-2 Large被使用了两次:一次采用训练好的权重,一次采用随机权重。选择Large而非Small/Medium,是因为Large的动态表现与Medium不同。
| GPT-2: | 层数 | 维度 |
| Small | 12 | 768 |
| Medium | 24 | 1024 |
| Large | 36 | 1280 |
| XL | 48 | 1600 |
Albert:
选择它是因为原始论文使用了它,并且其权重共享架构使得动力学分析更加简洁。Albert是一个重复应用的单个Transformer块:只有一组共享的权重矩阵,因此控制聚集的特性在每个深度都相同。它也是论文中使用的模型。
Albert v2 Base (L=12, 24, 36, 48) 被使用了两次:一次用训练好的权重,一次用随机权重。本文中只使用v2版本。
| Albert: | 层数 | 维度 | |
| v2 Base | 12*, 24, 36, 48 | 768 | |
| v2 XL | 12, 24*, 36, 48 | 2048 |
*表示模型训练时的长度。
Bert:
选择它是因为Bert的双向掩码语言模型预训练产生了不同的路由结构,这使得Bert成为检验理论框架是否与架构无关(还是仅适用于因果模型)的良好测试。
| Bert (uncased): | 层数 | 维度 |
| Base | 12 | 768 |
| Large | 24 | 1024 |
提示(Prompts)
完整配置见这个链接。
- short_heterogeneous (~23个令牌): 两个不相关的句子
- wiki_paragraph (~450个令牌): 关于夏洛特·勃朗特的维基百科文章
- sullivan_ballou (~489个令牌): 萨利文·巴卢1861年写给妻子的信
- paper_excerpt (~306个令牌): 关于Transformer位置编码的学术文本
- homer_iliad (~512个令牌): 《伊利亚特》选段(英文)
- hdbscan_code (~438个令牌): HDBSCAN的Python代码
- camus_letranger (~512个令牌): 加缪《局外人》选段(法文)
- latex_monograph (~496个令牌): 数学LaTeX
- repeated_tokens: 一长串重复的"."令牌,用作控制,有助于理解位置编码。
关于簇的一些分析
存在性
一个重要的问题是:除了论文中给出的玩具模型外,令牌簇在真实模型中是否真的存在?我们很快会证明,答案是肯定的。簇是一种真实存在的现象,出现在Transformer的激活空间中——尽管这个空间并非完全由簇来定义。大约50%的情况下令牌会聚集(见图8),并且这种聚集跨层、跨提示而持续存在。
我们分析了使用训练权重的模型以及使用随机初始化权重(但范数与训练值相同)的模型。横跨GPT-2家族、Albert v2 XL和v2 Base,以及Bert进行了实验。为了简洁,我们主要聚焦GPT-2 Large进行比较,因为在初步分析中它最有趣。
可视化簇
先给出一些通过PCA、t-SNE和UMAP对激活空间的可视化。我们使用HDBSCAN来定义簇。在某些情况下,模型会把粒子聚集到一起并最终坍缩。但这假定权重矩阵是单位阵。那么,在矩阵设为随机或有训练权重的模型中,能否测量到簇?模型的动态是否反映了论文中数学保证的那些性质?
先从最有说服力的可视化开始,让读者相信:在真实模型中,我们确实看到了簇。
图1:在随机模型中,投影很难有意义地展开激活空间。颜色代表由HDBSCAN标记的不同簇(一种离散的簇标记工具)。灰色的'x'标记表示HDBSCAN标记为未聚集的粒子。颜色在不同深度并不对应相同的簇。
图2:类似的图,但针对训练好的GPT-2 Large。可以看到明显更多的簇,每个簇包含的粒子更少。
HDBSCAN聚类解释(可选)
[机器生成]
聚类就是问令牌云一个问题:这些粒子是否组成了不同的组?如果是,哪个粒子属于哪个组?我们不想事先指定组的数量(这个应该被发现,而不是假设),并且需要“这个令牌还不属于任何组”是一个有效答案,而不是错误。HDBSCAN两者都提供。
起点是DBSCAN。一个簇是一个密集区域,被稀疏空间与其他密集区域隔开。如果一个点在其距离ε范围内至少有minPts个邻居,则称为“核心点”;簇通过连接相邻的核心点向外生长;从核心点可到达但不是核心自身的点称为边界点;剩下的所有点都是噪声(标签-1)。这天然地处理了不规则形状的簇,因为密度是局部性质,并且为正在过渡中的令牌留出了空间,而不是强迫每个粒子都属于某个组。
普通的DBSCAN在整个球面上使用一个固定的密度阈值ε,但这对我们来说是个问题:一个能分辨稀疏簇的阈值会合并两个靠近的密集簇,而一个足够紧以分开密集簇的阈值又会抹掉稀疏簇。由于我们事先不知道某个层中令牌的亚稳态簇有多紧或多松,一个固定阈值注定在某个地方出错。
HDBSCAN(McInnes和Healy, 2017)移除了固定阈值,通过构建完整的密度层级而不是只做一次切割:
- 步骤1:互达距离。 对于每个点,计算其核心距离——到第k个最近邻的距离。两点之间的互达距离定义为:
(公式)
这会使密集区域的距离保持不变(因为那里的点已经比它们的核心距离更近),而稀疏区域的距离被放大,将孤立点推得更远。
- 步骤2:最小生成树(MST)。 在整个N×N互达距离矩阵上构建MST。这就是密度结构的骨架。
- 步骤3:凝聚聚类树。 模拟从最稀疏的连接到最密集的连接(等价于降低密度阈值)删除MST边,跟踪哪些分支分裂。这产生了簇生灭的树状图。
- 步骤4:提取稳定簇。 每个分支都有一个“持久性”——它作为独立簇存活的时间长度,随着阈值升高。算法保留最持久的一组非重叠分支;那些分裂出来并很快消亡的分支被重新吸收为噪声。
结果是对位于稳定密集区域的令牌的簇分配,对低密度区域或过渡中的令牌分配噪声标签(-1),以及一个被发现的(而非指定的)簇数量。
我们直接在球面上运行,使用余弦距离(1 - cos(x_i, x_j)),对每一层的L2归一化激活做计算,设min_cluster_size=2,足够宽松,甚至一对令牌也可以注册为一个簇。这是有意的:我们不是在寻找少数几个大的语义类别,而是试图检测论文理论中提到的亚稳态,无论它们出现在哪里。噪声标签在此很重要。在亚稳态期间,一些令牌已经加入了簇,而另一些还没有;一个层中有30%的令牌落在噪声中,意味着这个层正处于聚集的过渡状态。追踪这个噪声分数在层间的变化,是本次分析中更有用的诊断之一。
这里是关于DBSCAN的statquest,以及另一个关于完整HDBSCAN的视频。
我们注意到,在投影下,训练模型的结构比随机模型更加各向同性。这将是贯穿所有实验的共同主题:随机模型表现出强烈的坍缩倾向,而训练模型则抵抗这种坍缩。
随机模型的簇靠得更近,而训练模型将簇分得更开,在激活空间上更均匀。随机模型中未聚集的粒子只出现在特定的子空间,而在训练模型中它们分布得更均匀。
Albert Base的类似投影(可选)
Albert Base中聚集在视觉上更清晰,随机模型中几乎完全坍缩。投影使空间看起来比后面其他图更分散:Albert Base随机模型无法用于很多分析,因为其使用的激活空间坍缩到只有不到2个维度。后续将主要分析GPT-2 Large。
内积
接近1的质量
图3:多个模型的“接近1的质量”。接近1的质量是指每层中内积大于0.9的粒子对的比例。层深度被归一化,因为不同模型可能有不同的层数。如果一个值定格在1,意味着该模型的激活空间已坍缩到一个点,去嵌入矩阵只能解析这个退化点对应的令牌。接近1的质量并不能说明全部故事,我们将在下面扩展内积的分析。
“接近1的质量”详解(可选)
[机器生成]
球面
每个模型都使用均方根层归一化。它将每个令牌残差流向量除以其L2范数再传给下一层。经过此操作,每个令牌向量满足 ||x_i|| = 1。令牌云生活在单位球面上:S^{d-1} ⊂ R^d。
在球面上,两点之间相似性的自然度量是它们的内积:⟨x_i, x_j⟩ = cos θ_ij,其中θ_ij是两个向量之间的夹角。当两个向量都是单位长度时,内积就是余弦相似度。
范围在[-1, 1]之间:
- ⟨x_i, x_j⟩ = 1:两个令牌指向相同方向,因此它们的表示完全相同(忽略归一化)。
- ⟨x_i, x_j⟩ = 0:两个令牌正交,因此它们的表示没有共同方向。
- ⟨x_i, x_j⟩ = -1:两个令牌指向相反方向,因此它们的表示最大程度地负相关。
直方图
对于有n个令牌粒子的层,共有C(n,2)个不同对。计算每对内积,放进直方图。x轴从-1到1。y轴是密度,积分到1。
跨层阅读直方图:
早期层:形成以0为中心的高斯分布。在高维中,球面上的随机向量集中在赤道附近。根据测度集中,大多数高维单位向量之间的内积接近0。
聚集进行中:值在1处增长。当层将相似的令牌推到一起时,一部分对的內积获得高值。直方图出现第二个峰值,向1移动,而主质量仍停留在0附近。每个这样的峰值都描述了聚集/坍缩:内积高的那些对就是已经被拉到一起的令牌。
完全坍缩:所有值都为1。当所有令牌合并成球面上的一个点时,每对内积都等于1。直方图在1处有一个单峰。这就是论文长期预测(共识/单个狄拉克质量)在实证中的样子。
接近1的质量
追踪所有层、模型和提示的完整直方图会产生大量图。我们将直方图简化为一个标量:“接近1的质量”是内积大于0.9的对的比例。
(公式)
这是对“令牌云到目前为止聚集了多少”的一个直接、基于阈值的阅读。如果一个层中接近1的质量从0跳到0.4,那意味着40%的对一下子进入了高度一致的状态,标志着一次合并事件。
内积表示粒子间的接近程度。一个一致的值意味着一定数量的令牌始终聚集在一起,尽管仅凭这个值我们还不能立即判断它们是否在层间保持了稳定的分组。跨层稳定的聚集会随时间产生这种一致的值,我们在GPT模型中或多或少看到了这一点。而簇与其他结构合并并导致完全坍缩——正如论文中概述的那样——则更类似于Albert模型。
对于Albert Base,我们看到在深度约0.8(约第20层)处,模型经历了完全坍缩。所有内积上升到1并不再恢复,意味着所有令牌都位于同一个位置。当模型去嵌入时,输出将只是重复的一两个令牌,一遍又一遍。
所有Albert模型如果运行足够长的时间,最终都会坍缩,因为它们没有预定的长度。它们只是反复应用同一个注意力块的模型,因此所有粒子都永远被吸引到同一点x^*。模型只能抵抗这一点一段时间。它们被训练到归一化深度0.5,因此超出此范围对这些模型来说是分布外的。
我们看到随机情况几乎立即坍缩,而训练模型则抵抗这种坍缩。这是实验的主要结果:架构驱动激活空间坍缩,而权重在训练中学会了抵抗坍缩。我们看到的聚集是架构和坍缩共同作用的结果。权重被明确训练以最小化损失,因此这种扩展/抵抗坍缩必然是由模型准确预测下一个令牌的需求驱动的。任何不用于模型计算的空间都会自动坍缩,并有可能被回收。GPT随机并没有完全坍缩,因为每层每个粒子都被不同的x^*吸引,且每层可能具有不同的x^*。这个移动的目标阻止了完全坍缩,而Albert只维护单个x^*。
直方图动态
图4:随机模型内积的直方图。可以看到对于这个初始化,第一层有一个相当窄的高斯分布,到第5层已经将大多数内积推过了0.9的阈值。在随机初始化下,模型被驱动将所有粒子推到一起。
图5:训练模型内积的直方图。可以看到初始化时方差要大得多,并且不会像随机权重那样将所有内积(标记粒子距离)推到非常高的值。
这些是训练好的与随机的GPT-2 Large的内积,旨在隔离随机模型的动态。可以看到,随机模型类似于论文中将权重设为单位阵的情况,驱动粒子聚集并陷入非常低(如果不是单一)维度的退化状态。训练好的权重抵抗坍缩,而随机初始化的模型则驱动坍缩。
内积分解
图6:粒子内积按交互类型分解:同一簇内的粒子交互、两个不同簇的粒子交互、簇与未聚集粒子的交互、未聚集粒子之间的交互。IP表示内积。Noise表示未聚集的粒子。注意能量(beta设为1)的定义。我们在上面的总结中定义了能量,稍后也会再次用到它。
图7:上述为训练好的GPT-2 Large的相同图,而非随机模型。可以看出,上图中的质量(接近1)主要来自于训练情况中同一簇内的粒子。
在这个内积视角中,我们测量了HDBSCAN定义的簇内以及簇外粒子之间的关系。第一张图给出了我们内积集合的均值,第二张非常类似于上面的“接近1的质量”,但聚焦于粒子是否被聚集,第三张展示了群体大小。
- 随机顶部子图:在随机模型中,簇的内积基本上坍缩到一个点。粒子簇之间的距离一开始就很近,然后变得更加紧密,整个空间陷入近乎退化的状态。由所有粒子内积的指数定义的能量单调上升,正如理论预测的那样。
- 训练顶部子图:我们看到簇内和簇外的粒子之间有明显的区分。虽然簇内的粒子倾向于稍微分开,但其他类别的粒子随着能量下降而远离。能量下降意味着粒子总体上越来越远,直到层末尾才再次靠近。
- 随机第二个子图:可以看到,共享同一个簇的粒子靠得最近。未聚集/未聚集的粒子组是第二高的内积。簇/未聚集粒子紧随其后,不同簇的粒子相隔最远。
- 训练第二个子图:主要由同一簇内的粒子主导。这意味着在训练设置中,如果一个粒子接近占据与另一个粒子相同的状态,那么这些粒子几乎肯定在一个簇中。
- 随机最终子图:大多数交互是第三近的粒子集——簇外的粒子和簇内的粒子。同一簇内的粒子只占很小一部分,因为大多数簇都很小(~5-50个粒子)。
- 训练最终子图:训练和随机设置中看到非常相似的结构。
一个有趣的点是第二个子图中第二高的内积集:随机模型中噪声/噪声交互是第二高的值,而训练模型中簇/簇粒子交互是第二高的。虽然值不能直接比较,但看起来在训练设置中,簇/簇粒子保持了相似的值,而噪声/噪声粒子变得更远。
我们再次看到,随机情况的簇更紧密,并且与其他所有粒子的距离比训练情况更近。模型学会了降低其簇内的内积,并且与其他随机模型相比,将其他所有粒子推开。
簇信息
簇成员
图8:我们分析训练模型和随机模型中哪个有更多粒子在簇中。将HDBSCAN输出中的簇内粒子与簇外粒子进行比较,并分析GPT跨层的情况。
训练 vs 随机
可以看到,训练模型倾向于簇内粒子方差的下端,而随机模型则相反。我们还看到,在到目前为止的所有可视化中,随机模型的方差最大。这突显了HDBSCAN的离散性质,以及我们在可视化中用来区分簇的技术上并不存在硬边界的事实。
根据我们使用的聚类方法,训练模型似乎有更少的粒子在簇中,尽管这仍在随机模型的方差范围内。这与图6和图7一致,显示随机情况下簇的内积更高。这也与我们后面看到的有效秩——随着模型前进秩扩展——一致。
这与我们到目前为止看到的想法一致:网络想要抵抗架构驱动粒子坍缩成簇的趋势。在训练情况下,簇向外扩展,并且通常与其他簇相距更远。后面我们也会看到(跨所有模型的簇计数),训练情况下我们有更多的簇,每个簇中的粒子数更少。
簇计数
图9:所有模型的簇计数。对所有模型,HDBSCAN发现的簇数量随深度绘制。
有趣的是,所有模型的簇数量都差不多。你可能一开始会认为由于不同的分词方法、模型大小、提示长度等,有些模型的簇可能比别的多,但事实并非如此。所有训练模型都稳定在50左右。簇是否在不同模型间做着类似的事情?是否存在着某种普遍性,类似于稀疏自编码器的词典条目中看到的那种准普遍性?
可以看到随机模型的簇更少,从上面的内积值我们知道那些簇更加紧密。我们还知道相似数量的粒子在簇中,因此可以推断随机情况下每个簇的粒子数更多。模型学会了减少簇中的粒子,并在训练情况下创建了大量簇内距离更大的小簇。
Albert随机似乎是一个特例,但一看就能发现有效维度急剧下降到零。总簇数量的先升后降与激活空间的坍缩有关。HDBSCAN不得不在空间实际上落为一个退化点质量时分辨什么是簇。在坍缩之前,可以看到簇数量徘徊在大约35,略高于GPT随机的常态。
全局分析
有效秩
图10:多个模型的有效秩。有效秩衡量模型在残差流中实际使用了多少个维度。可以看出,根据这个度量,各模型喜欢使用大约250个维度,尽管它们的激活空间维度从700到1600不等。有趣的是,Bert Base通常保持最高的秩。GPT模型的值随着层推进而增加,Albert模型则向下衰减。随机权重的模型迅速坍缩,表明原始架构想压缩空间,试图将所有粒子放入全局吸引子x^*。
有效秩(可选)
[机器生成]
内积告诉你关于对的信息。有效秩一次性告诉你整个云的信息:令牌云实际使用了多少个独立方向,而可用维度是d?即使有很多对内积很高,整个云也不一定坍缩:两个分离得很好的簇给出零个跨簇的接近1的内积,但云仍然只用了大约两个方向。
有效秩全局衡量整个云是否坍缩到低维子空间上。我们使用熵形式(Roy–Vetterli 2007):将奇异值归一化为一个分布,然后取香农熵的指数。一个方向 → 秩1(一个点)。平坦谱 → 秩d。它是光滑且无阈值的。
取n×d的激活矩阵X(n个令牌,每个d维)。计算其奇异值σ_1 ≥ σ_2 ≥ ... ≥ σ_min(n,d)。将它们通过归一化转换为概率分布,然后取香农熵的指数:
(公式)
这就是Roy和Vetterli(2007)的有效秩。
理解有效秩
熵衡量一个分布的扩散程度。集中在单一值的分布熵为0;在m个值上均匀分布熵为log m。指数化将熵映射回“有效成分的数量”。
应用于奇异值谱:
所有权重在一个方向上(σ_1 > 0, σ_2 = ... = 0):熵 = 0,有效秩 = 1。云基本上是1D的。这意味着所有令牌几乎相同。
谱平坦(σ_1 ≈ σ_2 ≈ ... ≈ σ_d):熵 ≈ log d,有效秩 ≈ d。云均匀使用所有d个方向。
介于之间:光滑插值。少数方向占主导的云,其有效秩接近那个数量,而不是你碰巧选的任何阈值的产物。
关键优势在于它是光滑的,并按方向在谱中的份额加权。一个携带微不足道总份额的方向基本不贡献,尽管在基于阈值的计数中它会被算作“非零奇异值”。
跨层阅读
有效秩往往在早期层很高(许多方向大致均等贡献),然后随着聚集的进行而下降(令牌表示对齐,谱集中在更少方向上)。终点取决于架构:
- 完全坍缩:有效秩 → 1。所有令牌具有基本相同的表示。
- 部分坍缩:有效秩稳定在1之上。多个簇意味着多个持久方向。
- 不坍缩:有效秩保持在≈ min(n, d)附近。令牌保持分散。
有效秩追踪谱的完整分布,而不仅仅是内积中那些高度一致的对。两个大小相等、完美分离的簇会展示质量接近1 = 0(没有跨簇的对接近1)但有效秩 ≈ 2(两个主方向)。它们测量的是不同的东西,可以从局部和全局视角互补。
退化门限
当有效秩降到足够低时,令牌云几乎是一个点质量。此时:
- 连续层之间的CKA趋近1。任何两个都接近点质量的表示,其Gram矩阵几乎相同,因此CKA无法区分它们。在退化层,CKA值0.99意味着“两层都坍缩了”,而不是“几何在非平凡方式下稳定”。
- 最近邻分配变成噪声。当所有令牌几乎相同时,哪个令牌离哪个最近由浮点舍入在10^{-12}量级决定。这里计算的NN稳定性不可解释。
- 谱聚类计数无意义。拉普拉斯特征间隙方法在图里找簇;一个接近点质量的图没有结构可找。
与其在分析中报告这些无帮助的量,我们根据有效秩对它们设门,低于阈值则抑制。
所有模型尽管维度差异很大,但有效秩却相似,这非常奇怪。可能是嵌入矩阵结构造成的假象,但尚未有调查。
我们仍然可以看到,GPT家族在令牌进入模型后立即有一个下降。这很可能是位置编码信息的移动以及粒子被路由到训练学到的规则动态中,并在第5层左右达到上限。奇怪的是,所有GPT家族成员都会在三分之一层数处先略有上升,再下降。然后秩缓慢增加直到层末尾,最后突然下降。
Albert走了相反的路线:有效秩急剧上升,然后在前半部分几乎平稳,再之后开始暴跌。Albert Base的训练长度是12层,在这里正好与秩开始下降的时刻相关。这表明权重在整个训练长度内维持了秩,只有在之后才开始坍缩。Albert XL也是类似的故事。我们在两个Albert模型中看到的坍缩是它们运行时间比预期长的假象。
随机情况几乎完全遵循理论。粒子被放到激活空间(理论中的超球面)上,然后开始坍缩向一个点。Albert似乎在经历完全坍缩之前有一个上升,这让人想知道嵌入矩阵、分词或位置编码是否对模型的有效秩有影响。训练模型维持了有效秩,阻止了架构驱动的坍缩。随机模型没有学会抵抗这种坍缩。
Fiedler值
图11:GPT的注意力矩阵的Fiedler值。该值似乎下降到低点,然后随着网络层推进而稳步上升。注意随机网络维持了一个相对较高、平稳的值。
图12:Albert的Fiedler值。这张图也显示出训练情况下更大的可分离性。原始数值在架构间不可比较。可以看到训练好的Albert的Fiedler值比其随机对应物低得多,只有当模型运行时间超过其训练长度时才会上升。
这里给出的值代表了注意力路由的全局视图,从路由图A_head计算而来。我们可视化的是第二小特征值,它表示图的连通密度。
低的Fiedler值(在我们的上下文中)意味着注意力已经组织成小群令牌,这些令牌主要在自己的群内进行注意力。
高的Fiedler值意味着每个令牌都被允许与所有其他令牌进行注意力,类似于均匀混合。可以看到训练模型比随机模型有更低的Fiedler值。
Fiedler值定义(可选)
[机器生成]
Fiedler值衡量将一个图分成两个不连通的片段有多难。这里的图是给定层的注意力矩阵,而不是残差流:节点是令牌,边权是一个令牌对另一个令牌的注意力,经过Sinkhorn归一化将该层的注意力变成双随机矩阵(行归一化,然后列归一化,重复直到两者都成立):
(公式)
这是作用于每个注意力头,然后取平均,作为下面图中的“Fiedler值(跨头均值)”。
问这个图:把它切成两组最便宜的方式是什么?这里“最便宜”意味着打破最少和最弱的连接。如果注意力已经组织成两个主要在内部交互的组,那么切割几乎是免费的。如果注意力以大致均匀的强度横跨每个边界,那么任何切割都是昂贵的。
Fiedler值就是捕捉这个成本的数字。首先对称化注意力图:
(公式)
然后从它的度矩阵构建归一化拉普拉斯:
(公式)
拉普拉斯特征值从小到大排列,描述图的连通性:
0 = λ_1 ≤ λ_2 ≤ ... ≤ λ_n
λ_1总是0;常数向量总是一个特征向量——这是任何图的固定性质,不是测量值。Fiedler值是λ_2,列表中第一个真正反映图形状的数字。
对模型的解读:低的Fiedler值意味着注意力已经自我安排成至少两个令牌组,它们几乎没有相互注意力。高的Fiedler值意味着注意力接近均匀,没有任何断裂线。高值有两种可能的原因,在图上看起来一样:从未学到断裂线的模型(随机基线),或者是断裂线存在然后坍缩为均匀的模型。在阅读下面的训练曲线时,值得将它们分开考虑。
这提供了第四种独立的方式来问本章其余部分一直在问的问题:网络是否抵抗架构推动的坍缩?HDBSCAN和内积直方图从几何上描述令牌在球面上的位置。有效秩描述这种几何占据了多少方向。Fiedler值描述的是别的:不是令牌在哪里,而是它们被允许如何相互交流。
这两张图讲述的故事比第一眼看到的更有趣:随机权重的架构允许更一般的注意力(任何东西都可以与任何东西注意力),而训练好的权重截断了这种全局视角,限制了谁能与谁注意力。训练好的权重学会了拒绝哪些令牌之间可以进行注意力。它们不是学会了哪些令牌应该对哪些其他令牌进行注意力。这意味着训练一个网络更接近于从一块大石头上做减法雕刻,而不是一块砖一块砖地组装注意力。算法想要均匀的全局连接,但网络通过学习在随机情况下看到的原始架构上削减连接、使子图更易分割来学会抵抗。
CKA
图13:Albert和GPT的CKA。Albert Base在有效秩降到3以下时停止出现。CKA衡量层间的核相似度,并显示簇在网络中的持续性(而不仅仅是在单个层中的存在性)。注意所有模型绝对差异都很小。
中心核校准(CKA),可选
[机器生成]
CKA问的是:层到层的映射是否近似为恒等映射(在某个层集上),这意味着所有令牌的成对相似度结构从一层到下一层保持不变。它是主要的平台信号,因为它是无基且尺度不变的:它不关心残差流如何旋转或缩放,只关心关系几何是否相同。一条靠近1的平坦运行线就是一个平台;一个尖锐的单步下降就是它的结束。
我们期望粒子被放到超球面上后迅速聚集。这些簇将在层间持续,因为有一个快速变化为簇的时期,然后稳定下来,所以我们应该会看到平台形成。这标志着簇的持久性。
被比较的对象
在层l你有一个n×d的激活矩阵X(球面投影后)。在层l+1你有Y,相同形状。你想要一个数字表示这两种表示在几何上有多相似。
自然的对象是表示相似性矩阵(RSM):n×n的Gram矩阵XX^T,其(i,j)项是⟨x_i, x_j⟩。如果两个表示有相同的几何,则它们的RSM一致,无论底层坐标如何定向。这正是A组中的内积矩阵。CKA建立在这个相同对象之上。
HSIC
Hilbert-Schmidt独立准则衡量两组特征是否统计相关。对于线性核K = XX^T和L = YY^T,未归一化的线性HSIC简化为:
HSIC(K, L) = (1/(n-1)^2) * trace(K H L H)
其中H是中心化矩阵。F是Frobenius范数。这给出了两个RSM之间的对齐度当在X中距离近的令牌对在Y中也近时,它就大。
归一化 → CKA
HSIC本身随X和Y的幅度缩放,因此不能跨层比较。CKA用自相似性归一化它:
CKA = HSIC(K,L) / sqrt(HSIC(K,K) * HSIC(L,L))
结果在[0,1]中:1意味着两个RSM在正交变换和各向同性缩放下相同;0意味着它们正交。
这使CKA成为正确的工具:
- 对正交变换不变。如果层l是层l+1旋转后的结果,CKA=1。残差流在层间的旋转不被视为变化。
- 对各向同性缩放不变。均匀缩放所有激活不会改变CKA。
- 对任意可逆线性映射非不变。一个对任何可逆线性变换都不变的度量会把几乎任意两个满秩的表示称为相同,这对于检测持久性没有帮助。CKA只在关系几何相同时才称表示为相同。
跨层阅读
- 平坦靠近1:连续层在表示上相同:一个亚稳态平台。
- 尖锐的单步下降:表示在两个层之间重组了:平台结束,通常是簇合并事件。
- 低且嘈杂:没有稳定结构。
因此,CKA平台靠近1意味着模型在层与层之间旋转和缩放令牌云,但没有重组哪些令牌彼此靠近。这正是整个帖子在寻找的亚稳态图像:簇固定,动态闲置。
我们看到Albert在大约0.5处有一个大的下降,那通常是其训练结束的位置。接近末尾时,两个训练模型都下降了约5%。变化幅度很小,所有模型的CKA都接近1。每个层与前一个层非常一致,意味着簇也是一致的。
结果
能量的单调性
图14:Albert的能量景观。可以看到随机情况单调上升,然后在某个值达到峰值。这通常发生在第5层附近。注意Y轴尺度,逆温度β在网络训练期间对总能量有很强的影响。可以看到网络在训练停止处的低谷。
图15:GPT的能量景观。再次看到逆温度β控制着网络的总能量。与Albert类似,在所有测试温度下能量形状相似,随机情况单调增加。
能量单调递增在论文中具有极端重要性。在论文中,如果V设为单位阵,那么所有相互作用都是吸引的。能量在所有点落入退化状态时最大,在均匀情况下最小,因此模型的演进必然伴随能量的单调上升。这在V = I时是明确成立的,从随机情况中我们也看到这是实证成立的。
然而,训练好的情况能量并非单调上升。这在测试的所有模型、提示和温度下都成立。这意味着模型中存在超越纯吸引力的更多动力学,而这些动力学正是模型学会最小化损失、模拟自然语言的起点。架构设计成会经历坍缩,但训练期间权重学会了避免能量单调增加,从而降低损失并阻止坍缩。
在两种条件的模型的大部分中,能量只是缓慢上升或下降,意味着能量大致随层推进而保持。这引出了关于激活空间对称性的有趣问题。如果我们强制能量守恒,会出现什么样的对称性?
训练模型中的注意力翻转
图16:我们分析注意力的大小,看簇内的粒子是否比簇外的粒子获得不同量的注意力。第一张图显示每层中每组接收的注意力比例(每个粒子的平均注意力按组求和)。第二张图比较了标点或Other的令牌,它们在每个提示中都非常频繁。第三张图显示了未聚集的群体。
图17:我们看到与图16非常相似的图,但针对训练好的情况而非上面的随机情况。看起来噪声分数比随机情况有意义的提高,但在图8中显示训练情况低于随机均值但在随机方差之内。有趣的是,粒子与标点相关联的概率在两者中相似。
训练好的情况很有意思:各值直到第7层都大致相等,但从那以后,未聚集粒子的注意力权重上升到约1.8(代表尽管只占约50%的令牌,却获得了近90%的注意力)直到网络末端。训练模型中注意力的分配是不同的。
在随机情况下,可以看到簇倾向于在层中获得注意力的微弱多数。这可能反映了随机初始化的模型中某些粒子具有高于平均的V,它们更可能吸引其他粒子靠近,导致注意力机制偏好这些簇。训练好的情况则不同,如果某个固定位置的令牌(如[sep]或[bos])获得不成比例的注意力并被训练为未聚集,那就会不一样。
这引出了一个开放问题:簇在语义/句法上起什么作用?这将是后续文章的主题。
结论
我们已经证明,论文的理论对随机和训练过的Transformer矩阵都成立,但训练情况有有趣的细微差别。训练好的情况能量不是单调增加的,并且除非被推出分布外(如Albert在未训练的长运行中所示),否则不会经历坍缩。
架构驱动粒子坍缩到我们称之为簇的子空间中,然后将一切坍缩到一个点。我们已经证明训练好的权重抵抗完全坍缩,并且形成的簇更小、数量更多。
许多问题依然存在。语言模型的重要计算是否对应于簇?簇在不同训练模型之间是否存在普遍性?我们知道归纳头和大词统计存在:这些结构是否会在激活空间的未聚集粒子中被发现?我们能否从能量的近似守恒中找出潜空间的对称性?
下一篇即将到来!

