微信扫一扫,关注公众号

  • 科技行者

  • 算力行者

见证连接与计算的「力量」

首页 苹果公司研究团队发现:主流AI大模型存在一个被忽视多年的根本性缺陷,他们是怎么修复的?

苹果公司研究团队发现:主流AI大模型存在一个被忽视多年的根本性缺陷,他们是怎么修复的?

2026-05-13 12:17
分享至:
----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.-
2026-05-13 12:17 科技行者

这项由苹果公司(Apple)研究团队完成的工作发表于2026年5月,论文编号为arXiv:2605.06216v1,感兴趣的读者可通过该编号在arXiv学术平台上查阅完整原文。

你有没有想过,当一个聪明的助手每天只接触少数几类任务时,它对其他任务的了解会逐渐变得稀薄甚至扭曲?这正是当前几乎所有主流大型语言模型(也就是ChatGPT、Llama这类AI)在底层结构上存在的一个隐患。苹果公司的研究团队发现,这个隐患并非源于数据不够多、模型不够大,而是源于一个长期被视为"理所当然"的设计选择——一个从未被认真质疑过的假设。他们将这个发现以及解决方案整理成论文,提出了一个名为TIDE(Token Identity Delivered Everywhere,即"词语身份传递至每一处")的全新架构,并从理论和实验两个层面证明了它的价值。

一、那个被所有人忽视的设计缺陷

所有现代大型语言模型处理文字的方式,本质上都像是一条流水线。当你输入一句话,模型会先把每个词(更准确地说是每个"词元",英文叫token)转换成一个数字向量,就好比给每个词贴上一张"身份证"。然后,这张身份证只在入口处被读取一次,随后就被丢进流水线的第一道工序,从此再也不被直接查阅。接下来的所有工序——模型的每一层计算——都只能看到前一道工序交出的"加工结果",而不是最初那张原始的身份证。

这个设计被称为"单次注入假设"(single-injection assumption)。几乎所有人都默默接受了它,从未追问过:这样真的没有问题吗?苹果团队的回答是:有问题,而且有两个很严重的问题。

第一个问题叫做"稀有词语的梯度饥渴"。语言世界遵循一个著名的规律,叫做"齐普夫定律"(Zipf's Law)——用通俗的话说,就是少数词语被反复高频使用,而大量词语只是偶尔出现。比如"的""了""是"这些词,在任何一段中文里都俯拾皆是;而"头孢呋辛"、"光合作用自养"、"特奥蒂瓦坎"这些专业名词或罕见词,可能整个训练数据集里也就出现那么几次。

AI模型的学习方式依赖"反复练习"——一个词出现越多次,模型就有越多机会调整和完善对它的理解,就像一个学生反复做某道题,自然越做越熟练。但稀有词语几乎从不出现,模型对它们的理解就长期停留在"半生不熟"的状态,就像一个学生某道题只做过一两次,印象极其模糊。研究团队通过分析LLaMA-1B模型的训练数据发现,最稀有的词语和最常见词语之间,所接受的"练习次数"相差可达百万倍,差距极其惊人。

第二个问题叫做"上下文崩塌"。由于词语的身份信息在入口处读取后就再不出现,模型到了深层计算时,区分两个词语的唯一手段就是它们所处的语境。可一旦两个词出现在几乎相同的语境里,模型就会把它们混为一谈,产生极其相似甚至相同的内部表示。

举个具体例子:英文中"their"(他们的)和"there"(那里)在很多句子里语法位置极为相似,模型内部对它们的区分就可能变得非常模糊。更严重的是数字类词语,比如"1847"和"1851"这两个年份,当它们出现在类似的句子结构中时,模型深层计算对它们的区分几乎完全消失。研究团队通过实验量化了这一现象:用250个模板句子分别替换目标词对,然后测量模型各层的内部表示距离,发现在绝大多数中间层,这些本质不同的词对之间的距离几乎为零——它们在模型眼里几乎成了"同一个东西"。

这两个问题的根源是相同的:词语的身份信息在入口处读取后就永久消失,没有任何机制能在后续层次中恢复它。研究团队把这个类比为:位置信息(RoPE,一种让模型知道每个词在句子里处于第几位的技术)在每一层的注意力计算中都会被重新注入,但词语本身"是什么"的信息,却只在最开始出现一次,此后杳无音讯。一旦这个信息在某一层被"稀释",后续所有层都无从弥补。

二、解决思路:让每一层都知道"这个词是谁"

苹果团队提出的解决方案,核心思路出奇地简单:既然词语身份信息只注入一次是问题所在,那就让它在每一层都被重新注入一次。不过具体实现方式颇为精巧,值得细细道来。

他们在标准Transformer(变换器,也就是现代大型语言模型的基础结构)旁边,额外设计了一个叫做"嵌入记忆"(EmbeddingMemory)的模块。这个模块由K个相互独立的"记忆块"(MemoryBlock)组成,每个记忆块都维护一张独立的"词语→向量"查找表——也就是说,给定任意一个词语,每个记忆块都能独立地输出一个代表该词语身份的向量。这K个记忆块没有共享参数,各自独立学习,每个块都试图用不同的方式"理解"词语的本质含义。

关键在于,这些记忆块输出的向量,是在整个前向传播过程开始时一次性计算出来的,然后在模型的每一层计算中都能被"插入"到计算结果里。换句话说,不管模型当前处于第几层的计算,它都可以直接查阅词语的原始身份信息,而不必依赖前几层是否"保住"了这个信息。

具体的插入方式也很巧妙。在每一层,有一个轻量级的"路由器"(router),它会根据当前层的计算状态,决定从K个记忆块中以何种比例混合提取信息。这个混合是通过一个叫做softmax的数学操作实现的,它能确保各个记忆块的权重加起来等于1。更聪明的是,研究团队还额外引入了一个"空白槽"(null bank),其输出始终为零向量。这个空白槽的作用是给路由器提供一个"不插入任何记忆信息"的选项——当模型认为某一层不需要词语身份信息时,路由器可以把大部分权重分配给空白槽,从而让记忆模块对该层的影响几乎为零。这一设计的理论意义在于:当空白槽被充分激活时,TIDE在行为上与标准Transformer完全一致,也就是说TIDE是对标准架构的严格推广,不会比原来更差。

记忆模块输出的向量是以加法方式注入到每一层的计算结果中的,与正常的前馈网络(FFN)输出完全独立,互不干扰。这就好比在原本的生产流水线旁边,增设了一条专门传递"这个产品原材料是什么"信息的辅助传送带,每个工位都能随时查阅,但它并不替代原有的任何工序。

三、理论上能保证什么

研究团队不仅提出了这个架构,还从数学上严格证明了三件事。

第一件事是TIDE对标准Transformer的"渐近推广性"。也就是说,当路由器把几乎所有权重都给到空白槽时,记忆模块的贡献趋近于零,TIDE的行为趋近于一个普通的Transformer。这意味着TIDE至少不会比原来的模型更差——它只会更好或持平,而不会退步。

第二件事是"K倍梯度放大"。前面说过,稀有词语因为出现频率低,获得的学习机会(即梯度更新次数)极少。在TIDE中,每个词语有K个独立的记忆块表示,而每次这个词语出现时,K个记忆块会同时获得学习信号,等于把稀有词语每次出现所携带的学习价值放大了K倍。从公式上说,标准Transformer中某个词语的累积梯度信号上界与其出现频率成正比;而TIDE中,这个下界是K乘以同样的量。对于稀有词语来说,这种K倍放大是实质性的帮助。

第三件事是"绕过了前馈网络的Lipschitz限制"。Lipschitz连续性是数学中描述一个函数"不会变化太快"的性质,前馈网络天然满足这个性质——这意味着,如果给前馈网络输入两个非常相近的向量,它输出的两个向量也必然非常相近,不会突然相差很远。这正是"上下文崩塌"的数学根源:两个词语的中间层表示已经很近了,前馈网络再怎么努力也无法把它们分开,否则就会破坏对其他大量没有崩塌的词语的处理。记忆块则完全不同——它的输入是词语的离散下标(就是词语在词表里的编号),而不是连续的向量,因此根本不受Lipschitz限制。对于记忆块来说,"their"就是"their","there"就是"there",无论它们的中间层向量多么相近,记忆块都能输出截然不同的值。研究团队用一个精确的数学命题证明了:对于任意两个在某层发生崩塌的词对,都能找到记忆块参数使得两个词的记忆输出距离等于任意给定的目标值,与崩塌程度无关。

四、实验数据说了什么

理论上成立,实践中呢?研究团队在多个维度上进行了详尽的实验验证。

在语言建模质量上,他们训练了从350M到3B参数的多个规模的模型,将标准LLaMA架构与配备不同数量记忆块(K=2、4、8、16、24)的TIDE版本进行对比,在WikiText-2、PubMed生物医学文本和DCLM通用语料三个数据集上持续跟踪验证困惑度(perplexity,衡量语言模型预测准确性的指标,数值越低越好)。结果显示,所有TIDE变体从K=2到K=24都单调优于基础模型,且随训练数据量增加,优势持续扩大而不饱和。一个特别值得关注的数据是:仅有2个记忆块的TIDE在100B训练词元时已能达到标准模型需要200B词元才能达到的困惑度——换句话说,同样的模型规模下,TIDE的学习效率大约是标准架构的两倍。

在稀有词语的专项分析上,他们把词表按照出现频率均匀分成10档,从最稀有到最常见,分别计算各档词语的交叉熵损失,并比较标准模型与TIDE-8E-1B(即有8个记忆块的1B参数TIDE模型)在200B词元训练后的差异。结果极为清晰:TIDE在所有10档上都优于基础模型,但优势大小呈现出强烈的不对称性。最稀有档的改进幅度是0.704 nats(约9%的相对提升),而最常见档的改进只有0.068 nats(2.4%的相对提升),两者相差约4.8倍。也就是说,TIDE对稀有词语的帮助远远大于对常见词语的帮助,与K倍梯度放大的理论预测完全吻合。进一步地,随着K从0增加到24,稀有词语损失从6.671下降到6.250(下降0.421),而常见词语损失仅从2.967下降到2.892(下降0.075),前者的改善幅度是后者的5.6倍。每增加一个记忆块带来的边际收益,在稀有词语上比在常见词语上高出3.7倍。

在上下文崩塌的专项分析上,研究团队选取了三类代表性词对:语法同音异义词(如their/there、affect/effect等)、数字词(如1847/1851、100/1000等)和稀有领域专业词(如ibuprofen/acetaminophen、mitosis/meiosis等),用150个模板句子替换词对,测量模型各层的L2距离。结果显示,TIDE在所有三类词对、所有层次上的L2距离都显著高于标准模型。其中,数字词对的改善最为突出,其次是稀有领域词,语法同音词也有明显改善。这与理论预测完全一致:记忆块通过在每一层注入离散词语身份信号,有效阻止了崩塌现象的蔓延。

在下游任务的零样本(zero-shot)评测上,研究团队在ARC-C、ARC-E(科学常识题)、BoolQ(是非判断题)、HellaSwag(常识推理)、LAMBADA(长程理解)、OBQA(开放书本问答)、PIQA(物理直觉问答)、SciQ(科学问答)八个基准数据集上进行了测试。以1B参数规模为例,标准LLaMA的平均分为61.4%,TIDE-24E-1B的平均分为63.7%,提升了2.3个百分点,且随K增大呈单调提升。在3B参数规模上,TIDE-8E的平均分从67.2%提升至68.3%。

五、记忆块内部在存储什么

研究团队还深入分析了记忆块在训练后究竟学到了什么,以及路由器的行为模式。

通过计算主嵌入表E与8个记忆块之间的余弦距离(一种衡量向量相似度的指标,距离越大表示越不相似),他们发现:每个记忆块与主嵌入表的平均余弦距离在0.65到0.99之间,说明记忆块学到的表示与主嵌入表的内容高度不重叠,是真正的"互补信息"而非简单复制。同时,记忆块相互之间的距离则相对较小,说明它们收敛到了有所重叠但未完全崩塌的不同子空间。

路由器的行为也非常有意义。将路由器对不同频率档位词语的权重分配进行分析后发现:空白槽权重与词语频率呈单调正相关——最稀有档词语的空白槽权重均值约为0.530,而最常见档词语的空白槽权重均值高达0.889。用更直白的话说,路由器对稀有词语"开了更大的记忆之门"(允许更多记忆信息进入),而对常见词语则倾向于"基本关闭记忆通道"。这个行为是模型自发学习到的,没有任何显式的指导规则。此外,不同记忆块并非均等地对所有词语生效,而是呈现出明显的分工:某个记忆块对稀有词语贡献显著,另一个则专门对中频词语更为活跃,而在常见词语上几乎所有记忆块的权重都接近于零。

通过对具体词语的近邻分析,研究团队进一步发现:对于常见词语,记忆块找到的语义近邻与主嵌入表高度重叠(Jaccard重叠系数较高);而对于稀有词语,记忆块发现的近邻与主嵌入表差异悬殊(Jaccard重叠系数极低),且包含了大量主嵌入表未能捕捉到的有意义关联信息。以稀有词语"asynchronously"(异步地)为例,主嵌入表的近邻几乎全是以"-ly"结尾的副词;而某个记忆块则找到了"Asynchronous JavaScript and XML"(一种异步编程技术)和"callbacks"(回调函数)等技术含义更精确的关联词。

六、计算开销与存储代价

一个自然的担忧是:增加K个记忆块,会不会大幅增加模型的计算量和内存占用?答案是:运行时内存占用几乎不变,计算开销增加有限,而存储代价可以通过量化和压缩大幅降低。

在运行时,每个记忆块的操作仅包含一次查表和一次归一化,没有任何矩阵乘法,相比模型主体中大量的矩阵乘法操作,这部分开销微乎其微。每一层的路由器只是一个(K+1)维的softmax操作和K+1个向量的加权求和,同样可以忽略不计。在实际测量中,TIDE-2E-1B的每个词元解码时间为11.236毫秒,TIDE-24E-1B为13.422毫秒,而标准LLaMA-1B为11.085毫秒,即便是最大配置的TIDE也只慢了约21%。

在存储方面,记忆块的参数量会随K线性增长。以TIDE-8E-1B为例,记忆块部分在FP16精度下需要约4.2GB存储空间,而模型主体仅需1.028GB。但关键在于,记忆块的权重在训练完成后是完全静态的——它们不依赖任何运行时的上下文,因此可以用4位量化(将每个参数从16位压缩到4位)存储到SSD硬盘中,按需异步读取,同时不影响模型主体在GPU显存中的正常运行。研究团队测试了量化效果:8位量化几乎不损失性能(WikiText-2困惑度从10.088略增至10.089),4位量化损失也较小(困惑度增至10.263)。此外,通过对记忆块矩阵进行SVD低秩分解(一种数学压缩方法),在保持约30%以内秩压缩比的情况下,性能几乎不降;即便压缩到50%,性能损失也处于可接受范围。

七、每一层的记忆注入都同等重要吗

研究团队还专门设计了一组消融实验:每次"屏蔽"模型中某一层的记忆注入,测量困惑度的变化,以此判断不同深度的记忆注入对模型性能的贡献。

结果揭示出一个有趣的"非均匀"模式:屏蔽第0层(最底层)的记忆注入,会导致困惑度灾难性上升,在PubMed数据集上相对基线的恶化幅度超过百万倍。屏蔽第1层的影响次之,但仍然显著(困惑度上升8%至13%)。然而,从第4层到第12层这段区间,屏蔽任何单层的影响都不到2%,说明记忆信息在这些层次已经被充分整合进残差流,任何一层的缺失都可以被其他层补偿。值得注意的是,第13层出现了一个明显的"第二峰值"——屏蔽这一层的影响再次显著上升。研究团队将此解读为:早期层注入的词语身份信息在中间层被逐渐"消化"利用,当这些信息被耗尽后,模型需要从更深的层次重新补充词语身份信号。

归根结底,TIDE所做的事情,本质上是填补了一个长期被忽视的信息断层。现代大型语言模型花费了大量精力处理词语之间的上下文关系,却在不经意间让词语"忘记了自己是谁"。TIDE通过一个相对简洁的架构修改,给每一层都保留了一个直接查阅词语原始身份的渠道,从而同时解决了稀有词语学习不足和相似上下文导致的词语混淆两个问题。从实验数字来看,这个改动带来的收益是实实在在且跨越不同任务、不同模型规模的。

当然,这项研究也有若干有待深入探索的方向。记忆块的存储开销仍然随K线性增长,在极端资源受限的场景下需要依赖压缩技术。目前的实验覆盖了750M到3B参数、200至500B训练词元的范围,更大规模模型和更长训练过程中的表现还有待验证。此外,经过指令微调或人类反馈强化学习(RLHF)之后,这一改进是否依然有效,也是需要后续研究回答的问题。

对于任何关心AI语言模型质量——尤其是模型在处理专业词汇、罕见名词、数字等"冷门"内容时的可靠性——的人来说,这项工作提供了一个颇具说服力的方案,指向了一个此前从未被认真审视的瓶颈。有兴趣深入了解技术细节的读者,可以通过arXiv编号2605.06216查阅完整论文。

Q&A

Q1:为什么说大型语言模型对稀有词语的理解存在严重缺陷?

A:大型语言模型通过反复练习来学习词语,词语出现越多次,模型对它的理解越准确。然而语言遵循齐普夫定律,少数高频词占据绝大多数使用场景,大量稀有词极少出现。研究发现,稀有词与高频词之间的训练信号差距可达百万倍,导致模型对专业术语、罕见名词等稀有词的理解长期停留在模糊状态。

Q2:TIDE架构是如何解决词语在模型深层"被遗忘"的问题的?

A:标准模型只在入口处读取一次词语身份信息,后续层无法再直接查阅。TIDE在模型旁边增设了一个"嵌入记忆"模块,包含K个独立的记忆块,每块都存储着每个词语的身份向量。这些向量在每一层计算时都会被重新注入到模型的计算结果中,确保模型在任意深度都能直接感知"当前处理的词是哪个",不再依赖前几层是否保住了这个信息。

Q3:TIDE增加了那么多记忆块,运行速度会慢很多吗?

A:实际测试中,TIDE的速度损耗相当有限。标准模型每个词元解码需要约11毫秒,即便是配备24个记忆块的最大TIDE变体也只需约13.4毫秒,慢了约21%。更重要的是,记忆块参数训练完成后完全静态,可以用4位低精度量化存储到硬盘上按需读取,不占用GPU显存,因此实际部署中主体内存开销与标准模型几乎持平。

分享至
0赞

好文章,需要你的鼓励

推荐文章
----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.-