首页 时政热点 科技头条 智能AI 安全攻防 数码硬件 开发者生态 汽车 游戏 社会热点 开源推荐 医疗健康 归档 标签 关于
智能AI morning

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

摘要

Retrieving a character from memory. The recall worsens as the number of memories grows. Large language models today can recall obscure facts from every corner of the world. Most recently, I was runnin...

the recall can store memories and memory for from The
2026-10-17 1 阅读 约7分钟阅读 speckx
分享:
字号:
从内存中检索一个字符。随着记忆数量的增加,回忆会变得更糟。如今的大型语言模型可以回忆起世界各个角落的晦涩事实。最近,我参加朋友的棋盘游戏之夜迟到了,所以我请 Astra 提醒我《沙丘:帝国》的规则。当我开车过来时,它很高兴地向我讲述这些规则,并帮助我很好地记住了规则,以便我可以再次玩。我们已经习惯了向模特询问任何事情,以至于我们认为他们丰富的知识是理所当然的。模型如何记住如此多的信息?他们可以存储多少?在这篇文章中,我将通过一种直观的方式将线性映射、MLP 和自注意力视为不同类型的记忆存储。从这个直觉中,我们可以得出一些关于每层可以存储多少内存的启发式方法。表征“良好”记忆存储的关键属性是其调用所存储内容的能力。毕竟,即使我们可以存储无限多的事实,但如果我们在需要时无法回忆起来,那就没什么帮助了。我们储存的记忆越多,当我们试图回忆一个记忆时,它们之间的相互干扰就越大。因此,在整篇文章中,我们将重点关注一个量,即干扰信号比,它衡量其他记忆在回忆过程中受到的干扰程度。在干扰变得与信号一样大之前,存储器可以容纳的存储器数量就是其容量。我们将发展这个观点,并展示如何从线性层过渡到更好的层,即 MLP,它可以提高容量和召回率,然后一直到自注意力,它具有非常好的召回率,并且可以存储潜在无限数量的记忆。有了 64 维钥匙,记忆数量就从大约 64 个跃升至大约 2,700 个,再到超过 100 万个。以下是我们将在全文中使用的术语。内存存储是一个保存 $M$ 内存的函数 $f$,其中 $i = 1, \ldots, M$。内存是一个键值对:键 $k_i \in \reals^{d_k}$,用于基于相似性进行查找,以及值 $v_i \in \reals^{d_v}$,这是我们要检索的内容。要使用 $f$,我们使用输入 $x$ 查询它,它会调用输出 $f(x)$。当我们用 $k_i$ 或与 $k_i$ 类似的另一个向量查询时,一个好的内存存储会回忆起 $v_i$ 。在文献中,通过相似性回忆的记忆存储被称为联想记忆。外积内存存储 # 最基本的内存存储是线性的:它只是通过外积累积内存, $$W = \sum_{i=1}^{M} v_i k_i\transpose = V\transpose K$$ 其中 $K \in \reals^{M\times d_k}$ 和 $V \in \reals^{M\times d_v}$ 的行是键 $k_i\transpose$ 和值$v_i\转置$。为了存储新的记忆 $(k, v)$,我们只需将 $vk\transpose$ 添加到现有的权重中。旁白:梯度下降步骤写入一个内存,在标量损失为 $L$ 的网络中采用线性层 $y = Wx$,并令 $\bar y = \grad L(y)$ 为损失相对于该层输出的梯度。相对于 $W$ 的梯度是 $\bar y x\transpose$,因此学习率 $\eta$ 的步骤是 $$W \leftarrow W - \eta\, \bar y x\transpose。$$ 这个递归是一个内存更新:它使用键 $x$ 和值 $-\eta\bar y$ 使用新内存更新权重。有关此观点的更多信息,请参阅 Irie、Csordás 和 Schmidhuber,他们将通过梯度下降训练的线性层表示为对其所有训练输入的关注。为了使用输入 $x$ 查询内存存储,我们将输入乘以矩阵: $$f(x) = V\transpose K x = \sum_{i=1}^{M} v_i\,(k_i\transpose x).$$ 因此,召回率是通过与存储的键的相似性进行查找:我们将查询与每个键进行比较,并返回按这些相似性加权的值的总和。回忆会受到干扰 # 因此存储记忆很容易:只需不断将外积添加到权重中即可。但是当我们试图回忆一个人时会发生什么呢?为了简单起见,我们假设每个键都标准化为长度为 1,即 $k_j\transpose k_j = 1$。然后 $$f(k_j) = \underbrace{v_j}_{\text{signal}} + \underbrace{\sum_{i\neq j} v_i\,(k_i\transpose k_j)}_{\text{interference}},$$ 意味着我们得到目标内存的值,即我们查询其键的值,加上来自其键与查询相似的所有其他内存的干扰。如果键都是正交的,则干扰将为零并且召回将是准确的。但是$\reals^{d_k}$只有$d_k$正交方向,因此一旦我们存储的记忆多于关键维度:$M > d_k$,我们就无法获得完美的回忆。外卖店的容量是多少?这是一个直观的论证。有 $M-1$ 干扰项。如果键是随机单位向量,则每个相似度 $k_i\transpose k_j$ 约为 $\pm 1/\sqrt{d_k}$。如果这些值也是随机的,具有相似的长度,则 $M-1$ 干扰项像随机游走一样累加,因此干扰的平方长度约为 $(M-1)/d_k$ 乘以信号的平方长度,并且 $$\frac{\norm{\text{interference}}}{\norm{\text{signal}}} \sim \sqrt{\frac{M}{d_k}}。$$ 将此比率设置为 1 给出的容量为$$M \
这篇文章对您有帮助吗?

订阅66必读

每日精选科技资讯,直达你的邮箱