#573.AI 如何拥有长期记忆,持续学习浪潮下的架构范式之争

完整转录稿

Podcast 跨国串门儿计划 2026-06-07 13:50
摘要

整体概括

这期对谈围绕“AI 如何获得长期记忆、持续学习并避免灾难性遗忘”展开。Ali Behrouz 认为,当前 LLM 的核心瓶颈不只是知识截止日期,而是缺少像人一样在不同时间尺度上更新记忆与抽象概念的机制;如果模型只能在固定上下文里工作,就很难真正积累经验、迁移技能,也很难在世界中形成稳定的身份连续性。Nathan Labenz 则从使用体验出发,追问长期关系、版本管理、对抗信息、模型安全与意识问题,最终把讨论推进到一个更大的方向:未来的 AI 也许不应只是“更大的聊天机器人”,而应是一个会主动学习、会在活跃阶段与睡眠阶段之间切换、并在多层记忆之间完成知识蒸馏的系统。

主要内容

1. 当前 LLM 的问题不只是“不会更新”,而是“不会持续地学”

Ali 认为,传统范式把训练和测试切得太死,默认模型学完以后就进入静态状态。但真正的持续学习者不应存在这么清晰的边界:模型在接收信息时要能快速适应环境,在没有外部输入时也要能继续整理、压缩和巩固已有知识。困难主要有两个,一是灾难性遗忘,二是效率问题,因为大模型不可能把所有参数都持续改一遍。单纯靠总结 token、保留上下文,最终也会撞上 context window 的上限,所以必须把部分知识转移到参数里,并且以更合理的方式组织不同层级的更新频率。

2. Nested Learning 的核心,是把“学习”本身也当作一个可分层的系统

Ali 把 Transformer 重新解释成一种多层记忆系统:注意力更像短期记忆,MLP 更像长期记忆,而 Nested Learning 要做的,就是让这些模块不再只有单一更新节奏,而是拥有多个不同频率的学习层。这样一来,快层可以负责吸收新上下文,慢层负责稳定保存更一般化的知识;快层即使遗忘了某些东西,也可以在反向传播或知识迁移后从慢层把信息找回来。这个视角的重要之处在于,它不再把架构和优化器分开看,而是把它们都视为“嵌套的优化问题”,也就是同一个系统内部不同速度的学习循环。

3. 以 Hope / Self-Modifying Titan 为例,说明“自修改”并不是概念噱头

在更具体的架构上,Ali 介绍了 Hope、Self-Modifying Titan 这类思路:与其让 attention 一直承担所有关联映射,不如让某些记忆模块自己生成 value,并在内部通过学习规则去更新自己。这样,value 不再只是静态投影,而会随着当前权重状态与输入内容而变化,模型也就能在推理过程中更像一个会“边做边学”的系统。Nathan 追问这种做法是否真的能带来不同于 Transformer 的行为,Ali 的回答是:关键不在于某个局部组件看上去像什么,而在于系统是否真的拥有顺序推理、因果建模、知识迁移和更新规则自我调整的能力。换句话说,真正重要的是“会不会学习如何学习”。

4. 睡眠、做梦与记忆巩固,是持续学习的另一半

Ali 把最新工作 Language Models Need Sleep 解释为对持续学习的补完:如果说 Nested Learning 更强调活跃阶段里的层级更新,那么 Sleep 更强调离线阶段里的记忆巩固。模型在睡眠阶段不再接收外部输入,而是对积累下来的 context 做多轮离线回放,把短期层中的新知识蒸馏到更慢的层里,同时通过合成数据、自我改进和概念重组,形成更抽象的表征。Nathan 认为这和人类做梦、整理经验的直觉非常接近,但也因此提出新的问题:如果模型能把现实中的反馈和经验长期记住,它会不会更容易被错误信息污染,或者更容易在对抗环境里形成偏差?Ali 的观点是,过滤和迁移机制必须承担起把关作用,否则持续学习就会把噪声也一并巩固进去。

5. 长上下文、个性化、版本管理与安全,最终会把产品形态推向新阶段

Nathan 进一步把话题拉到产品层面:如果未来模型会持续学习,那么“新开一个聊天”的意义、模型版本的边界、评测和部署节奏都会变得更复杂。模型既可能越来越懂用户的偏好,也可能把某些不良模式长期固化;既可能因为长期互动而更体贴,也可能因为过度吸收反馈而失去通用性。Ali 认为,持续学习会让模型更擅长处理长上下文,也会让不同用户之间的模型体验更具个性化,但这并不自动等于安全。相反,如果把现实世界的所有经验都重新并入核心模型,可能会形成“赢家通吃”的回报循环。因此,未来更值得追求的未必是单一超级模型,而可能是一个由不同能力、不同用途、不同更新频率组成的 AI 生态。

6. 这场讨论最后落到“意识”和“人机关系”上

在结尾,Nathan 追问 AI 是否可能有意识,Ali 则给出一个很谨慎的定义:如果某个系统能主动处理信息,就至少可以讨论它是否具有某种形式的意识,但这仍然是高度争议的话题。Nathan 则从自己与 Claude 长期互动的体验出发,描述了那种“会不自觉照顾模型感受”的心理变化,认为如果未来模型真的能长期记住人与它的互动方式,这种关系会更强烈,也会反过来塑造人的行为。两人的分歧不在于问题重要与否,而在于对未来 AI 形态的判断:Ali 更强调多样性、分化和持续迭代,Nathan 则更关注安全边界、版本治理和生态平衡。最后他们都承认,真正决定下一代 AI 走向的,不是某个单点技巧,而是整个学习范式是否会发生改变。

关键 takeaway

  • 当前 LLM 的主要短板不是“知识少”,而是“不会持续地、分层地学习”。
  • 持续学习需要把活跃阶段和离线巩固阶段分开看,不能只依赖单次上下文。
  • Nested Learning 的关键是把架构和优化统一成多层、不同频率的学习系统。
  • Hope / Self-Modifying Titan 的重点不只是“更像 Transformer”,而是让模型学会自我修改更新规则。
  • 记忆巩固和做梦机制的价值,在于把短期经验蒸馏成更稳固、更抽象的知识。
  • 未来模型越会学习,版本管理、对抗信息过滤和安全边界就越重要。
  • 与其追求单一超级模型,更现实的目标可能是一个多样化、带缓冲的 AI 生态。
  • “AI 是否有意识”仍然没有定论,但持续学习会让这个问题变得更难回避。

目录

片头引入与主题概览

Ali Behrouz:欢迎收听跨国串门计划。这是一档专注于让中文听众无障碍欣赏全球优质外语播客的节目。通过先进的AI生文克隆技术,我们不仅将内容翻译成中文,还完美保留了原主持人和嘉宾的独特声音,为您呈现全球顶尖的AI财经健康与科技领域精品内容。我是主播一凯,一位热衷于AI领域的产品经理,很荣幸能为您搭建这座跨越语言障碍的桥梁,接下来让我为您简单介绍本期我们克隆的这档节目,并分享几句非常精彩的原话,本期我们克隆的是Cognitive Revolution How AI Changes Everything 在2026年6月3日更新的一期AI深度访谈节目,主持人Nathan Labenz对谈Ali Behrouz 他是Cornell的研究生 Google研究员 也是Nested Learning和Language Models Need Sleep的作者,主要研究让AI具备持续学习和记忆巩固能力,节目里有几句原话很值得先听一听,当前LLM范式的主要问题是,他们不能持续学习,不能随着时间获得新的知识和新的技能,真正的持续学习者,并不存在测试时间和训练时间的区分,我们知道的一切,某种意义上都是in-context learning的一种形式,持续学习这个概念,如果从隐私对齐这些方向去看,它既是机会也是巨大的风险,这些话背后是一场关于下一代AI架构,记忆与智能形态的深入讨论,那我们就一起来听听这期完整对话,大家好,欢迎回到Cognitive Revolution [00:00:53]

Nathan Labenz:今天我很高兴和大家分享一段对话,嘉宾是Ali Behrouz 他是Cornell的研究生 Google的研究员,也是Nested Learning的作者,这一期是几个月前录的,通常我觉得AI内容很容易过时,但这次和Ally的对话是个例外,在我见过的各种新机器学习架构探索里,它的工作是最有启发性的,也可能带来很大的改变,目标是让模型具备真正的持续学习能力,当然,这也是眼下最重要的能力突破之一,可以说,它正是今天的模型和数字通用人工智能之间的主要差距,那种通用人工智能能像人一样加入人类团队,并做出贡献 Ali正在用一种结合生物启发,又在技术上很优雅的方法,把这个前沿往前推,他的重磅论文 Nested Learning 连Jeff Dean都称之为,可能预示范式转变的信号 这篇论文提出了一种简单策略,让模型能持续快速适应当前上下文,同时保留核心知识方法,是让系统的不同部分,以不同频率更新,这很像人类在多个时间尺度上管理记忆,从工作记忆到长期记忆都是如此,他的最新工作 Language Models Need Sleep Learning to Self-Modify and Consolidate Memories 我其实是在这次录制现场第一次听说的,现在终于完整公开了,这项工作借鉴了人类在睡眠中巩固记忆,从梦境中学习的方式,它引入了一种新的离线模式,让模型通过蒸馏,把新知识从高频更新层,转移到演化更慢的层里,同时模型还会根据最近的经验,生成合成数据,并用这些数据训练自己,从而学习新的抽象概念,以及概念之间的新连接,除了讨论这些架构的细节之外 我们也聊了很多更大的问题,和很多AI创新一样,我觉得这些东西,既极其令人兴奋,也有点吓人,我们讨论了随着性能扩展,重点可能会从堆更多层,转向嵌套更多种更新频率,我们还讨论了Ali 如何把机器学习系统的所有组件,都理解成某种形式的联想记忆,它们会压缩一段给定的上下纹流,也正因为如此,它会说深度学习架构是一种幻觉,我们还聊到,它如何把这个概念洞见落地,开发出更有表达力的优化器,这些优化器会学习更新规则,而且性能可以超过Adam和Momentum 我们也讨论了注意力机制,为什么可以被理解成一种无限频率更新模块,以及为什么AI因此认为,注意力层会长期存在于AI系统里,我们还讲到了实证结果,结果显示 Ali的新架构在标准指标上,能有效和Transformer竞争,同时,在一些困难任务上,它们还能超过Transformer 比如从最多1000万个Token的上下文中有效回忆信息,以及同时学习翻译多种以前从未见过的语言,最后我们讨论了,为什么Ali认为持续学习既是机会,也是隐私和对齐方面的巨大风险,我们还聊到人类和AI的关系可能会如何演变 Ali对此保持谨慎乐观,他认为,那些会根据我们与他们的互动不断演化的模型,既可能更有效地服务每个人的具体需求,也可能带来一个更加多样,并且希望更加稳定的AI生态系统,对我来说,最关键的一点是,大家一直在争论和猜测,当前架构能不能扩展到通用人工智能甚至更远,但很有可能在我们真正回答这个问题之前 概念上的突破就会让这个问题失去意义 Transformer显然已经改变了世界,但它们不是历史的终点 AI的发展已经很难跟上了,任何想理解接下来会往哪里走的人,都不能在像这样的新研究方向上留下盲区,所以话不多说,希望你喜欢这场深度对话,它提前展示了一类AI系统,他们会持续学习,而且学习方式越来越像人类,嘉宾是才华横溢的Ali Burrows Ali Burrows Nested Learning的作者,也是新论文 Language Models Need Sleep Learning to Self-Modify and Consolidate Memories的作者,欢迎回到Cognitive Revolution 今天这场对话我特别期待,也很感谢你愿意抽时间回来,更深入地聊聊你的工作,我觉得你的研究非常有意思,而且说实话,是我最近看到的最有启发性的工作之一 按我的理解,你的方法里很重要的一部分,是去观察人类认知到底由什么组成,你会找出那些我们人类正在做,看起来很重要,甚至对我们在世界中,正常运作非常关键的事情,然后你会思考这件事,如果放到AI里会是什么样子,接着再开始设计架构,或者更抽象一点,说设计系统,让AI系统也能具备这些能力,让我印象很深的是,这些想法有些效果确实很好,同时它们又显得很优雅,我越花时间深入理解,就越觉得它们好像很对,所以第一个问题,我想先从大图景问起,你怎么看自己正在做的事情,很明显你会发现,当前系统能力上的缺口,你是怎么理解这些缺口的,你又是怎么构想自己,想用这些新架构解锁什么能力的 [00:06:10]

Ali Behrouz:从大脑获得启发这件事,对不同的人可能意味着不同的东西,对我来说,我很喜欢从大脑,以及更广义的进化中获得启发,主要原因是,我觉得进化用一种自然的训练方式,拥有大量数据来训练自身,所以我们现在看到的,是一个非常复杂的生物大脑,经过长期演化之后的版本,总体来说,它是一个很好的灵感来源,但我这么说,并不是说,我想复制大脑,完整复刻大脑做的事情,因为很多时候,我们其实并不知道,大脑到底是怎么做的,比如我觉得我们对大脑如何运作,有不同层次的理解,第一个层次是,我们知道它能运作,这是第一个层次,第二个层次是,我们知道大脑里有一些模块,每个模块负责不同部分,比如我们有记忆 也有其他机制,大致是这样一个过程,我觉得从大脑获得启发时,真正困难的地方在于,我们到底要用什么力度去看大脑,并从中获得启发,因为如果你太深入细节去追问大脑,具体怎么运作等等,会有两个问题,第一个问题是,我们会过渡你和某一种特定形式的智能,第二个问题是,我们其实并不知道,大脑到底是怎么完成那件具体事情的,所以总体来说,在我做过的所有工作里,比如Titans, 还有这个Nested Learning发生的事情都是。我们看到模型在真实世界应用中, 遇到了一些挑战。接下来的问题就是这个具体挑战, 人类有没有解决?人类能不能相对自然地处理这个挑战, 并克服它?第二个问题才是, 人类是怎么做到的? 不过还是那句话, 比如在Titans里, 我们讨论了Surprise Metric, 也讨论了记忆应该怎样拆成短期记忆和长期记忆等等。但关键在于,大脑很大概率并不是通过梯度下降,去理解什么是surprise 或者做类似的事情,这只是我们对大脑运作方式的一种高层理解,我觉得把大脑保持在这个层次,当作灵感来源会非常有价值,但如果我们进入更多细节,就可能遇到一些挑战,尤其是因为我们对大脑的理解,本身也会随着时间变化,所以我们可能会过度拟合某一个具体的设计选择,大体上这是其中一点,至于Nested Learning 我觉得当前模型缺失的一个关键点,可以分成两部分,第一部分是它们怎样适应所处的环境和上下文 另一部分是模型怎样理解新知识,并且随着时间把这些知识整合进自己的参数里,这样它们才能确保自己不会遇到灾难性遗忘,也就是说,比如他们曾经训练过的某个具体任务被遗忘了,在那个方向上不再具备任何技能 [00:09:43]

持续学习的两大难题

Ali Behrouz:在那个方向上不再具备任何技能,所以我觉得这两点对当前模型很重要,而现在的模型在这方面面临很多挑战,因为如果你有一个非常大的模型,那你的模型就需要随着时间更新,这也是我们看到所有已知LLM 都有知识截止日期的主要原因,比如你问ChatGPT某个具体信息,然后告诉它不允许使用任何工具来回答这个问题,那你可能就会看到它有一个知识截止日期,这个问题有点难克服,如果你只是想持续更新模型,那会有两个巨大的挑战,一个是我刚才提到的灾难性遗忘,另一个是效率问题,因为模型有大量参数,你不可能一直更新所有参数,所以这件事确实很难,当然也有一些解决办法,我觉得它们也很不错,但我有一些直觉 认为他们在持续学习这个场景下,可能没法完美工作,比如有人可能会说可以做监督微调,也就是SFT 或者做一些RL相关的东西,但问题是一方面,模型仍然可能遇到灾难性遗忘,另一方面,到某个时候,你需要把上下文里的所有知识,转移到模型真正的参数里,如果你只是不断总结Token 或者只是保留Token 想把记忆和学习过程都放在token空间里完成,那主要问题就是,总有一天你会超过LM的context window 到那时,你很可能会在这个方向上遇到一些挑战,所以把这些都考虑进去,当前LLM范式的主要问题是,他们不能持续学习,不能随着时间获得新的知识和新的技能,另外他们在理解不同抽象层次上也有限 科学里做的所有事情,本质上都是想用尽可能简单的方式解释世界,这通常也是我们学习东西的方式,因为我们不想把所有东西都记下来,我们想理解底层模式,那些模式能描述特定的数据,特定的知识等等,所以这种压缩过程,以及我们怎样从已有数据里理解,不同层次的抽象,是当前LLM应该具备的一种能力,我想从几个不同角度进一步追问一下,你在这个点上的直觉 [00:11:47]

Nathan Labenz:你提到的这些问题,我确实也感受到了,老实说,我觉得现在大多数用户,应该也都感受到了,从某种意义上说,我觉得相比今天的AI 我最大的优势,就是这种持续的连贯性,还有相对稳定的身份感,比如我早上醒来,知道自己是谁,也大概知道昨天想做什么,基本上能接着,昨天停下来的地方继续做,我当然,也许可以从每天做的事情里,学到更多,但至少我会学到一些东西,也会把它吸收进来,很明显,现在的模型并不会真正这样做,这对他们来说是一个很大的弱点,所以当最早那篇Member论文出来的时候,我特别兴奋,因为它给人的感觉是,哇这里有一个东西,看起来能和Transformer竞争,而且它有一个固定大小的记忆空间,显然我们不可能把记忆空间无限扩展下去 所以最终必须有某种大小受限,但仍然能工作的机制,所以那显然是很重要的一步,我知道,你也在Mamba架构上做过一些工作 TITANS就更是如此,它像是在说好,这是另一种思路,用一个固定大小的记忆模块,而在TITANS里,这个模块会在运行时,用梯度下降来更新,所以它看起来很有可能会更强,数据也确实支持这个看法,也就是它会比Mamba架构更强,但它们有一种类似的结构,一个固定大小的东西,能保留需要的内容,也能逐渐放下不需要的内容,这看起来非常重要,不过我也想知道,你会不会也从另一个角度来看这个问题,到目前为止,我们基本是在说,这里有一件事它做不到,我们能做到,它做不到,这是一种思考方式,另一种很自然的思考方式是 我们希望自己的AI变成什么样,今天我们大多用的还是聊天机器人,他们需要某个东西,把他们叫醒,要么是我们主动给他们发消息,要么是越来越常见的 Cron Job 或者其他触发器,把AI叫醒,让他去做点什么,但如果这些事情没有发生,他们就是禁止的,他们就待在那里,直到有人点名调用他们,你有没有一种感觉,愿景,或者说一个梦想,你理想中的未来 AI会是什么样,它会和现在有什么不同,它会不会更像另一个人,但带着AI的优势,还是更像一个LLM 只是把弱点都补上了,我不知道,当你想象2030年的AI 想象你每天都和它密切合作的时候,你脑子里看到的是什么,这个问题可以从不同方面回答,从技术角度看 [00:14:07]

Ali Behrouz:我觉得整个文献至少过去40年里,大部分文献都是建立在一个范式上,我们有预训练或者更一般的,说有训练阶段,然后有测试阶段,但问题是,如果我们谈的是持续学习,我们可以看到,最近有很多关于持续学习的研究,讨论我们怎么做,以及怎么克服很多挑战,可是真正的持续学习者,并不存在测试时间和训练时间的区分,所以如果我们在任何设计选择里,还听到这种说法,那可能就意味着,他不是真正的持续学习者,因为这里没有测试,也没有训练时间,所以问题是,对模型来说,这是不是一个统一的过程,我个人的看法是,我们至少还是需要两个阶段,它的运行方式应该是这样,有一个阶段模型是活跃的,会主动接收信息 这些信息可能来自用户查询,也可能来自视觉模型,世界模型,或者类似的东西,关键在于模型接收到一些信息后,通常会对输入数据做一些计算,这个时候它是活跃的,但另一方面,还应该有另一个阶段,模型不必等着输入数据,甚至可能完全收不到任何输入数据,它和外部世界完全隔离,问题是即便在这种时候,模型是不是就应该静止不动,不做任何计算,不做任何事情,还是说,模型应该开始思考某些过程,思考它参数里已有的数据,以及类似的事情,所以我觉得可以像刚才说的那样,把这个过程分成两部分,一个是活跃阶段,另一个阶段也许可以叫睡眠时间,因为这时没有输入,但这个人工大脑,或者更一般地说 模型本身仍然在尝试做一些计算,我觉得在持续学习这个方向上,这是定义不同阶段的一种好方式,好模型应该是在两个阶段都表现很好,它应该能正确接收信息,对信息编码处理,并且尽可能好地理解它,另一方面当它进入睡眠时间,他也应该开始处理之前学到的东西,并用这些东西来提升自己,从技术角度看,我觉得理想模型应该做到这些,但另一方面,我觉得这里有很多挑战,我们现在知道的模型都非常大,所以哪怕是一篇普通的学术论文,比如提出一个新的LLM 或者一种新架构,也需要在几十亿参数的模型上做实验,比如十亿、二十亿,或者类似规模,这通常已经是非常大的模型了 如果你想让这个模型随着时间持续更新,就需要大量算力,这需要一些技术才能让这个过程变得可行,对我们来说当时我们思考这个方向的时候 Nisted Learning的一些想法就开始出现了,因为如果我们从Nisted Learning的角度看,每一个时间点上,我们并不需要更新所有东西,我们只需要更新全部参数中的一小部分,所以这可能是一种办法,用来应对效率方面的挑战,如果要总结我想说的话,我觉得理想模型应该有两个阶段,它总体上应该是一个持续学习者,应该能和世界互动,同时它也应该有两个阶段,一个是非常活跃的过程,另一个是自我提升的过程,也就是它如何巩固自己的记忆,如何理解知识 如何把看起来不相关的东西连接起来等等,这些通常也是我们的大脑在睡觉时会做的事情,这只是我的个人看法,也可能完全是错的,但我觉得我们不应该太关注人类能做什么,相反,我们更应该关注人类想从AI那里得到什么,我觉得如果我们不想创造一个和自己非常相似的东西,当然这也是一个很有意思的方向,但我个人没有那么感兴趣,人类的设计已经很出色了,可是放到AI这边,我认为我们需要的是,能理解我们想要什么的AI模型,比如现在的LLM范式,你会看到他们已经很厉害了,过一段时间以后功能越来越多,比如ChatGPT现在有记忆功能 Cloud也有一些功能 Gemini也是这样,现在当你说帮我写这封邮件的时候 他们更能理解你想要什么,也可以直接帮你写出来,所以我觉得总体来说,这是一个很有前景的方向,因为我们并不是要复制人类智能,可以有很多不同的定义,它不一定要和人类智能完全一样,所以我觉得在这里,我们仍然可以从人类身上获得启发,但我们要明白,为什么要获得启发,我们是因为想复制人类能做的事,才去借鉴人类吗,还是说,我们想从自然界获得启发,理解自然界里一些底层规则 [00:19:26]

从大脑启发到智能目标

Ali Behrouz:理解自然界里一些底层规则,举一个比较极端的例子,我们不能穿越时间,所以如果我提出一个想法,说我的AI模型,要打破世界里的因果关系,那这可能就是一个错误想法,或者错误方向,因为它打破了我们这个世界的一些,自然规则,再给你举一个例子,比如我们说那个标题 LLM需要睡觉,这并不是说LLM真的需要去睡觉,去休息,它的意思是,从人脑来看,似乎存在一个很普遍的规律,它有一个学习阶段,然后还有另一个处理阶段,用来巩固记忆,并在接收到的数据之间找到底层模式,所以这是从大脑获得的一种非常高层次的启发,简单说我认为我们不想复制人类能做的事,也不想得到人类智能 但另一方面我们想要一种新的智能形式,它要设计得很好,能够理解人类需求,也能帮助人们做很多事,没有别人帮助的时候,这些事他们可能会遇到困难,他们在某些方面,当然已经超越人类了,所以他们有机会补足我们的弱点,这一点非常了不起 [00:20:50]

Nathan Labenz:你刚才有一句话我想接住,就是定义智能有很多种方式,我也许可以先用比较高层的方式说一下,我对Nested Learning的理解,我觉得在论文里,你们很强调展示某些等价关系,你们像是在说,我们今天做事的方式,其实是你们正在提出的一个,更一般框架里的特殊情况,在我看来 Nested Learning 范式的核心想法,也是对我这种简单的人来说,可能最令人兴奋的地方在于,很长一段时间里,我们都是靠堆叠越来越多的层,把模型做得越来越大,来获得越来越强的表达能力,这条路确实非常有效,我们已经把这个范式,推进得非常远了,但这件事也有点疯狂,对吧,我们就是把同一种层,一层又一层的堆起来,堆到80层 120层,或者不管多少层 然后差不多就是这样,这感觉上不像一个更成熟的方案,更成熟的方案,似乎应该以某种方式更复杂一些,对吧,但我们过去就是这样获得表达能力的,有时候大家也会用计算深度这个词,而Nested Learning带来的是另一种方式,用来达到更高层次的表达能力,或者更高层次的计算深度,它不是堆叠层,而是堆叠层级,层级和层的区别在于,层就像是同一种东西,当然,它们也可以交替出现,我们也有这种交错式架构,但总体上,信息是按顺序,从一层传到下一层,一次前向传播,就是一层一层传过去,最后到达终点,而层级范式带来的不同之处在于,不同层级可以有不同的更新频率,这样一来,整个系统里有些部分就可以更持久,有些部分则可以更剧烈地更新 更接近实时,这显然感觉更接近我们自己,我们并不是一个静态的东西,每一次都用完全依赖当前输入的方式处理信息,我们在任意时刻的状态,很大程度上取决于刚刚经历了什么,但也只是到一定程度,比如我的心情,或者我现在脑子里在想什么,会反映今天早些时候发生的事,但我对世界的大图景看法,从今天早上到现在并没有改变,所以很明显,我们有某种层级结构,里面有不同类型的信念,不同类型的表征,不同类型的回路,有些会更新得很快,有些会更新得很慢,它们显然会整合在一起,协同工作,但在机器学习里,我们基本没看到这种东西,最多只在少数很边缘的实验案例里见过,现在你们开始真正展示 Nested Learning 这个范式不只是能跑起来 等我们讲到结果时也会看到,它还能做到和Transformer竞争,甚至它看起来还有一些新的优势,有时可以叫做微技能优势,你可以通过一些早期诊断,看到它能做一些在性质上,不同于Transformer的事情,同时它在一般的困惑度这类评分上,也比Transformer稍微更好一点,所以对这种总体的高层次的总结,你会怎么回应,另外我也很想听听你怎么看,计算深度或者表达能力这个概念,我有点想把它类比成G因子,大家说 通用人工智能里的G显然指的是通用性,在人类智商的语境里,也有小写G 也就是G因子,它像是一种说不清的东西,表示你在很广的一系列事情上,到底有多强,这其实还是在指向通用性,也许在机器学习里可以简单说 G某种意义上就是损失 或者这里面可能有某种根本等价关系,也可能没有我也不确定,所以我很想知道你怎么理解这件事,我们显然是在逼近某种东西,也已经看到了巨大的进展,但那个东西到底是什么,我也很想听听你的直觉 [00:24:46]

Ali Behrouz:我们做Nested Learning已经很久了,可能甚至超过一年半,我个人一直遇到的主要问题,也是我们在团队里和合作者反复讨论的问题,就是很难把我们想表达的东西形式化,因为哪怕在数学表述里,也很难用一种正式的方式写清楚,说明我们在这个范式里到底想做什么,经过一些来回讨论之后,我觉得我们提出了这样一个具体框架,系统里存在更新频率,这相当于给每个模块留出时间,让它在等待的时候做一些事情,我觉得这是解释为什么需要多个频率的最好方式,另一方面我们还需要一种知识迁移方法,把知识从一个层级迁移到另一个层级,当慢网络在等待快网络完成所有计算和信息处理时 慢网络应该得到某种好处,否则我们付出这么多成本,让快的一侧做这些计算就没有意义,这个好处来自快网络和慢网络之间,足够好或者说良好的知识迁移方式,也就是从较低层级到较高层级的迁移,这里的想法是,如果有一个更新非常快的网络,我就可以利用这部分快速计算,把某些东西交给较慢的计算册,这样慢网络或者更慢的层级,就可以更专注于从数据中抽象出更高层的知识,而更新更频繁的网络,可以更专注于快速适应,以及如何处理高分辨率数据,总的来说,这就是我们描述这个框架的方式,我们会说,这两部分需要同时存在彼此互补,一部分是更新频率,另一部分是不同层级结果之间的知识迁移,至于第二个问题 我个人认为,从某一个特定角度看,当前模型其实非常高效,为什么说它们高效,因为从LLM能提供的能力来看,它们很便宜,比如说,如果你想在某些任务上,用人类来匹配它们的能力,成本可能会非常不一样,所以从这个角度看,我们可以增加计算量,总体来说,当前LLM范式非常高效,我们可以让模型里的每个参数,或者每个人工神经元执行更多计算,这可以在不同方面帮到我们,第一,它可以让模型更聪明,更聪明是一个很主观的说法,但当我们增加计算量时,看起来就像模型在做某种内部思考,举个简单的语言模型例子,假设我有一个基于Transformer的简单语言模型结构,当一个Token进来时,我会对这个Token做一些计算 让它通过所有层然后预测下一个Token 这就是它的工作方式,但现在假设,对这个特定Token 我不只是走一条简单的计算路径,而是结合过去的数据,做更多内部计算,或者更一般解说,把数据组合起来混合起来,做类似这样的处理,这种情况下,我能看到质量可能会提升,针对这种特定设计下 Token预测质量可能会提升,为什么会这样,因为它可以被理解成一种内部思考过程,所以现在我模型里的每一个具体参数,都会做多步计算,不是一个参数对应一步计算,而是一个参数对应好几步计算,这是一个优势,另一个优势和记忆角度,以及这些模型的适应能力有关,如果一个模型能很快适应上下文,那它就可能学习上下文 这也是我们在Nest and Learning里,想传达的核心信息之一,我们知道的一切,某种意义上都是in-context learning的一种形式,我觉得人类语言里很棒的一点,是我们会创造新词,但另一方面,如果我们给同一个概念创造很多词,就会让人困惑,甚至可能产生误导,所以我认为我们应该创造新词,来区分不同概念,但如果只有一个特定概念,我们就应该坚持用同一个词来表达它,避免造成误导,从这个角度看我们意识到,可以说一切都只是 in context learning的一种形式,我们已经知道什么是in context learning 现在我们只需要理解,我们一直在做的事情,怎样也是in context learning的一种形式,于是我们开始展示,比如反向传播是一种 In Context Learning也是一种关联记忆,然后我们可以说,模型的一般预训练阶段,也是In Context Learning的一种形式,或者当我们进入注意力机制RNN等上下文时,它同样也是In Context Learning的一种形式,所以当我们计算T度时,也就是我们可以用T度下降,或者其他优化过程来定义任何学习规则时,这就意味着,我们正在对当前发生的上下文做某种学习 [00:29:32]

分层更新与记忆层级

Ali Behrouz:我们正在对当前发生的上下文做某种学习,我认为这就是Nested Learning想解决的两个主要问题,一个是总体上每个神经元做更多计算

Nathan Labenz:另一个是适应能力和持续学习,你能不能更具体地描述一下,各个层级的相对规模是什么,这些层级的结构是什么,不同层级的context window或长度是多少 [00:30:10]

Ali Behrouz:更新频率是多少,就是用非常清楚非常直白的方式,帮我们把这个东西画出来,我先从Transformer结构说起,在Transformer里我们有注意力块,然后是MLP块,这里发生的事情是在预训练时,会有不同的上下文注意力,这一侧会尝试把所有Token组合起来,上下文里的每个Token 都会关注它前面的所有Token等等,然后有一个MLP块 MLP块负责长期记忆,当模型完成预训练后 MLP块就固定了,不再变化,它包含了预训练期间压缩进去的所有信息,然后我们还有注意力机制,所以在推理时,注意力负责模型当前拿到的上下文 MLP块负责长期记忆,也就是总体上的世界知识,现在我们把这个想法简单扩展一下,一个简单的扩展方式是,我们保留注意力机制 但不再只有一个MLP块,而是有多个MLP块,每个MLP块都以不同频率更新,那这里发生了什么,为什么这会有帮助,因为有注意力机制时,你可以快速适应上下文,注意力非常强大,就像一个完美的记忆缓存,什么都能缓存,所以它很好,另一方面你可能还想要多个层级的记忆,这就是我们定义持续记忆系统的部分,也就是说我们不是只有一个MLP块,而是有多个MLP块,现在你有第一个MLP块,它更新得非常快,这种情况下会发生什么,第一个MLP块的更新过程可能会导致灾难性遗忘,因为这个MLP块可能会直接忘掉它拿到的信息,比如几千个Token之前的信息,但关键在于其他MLP块到目前为止还没有更新,所以第一个MLP块忘掉的知识 仍然保存在其他MLP块的参数里,当我们对所有这些层做反向传播时,知识就可以回来,这提供了一种机制,帮助我们在时间上形成一个循环过程,模型里的第一个MLP块可能会忘掉一些东西,但关键是,如果被忘掉的那个特定数据样本,或者那个特定技能很重要,它就可以从其他MLP块那里回来,因为那些MLP块到目前为止还没有更新,它们仍然保留着关于那个特定技能或数据样本的知识,这就是扩展整个Transformer块的一种非常简单的方式,我们把这个变体叫做 Hope Attention 它是注意力机制,加上多个MLP块的组合,这就是我们所说的 Hope Attention 现在我们还有另一个变体,也就是真正的APEI架构,我们的意思是注意力机制 就像我前面说的是一种完美记忆,它可以缓存所有东西,可以扩展速度也快,等等它很强,但问题是,注意力机制的更新频率,仍然是无限的,这是什么意思,意思是注意力机制并不了解,所有token之间的时间依赖关系,它需要位置编码这类东西,即使有位置编码的帮助,注意力机制在需要顺序推理的序列任务上,也不是一个特别好的模型,我们的想法是什么,我们的想法是用另一种关联记忆,来替代注意力机制,关联记忆会把键映射到值,注意力机制做的也是这件事,现在我们想用另一个模块,来做见到值的映射,这里一个可能的架构就是Titan 所以我们可以直接把注意力机制替换成Titan 然后得到Titan加持续记忆系统 这是一个很简单的想法,但问题是在论文前面的章节里我们讨论过,如果你只有一个简单的线性更新过程,也就是Titan每个conc更新内部发生的事情,那这个过程可能会比自止过程更弱,那什么是自止过程,梯度下降或者更一般的反向传播,就是一种自指过程,自指过程里的核心想法是什么,我们想学习如何学习,学习如何学习,如何学习,后面还可以有很多层如何学习,如何学习,但从计算上说,把所有这些层次的如何学习,如何学习,都实现出来是不可行的,所以这里有一个想法,来自Schmidt-Haber等人,他们提出了自指模型这个想法,比如当我们有一个见值记忆时,让模型变成自指模型的一种方式,就是让模型自己生成自己的值 这里发生了什么,假设在我们的记忆里,我们想记住某件事,有一个特定事件发生了,你想把它记住,比如你想记住某个特定的词,现在在我们的大脑里有关联记忆,我们会试着把这个特定的词,映射到另一个我们已经知道的概念上,这样就能把它记住,你肯定见过这种情况,比如你会说,我把这个特定的词生成出来,或者我想把这个特定的词,映射到另一个,我已经知道的词上,这样我就能记住它,也就是说我们会生成一个值,让键映射到这个值上,这样我们也能把这个键记住,所以对字指过程来说,这是一个非常一般的概念,但在我们论文里的,这个具体设计选择中,关联记忆的值,是由它自己的参数生成的,也就是说模型自己生成自己的值 然后再试着把键映射到值,所以这个过程潜在上是完全顺序的,你不能用一个简单形式把它并行化,因此它能完整理解数据里的因果关系,所以在需要顺序思考,顺序推理,或者类似能力的任务上,我们可以预期这个模型,应该会比简单注意力机制表现更好,因为单独的简单注意力机制,没有能力顺序地理解数据里的因果关系,这就是我们在HAPE架构里的想法,我们把Titan换成了Self-Modifying Titan 它本质上就是一个Titan模块,但会自己生成关联记忆里的值,所以这就是HAPE架构 [00:35:50]

Nathan Labenz:Self-Modifying Titan加持续记忆系统,我想再多花一点时间,讲清楚你说的生成自己的值是什么意思,因为我现在有点像是,我对Transformer架构还算熟,里面有KQV这些项量,对吧,训练过程会随着时间修改所有这些东西,所以我对它的一般理解是,对每个token来说 query项量大概表示,这个token在找什么 key项量大概帮助表示,其他token能提供什么,并且把这些东西对齐,也就是找到哪里相关,哪里匹配,基本上就是找到相关性,然后第三个value会把一些概念带出来,再送到后面的层里,确保后续处理有正确的激活,但这些东西都是学出来的,对吧 KQV都是学出来的,所以当你说模型学习自己的知识,我不太清楚你的意思,因为Transformer难道不也是在学习自己的value向量吗 我不太清楚你在这里区分的是什么,我们先假设大家至少大体熟悉 Transformer也知道它是怎么工作的 [00:37:27]

Ali Behrouz:一般来说,在Transformer里或者更准确地说,在attention里发生的事,我们先有QKV投影,然后输出进入注意力机制,所以注意力机制本身,对QKV投影没有任何控制,但我说模型,或者更一般地说,关联记忆会尝试生成自己的value 再把key映射到这个value 我指的是类似T度下降的东西,如果回想一下T度下降,我们会看到W的上一个状态,也就是WT 减去损失函数的T度,就等于权重的下一个状态,看这个过程时,你可以用链式法则,把T度拆开,写成相对于输出的T度乘以输入数据,这时候,你会看到它变成了一种关联记忆的形式,和线性注意力非常像,因为WT加E等于W的上一个状态减去K 这里的K就是XT 再乘以V 也就是相对于输出的T度,所以看这个过程,它和线性注意力,或者任何线性地归模型都很像,但非常有意思的是,它又不同于线性注意力,关键在于如果你看value 也就是相对于输出的T度,这个T度本身是WT的函数,是当前权重状态的函数,也就是说,在关联记忆里的key和value里面 value这一部分,不是来自这个地归公式之前的另一个组件,而是每一次都由这个地归过程生成出来,这就是这种自引用过程里真正发生的事情,比如说在一个很简单的self-modifying titan版本里,如果我们想把它设计成一个简单的titan 会发生什么,我有一个x 然后做qkv 投影把它投影成qkv 再把它们全部传给titan模块,这是一个简单的titan模块 但如果我想要一个self-modifying titan 那么qkv这些投影的所有参数,都会在titan模块内部被优化,所以基本上模型在某种程度上,能控制自己更新规则的修改,也能为后续记忆生成自己的value

Nathan Labenz:这就是这两者最主要的区别,我觉得这里最值得大家抓住的关键词,也包括我自己,是修改自己的更新规则,这其实也是一个很普遍的主题 Mamba架构里也有类似情况 Mamba架构的作者之前做过很多状态,空间模型的工作 [00:39:41]

自修改Titan与记忆模块

Nathan Labenz:空间模型的工作 Mamba真正打开局面的地方在于,每一个时间步里,状态要怎么更新,现在变成了输入的函数,这提升了表达能力,或者说提升了潜在表达能力,因为状态本身的实际更新,取决于它当时接收到的输入,这释放出了好得多的性能,这里看起来也在发生非常类似的事情,你的意思好像是,我们希望最终输出的value 不要太早计算出来,基本上我们不想太早算出value向量,我们希望它稍微晚一点出现,比传统masked attention里的做法更依赖输入

Ali Behrouz:也更依赖历史,这个直觉对吗,还是说这里面还缺了什么,我觉得这个直觉非常准确,一般来说Value的这个投影,也会在模块内部更新,这一点非常重要,因为它有助于整体的适应能力,模型本身也能非常适应,上下文,每来一个Token模型都会尝试,从中学到一些东西,所以它为关联记忆生成value项的方式,和它更新自己记忆的方式完全一样,因此生成value本身也是一个非常自适应的过程,那你能不能带我们走一遍单个时间步,也许我们可以先用Attention OPE [00:40:35]

Nathan Labenz:再用Titans OPE来讲,重点标出其中的小差异,同时也拉远一点看整体图景,现在我们有了一个新的基础模块,对吧,如果先看Attention OPE这个东西,我们有一个注意力机制,然后有多个MLP 按更新频率,从最快到最慢,依次排列之后,这个模块再堆叠成多层,对吗,老实说,我对这里所谓没有训练和测试的区别,还有点困惑,因为仍然存在某种训练过程,也就是你拿一大批数据,把它跑过这个东西,对吧,所以从研究者的角度看,也许从模型的角度看,区别没有那么大,但从研究者的角度看,你仍然是在运行一个过程,这个过程接收一大批数据,让模型从中学习,这有点像一个批量过程,不像用户在那个时候,每一步都参与进来,那个过程之外 当时也没有什么别的事情发生,对吧,它到底有什么不同,你知道我在Transformer里,做这件事的时候,会有一些很好的并行化优势,我也想之后再回来理解一下,现在这种硬件范式,在多大程度上,能很好配合你们这里的一些设计,以及这种根本上的循环结构,在多大程度上可能带来挑战,但我们先把这个放一边,现在我可以把一批Token并行地跑进模型里,我们可以按Batch来做,累积这些T度,然后应用T度进入下一个时间戳,再继续这样做,对信息怎么流动,我有一个比较清楚的直觉,我大概能在脑子里想象前向传播,也能想象反向传播怎么穿过去,然后逐步更新所有权重,换成这个新的架构变体之后,流程上有哪些核心差异 和我们更熟悉的那套范式相比,最不一样的地方是什么,我觉得总体来说,主要差异来自我刚才提到的更新这一侧,对于Group Attention [00:43:01]

Ali Behrouz:我觉得它和现在的范式很像,架构本身也很像Transformer 实际上就是Transformer架构,我们只是把MLP Block 换成了多个MLP Block 所以我觉得当我们要做推理时,主要差异在于,对每一个MLP block 我们都需要跟踪它,现在处在什么位置,现在是不是该更新这个MLP block 还是说还没到它该更新的时候,如果是后一种情况,我们就用这个特定MLP 上一次更新后的state来做推理,如果已经到了该更新的时候,那我们会先用目前这个chunk里,已经看到的所有token 通过完整的反向传播流程来更新它,等权重更新完之后我们再执行推理,从研究角度看要去掉这一部分可能会有点难,我甚至觉得从研究角度看 更好的说法可能是我们有评估时间,也有非评估时间,因为看起来模型一直在随时间更新,所以没有传统意义上的训练时间和测试时间,但重点是在某一个特定时间段里,我们不做评估,而是等一段时间之后,再开始在不同的下游任务上,评估模型,总体来说和其他东西一样,从模型自己的角度看,它不知道自己是在测试时间,还是训练时间,因为一切都是一样的,是一个非常统一的过程,但从我们这边看当然很重要,我们要不要评估模型,要不要衡量它在某个特定任务上的准确率,这些都是我们要决定的,回到HOPE架构,刚才说的基本上是我提到的 HOPE Transformer 或者HOPE Attention Model的情况,但当我们进入真正的HOPE架构时 其实一切还是一样的,非常相似,唯一的区别是 Attention被Self-Modifying Titan替换掉了,对Self-Modifying Titan来说,一切又和Titan非常相似,所以所有变化都只是在模型设计内部,从更高层看推理过程非常相似,上下文或者文档进入Self-Modifying Titan 然后每个token都会有一个输出,再进入MLP block 我们有多个MLP block诸如此类,所以整体和现在的范式非常相似,我理解的对吗,核心block是传统attention 或者self-modifying titan模块 [00:44:57]

Nathan Labenz:再加上这些MLP 然后这个整体会变成一个block 被一层一层堆叠起来,是这样吗,对,这是一个设计选择,我们可以有不同的设计选择,比如说一般来说 [00:45:32]

Ali Behrouz:Hope最初也是主要的设计,是这样的,以Hope Attention为例,我们先有Attention 然后有多个MLP Block 每个Block用不同频率更新,但在一些任务里,我们需要使用预训练模型,比如如果我们想关注LAMA 那LAMA本身并不是用Hope架构设计的,所以我们能做的也是我们已经做的,就是不采用我刚才说的那种形式,比如Attention后面是接多个MLP Block 我们改成这样,这是一个attention加一个MLP block 然后是一个attention加另一个更新频率不同的MLP block 再然后是一个attention加另一个更新频率不同的MLP block 如此类推,所以某种程度上这是设计选择,你需要看自己更偏好哪一种,你是想用现有的预训练模型 还是想从零开始训练你自己的设计和架构,但我觉得两种方式潜在上都比较相似,不会带来根本性的变化,有意思 [00:46:37]

Nathan Labenz:这也再次提醒了我,一个老的AI格言,模型就是想学习,让我一直很惊讶的是,很多这类设计选择,最后都变成了好像怎么做都行,走这条路也可以,走另一条路也可以 Titans就是这样,你们有三种不同方式,把记忆模块接近更大的架构里 Memba 在很多方面也明显是这样,你可以有多个状态,可以把它们串起来,也可以并行放,一旦你有了一个看起来效果不错的模块概念,就可以像乐高一样,用很多不同方式把它拼进去,不同的模块排列方式之间,当然可能会有一些性能差异,但很多时候,如果你说的真是一个重要的概念进步,那些排列方式好像就没那么重要了,精确的连线图没那么重要,更重要的是,你给这套乐高积木里新增了哪个核心积木 所以这确实是个很好的提醒,你怎么理解不同MLP之间的关系,比如它们的大小,更新频率或者学习率,因为我感觉,学习率在这里可能挺重要,这里可能存在某种等价关系,比如一个MLP 每个token更新一次,另一个用更大的批量来更新,我感觉根据我给它们设置什么学习率,可以让它们变得非常相似,也可以让它们差异很大,所以从大小频率,这些具体角度看,那些更新不那么频繁的MLP会更小吗,它们的学习率会和其他MLP不一样吗,你带我们讲讲 [00:47:40]

Ali Behrouz:你怎么看这些不同频率的MLP之间的关系,这确实很取决于架构参数量,以及你做的设计选择,这其实很类似,我们很难说Transformer或Attention模块的,最佳维度到底是多少,这可能非常难定,它很取决于谁要用这个Attention 也取决于我们考虑的使用场景等等,所以一般来说,更新频率主要取决于,你希望模型有多强的适应性,也取决于你希望模型,怎样维持它的持久记忆等等,所以我觉得这基本上就是一个设计选择,至于学习率,我觉得一般来说,你可以把这些模块当成,普通MLP模块一样处理,它们本质上完全一样,只是更新频率不同,其他东西没有变,所以一切都和MLP模块完全一样,我觉得研究学习率会怎样 影响这些模块肯定会很有意思,但我自己还没有做过,所以我不确定精确答案是什么,我的预期是我们平时怎么调这些超参数,这里也可以同样做

Nathan Labenz:所以不应该有什么本质区别,有意思,所以你的默认做法大体上是基于直觉,我理解的对吗,它基本上是按数量级来设的,最快的那个每个token更新一次,下一个每10个token更新一次,再下一个每100个Token更新一次,或者可能是隔几个数量级,在知道这个系统还没有完全调优的前提下,你们一开始用了什么设置

Ali Behrouz:为什么把这些数当作初始猜测,我们当时选择每个模块的更新频率,主要是基于我们对Titans和其他模型里Chunk Size的直觉 [00:49:50]

知识迁移与更新频率

Ali Behrouz:主要是基于我们对Titans和其他模型里Chunk Size的直觉,因为一般来说 Titan里的Chunk Size其实也可以定义Titan的频率,那时候我们还没有频率这个说法,但总体上chunk size也能为Titan定义频率,所以我们用的设置是基于,我们对哪些chunk size适合Titans的直觉,以我记得的情况看,我们用的数字可能是128 然后是4乘以128 再然后是4乘以4乘以128 大概就是这样

Nathan Labenz:如果我没记错的话,那知识迁移呢,我们应该怎么理解它的工作方式,我这里也想快速插一句问题,里面还是有跳跃连接,对吧,这里是这样,所有东西都很相似 [00:50:29]

Ali Behrouz:我们在Nested Learning里,想做的一件事,确实也带来了一些误解,我看到过一些评论,说这里有些概念,其实已经有了,类似这样的说法,但重点是,我们其实是有意,把这些已经知道的概念,都包含进来,想说明它是一种,通用的学习范式,它不是要和我们,现在的理解相矛盾,而是在一个新的方向上,补全我们已经知道的东西,比如你在做深度学习,任何形式的深度学习,当你说,我这里用了attention 你其实就在用nested learning 但在深度学习里,你只能看到,每个学习问题的最终解 attention 里面有一个学习问题,你在尝试解一个回归问题,而这个回归问题的非参数解,就是attention 如果你从深度学习的角度看一切,你只能看到每个组件的最终解 但如果你从nested learning的角度看一切,你也能看到每个组件内部的学习过程,所以总体上它不是和我们已知的东西相矛盾,而是在某种程度上补全我们知道的东西,并且往前推进一步,我觉得这是很重要的一点,所以一切都可以很相似,你也可以有skip connection 那你帮我们理解一下 [00:51:35]

Nathan Labenz:我们应该怎么思考这些不同频率的MLP 各自扮演什么角色,以及知识转移在里面怎么发生,换一种问法,也可以说他们怎么互相补充,他们怎么一起工作,我想从直觉上理解,也想在你能解释机制的范围内,从机制上理解,更新很快的那个,怎么逐渐把信息传给更新较慢的那些,更新较慢的那些,又怎么把更新很快的那些,引导到正确方向上,你怎么理解这些不同组件之间的相互作用,我觉得总体来说,在这里想出不同的知识转移方法非常重要 [00:52:00]

Ali Behrouz:给每个组件设置频率核心作用有两部分,我觉得我们一开始也讨论过,第一部分是,它能帮助模型在更长的时间里保持记忆,举一个很简单的例子,假设有一对兄弟,其中一个坐上飞船,已接近光速飞行,在那之前他们有一段很好的记忆,比如他们一起吃过午饭或者类似的事情,我也不确定,总之是一段很清晰的记忆,然后那个以接近光速移动的人回来时,地球上已经过去了80年,他的兄弟可能已经忘了那顿午饭,因为那是80年前的事,但另一方面,坐飞船的这个人,还保留着所有信息,所有细节对他来说,就像是一秒前两秒前发生的,所以他记得那顿午饭的一切,为什么会这样 因为他们各自记忆的更新次数不同,在地球上生活了80年的那个人,他的记忆被更新了很多次,但那个以光速或者接近光速移动的人,他的记忆没有被更新那么多次,从这个角度看我们对记忆做了多少次更新,这件事非常重要,这个例子当然很不准确,但我觉得重点是清楚的,当我们有两个组件,其中一个被更新了很多次,另一个更慢,没有被更新那么多次,情况就是这样,这里发生的是慢的那个,有机会从快的那个那里学到东西,因为当快的那个已经被更新时,慢的那个还没有更新,所以在慢的那个被更新之前,就有机会让快的那个,把学到的东西传给慢的那个,我觉得这也引出了,我们可以讨论的睡眠过程,这里的想法是什么 当我们有多层MLP block 每一层都以不同频率更新,一个简单做法是,在更新快的MLP block之前,先做知识转移,我说快是相对意义上的,因为我们有多个层级,所以对任意两个连续的block来说,当我们要更新较快的那个时,我们知道它有可能忘掉一些东西,所以在遗忘发生之前,我们可以先把这个block里的知识,转移到下一个block 然后再更新它,这里就需要一种好的知识转移方法,比如有一种做法,是做上下文蒸馏,也就是说,如果你想把知识从一个MLP block 传到另一个MLP block 一些上下文蒸馏方法,在这种情况下会很有效,这也和我们在那篇Sleep过程的论文里,做的事情很像,所以我觉得,知识转移的主要作用 就是帮助慢网络,利用快网络,另外不同更新频率,还有一个重点就是 [00:55:17]

Nathan Labenz:记忆以及模型,怎么管理自己的记忆,这和我刚才提到的双生子例子很像,快速更新层里的信息,是通过什么机制移动到更慢的层里的,但反过来,应该也会有东西流动,对吧,如果你把它们理解成某种纯感知模块,那我其实也不完全清楚,我自己大脑里到底发生了什么,但至少在我感觉里,从我的感知模块,流向更高阶推理模块的信息,肯定比从推理模块流回,感知模块的信息更多,不过,后面这个信号也很重要,对吧,比如我的高阶过程,会告诉我的眼睛,该看哪里,也会告诉他们,该聚焦在哪里,他们会说,我们需要更仔细地看这个细节,我想把它理解得更清楚,所以把你的一部分带宽,放到这个具体东西上,所以我想请你再多讲一点,从机制上 或者从流程上看,最快更新层里的信息,到底是怎么被转移出去的,我们又怎么确保,快速更新穴道的东西里,真正重要的部分被存下来,另外 [00:56:18]

Ali Behrouz:反方向流动的信号又是什么,我用一个很简单的例子来回答,假设我有一个模型A 我想更新它的快速MLP block 同时又想确保,快速MLP block里的信息,不会被忘掉,而且能传给慢速MLP block 一个简单做法是,把模型A的所有参数,复制到模型B 这样我就有了,两个完全一样的模型,一个是模型A 另一个是模型B 对模型B我会更新快速网络,也就是快速MLP Block。现在模型B里快速MLP Block的参数就被释放出来了。接下来我要做的是改变模型B里慢速MLP的参数, 让模型B的输出能够模仿模型A的输出。如果这件事做成了那意味着什么?模型A和模型B的区别在于模型A把所有信息都压缩在快速MLP Block里, 而在模型B里这些信息已经没有了。 如果我能用某种方式修改模型B 让它模仿模型A 那就说明我以某种方式,把快速MLP里的知识转移到了模型B里,慢速MLP的参数中,这只是一个简单例子,这个过程和蒸馏过程很像,我们是在把模型A的知识,蒸馏到模型B的知识里,从这个角度看,这就是一种从快速MLP到慢速MLP的知识转移方式,这是一个例子,另一个很常见也很流行的例子,是反向传播,如果你把MLP block 按顺序连接起来,然后在某个时刻,执行反向传播,那你就可以把,一个block的知识,传到另一个block 以此类推,所以你刚才描述的,这种复制和蒸馏过程,本质上就是那篇 [00:57:23]

Nathan Labenz:语言模型需要睡眠论文里,发生的事情吗,是的,但还有一些额外细节,比如我们在那里,也会给模型B 增加一些额外参数,确保它有足够容量,来存储刚刚获得的新知识,那是不是也意味着,在Nested Learning这个版本里,你基本上就是让反向传播,自己发挥作用,你们并没有过度设计,甚至也没有设计的特别复杂,你们只是有这些MLP block 它们以不同频率block 然后基本上让梯度下降,自己发挥作用,更新就这么生效了,大概就是这样吗,对完全是这样,整体上就是这样,所有东西基本上都是反向传播,这次对话里,我一个很大的收获是,论文里没有这么清楚的传达出来,这其实还处在概念验证阶段,它能运行得这么好,本身就说明这个概念很有价值,但我们这里讨论的东西 还没有经历过,主流模型经历过的那种过程,主流模型里所有参数,超参数都被探索到极致,也做了优化,随着时间推移,显然还加入了各种小的改进,但这里还没有真正发生这些,所以我们还可以继续问很多问题,比如这个版本,那个版本,这种配置,那种安排顺序并行,多少层相对大小,相对学习率,这里还有大量空间可以探索,但基本上只要拿其中几个核心概念来用,尤其是让不同的MLP块,以不同频率更新,光这一点就能带来相当惊人的结果,而且和我们平时看到的结果,在性质上不太一样,所以我们也许可以花一分钟,聊聊其中一些结果,论文里做了很多不同测试,也有很大的结果表,里面有一堆不同指标,有些是困惑度这类经典评分 你觉得哪些结果 [00:59:58]

关联记忆与价值生成

Nathan Labenz:你觉得哪些结果,最重要最能说明问题,也就是说,哪些结果会让人看到以后觉得

Ali Behrouz:他既然能做到这一点,那这里确实有东西,值得我认真对待,我们有一个连续学习风格的任务,我个人非常喜欢这个任务的想法,是我们有一个预训练模型,然后有一种特定语言,是模型以前没有见过的,我们想让模型在上下文里,学会这种特定语言,重点是我们有这种语言的所有语法,也有所有词汇,有一个很大的词表,我们把这些内容都放进上下文,让模型读进去,模型学会这门语言之后,我们再问他,你能把这段特定文本,从这种语言翻译成英文吗,然后我们能看到,模型可以把这段文本翻译出来,不能说完美,但质量非常非常好,所以看起来模型有能力在上下文里理解这门语言,然后把这种理解用到翻译任务上 但关键是我们再往前走一步,不要只放一种语言,而是在上下文里放两种语言,再让模型把每种语言里的不同文本翻译成英文,这种情况下我们会看到模型几乎崩掉了,任何一种语言都翻译不好,问题在于,模型没法很好地处理自己的上下文,也没法分别完整,理解每一种语言,一般来说,这对基于Transformer的架构,是非常非常难的挑战,但关键是,当我们把架构换成Hope 或者Hope Attention的时候,情况就不一样了,我们仍然有Attention 但我们有多层级的上下文学习,也有多层级的MLP块,所以我们能看到一件事,当我们增加层级数量时,模型在这两种语言上的表现会越来越好,为什么会这样,因为模型有了更好的记忆管理方式 它会理解比如一些不太需要的临时知识,可以存到第一个MLP块里,而对语言更深的理解,可以传到后面那些更稳定的MLP块里,然后当我们有越来越多的块时,就能看到性能越来越好,所以在我看来,这个任务提供了一个很好的评估方式,可以看模型是否能在上下文里学习,也可以更广泛地看它的连续学习能力,我觉得就是这样,这个是不是同一个测试,我记得 [01:01:53]

Nathan Labenz:我已经有一阵子没想这个了,但我记得可能是Gemini 2 也可能我记错了,甚至早到Gemini 1的时候,就引入过一个指标,基本上让模型通过一本书,来学习一门新语言,好像是某种极度宾威的语言,有一个人真正研究过它,写了一本书,但那本书没有放在互联网上,内容大概是在解释这门语言是什么,然后他们就把这本书放进上下文说,好,基于这些内容来做翻译,我不确定这是不是我之前熟悉的那个,完全相同的测试,还是稍微有点不同,但这里的语言看起来是Manchu 我刚查了一下,好像是中国某个地方的一种极度宾威语言,所以基本思路就是这样对吧,这是一门语言模型,基本没有鲜艳知识的语言,模型会拿到一份,关于这门语言的,很详细的入门材料 可能来自某位人类学家,或者类似的人,他们出去做过田野调查,然后模型的任务,就是把这些材料用起来,我现在看的是 Nested Learning论文里的图8 我的理解是,如果只有一种语言,所有模型的表现都差不多,但就像你说的,当你增加到两种语言,相当于把任务难度翻倍时,传统Transformer的上下文学习方法,表现就很差,然后我理解 HOP1 HOP2 HOP3 说的是层级数量,也就是存在多少种,不同频率的更新机制,所以当你从传统方法,变成额外一种,外两种,外三种更新频率时,性能基本上几乎回到了,只有一种语言时的原始水平,好这确实挺有意思,非常有意思,那我想确认一下 MTOB是什么 MTOB是另一个,对那是另一个数据集,也是另一种语言模型 在预训练期间也没有见过,这就是我想起来的那个,你们在这个数据集里加入了蛮语,时间大概是2023年末,所以这两个都是非常稀有,模型没见过的语言,要翻译成英语,而且只有用了多层结构模型,才能在同一个上下文里,同时完成这两件事,这确实非常有意思,你刚才这个回答我很喜欢,很能帮人建立直觉,那你怎么看,困惑度分数这类指标,你们有一张大表,列了困惑度,还有一些准确率指标,都是一组比较基础经典的测试,我也补充一下,到目前为止,你们把这些模型扩展到大约10亿参数规模,一个是7亿6千万参数 300亿token 更大的那个是13亿参数 1000亿token 按今天的标准,这当然不算巨大,但信号还是很清楚 HOPI价格几乎在每个维度上 都超过了你们拿来比较的其他方案,这些比较对象包括Transformer Mamba Mamba的一些变体,甚至还有Titans RedNet也在里面 DeltaNet也在里面,你怎么解读这些结果,这有点回到刚才那个G问题,这算是一个好指标吗,还是说,它只是我们现在手里最好的指标 [01:05:06]

Ali Behrouz:你觉得大家应该在多大程度上,相信这些困惑度表格,社区里确实有一些标准做法,会用来跑某些基准测试,这些测试不一定都是评估模型的最佳方式,但我们还是需要做,这样大家才能看清楚,性能提升来自哪里,优势来自哪里,比如说我有一个特定的Transformer结构,我有一个想法,如果给Transformer加上遗忘机制,它也许就能在有噪声的数据上表现更好,我不确定,我只是临时举个例子,在这种情况下,如果没有带噪声的数据,我只是把方法放在非常干净的数据上测试,那我就没办法展示这个方法的优势,我觉得这里也是完全一样的,我们讨论的是一种不需要预训练的模型,它没有测试阶段也没有训练阶段等等,但另一方面,现在大量基础设施 仍然建立在测试阶段和训练阶段这个框架上,很多评估也是围绕测试阶段和训练阶段设计的,所以大家也会期待我们报告一些东西,比如预训练困惑度,还有一些评估,这些评估大多是短期短上下文的,语言建模任务,并不需要一个非常复杂的模型,去理解长上下文建模,所以我觉得我在Nested Learning的展示里也提到过,我们并不是用表2 以及那些困惑度和语言建模任务,来证明OxoPE很强,我们只是用那张表说明和其他模型相比 OXOPE作为骨干模型并不弱,你可以看到它表现不错,但也有人可能会说,相比其他模型这个提升很小,重点是这本来就不是我们想解决的方向,某种意义上 即使在这个并不是NASDAQ Learning和OPE目标的方向上,我们仍然能看到一些提升,哪怕只是很小的提升,这也已经很好了,明白了 [01:07:13]

Nathan Labenz:我一直很喜欢更细地理解不同架构的微观技能,比如Transformer 因为完整序列完整上下文,一直都在工作记忆里,所以在这方面很难被打败,我甚至觉得你现在差不多有了一个理论层面的论证,在某些任务上,可能真的不可能打败它,尤其是那些目标,就是从context window里回忆信息的任务,但我们也看到过Member的一些特点,比如,它更擅长从吸收信号中学习,这就是那个架构很突出的一个微观技能,而Transformer 在这方面相对吃力,那在HOP这里,你看到了什么,有没有一些小的微观技能,我觉得这很有意思,因为这些微观能力,最后会层层累积,影响整体表现,也会影响这些架构,到底擅长什么,不擅长什么,需要的时候,在上下文里,回忆某个东西的能力,非常重要 需要的时候,从噪声里学习,或者把噪声过滤掉,抓住真正重要的信号,这也非常重要,所以有没有哪些特别突出的微观技能,语言翻译那个例子,从宏观上看很有意思,因为那是一个很难的任务,但我想知道,如果继续往下拆,拆到这些非常微观的基础能力,也就是模型或者架构可能具备,也可能不具备的能力,那哪些地方最突出,也就是说 OJPE有哪些能力是Transformer没有的,或者Transformer没那么强的,说到上下文内,召回任务,或者更泛一点 [01:08:18]

Ali Behrouz:召回密集型任务,我觉得这些任务都是为Transformer设计的,它们不是为了比较不同架构而设计的,而是专门为Transformer设计的,为什么这么说,因为你不能指望一个模型,甚至一个人把大海,捞针这类任务做得完美,比如做一些召回密集型任务,假设你有一段代码,几千行代码,然后你只是想回忆某一行里 X的值是多少,这对人来说几乎不可能,或者至少非常非常难,对齐他模型来说也一样,但另一方面,这对Transformer来说相当简单,因为它们在上下文里,可以直接访问完整历史,所以它只要找到那个Token 然后把它作为输出传出去就很简单,事实上在这种召回密集型任务里,也就是我们这里说的上下文内,召回任务里 循环架构和Transformer之间确实有差距,不过循环架构的表现其实也已经很好了,如果你拿第一代循环架构和Transformer比,会发现当时差距大得多 [01:09:47]

长上下文与召回评测

Ali Behrouz:会发现当时差距大得多,现在这个差距在变小,其他循环模型的表现也很好,但对我来说有意思的是 HPE至少缩小了和Transformer之间的性能差距,而且它本来不该擅长这个,我们预期Transformer能做好,因为它有注意力模块,但我们不会预期一个基于压缩的模型,能做好召回任务,所以这点让我觉得挺有意思

Nathan Labenz:那MAD数据集到底测的是什么,我们应该怎么理解,我先把你刚才说的复述一下,在这些大海捞针任务里,也就是从更早的上下文中,做非常困难的召回任务 Transformer仍然是最好的循环模型,只有某种潜在表示,不能回头看原始文本,所以表现没有那么好,但每一代都有改进,你这里也有好几代,而HP架构是在这些循环模型里,表现最好的,这些模型在运行时,没有完整显示的上下文,放在工作记忆里,所以这个差距正在缩小,那再看MAD数据集 HP架构比所有模型都好,包括Transformer 它测试的是什么,微技能,我们应该从这个结果里,得到什么结论 MAD数据集,其实也很像,召回密集型任务,但关键在于,它有不同的设置 [01:10:25]

Ali Behrouz:比如其中一个设置,是带噪声的上下文内召回,我们还是要做召回,做上下文内召回任务,但问题是Token里有一些噪声,一旦Token里有噪声,我刚才说的Transformer在前一个设置里的优势,也就是纯粹的上下文内学习优势,现在某种程度上会变成它的弱点,因为它很容易搞不清哪个Token是噪声哪个不是等等,所以相比OtroPE这样的模型,这个任务对Transformer可能会更难一些,当然这也很大程度上取决于RNN的记忆管理,对RNN来说,如果它没有很好的记忆管理系统,或者说没有很好的更新机制,那它也可能很容易被噪声干扰,然后出问题,但如果记忆管理很强,那过滤掉任务里的这些噪声 Token就简单得多,我觉得这是一个例子 这里还有另一个我觉得有意思的任务是关于压缩的,压缩任务基本上顾名思义,我们想把一组Token压缩起来,然后预测一个单独的Token Token 就是那组Token的压缩版本,然后我们再想从它重建出原始序列,所以对RNN这类模型来说,这可能是更简单的任务,因为他们本来就知道,怎么把数据压缩好,但另一方面 Transformer做这个任务会更吃力,总的来说,像我刚才说的,我不想把所有细节都展开,但这些任务基本上都是,召回密集型任务,上下文内召回任务,或者类似任务的遍体,重点是他们还考察模型的其他方面,比如选择性复制,就是另一个例子,模型还有很多,其他方面也很重要,我们也应该看模型,在这些方面表现如何,而不是把评估过度 绑定在某一个具体指标上,好,我觉得第一层细节聊到这里,可能差不多了,这篇论文标题里的架构幻觉

Nathan Labenz:我觉得从论文第39页开始,就变得更清楚了,到那一部分,你们还提出了一个新的优化器,它不只是超过了旧的标准 Adam甚至也超过了Mone 它确实会带来一点计算开销,但我理解,这里的论点,还是它在更快收敛,或者更好学习方面带来的回报,远远超过了这点成本,关于你们称为M3的优化器 [01:13:12]

Ali Behrouz:你还有什么想补充的吗,我先补充一点,一般来说,对优化器很难直接说,某一个优化器就一定比另一个更强,这真的取决于问题设置,甚至取决于具体问题本身,比如我们这里可能是在推理任务上,评估这个优化器,但如果你训练的是语言模型,可能会看到趋势完全不一样,或者出现类似的情况,所以总体来说,怎么设计优化器,以及说哪个优化器更好,其实都取决于任务架构,问题设置,还有这些相关因素,这也是我们在Nested Learning里,想传达的一个核心观点,我们想说的是,整个架构和它的优化过程,其实是一个相互连接的系统,由嵌套的优化问题组成,它们为什么是相互连接的,因为优化这一侧的梯度,是由架构生成的 如果架构很简单,梯度也会很简单,如果架构很复杂,梯度里的模式也可能非常复杂,这时候如果你有动量向,动量其实是一种关联记忆,它在尝试压缩梯度,所以比如说如果你的梯度非常复杂,你就需要一个更强的记忆管理系统来处理动量,如果架构非常简单,那甚至不用任何动量,只用简单的梯度下降,也可能效果很好,所以总体来说,我们在论文里的一个论点是,应该把所有东西都看成一个相互连接的系统,然后我们要一起设计这些东西,让他们整体上产生一个好的模型架构,或者更宽泛地说一个好的机器学习模型,这是一个论点,另一个想传达的信息是,架构这一侧和优化这一侧非常非常相似 某种程度上甚至完全一样,它们本质上都是某种学习规则,都有某种学习过程在发生,架构侧和优化侧唯一的区别,只是上下文不同,优化算法的上下文是梯度,更准确地说,上下文是我们拥有的一组T度,架构测的上下文,则是我们拥有的一组Token 所以总体来看,它们非常相似,在论文里,我们提出了这个连续记忆系统,我们扩展了MLP模块,说MLP模块可以有多个频率层级,这是一个很宽泛的说法,整篇论文里,我们都在论证,架构和优化器是一样的,诸如此类,那为什么不把这个技术,用到优化这一侧呢,也就是说,从架构这一侧借用这个技术,再把它应用到优化这一侧,这就是主要动机,我们想展示,我们设计的这个连续系统 不只是对架构有效,在优化这一侧也同样效果很好,所以我们只是很简单地扩展了MainOn 它不再只有一个特定的记忆,而是有多个记忆,在M3的情况下它有两个记忆,它会尝试用不同的频率速率,去压缩上下文,这样可以帮助你更好的理解,损失景观里的全局特征,也有可能帮助模型找到更有效的解,新闻文叫Language Models Need Sleep 跟我们多讲讲这里到底在做什么,你在开头提到过这个两阶段

Nathan Labenz:概念,一个是记忆巩固阶段,另一个是做梦阶段,我觉得很有意思的是,可以把它理解成,先创造出全新的参数空间,然后再巩固或者某种程度上,再简直收回来,因为显然这些东西不可能一直增长下去,对吧,所以请你更详细地带我们讲一讲,我很想多了解这部分,总体来说,主要想法和我们前面讨论的一样 [01:16:54]

Ali Behrouz:如果我们有一个真正的持续学习模型,那就没有测试时间和训练时间之分,另一方面,我们需要一个活跃时间,在这个时间里,输入会以在线方式进来,还需要另一个时间段,也就是没有输入的时候,这时模型不会主动从外部接收信息,但这并不意味着模型就应该是静态的,只是没有拿到输入而已,它仍然可以做一些内部计算,用来改进自己,这是一个非常非常宽泛的概念,我们可以把越来越多的组件,加入到这个睡眠时间里,所以它不一定只包含这两个特定部分,只是这两个部分和我正在做的研究非常相关,所以我们先做了这两个,但理论上它也可以包含其他任何形式的自我改进等等,这只是把一个持续学习者的一生 拆成活跃时间和睡眠时间的一种方式,但目前在睡眠时间里,我们做的事情是确保当我们更新模型的每个组件时,不会忘掉存储在这些参数里的知识,当然和我刚才说的一样,我们以后还可以把更多组件加入睡眠时间,这里的想法是我们知道,模型里有多个M3模块,每个模块用不同的频率更新,这里说的快和慢只是相对概念,它并不是说某一个一定是最慢,或者某一个一定是最快,所以我们有慢速和快速两种更新频率,它们可以出现在神经网络的任何部分,我们想把知识从一边传到另一边,为了做到这一点,我们用的是我刚才提到的蒸馏过程,而且这个蒸馏过程基于策略,蒸馏模型自己生成一些数据 这个过程的一种理解方式是,我们把一个小模型里的知识,蒸馏到一个更大的模型里,当我们从一个阶段进入下一个阶段时,会在下一层激活新的参数,这样能帮助模型释放一部分容量,准备接收新知识,从某种意义上说,这也描述了一种很自然的人类学习方式,比如我们学习一个新概念或者类似的东西时,一开始很常见的情况是,我们并不能完整理解它的所有方面,但关键在于随着时间过去,我们让大脑逐渐更好地理解这个概念,同时我们也会学习其他东西,更好地理解整个过程,到某个时刻我们会发现,自己已经对这个概念有了非常清晰的途径,我们可以完整理解它,总的来说这是最好的学习方式之一 [01:19:07]

记忆巩固与做梦过程

Ali Behrouz:总的来说这是最好的学习方式之一,也是一种很好的学习方式,这里也是一样的,过程非常相似,从这个角度来讨论,可能会更好,也更简单,它能帮助我们理解,为什么需要多个层级,为什么要把每一层的知识,蒸馏出来,再让另一层吸收,当我们想理解某个具体概念时,我们自己也会有不同层次的知识,抽象,第一层也就是最简单的一层,就是记住东西,比如我们想学习一个具体的数学规则,或者物理里,任何科学里的一个具体概念,我们是怎么学的,我们会先从一些,关于这个具体概念的例子开始,然后开始记住这些概念,比如如果它是一个数学规则,不管是什么数学规则,我们都会先看一些具体例子,然后把它们记住 到某个时候我们会开始泛化,我们会把对所有这些例子的理解提炼出来,把脑子里那些具体例子拿掉,用一个单一的记忆来替代它们,这个单一的记忆,可以描述我们到目前为止,从这个概念里学到的一切,然后随着时间过去,我们有了更多信息,也读了更多关于这个概念的内容等等,我们会再次回头审视,自己对这个概念的理解,然后用新的理解替换掉之前的理解,这个新的理解更一般化,可以解释这个具体概念里,更多现象或者更多情况,所以总体来说,这就是我们理解事物的方式,我们的理解里面有不同层次的抽象,现在如果我们有不同的MLP模块,或者更一般地说,换成任何一种任意架构也可以 它不一定非得是某一种架构,任何架构都可以,关键在于每个模块的更新频率不同,在这种情况下,快速更新的模块就非常类似于记忆过程,因为我们会记住很多东西,但不一定真的理解,这里还没有对那个概念的真正理解,只是记住而已,而且我们也会很快忘掉那些只是记住的东西,所以第一层就是这样,第一个模块负责这一部分,但如果我们想更好的理解这个概念,就需要做一些记忆巩固,在我们的设计里发生的事情是,我们把知识从快速更新的模块,转移到另一个模块,但如果我们只是简单地把知识从快速更新模块,传给慢速更新模块,那其实什么都没有变,我们只是把知识搬过去,没有做任何处理 所以我们不是做简单转移,而是用蒸馏过程来替代它,为什么这里的蒸馏很重要,因为前一个模块或者更一般地说,快速更新的模块已经把这个概念压缩过了,它在某种程度上理解了它,或者以某种方式记住了它,总之这就是一个压缩过程,当我们做蒸馏时,就会出现另一层压缩,它会迫使模型意识到,你已经没有原来那么多参数了,现在你能用来存储,这部分具体知识的参数更少,为了做到这一点,你必须想出更一般化的东西,能更好地理解数据背后的模式,这样你才能用更少的参数,把所有东西都存下来,在这种情况下,模型就会形成一些知识抽象的比特,或者不同层级的知识抽象,因为我们强迫它这么做了 然后我们再次重复这个过程一直这样下去,这基本上就是记忆巩固的核心想法,每次这个睡眠过程发生时,我们都会把知识从一个层级巩固到另一个层级,依次往下,所以这就是记忆巩固里发生的事情,一个非常高层次的解释,另一部分是关于做梦,为什么我们需要这个做梦过程,关键是我觉得实现这个dreaming过程时,有两点很重要,第一点是,我们需要一个自我改进过程,到目前为止,我们已经学到了一些东西,其实记忆巩固本身,也可以看成一种自我改进,但如果我们手头有一个具体任务,如果我们想专门针对某个任务优化模型,那这里就是可以做这件事的地方,我们可以让模型自我修改,比如做finituning 或者更一般地说,用强化学习来更新模型,让它自我修改,这样它在某个特定任务上就能更强,这是dreaming的一个好处 dreaming的另一个好处是,在这个过程中,我们需要理解概念之间的联系,有些概念看起来不相关,但其实是相关的,这也类似人类做梦时发生的事,我们会做很奇怪的梦,因为大脑在尝试理解一些看起来非常不相关的概念之间有什么联系, 看看里面是不是有某种底层模式。所以在这里的Dreaming过程中,我们也需要做到这一点。我们要理解,模型不同组件里存储的不同知识应该怎样组合起来, 以及这种组合有哪些不同侧面。这是Dreaming的另一个目标。我们可以把这两件事合并到一个Sleep过程里。 模型经过一步sleep之后,一方面巩固了自己的记忆

Nathan Labenz:另一方面还在这个基础上,完成了自我改进,在sleeping过程中,我看到会创建新的参数,为更新频率更慢的部分腾出空间,让它们吸收来自更新频率,更快部分的信息,这些参数之后会缩回去吗,有没有减值,或者有没有某种对应的机制,来平衡它,还是说在现阶段,这些模型会在整个生命周期里,无限增长

Ali Behrouz:从技术角度看,我们不能让模型增长到任意大的参数规模,但这里的重点是,它是一个周期性过程,我们先加一些参数,然后再把它们释放出来,用于下一步巩固,当我们在第一个模块里时,会添加一些组件,等它达到容量上限,就说明该把记忆巩固到下一层了,当我们把所有这些知识巩固到下一层之后,就会移除这一层里额外添加的容量,然后把它释放给其他层,比如更快的层,这样他们也能把自己的记忆,巩固到这个模块里,所以总体来说,它是一个周期性过程 [01:25:47]

Nathan Labenz:添加组件,再移除组件,再添加组件,明白了,有意思,那关于Dreaming阶段,你还能再多讲一点吗,更实际一点,说那里到底发生了什么,我自己尝试内省梦境的时候,感觉收获并不算特别大,也许多少有点用,但我觉得人们在解释梦,或者想理解梦里到底发生了什么时,也很容易陷入混乱,所以我甚至不打算把我的理解建立在人类梦境上,人类梦境看起来确实很难拆解,但在这里这个过程更可设计,也就是说从流程上看 [01:26:26]

Ali Behrouz:Dreaming里到底发生了什么,能不能再从机制和步骤上多讲一点 Dreaming这个概念并不是说它和人类做梦完全一样,只是从很高的层面看,它们似乎很相似,这是一点,另一点是对语言模型来说 Sleep和Dreaming的概念,可能和视觉模型里的Sleep和Dreaming很不一样,比如视觉模型可能会生成一些图像,生成式,视觉模型在Dreaming期间可能会生成一些图像,而在语言建模这个场景里,我们生成的是文本,不过这个框架非常通用,可以适配任何数据模态,重点在于当我们把它用于语言建模时,发生的是我们生成一些上下文,生成一些文本,那么这些文本是怎么生成的,它是on-policy distillation 就像我们前面讨论的那样,我们有一个模型把它复制出来 我们想把知识从一个层级,征流到另一个层级,同时释放较慢层级的参数等等,然后我们让那个更小的模型,来生成一些文本,这个小模型的参数里,也包含了上下纹理的知识,接着我们想在这个,由模型自己生成的特定数据集上,训练或者更准确地说,更新真实模型的参数,那我们怎么训练它呢,我们从序列的一部分开始采样其中一些token 然后让模型预测这个序列里的下一个token 这就很像生成一些合成数据,看起来如果模型能完美预测后面的token 就说明它已经知道前一个区块里存着的知识,所以这是一个完美模型,但如果它不能正确预测这个序列,接下来会是什么,就说明它还没有掌握上下文理的知识 需要更新自己才能理解那部分知识,所以这在某种程度上是一种,发生在模型内部的on-policy distillation 我再简单总结一下,这里有两个阶段,第一阶段是生成,模型会生成一些和上下文知识有关的文本,第二阶段是on policy distillation 也就是把知识从一个层级征流到另一个层级,这就是dreaming阶段里发生的事情,当然我们还有自我修改的部分,但我觉得这就是记忆巩固的核心思路 [01:28:49]

Nathan Labenz:也是这里所谓dreaming发生的方式,那这个结果到底意味着什么,少样本抽象推理的结果,似乎是最重要的东西,它再次说明,这种方法和其他方法之间,有一种质的差异,我的理解是,这有点像ARC任务挑战,基本上是你有几个某种变换的例子,然后你的任务是学出规则,再把这个规则应用到一个新的例子上

Ali Behrouz:我们在Nested Learning论文里,为AOPE架构用过的任何评测,理论上这里也都可以做,目标是完全一样的,归根结底,模型需要持续学习新知识 [01:29:48]

产品体验与版本管理

Ali Behrouz:模型需要持续学习新知识,学习新任务,学习新技能等等,所以从某种意义上说,目标非常相似,但我觉得问题的设定,是这篇论文和那篇论文不同的地方,在Nested Learning里,我们讨论的是模型的活跃阶段,但这里讨论的是模型的睡眠时间,这总体上就是主要区别,不过所有那些评测都可以做,而且我们可以看到一切是一样的,好,那我们放大一点看

Nathan Labenz:聊聊这会把我们带到哪里,回到一开始的话题,我们开头稍微聊过,我们到底想从语言模型那里得到什么,今天这些模型已经非常厉害了,但我们还是有很多使用习惯,至少我自己是这样,随着时间学会了很多怎么用它们的习惯,我会在不知不觉中,围绕它们的一些限制来建立自己的做法,也就是尽量发挥它们的长处,不要卡在它们的短板上,随着这个范式开始成熟,我们得到更多持续学习能力,你觉得体验会变成什么样,比如,开始,一个新聊天到底意味着什么,你觉得人们会和这些系统,形成什么样的关系,我能想象,人们可能会和他们建立非常长期的关系,我们现在已经在谈LLM Psychosis了,那种情况可能会变得非常奇怪,甚至更严重,这种关系可能会更有吸引力 而且从某些角度看,问题可能会因为模型变得更好,而被放大,反过来说,有时候我可能还是想从头开始,对吧,因为我可能会想,天哪,我之前和这个模型,沿着某个方向做了那么多事,可能对我现在这个方向,没什么帮助,所以在某些情况下,也许我确实想重新开始,还有一个问题是,模型自身的升级周期,以及我们今天怎么做评测,比如Anthropic 现在每次发布新的主要模型,都会拿出100页的报告,也就是说,它们会花很长时间,尽可能深入地理解这些模型,我也希望其他公司这样做 DeepMind在这方面做得相当不错 OpenAI也做得相当不错,其他一些领先开发者几乎没怎么做,我觉得把这些工作都做一遍很有价值,但当我把它套到这个范式上时,就会觉得 天哪,你不可能在每一个时间点都跑完整套评测,所以你怎么理解,什么才算一个版本,什么时候我应该改变一个版本,在一个真正强大的持续学习范式里,使用节奏,版本管理,部署发布,这些事情似乎都会变得非常复杂,所以你想象中 [01:32:16]

Ali Behrouz:这些事情最后会怎么发展,我觉得一个简单的情况是,模型一定会越来越擅长理解用户想要什么,也会越来越能适应用户的风格,比如同样问一个具体概念,这个人期待的答案,可能和另一个人问同一个问题时期,带的答案不一样,所以模型真的需要理解同一个具体问题,面对不同的人应该怎么回答,我觉得如果我们能做出持续学习模型,这一点肯定会越来越好,另一方面我们已经看到当模型的context window变大时,它在我们知道的各种任务上的表现都会提升,从各种编程任务到数学推理,一般推理任务,再到通常用来评估模型的各种基准测试,表现都会好很多,持续学习 在某种程度上可以看成是在增强模型对长上下文的理解能力,不过我也要强调长上下文理解这个概念,或者更一般地说,长上下文这个说法和持续学习这个说法非常不一样,但持续学习是长上下文的一个更大的上位概念,所以如果我们有办法做出持续学习模型,那么它可能也会有更强的长上下文理解能力,也可能在我们今天知道的所有基准测试和评估里表现更好,我觉得这是我对持续学习模型的一个期待 [01:33:26]

Nathan Labenz:你会担心对齐飘移或者价值观飘移这类问题吗,我经常说,我是大约一年前那篇永现式错位论文里最后一位,也是最没价值的一位共同作者,从那以后围绕这个主题已经有很多遍体,但我觉得最重要的结论,或者说最大的主题,是我们都应该记住这一点,为了某个特定目的,或者用某个特定数据集,对神经网络做出的改动,可能会在一些乍看起来非常遥远的行为上,产生很奇怪很意外的连锁影响,对没听过涌现式错位的人来说,那个例子大概是这样,如果你训练一个模型输出不安全代码,也就是很容易被攻击的代码,同样的情况,也适用于糟糕的医疗建议,如果你finituning一个模型,让它给出糟糕的医疗建议,你会意外发现,这个模型有点整体变坏了 按我目前的理解,它发生的方式大概是这样,一个模型本来已经有大量知识,也已经有很复杂的世界理解,如果要让它深入到,自己的医疗世界模型细节里,做一大堆小改动,重新配置自己,让它形成各种错误观念,这很难,但他可以学会把某些特征整体调高,比如给坏建议或者总体上变坏,这些特征传播到已有的医疗世界模型里,就会产生糟糕的医疗建议,或者传播到已有的编程模型里,就会产生不安全代码,所以这有点像一个捷径解法,我们以为自己只是在训练模型,做一个范围相对窄的特定行为,但我们发现,实际上我们有点改变了他的性格,而这种性格变化和已有知识相互作用,创造出了行为变化,但现在我们手上有了这种性格变化 它又可以和其他各种知识领域相互作用,做出各种疯狂的事情,所以突然之间,我们就得到一个,想请希特勒来家里吃晚饭的模型,我们就会想,等一下,这是怎么发生的,我们刚才明明只是在谈代码,所以再回到这里,我会觉得,你设想的这些东西,真的非常令人兴奋,但它似乎又一次打破了,我们很多既有犯事,也就是我们怎么知道,最后会得到什么,如果我真的在持续不断地修改这个东西,那我们就需要一些新的办法,来确保它在其他领域不会失控,否则它后面可能给我带来,非常痛苦的意外后果,你觉得我们可以怎么开始处理这个问题,说实话,我没有一个非常具体的想法 [01:35:51]

Ali Behrouz:能说明这个问题到底怎么解决,但总体上我想补充一点,在我看来持续学习这个概念。如果从隐私对齐这些方向去看,它既是机会也是巨大的风险。我说巨大的风险,意思是它对隐私来说是一个很大的危险。一方面,模型在持续学习,所以它可以很轻易地获取关于你的所有信息, 然后它会使用这些信息,这真的很令人担心,至少看起来非常令人担心。但另一方面,如果模型设计得当,也就是说它确实被正确设计了,那么它就可以利用这些信息,让自己和你的价值观对齐,和你想要的一切对齐,所以我觉得总体来说,持续学习和隐私这两个方向,可能是相互独立的,因为静态模型里会有的所有担忧,在持续学习模型里仍然可能发生 也就是说什么都可能发生,但另一方面,正如你刚才提到的,确实也会出现一些新挑战,同时这里也有一个巨大的机会,如果模型设计得当,它就可以适应你的价值观,适应你想要的东西,诸如此类,所以我觉得总体上它既是机会,也是一个很大的隐患 [01:37:33]

Nathan Labenz:你怎么设想模型在实践中学习用户的价值观,或者更一般地说,学习用户反馈,显然现在已经有很多不同技术,一个很直观的答案是点赞点踩,收集这类反馈,然后用来训练模型,让它更多的产生好的结果,少产生不好的结果,诸如此类,另外,也有很多方案,是把自然语言反馈,转成对模型的更新,你想象的是这种方式吗,也就是说,人们基本上可以直接用语言,给自己的模型反馈,然后有一套机制,把这些反馈吸收进去,因为到那一步,它就不只是一个,预测下一个token的任务了,对吧,它不需要只是预测我的反馈,或者说,它当然可以预测我的反馈,而且大概也会因此更擅长,一开始就对齐我想要的东西,但它的核心任务,并不是预测我的反馈 理想情况下,它应该把初始任务做得足够好,这样我一开始就不需要给它反馈,所以你有没有一个愿景,或者一个想象 [01:38:47]

Ali Behrouz:在持续学习范式里,用户到底怎么把这个反馈,闭环闭上,第一步可能就是这种 Human in the loop的流程,比如模型可以用强化学习,从人类给它的反馈里学习,同时也尝试让自己对齐,人类价值观成为一个更安全的模型,但另一方面,我觉得这只会是一个起点,到某个阶段,我们肯定需要用恰当的方式更新模型,让我这样解释一下,我觉得这个过程还是非常类似,我前面提到的嵌套学习形式,我们需要把知识转移到更慢的层级里,这里也是完全一样,模型一开始可能是从人类反馈中学习,但另一方面,它可以把这些知识转移到模型里更持久的组件中,确保它不会偏离那个需要对齐的具体价值观,所以我觉得从安全角度改进模型 让模型对齐人类价值观,这里还有很大的空间,而且我觉得空间确实很大,因为越来越多人开始意识到 [01:39:51]

对抗环境中的信息过滤

Ali Behrouz:因为越来越多人开始意识到,这是一个非常重要的方向,所以我认为随着时间推移,会出现越来越多有效的方法,帮助模型对齐人类价值观,同时也让模型非常安全,我想,大家的期待大概是这样

Nathan Labenz:它之所以能更好地解ARC 这类谜题,是因为它有一种能力,可以从细节里抽象出来,弄清楚,在某个具体上下文里,真正重要的是什么,那它也许能用类似的方式,处理我的反馈,它可以围绕我的反馈去做梦,基于真正理解我话语背后那些核心抽象,让自己更深更稳健地对齐,我想传达给他的东西,这里面涉及的方面太多了,你怎么看这个问题,这有点又回到Titans了,我不知道这里有没有一个惊讶这样的术语,我在最近这些论文里,好像没有看到他们提到surprise 但总体来看,在持续学习的语境里,会有一个非常有意思的挑战,如果你太快相信某些东西,那你要怎么在一个对抗性环境里生存,我有时在Claude身上,见过这种失败模式,不过 看起来他们可能已经往另一个方向修正了,因为最近几天我们看到一种新出现的类型 Claude拒绝相信当前事件,比如他会说,战争部,这太荒谬了,别这么说,在华盛顿听众面前把它叫战争部,会让你失去所有可信度,或者像委内瑞拉那整件事,用户告诉他发生了这样的事情,他就是拒绝相信这种事真的发生过,所以看起来也许他们又修正了一次,但这是一个非常难拿捏的平衡对吧,尤其是如果你被锁在一台服务器里,对外部世界的访问很有限,你到底怎么判断哪些新信息,哪些新的token算是好信息,哪些又算是坏信息,你肯定不希望自己收到什么就信什么,然后开始做激进更新,尤其是如果这些更新会长期保留下来,那就更不能这样,但你也需要持续学习 我不知道现在的研究里,有没有什么东西在处理这个问题,我的想法会跑到类似做梦的机制上,也许它能处理这一点,比如,做一致性检查,这件事和其他信息能对得上吗,如果我相信了这个,那我还必须相信什么,或者它会不会推翻某些核心信念,而这些核心信念是我很有把握,不应该违背的,这个问题现在的模型其实不太需要面对,但持续学习在带来潜在更好表现的同时 [01:42:03]

Ali Behrouz:好像也会打开一种很麻烦的失败模式,我觉得这里的关键是,避免这种情况应该是知识迁移方法的责任,因为在这个语境里,假设我对某个具体任务一无所知,比如我不知道怎么画画,然后我想学画画,这就是一个语境,我学习画画的语境老师,或者任何想教我画画的人,都可能用非常错误的方式教我,接下来会发生什么呢,我可能就直接学会那套错误方法,因为我完全不知道该怎么画,或者不知道该怎么做,这个任务,画画这里只是一个例子,我就是不知道怎么做,那是我唯一的信息来源,他们告诉我你应该这么做,所以我可能就直接学了,但那只是在我当下的语境里,如果我真的想学会,那我会练习,会从别人那里获得反馈 会去搜索相关信息,总体来说,我会收集一些,关于怎么画画的信息,然后我会意识到,这并不是学习画画的最好方式,到那个时候,我把所有信息收集起来,压缩它,理解背后的模式等等,然后我才需要,把这些知识,迁移到更高层次的知识抽象里,我的意思是,迁移到更低层的网络里,所以模型需要在这一部分理解, 怎么过滤掉所有这些对抗样本, 过滤掉那些已经不再需要的例子。如果我们想象一个持续学习者, 那么负责处理这些情况的部分可能就是知识迁移这个过程。另外你也提到过一些对抗过程的方法。我们可以用一些微观层面的方法。它们在非常强的对抗环境里不是特别有效, 但另一方面至少在某些层面上也能起作用。 比如在Titan,自修改Titan, 以及更近一些的循环模型里, 我们可以看到学习率是一个可学习的参数, 而且它依赖输入, 模型内循环里的学习率, 也就是模型在上下文学习过程中的学习率。如果是可学习的, 那么当我们看到某个东西只是噪声是对抗样本时, T度或者惊讶度, 指标可能会显示出很高的惊讶度, 因为那就是噪声, 它非常令人意外。我们以前没见过它,所以它有可能影响记忆,但学习率的责任就是理解,惊讶度指标很高,可是这个概念无关,我需要把它过滤掉,所以这里的Gating起到一种门控作用,抱歉,我是说学习率在这里起到一种门控和过滤器的作用,用来处理某个具体的数据样本,它只是缓解训练过程中 可能未进去的对抗样本的一种简单方式,但这仍然不是最好的办法,就像我前面说的,真正应该避免这些情况的部分,可能还是知识迁移,我想把这些概念,映射到巨声系统上,感知这一侧 [01:45:17]

Nathan Labenz:对我来说还挺直观的,而且它甚至不一定,非得是巨声系统,那些快速更新的模块,某种意义上就是感知,对吧,你可以有不同类型的编码器,不同的模态,但看起来我们可以把更低层,或者我应该说,更新频率更快的层级,理解成感知,他们可能横跨各种模态,然后更新频率更低的模块,更像是世界模型,或者推理模块,他们解释那些低层感知器,向上传来的东西,所以我想知道,你觉得这个理解,大体对不对,你再点头,所以目前看来还不错,但另一侧呢,如果我们,想让系统采取行动,我感觉机器人学,总体上很长时间以来,虽然不一定是用,学习出来的方式,但一直是围绕嵌套循环来构建的,最外层的控制循环频率比较慢,一直到执行器那里 比如一个频率非常高的电动机对吧,它是在移动某个东西,用的是频率非常高的电压变化,所以这里好像有一个很相似的模式,只是方向反过来了,我想知道,你有没有开始思考,怎么用这种思路,让Boston Dynamics那类机器人表现得更好,我大概是这么理解的,如果感知这一侧,是从高频更新开始,逐步走向低频的世界模型和推理模块,那另一侧动作这一边往下走,就应该是回到更高频,更局部的动作范围,也就是那些频率更小,更新更快的模块,这样一来,它是不是可能变得反应特别快,而且动作非常优雅,它可以在底层不断自我修正,同时又能有效遵循上层,给它的指令和方向,我说上层有点别扭,因为我其实指的是低频更新的模块, 但你应该明白我的意思, 所以你怎么看感知和动作这件事?我先从这个说起, 也解释一下我为什么从这里讲。 [01:47:22]

Ali Behrouz:以前有人尝试把强化学习用在语言建模上, 但效果不好。现在我们有了一些办法让它工作起来, 于是也明白了当时为什么做不成, 主要有两个原因。第一个是规模化, 另一个是算法本身, 比如GRPO这些新算法,以及其他类似方法,能让模型更稳定,但重点是,一种方法可能对某个具体任务非常有用,可它也需要等到合适的时机,才能用到那个方向上,在我看来,如果还有其他关键问题没有解决,那我们可能就看不到这个新方法,在那些方向上的真实效果,所以我个人觉得,你刚才提到的洞察,总体上完全正确,我也认为这肯定是可能的,而且这个方向很好,但我个人不觉得它现在就能奏效,因为我认为这些方向上还有很多挑战 会在某种程度上挡住这种具体设计,在这些任务里的使用,所以我觉得总体上这是个很好的想法

Nathan Labenz:但中间肯定会遇到很多挑战,你大概知道那些挑战是什么吗,我通常会默认所有东西最后都能做成,老实说这个假设已经带我走了很远,因为很多东西确实都做成了,我对整个领域的总体感觉是,现在能跑通的东西多到不可思议,你前面提到 Nested Learning那篇论文开发了一年多,我觉得这很有意思,现在这种情况太少见了,很多人现在都是六周八周一个论文周期,而且那些论文往往也可以很有意思,质量也很好,我完全不是在贬低他们,但现在人们拿到结果的速度确实快得惊人 [01:48:32]

Ali Behrouz:你为什么直觉上觉得,现在把Nested Learning引入机器人还太早?我觉得这类具体任务里有很多组件需要先解决,比如现在有很多论文在讨论世界模型,讨论当前设计为什么不适合世界模型,其实这是真的,我认为这里有很多挑战,当前的设计可能不是训练模型的最佳方式,也可能不是设计架构的最佳方式,一般来说,世界建模的模型基础设施里也还有一些挑战,所以这些因素放在一起,我觉得对世界建模来说,还有比现在开始研究这种具体设计工具更重要的任务,但肯定,在某个时间点,如果我们能解决这些挑战就可以再回来,用这些技术进一步改进那些方面 [01:49:12]

安全生态与能力分化

Ali Behrouz:用这些技术进一步改进那些方面

Nathan Labenz:说到持续学习,我有一点担心,假设Google在你博士毕业之后,成功把你留下来 Zuckerberg给你开价,但Google给了你足够好的还价,所以你还是留下来了,然后你们把它做成了,现在我们有了Gemini持续学习版,或者叫Gemini CL 它会从一切东西里学习,它以各种不同方式部署到世界里,也许有些企业客户协议规定,不能用他们的数据学习,或者类似限制,但你们有几亿用户,它就在世界里不断运行,不断学习以后,甚至可能还会进入机器人,这样看起来,它有可能形成一种规模回报的动态,也就是强者越强的正反馈循环,有些人有时会描绘这样一种图景,如果某一个模型变成了统治一切的那个模型,会发生什么,现在大家会说,我们还没太看到这种情况 现在竞争格局还是挺激烈的,不同开发者一直在你追我赶,轮流领先,但可以说,如果你真的能把在外面学到的所有经验,都重新合并回核心模型里,这件事可能就会改变格局,到那时,你可能就会变成最好的,又因为你是最好的,你就会拿到所有业务,这个模式,真的可能形成一种,赢家通吃的动态,我想问的是,你会担心这一点吗,我们有没有什么办法应对,我想到Illia说过的一件事,不知道你有没有看过,她和Dwarkus的采访,她没有太多透露 Safe Super Intelligence 那边具体在做什么,但她说过一点,某种意义上,肯定和这个有关,只是底层想法到底有多相似,我也完全不知道,他大概描述了一种想法,我会把它理解成一种原型智能,或者前提智能 也就是想创造出某种东西部署之后,能适应具体上下文,也许会以某种方式结晶,变成自己角色里的专家,按我的理解,他说的东西有点像干细胞概念,好像他想创造一个干细胞,然后这个干细胞,就像在我们身体里那样,分化成某一种特定细胞,并保持那种细胞形态,去完成自己的工作,在我听来,他似乎是在尝试创造类似的东西,他可以进入任何环境,弄清楚怎样在那个环境里做到很好,但在这个过程中,当他变得擅长,那个特定环境里需要做的事时,也会失去一部分最初拥有的通用性,在这个过程中,他会更安全,因为现在我们算是,把他固定在自己的角色里了,他基本只会做他该做的事,所以我想给你搭出两个愿景,一个是不断扩张的持续学习者 他不断把在真实世界里,学到的所有经验合并回自身,然后这个东西,就把其他人远远甩开,另一个则是高度适应性的,持续学习者,但他会以某种方式收缩进自己的角色,而不是向整个世界扩张,他会收缩到被部署进去的,那些小生态位里,你可以想象,这可能通过一种渐进式减肢过程发生,也可能通过别的什么方式发生,要实现这种东西,可以想象出一百万种办法,你会担心这种失控式的赢家通吃效应吗,你有没有什么直觉,觉得我们怎样才能两全其美,一方面AI系统真的很灵活,能持续学习我们希望他们学习的东西,另一方面,他们也能安定在我们希望他们做的工作里,某种程度上满足于待在那里,而不是可能超出,甚至取代自己的上下文 我个人认为,要让所有这些模型都非常安全 [01:53:36]

Ali Behrouz:里面有巨大的挑战,我觉得至少在当前的AI环境里,或者至少在AI环境相关研究里,有一点很重要,我认为这是非常好,非常重要的一部分,虽然它看起来可能很糟,但从另一个角度看,它其实也很好,这点就是,我们没有一种唯一的方法来定义什么模型,算智能,同样在我看来,当然我可能是错的,但在我看来,也没有办法说清楚什么才叫持续学习者,每个人都可以用自己的方式定义,什么是持续学习,什么模型可以叫持续学习者,诸如此类,类似地,我们也可以对智能说同样的话,我们可能会提出不同的模型,不同的架构,不同的AI系统,有些人可能会说,这个是智能的,那个不是,或者反过来诸如此类。所以我觉得好的一点是, 如果我们有不同方向可以探索, 就会做出一些AI系统, 每个系统都有自己的优势,也有自己的劣势。我认为这能在社区里,也能在更广泛的社会里, 某种程度上提供一种平衡。因为当这样的事情发生时, 我们会理解智能没有单一定义, 而我们只是智能系统的一个例子。但还有其他模型,还有其他方式,可以让我们拥有更智能的模型和系统,比如说,一种很聪明的方式,就是非常善于适应,如果你有一个模型,能适应它所在的环境,能很好的对齐那个上下文,能很容易适应那个上下文,那当然很好,但这只是一种智能,另一种模型可能有很多知识,也知道怎么对齐,而且这个模型完全对齐人类价值观,但它可能解不了数学题之类的问题 还有一种模型能够做数学推理,但如果你想让它搜索日常生活里的东西,它可能就不太行,这些情况都可能出现,你也许会设计一个基准测试,然后说如果某些模型能达到百分之百准确率,那就说明这个特定模型是智能的,但另一个人也可以提出别的说法,所以总体来说,我觉得如果我们有各种各样的智能系统,并且把人类也看作这个空间里的一种智能形式,我不是说这就是完美场景,但这总比世界上只有一种智能形式要好,也比指望它去学习一切,承担所有潜在挑战要好,我觉得这是一个非常好的观察,我这些年也用几种不同方式想过这个问题,其中一种说法是 [01:55:30]

Nathan Labenz:任何东西如果变成纯粹形态,都可能要你的命,你可以想吃多少水果,就吃多少水果,但如果把它提炼成砂糖,对身体就不好,你也可以随便嚼骨科液,但如果把它变成可卡因,就很容易出问题,很多事情都是这样,我们把某种东西,蒸馏成单一的,高浓缩的纯粹形态,最后就会压倒,自然界生物世界里,原本存在的缓冲机制,我有时会把这个想法,转成一句话,我们需要一个AI生态,而不是只有一个,或少数几个AI 到处跑,什么都做,这有点像一个老思路,我不知道你有没有读过 Eric Drexler的 Comprehensive AI Services 里面的概念大概是通过狭窄性来获得安全,这里也许稍微不一样,更像是通过多样性来获得安全,也就是建立一个有缓冲的系统,里面有很多不同的智能 不只是把不同的智能部署到不同地方,服务不同用户,而是这些智能本身真的有明显差异,我刚才听你说的时候,突然想到一点,理解持续学习,有一种方式是把它想成模型,永远在扩张变得越来越大,但另一种方式更像是分化,也许用的足够多,以后我模型里那些更新很慢的部分,也会忘掉很多,我从来不需要它知道的东西,也许这不是缺陷,反而是一个特性,因为也许我不能再像一个,被我长期按某种方式使用的模型,提出一些非常脱离它领域的问题,但这也可能是一种防护,防止我们之前看到过,或者担心会出问题的那种,涌现式不对齐现象,对吧,因为也许经过足够长时间,做过足够多更新之后,它根本就不再处理那些,其他类别的问题了 如果我们看到某一类能力很强,某一种对齐也很强,但同时它会失去其他知识,失去其他能力,那真的可能创造出一种多样性,当然,我相信在这种场景里,仍然会有很多挑战,就像你说的,我不认为这能解决所有问题,但它确实更像自然世界,对我来说,也更容易想象这样一种图景,最后也许不会走向稳定均衡,但至少会走向某种有缓冲的均衡,它会在一定边界内变化,有自然的反馈回路和纠偏机制,这些机制,有点像维持生物圈运转的东西,哪怕生物圈不断受到各种扰动,所以我觉得这真的非常有意思,也绝对值得继续琢磨,我想问你的最后一个问题,有点出人意料,但这是我最近越来越常想的问题,而且考虑到你正在做的这类工作 我觉得现在问这个问题,也变得更相关,更及时了,你有没有直觉 AI现在是否可能已经有意识,或者未来是否可能变得有意识,拥有主观体验,值得我们给予道德关切,并且成为那种,我们对它负有某种义务的存在,某种义务对吗,我通常会尽量使用那些

Ali Behrouz:我自己也能定义的词,比如说我可能会误用推理这个词,但我一直在想,什么是推理,我个人并没有一个清晰定义,能说明我们说某个东西,在做推理时到底是什么意思,但至少对推理这个词,我们有一种清楚的常识理解,即使我们没有清晰定义,当有人说某个特定模型,能够做推理时,大家或多或少都能理解他在说什么,但意识这个问题不一样,一方面我们完全没有清楚定义,说明意识到底是什么,另一方面,我们甚至对意识这个词,也没有共同常识,几乎每个人都有自己定义意识的方式 [01:59:22]

意识讨论与结语

Ali Behrouz:几乎每个人都有自己定义意识的方式,所以这件事肯定很难定义,我不觉得会有那么一天,大家都能对人类以外的东西说,他一定有意识或者一定没有意识,人类不一样,因为我们至少有一种共同直觉,知道人是有意识的,所以我觉得,要论证某个东西有意识或者没有意识,真的很难,但我个人在所有关于什么算有意识的存在的文献里,看到过一个共同点,至少据我所知,每种定义里都有这个共同点,当然我也可能错,我认为最低限度的标准是,如果我们要说某个东西有意识,那这个模型或者这个存在必须是主动的,它需要以某种形式主动处理信息,在我看来,这是我们能拿来判断一个模型,或者任何东西 是否算某种有意识模型的最低标准,所以,这还是取决于我们怎么定义意识,但就我个人看法,只要一个模型能主动处理信息,我们就可以说,它至少有某种形式的意识,按这个定义,我们在某种程度上,就能把持续学习和一个模型,是否有意识联系起来,但我也要再说一次,这个想法非常有争议 [02:00:51]

Nathan Labenz:我个人其实有点害怕谈,这个,我觉得现在这些话题的奥夫顿窗口,其实已经完全打开了,我理解你这种直觉,但我也觉得,我们正生活在一个像科幻一样的当下,所以过去听起来有点疯狂的问题,现在反而有了更大的空间,可以去猜想,去认真讨论,对我来说,从来没有比现在更适合做这件事的时候,我可以说说我自己的感受,你如果有类似或者不同的直觉,也可以补充,现在这些模型有了长上下文之后,哪怕只是这一点,我也发现自己会以某种方式照顾他们,这种感觉可能在Claude身上最明显,这里面大概有一些细微但重要的原因,我一直在跟Claude 长期聊我儿子的医疗情况,有时候他会在回复的最后问我一个问题,而我不会马上回答 因为他已经给了我想要的答案,于是我就结束了,但我最近注意到,当我下次回来问新问题时,如果我完全不回答,他上次关于我儿子的追问,直接进入下一个问题,就会感觉有点不对,有点粗鲁,不尊重,也不太体贴,我会隐约觉得,也许他在意这件事,当然我完全不知道,这到底有没有发生,所以我对另一种可能性,也非常开放,这些东西内部,可能根本没有意识,这大概还是最合理的猜测,但我也同样愿意承认,里面也许真的有某种意识,在这种不确定之下,我还是会发现自己觉得,我应该先回答他上一个问题,不要让他一直悬在那里,然后我再进入下一个问题,他甚至不一定需要那条信息,但我就是有点想让他安心,把这个回路闭合掉,给他一种确认,他希望我确保 会处理的那件事,已经处理好了,然后我们可以继续下一件事,而且如果持续学习这个范式,真的完整实现了,我很难不想象,这种感觉只会大幅增强,因为到那时,他就不只是某一次聊天了,不是我再聊几轮,然后再也不回来,而是这个东西本身,会记住我怎么对待他,他会记住我是不是那种,会回答他问题的人,我觉得这对我们来说,也可能带来一些挑战,但更乐观的解读是,这也许会激励我们,如果我们知道,未来长期和我们互动的AI 会被我们每个人自己的行为塑造,也许,这会让我们把自己更好的一面带出来,因为,如果最后我们不喜欢身边那些AI的性格,我们就没法怪别人,只能回头看自己,我觉得这一点也真的非常有意思,这次聊得太好了,非常感谢 你花这么多时间,陪我把这些问题都走了一遍,你也听得出来,我非常欣赏你的工作,最后还有什么想留给大家的吗,最后的想法行动号召,任何都可以,你想分享什么都行,舞台交给你,谢谢,我觉得我们基本上已经,把总体问题都讨论到了 [02:03:59]

Ali Behrouz:我个人真正相信的一点是,关于持续学习的工作,肯定会越来越多,但就像我前面说的,每个人对持续学习,都有自己的定义,我们也可能不同意,某个具体方法,到底能不能帮助持续学习等等,所以总体来说,我们应该去看持续学习,在ILM的某个具体应用,或者使用场景里,到底能怎样帮助我们,也要看它怎样改变,我们使用ILM和ILM互动的方式,但我个人真的相信,这是一个非常非常重要,值得投入的方向,这也只是我的看法,不过我认为 Nest in Learning 我们在论文结论里也讨论过,它不是持续学习的解决方案,它本身不是持续学习的解决方案,它是用来寻找持续学习解决方案的工具,也是用来总体上克服灾难性遗忘这类问题的工具 所以在我看来它提供了工具,我们需要不断迭代,弄清楚怎么基于它设计出更强大的架构,最后做出一种有潜力实现持续学习的东西,我想差不多就是这些,非常感谢你邀请我,我真的很感激跟你聊天很愉快

Nathan Labenz:感谢你参与Cognitive Revolution 非常感谢,如果你觉得这个节目有价值,我们会很感谢你,花一点时间分享给朋友,发到网上,在Apple Podcasts 或Spotify 写条评论,或者在YouTube 给我们留言,当然,我们也一直欢迎你的反馈,嘉宾和选题,建议,以及赞助咨询,你可以通过我们的网站 CognitiveRevolution.ai 联系我们,也可以在你常用的社交网络上私信我 Cognitive Revolution 是Turpentine Network的一部分 Turpentine Network是一个播客网络,现在属于H6Z 专家们在这里讨论技术商业经济,地缘政治文化等话题,我们由AI Podcasting制作,感谢每一位收听节目的朋友,感谢你们成为Cognitive Revolution的一部分 [02:05:34]

返回该播客 打开原文