返回

文章详情

您本可以凭记忆发明变形金刚

Hacker News2026年10月16日 19:01

从记忆中检索角色。随着记忆数量的增加,回忆能力变得更差。今天的大型语言模型可以从世界各地回忆起晦涩的事实。最近,我在赶往朋友的桌游之夜时,便请Astra提醒我《沙丘:帝国》的规则。它欣然在我开车的过程中给我叙述规则,并帮助我记住足够的规则,以便我能够再次玩。我们习惯于向模型询问任何事情,理所当然地认为它们拥有巨大的知识。那么,这些模型如何记住这么多信息?它们能存储多少信息?在本帖中,我将通过一种直观的方式来观察线性映射、MLP(多层感知机)和自注意力,作为不同类型的记忆储存。从这个直觉出发,我们可以推导出每一层可以存储多少记忆的一些启发式。表征“良好”记忆存储的关键特性是其回忆存储内容的能力。毕竟,即使我们能够存储无数的事实,如果在需要的时候无法回忆起这些事实,那也没有什么帮助。存储的记忆越多,当我们试图回忆其中一个时,它们相互之间的干扰就越大。因此,在整个帖子中,我们将关注一个量——干扰与信号的比率,它衡量在回忆过程中其他记忆怎样干扰目标记忆。记忆存储的容量是指在干扰变得与信号同样大之前,存储可以容纳的记忆数量。我们将发展这种观点,并展示如何从线性层走向更好的东西——MLP,后者改善了容量和回忆能力,最终达到自注意力,后者具有良好的回忆能力并能够存储大量的记忆。以64维的键为例,这意味着从约64个记忆跃升到约2700个,再到超过一百万个。以下是我们在整个过程中使用的术语。记忆存储是一个函数 $f$,它持有 $M$ 个记忆,$i = 1, ightarrow M$。记忆是一个键值对:键 $k_i ext{ in } eals^{d_k}$,根据相似性用于查找,值 $v_i ext{ in } eals^{d_v}$,是我们想要检索的内容。使用 $f$ 时,我们用输入 $x$ 查询它,它会回忆出输出 $f(x)$。一个好的记忆仓储在我们使用 $k_i$ 或与 $k_i$ 相似的另一个向量访问时,会回忆起 $v_i$。在文献中,按相似性回忆的记忆存储被称为关联记忆。外积记忆存储:最基本的记忆存储是线性的:它通过外积简单地累积记忆,$$W = extstyleigoplus_{i=1}^{M} v_i k_i ranspose = V ranspose K$$,其中 $K ext{ in } eals^{M imes d_k}$和$V ext{ in } eals^{M imes d_v}$的行分别是键 $k_i ranspose$和值 $v_i ranspose$。1要存储一个新的记忆$(k, v)$,我们只需将$vk ranspose$添加到现有权重中。2旁白:梯度下降步骤写入一条记忆。在网络中,线性层 $y = Wx$ 有一个标量损失 $L$,让 $ar y = abla L(y)$ 是损失相对于层输出的梯度。相对于 $W$ 的梯度是 $ar y x ranspose$,因此以学习率 $ heta$ 进行的操作是 $$W igleftarrow W - heta ar y x ranspose.$$这个递归是一个记忆更新:它用新记忆更新权重,键为$x$,值为$- hetaar y$。有关这一观点的更多信息,请参见Irie、Csordás和Schmidhuber,他们将通过梯度下降训练的线性层表达为对所有训练输入的注意力。要使用输入 $x$ 查询记忆存储,我们将输入乘以矩阵:$$f(x) = V ranspose K x = igoplus_{i=1}^{M} v_i ext{(}k_i ranspose x ext{)}。$$因此,回忆是通过与存储键的相似性进行查找:我们用每个键比较查询,并返回按这些相似性加权的值之和。回忆会引起干扰 # 因此,存储记忆是简单的:只需不断将外积添加到权重中。但当我们尝试回忆其中一条时会发生什么?为简化起见,假设每个键都是标准化的,长度为1,即 $k_j ranspose k_j = 1$。然后 $$f(k_j) = ext{指 } {v_j}_{ ext{信号}} + ext{指 } extstyle igoplus_{i eq j} v_i ext{(}k_i ranspose k_j ext{)}_{ ext{干扰}},$$这意味着我们回忆目标记忆的值——我们查询时使用的键——加上来自与查询相似的每个其他记忆的干扰。若所有键都是正交的,则干扰为零,回忆将是准确的。但是 $ eals^{d_k}$ 仅有 $d_k$ 个正交方向,因此一旦我们存储的记忆数量超过键维 $M>d_k$,便无法获得完美的回忆。那么,外积存储的容量是多少呢?这里有一个直观的论证。干扰项有 $M-1$ 个。如果键是随机单位向量,则每个相似性 $k_i ranspose k_j$ 大约为 $ ext{±} 1/ ext{√}(d_k)$。如果值也随机,且长度相似,$M-1$ 的干扰项就像随机游走一样汇聚,因此干扰的平方长度约为信号的 $(M-1)/d_k$,并且 $$ rac{ ext{norm} ext{干扰}}{ ext{norm} ext{信号}} ext{∼} ext{√} rac{M}{d_k}.$$将此比例设定为1,得到的容量为...

赞助内容

NordVPN Next-gen Antivirus

本站免费、广告极少。如果觉得有帮助,可以请我们喝杯咖啡 —— 任何金额都对持续运营有实际帮助。

☕请我喝杯咖啡