你可以,我可以听到,就像幻灯片一样,背景中令人毛骨悚然的聲音和脚步声。有三件事要学习有关运动编码的一切。进行干预或建模的正确方法是什么?以及如何思考它,为什么机械论和能力可以帮助我们使模型安全,机器学习在某种意义上是一个非常奇怪的领域,因为我们产生了这些人工制品,神经网络,但没有人设计它们。
它们不像某个人的计算机程序那样,设计好后编写代码并说,我们只是创建一些灵活的架构,输入大量数据,并产生有效的系统,但我们不知道内部发生了什么或它是如何工作的。而这些都是非常令人印象深刻的系统。它们可以做很多事情,很多复杂的工程任务和复杂的推理,并获得IMO银牌。
我们只是不明白它们是如何工作的以及内部发生了什么。我们拥有的计算机程序基本上可以做人类程序员不知道如何编写的事情。我的工作就是尝试解决这个问题。AGI的实际风险是一个相当两极分化的议题,双方都有很多有见地的人和强烈的意见,但令人沮丧的是几乎没有经验证据。我认为机械可解释性可能为我们提供的是对系统内部情况更清晰的认识。
例如,它们是否会做一些我们认为是计划的事情?它们是否有任何有意义的目标?它们会欺骗我们吗?我们越能理解这些事情是如何运作的,以及它们是否会在不应该出现的情况下出现,我认为我们就能学到更多。在我看来,这似乎是一个非常重要的研究方向。
该模型对表示的稳健性表明,它不仅仅是关键字匹配。它实际上理解事物是什么。
对我来说很清楚,它不仅仅是关键词匹配,因为我们观察到诸如多语言特征之类的东西,其中不同语言中的相同文本会激发该特征。你往往会在模型规模超过一定程度时看到这一点。大多数情况下,它们具有多模态特征,例如金门大桥,一张金门大桥的图片就会激发它。
在我的内部,我对此感到非常惊讶。因为如果你可以将你的输入映射到一个更语义化的、抽象的空间,你就可以进行高效的处理,当然,这是可以的。
有一些有趣的工作,例如,我认为克里斯·温德尔有一篇关于“LLM是否思考英语”的论文,这似乎表明模型决定说什么,以及它决定用什么语言说,就像在不同的点上一样,你可以用不同的方式来引导它们。但我认为,如果你有某种n-gram匹配的讽刺性观点,你将无法预测这一点。
我现在不太理解那些持有这种观点的人,我认为这显然是错误的。因此,我认为为了更好地理解,我们首先需要从他们试图解决的问题开始。所以你可以想象一下神经网络。
它们构成了一堆,你输入一些东西,它被转换成向量或一系列向量(在transformer的情况下)。然后每一层都将其转换成一个新的向量或一系列向量。这些是中间的激活。
中间层通常具有中间激活。我们相信这些激活向量通常代表输入上的概念、特征、属性,某种解释,但实际上我们需要某种方法来将其转换成有意义的东西。
而稀疏自动编码器是一种可以做到这一点的技术。它们基本上将向量分解成某个大型支持向量字典中的一些小线性组合,我们希望这些特征向量对应于可解释的概念,并且在大多数向量在任何给定输入上都不是该组合的一部分的意义上是稀疏的。
我认为,如果你得到了类似于你的激活图的东西,它们通常会向你显示不同的区间,例如激活的第58到70百分位数之间是什么。这会给你一些东西。这对于获得一种广泛的视角很有用,而不仅仅是查看因果关系也很有趣,例如,与虚构人物相比,尤其是哈利·波特,某个特征会激发。但当我用它时,它只是一种哈利·波特。
你可以加入MindsAI(Tufa AI Labs的一部分),进行很酷的ARC研究,并最终击败ARC。在那之后,他们将遵循O(1)的脚步,致力于基于LLM的推理。所有纯粹的研究,没有产品,资金充足,访问tufalabs.ai。
我们还得到了CentML的赞助,这是一个经过疯狂优化的模型服务平台。与其他平台相比,它是同类产品中最好的,每秒令牌速度比Hyperscale快400%。它便宜了70%以上,在Llama 8B上每百万个令牌只需8美分,你可以在自己的私有端点上获得10个免费积分来评估该平台。
所以,你在等什么?在centml.ai注册。这是一个相当长的播客。它的第一部分是我与Neel录制的外部分析。然后其余部分是内部部分,我们讨论了很多关于机械可解释性和稀疏自动编码器的内容。
它在某种意义上是一个非常奇怪的领域,因为我们产生了这些人工制品,神经网络,但没有人设计它们。它们不像某个人的计算机程序那样,设计好后编写代码并说,我们只是创建一些灵活的架构,输入大量数据,并产生有效的系统,但我们不知道内部发生了什么或它是如何工作的。
而这些都是非常令人印象深刻的系统。它们可以做很多事情,很多复杂的工程任务和复杂的推理,并获得IMO七枚奖牌。而且,我们只是不明白它们是如何工作的以及内部发生了什么。
我们拥有的计算机程序基本上可以做人类程序员不知道如何编写的事情。我的工作就是尝试解决这个问题。我领导着谷歌DeepMind的机械可解释性团队。
机械可解释性是一种AI解释方法,它认为神经网络通常会学习人类可以理解的结构和算法见解,并且只要付出足够的细心、关注和严谨,我们就可以深入研究它们,至少可以发现部分隐藏的结构,而不仅仅是将其视为一个奇怪的黑盒系统或某种东西。我们通过梯度来照亮输入的某些部分,但实际上是理解算法如何在权重和激活中表示。这确实很难,但我们取得了一些进展。
我今天将讨论的是……是的,推理对你来说意味着什么?
你知道我的意思是,当LLM进行推理时是什么,或者在……
哲学上……
抽象的哲学上,抽象的上帝,抽象的沙发,因为我非常赞同应用某种逻辑推理规则,例如你输入一些知识,你用这些知识做一些事情来产生更多知识,尽管目前尚不清楚是否需要某种意图性和代理性。例如,如果松鼠有一种习得的反射,那就是听到噪音就跑到树上。
这是推理吗?我不知道,我认为LLM中还有一个有趣的问题,即我们分析的是前向传递的元素,还是包括长生成和思维链的LLM系统,或者在像O(1)这样的情况下是荒谬的长思维链,这是否是我们认为是推理的东西,因为这显然可以推理,它产生了一系列逻辑推论,你可以给它一些反事实的东西,例如,有一个proto-QA基准,它有所有类型的Emma,所有类型的blue。模型可以用思维链做到这一点,而这似乎是一个更高的标准,说我可以用前向传递做到这一点。
老实说,这更像是对内部认知的断言。我知道这就是我们进入机械可解释性领域的原因,但我们在推理时间计算与训练期间的相变或涌现现象方面存在差异,这对我来说很难比较。例如,当你训练时,当你在一个模型上花费更多计算时,它将具有更多功能。
有些可能是突然学习的。有些可能是逐渐学习的。我不太关心。我认为这与这里无关。如果你想用更少的计算来训练一个模型,但在推理时间计算上花费更多,这将得到不同的权衡。
我基本上只是认为,对于许多用例来说,推理时间与训练时间计算的比率在历史上一直相当不平衡,并且将来会更加平衡。我认为我们还不知道这些新的推理时间计算重点系统在经济上会是什么样子,例如我们有损失曲线的缩放定律。但这在经济上有用的东西中是如何体现的?
例如,我在旧系统卡中发现的一件非常有趣的事情是,它在代理任务上只有在5分钟内达到Claude 3的水平。我认为对于某些计算机系统来说,这可能是最有用的一种,因为你乐意等待一段时间,让它去做一些你不需要与之交互的事情。我预测我们还没有学会如何使用它们。
我预测我们还没有学会正确的技巧来使它们擅长于此。这只是给了我对经济将如何发展非常广泛的估计。
你知道,拥有一个好的推特,我认为,对于获得有见地的评论至关重要。我有……
偶尔会在上面看到有见地的评论。
一个很好的例子是,Joe Smith说,问他关于为什么AI安全很重要的任何问题,这样他就可以批评你。
好吧,为什么AI安全很重要?嗯,我认为这有点不雅,但我也认为,人类水平的AI只是一件技术上可行的事情,迟早会发生,而且很多人都在努力构建它。这似乎是一件非常重要的事情,它将极大地改变世界。如果你有这些智能自主代理,那么事情可能会好转,也可能会变糟。我们必须投入大量的研究精力来研究安全性和可解释性等问题,以便我们可以做到正确。
Daniel Filan说,在过去五年中,我们在机械可解释性方面取得了多少进展?我们是否按计划进行?如果我……
对该领域是否成功感到相当乐观,我认为我们正在努力解决一个非常困难的问题,我们可能会失败,但我认为机械可解释性的进展通常看起来像是揭示了系统中越来越多的结构,这样即使我们没有达到该领域中那些通常不太现实的雄心勃勃的目标,我认为我们最终会达到能够对系统做一些有趣、有用的事情的地步。
这是否按计划进行?这是否足够?有点不清楚。我觉得我们已经取得了相当大的进展。
我觉得我现在对很多事情有了更好的理解,比如叠加以及如何处理它,如何进行有原则的因果干预以尝试绘制电路图,如何与transformer交互,以及在这些模型中应该期望什么样的结构。但同时,我们也有很多不知道的东西。所以我有点矛盾。
是否有新的机械可解释性基准具有可衡量的分数?你知道,就像NLP中的BLUE分数一样。你认为这有用吗?你离实现这个目标还有多远?
我认为这里的问题是,汇总统计数据总是会让你失望,你正在尝试将一个丰富、复杂、令人困惑的高维对象压缩成一个数字或一堆数字,如果你有一种定义明确的技术,你会知道它应该做什么?你只是试图衡量一些东西,例如,对于稀疏自动编码器,它在给定可解释性水平下重建模型的能力有多好?或者,它在帮助我忘记也同样可衡量的事实方面有多好?而这些正是我希望稀疏自动编码器擅长的事情。
但还有很多事情,例如,这个模型是否表现出叠加?我们是否真正理解了电路,或者它们可能是,我不知道,正负位相互抵消,我们没有注意到,但在其他一些输入中,它会成为一个参数并且很重要,并且很难想出一些东西来捕捉这些,但是我认为随着该领域的成熟和变得更加范式化,这是一个我希望看到的方面。
所以我说,韩国。他说,你认为控制向量、断路器和反思有多大的前景?
你知道这是什么吗?这代表表示工程,对不起,超级,这类似于其他技术,如激活转向、控制向量。
是的,关键在于你以某种方式定义一个向量,例如,你给模型提示“我爱你”和“我恨你”,然后你取残差流的差异,这样你就得到了一种“爱”向量,然后你把它加进去,就会发生一些变化,比如输出快乐的文本,而电路……呃,我相信,我的意思是,我现在不记得论文的细节了,但这基本上是一种方法,可以让模型在看到有害内容时,使用控制向量和某种训练方式来避免输出有害内容,但我真的不记得细节了,抱歉。嗯,我认为关注激活似乎是一个有趣的方向,这似乎是一种有趣的技术。嗯,我喜欢这样一个事实:这种相当可解释的模型和亨利技术可以做很酷的事情。嗯,我的意思是,我认为金门克劳德就非常类似于这种技术。它碰巧使用了自编码器,但这可能是不必要的,金门克劳德非常有趣。嗯,这似乎也表明,你可以通过减少内部噪声或提高真实性来使它更有用,但这是否足以帮助我们构建一个像人类水平的系统,目前还不清楚,这可能会有所帮助。
安努斯说。这会呼应瓦利·苏伯的观点,瓦利·苏伯是节目的朋友,他是一位优秀的AI研究人员。我只是想把它放在这里,他说,假设解释一个决定意味着反向进行推理,从决定回溯以找到导致它的步骤。鉴于神经网络无法做到这一点,因为没有可逆的组合,我们如何才能真正实现……
可解释性?所以,这并不是我思考这个问题的方式,我的思考方式是这样的。首先,你不需要关心可逆性问题,因为模型是一堆层,每一层都是一个相当简单的函数,你可以分析激活或处理一堆……所以,这不像我只有输出和输入,我需要以某种方式反向工程它,就像……
我们有权重,我们有激活。我们知道系统中发生的一切的每一个数学细节。我们只是……我们完全不知道这是否符合……
嗯,这就是我们正在努力解决的问题。你知道,我认为如果你有一个激活,你还有另一个激活,你想知道你是如何从A到B的,你可以做一些推断。你可以查看权重,你可以进行因果干预,比如,我没有把自己局限于证明的标准,比如,我们没有反转一个数学函数。我同意你的观点,神经网络不是通用函数,但我把自己局限于这样的标准:我有充分的证据表明我的解释忠实于至少部分发生在模型内部的事情。有很多方法可以尝试做到这一点。
我相信他会谈到这一点。我必须承认,我对这一点真的感到困惑。所以我不认为……好吧,我的意思是,也许我们的大脑是组合的,但感觉我们的大脑可能与神经网络并没有那么不同。
我的意思是,当然,它们是不同的,对吧?因为神经元几乎可以独立地相互交流,你可以得到这些重复的循环等等。词语。
神经网络是自左向右的。但如果我们把这一点放在一边,它们在某种意义上是相似的,它们都是非常亚符号的,非常分散的。它们非常复杂。
它们是纠缠的。然而,当你观察我们的思维,当你进行心理学研究时,看起来我们能够进行组合推理。所以,这难道不是看待事物的两种方式吗?你可以观察你的网络。你会想,哦,是的,它是分散的,它是纠缠的,它是复杂的,神经网络的不同部分显然做着相同类型的事情。它在某些方面可能具有组合性吗?
当我们讨论单个前向传递时,我觉得更令人困惑。但如果你给我们一个记事本让我们做链式思考,你会怎么做?显然,它会把所有这些都写下来,然后对这些进行推理?这与我用语言思考问题和记录文档有什么不同?这不一样吗?
你认为为什么自我提示链式思考推理会给它们带来提升?
这对我来说非常直观,当你有了记事本写下你的想法时,你的能力和能力就会提高。我更聪明了。我可以做更难的……
问题,就计算复杂度而言,模型可以将一些信息回传,它也可以……某种程度上并行化更多内容,因此它可以有一个标记来做“我应该做什么?我的计划是什么?”的计算,另一个标记来做“计划的下一步是什么?”,另一个标记来做“执行下一步”。如果你要在同一个标记中做所有这些,模型就会变得非常拥挤,每个残差流中都有很多概念相互干扰。这使得模型更难以处理。而且,很多这种计算本身就具有顺序性。
推理可能是嘈杂的,它可能想知道白俄罗斯每天平均写多少胡萝卜,以及需要回溯的问题。之前的轨迹可能会变得嘈杂,也可能会分心。所以它不是一个必然的胜利。
胜利。我认为在某些情况下,它会使模型……例如,迈尔斯·图尔平有一篇有趣的论文,关于不忠实的链式思考,你给模型一堆多项选择题……其中链式思考的响应,然后给出一个答案,给出十个这样的例子作为少样本提示,然后给出另一个……他们所做的是,他们在少样本提示中……
所有问题的正确答案都是A。然后在最后一个问题中,正确答案是B,他们发现,如果他们提示它在最后给出链式思考,那么它会给出关于为什么正确答案是A的胡说八道的链式思考,然后说A,而如果他们没有要求它进行链式思考,那么它更有可能给出B,在某种程度上。这是一个有点无聊的例子吗?因为告诉它进行链式思考可能会触发少样本提示,但这也有好处。
我有一个大胆的想法,模型有一个内部表示:答案是A,我应该根据这个事实生成一个虚假的解释。就像,我很想做一个机械项目来研究到底发生了什么。
但从模型理论的角度来看,这是否会以任何方式贬低它们具有目标和意图性的想法?如果……如果这是一个如此复杂的逐标记空间,我的意思是,也许……也许我们没有目标和意图性,但这是否会以任何方式贬低某种意义上的心智理论?
我期望机械地看起来像这样:你有一些标准,你考虑行动,你根据这个标准来判断行动。我认为这在有内部记事本的情况下更容易。但我的总体直觉是,如果一个糟糕的模型可以用内部记事本来做某事,那么一个好的模型可以在没有内部记事本的情况下做到这一点,并且可以用记事本来做更好的事情。而且,从算法的角度来看,评估行动似乎并不难。我认为这是一个非常有趣的研究课题,比如在更玩具化的强化学习环境中,这似乎是事物参与规划的相当不错的证据,比如埃里克·金有这篇有趣的论文,研究了LEaRN-Zero,我认为它发现了这样的证据:它至少在提前两步思考。
你对刚开始读博士和硕士的学生有什么建议吗?
嗯,不要花太多时间阅读论文。我认为学术界进入新领域的标准做法是:我会阅读所有文献,你应该阅读一些文献,我们可能会在描述中链接阅读清单,但我认为你应该花很多时间编码,比如玩更多模型,玩各种代码,玩任何你感兴趣的东西,有很多不错的工具和教程,等等。
我们希望在描述中包含一些这些内容,这是一个非常经验性的领域。你想建立直觉,你通常可以不用太多工作和玩耍就能得到一篇不错的博客文章。嗯,是的,获得指导,理想情况下,你的导师会花很多时间和你一起进行项目讨论,但在实验室里尝试找到与他们共度时光的方法,也许专注于对他们有帮助,比如帮助他们完成项目。嗯,我非常喜欢结对编程作为学习技术技能的一种方式。
嗯,如果你能找到任何在ML编码方面比你更好的人,或者在顶级编码方面更好的人,那么与他们结对编程……也许作为帮助他们完成某个项目的一部分,我认为这可能是一个很好的学习方法。我认为学术界很多人在某种程度上忽视了技术技能。没有冒犯的意思,嗯,你编码越好,你的实验就越好,你做的研究就越多。要保持怀疑态度,很容易想出一个漂亮的想法,但这个想法实际上是完全……
你对它产生了依恋。你没有注意到顾问,甚至只是可以对你的想法进行红队测试的同龄人,这真的很有帮助。
你也应该花很多时间自己做这件事。比如,这怎么可能是不对的?这可能不正确的一种方式是什么?哪些实验可以区分真假?啊,是的,好吧。
菲利普森说,到底……就是这样,就是这样。你如何在仅仅25岁的年纪就达到你现在的成就?请分享你的英雄之旅。
好吧,嗯,我的生活故事是这样的:我在剑桥完成了数学学位,我本来打算读硕士,但为什么在地球上要在疫情期间读硕士呢?所以我花了一年时间在不同的安全实验室实习,比如DeepMind、未来生命研究所和伯克利的中心人工智能安全研究中心。我对任何我参与的具体项目都不太兴奋,但我认为AGI是一件大事,我应该从事这方面的工作,然后我非常幸运。
我得到了一个工作机会,可以在Anthropic与克里斯·奥拉合作。由于健康原因,我最终离开了,然后大约……暴力依赖……然后……加入了DeepMind。就这件事是如何发生的,说实话,我有点困惑。我认为关键因素是早早进入一个发展非常迅速的领域,我想我会尽力回馈这个领域,这对我也很有用。
嗯,我真的很擅长指导别人,而且我觉得这真的很有趣,对吧?我擅长指导别人的意思是,我可以让人们在花那么多时间帮助他们的情况下发表很酷的论文,而且我也觉得这是一件非常有趣的事情,这意味着我既有很多论文署名,也是一个更好的研究人员。嗯,运气和有很棒的导师,比如克里斯·奥拉,以及找到一个非常适合我的口味和能力的领域。我认为现在进入AGI领域已经很难了,这几乎是三年前的事了,抱歉,这个领域已经发展壮大了,更多的人对此感兴趣。太糟糕了。
总有一天我们会超越奇点。
我太兴奋了。嗯,是的……
这个人绝对是传奇人物。
太棒了。啊,我认为他以前从未在80000小时播客上做过节目,是的,但这非常好,人们应该听一听,是的,嗯,作为对那些有生活的人的背景介绍,推特对我的年龄是25岁这件事非常感兴趣……
非常令人困惑,你在说什么?
嗯,让我们看看,有人发消息给我,说今天是尼尔·南达的第19000个生日,请评论。尼尔,生日快乐。如果你认为反向工程你的网络对于降低AI风险很重要。嗯,他还写了一篇非常搞笑的帖子,完全是关于尼尔·南达的胡说八道,一个18岁的政策制定者,在谷歌内部发明了沃克源代码,当时他只有18个月大……我非常困惑,是的,推特……
领域是一个非常奇怪的地方。我们现在制作了关于稀疏自编码器的最全面的YouTube视频。什么是稀疏自编码器?
稀疏自编码器是一种工具,可以让你在模型运行时查看模型内部,并了解它在想什么。我认为这是我们迄今为止最令人兴奋的解释工具之一。但同样,大多数人并不真正了解如何思考它们。
我和蒂米·赞德已经讨论了它们好几年了。所以听起来你玩得很开心。也许现在应该看看这个。
为什么这与AI安全相关?
是的。所以,是的,我认为存在一个关于动机的有趣问题,在我看来,最近的进展仅仅是……科学上令人着迷的领域。我们只是不了解这些系统是如何工作的,但我们可以取得进展。
并且存在所有这些美丽的谜题需要发现,这是我在该领域工作的一部分。但我在该领域工作的一个很大一部分原因是,我非常担心来自AGI的潜在风险。我认为这是一个很有希望的途径来解决这个问题。
我认为这是一个非常高的层次。我只是认为,如果你不知道内部发生了什么,那么让系统安全或评估它的安全性就难得多。我认为,在我们发现其漏洞方面取得的任何进展,在这方面都是巨大的进步,尤其令人担忧的能力,我认为可能是欺骗——能够欺骗我们的系统。
而且我会尝试规避我们的评估,如果你能规避你的评估,那么其他所有评估都毫无用处。而且可能很难仅仅通过与模型互动来弄清楚这一点,因为如果模型足够小,那么正在做这件事的新闻就足够了。但我认为,如果我们能够深入了解,我们一定能够检测到这种情况何时发生,并可能对它有更深入的理解,并可能阻止这种情况。
我认为另一个角度是,围绕着人工智能风险是否重要存在很多困惑?我认为这相当糟糕。我认为如果这里有一个我们可以同意的良好的经验基础,以及一些我们可以研究的经验问题,那就好多了。
但是有很多事情,例如,这些系统能否进行规划?它们是否有目标?对此没有真正的共识?或者更确切地说,这会发生吗?我认为机械解释能力可能是一种有前景的工具,可以用来回答诸如此类的问题,因为它们从根本上来说是关于认知的问题。我认为机械解释能力并不是回答这些问题的唯一工具,但我相信它可能是一个有前景的工具。
是否有可能在训练中达到一定程度的复杂性,模型会故意进行某种自我加密,以阻止你进行探测和理解?
它在做什么?也许我的直觉是,这似乎比学会对人撒谎要困难得多,因为它在训练数据中有很多这样的例子,而……是的,在训练数据中有很多这样的例子,而……如何扭曲你的内部来避免交互式工具所做的事情,并且没有得到反馈。这就像我不知道如何解读我大脑的工作方式。
所以外星人不能像读懂我的想法一样……好吧,显然,像椰子这样的模式应该更容易,更难获得,它可以做到像不经常考虑它的目标一样。我喜欢也许会发生这种情况,但我不知道。我预测会有一个窗口,在这个窗口中,这些东西在获得像银河系大脑一样的模型之前是有用的,很难知道用什么工具来处理它们。
3秒钟就能让打工仔开心。
很久以前,我的女朋友实际上非常兴奋,当她听到我回来的时候,她说上一集听起来很放松,她用它来帮助她入睡。
我上次说过,新闻娃娃的坐姿会消除压力,我没有说谎。但与此同时,还有另一个迹象,那就是你是一位令人难以置信的机械解释研究人员。我认为一个很好的线索是,用你自己的话说,是什么让机械解释如此吸引人?
简而言之,机械解释能力(简称机械解释)是解释人工智能模型的总体研究的一个子领域,无论你想怎么称呼它。它基于这样一个假设:神经网络在训练时学习了某种人类可理解的简单算法,但它们没有任何动机使其对人类来说易于理解。
但是有一些潜在的结构存在,因为这正是产生输出的计算。通过仔细和有原则的逆向工程和科学批判,我们可以识别这些隐藏机制的部分内容。雄心勃勃地说,这看起来像是理解整个算法。但即使只是理解中间变量是什么,对这种结构的部分理解也感觉像是意义重大且令人兴奋的进步。
对我来说,有些人认为,这意味着这是一项艰巨的任务。你知道,有些人可能会认为这是不可行的,甚至是不必要的。你会对这些人说些什么?
好吧,“不可行”和“不必要”是两件截然不同的事情。我之所以认为“不可行”,是因为我认为可以说完全逆向工程像大型语言模型这样的东西并不现实,但我认为我们可以理解它们很多重要且有用的东西,以及部分进展。而且,就我个人而言,在这个领域中,我非常担心来自人工智能的风险。
我认为我们有更强大的方法来研究它们并确保安全非常重要。我认为,即使是机械解释能力方面的部分进展也能帮助我们实现这一点,更不用说它在科学上令人着迷和美丽了,这让我很兴奋。人们只是说,好吧。
一堆看似非常复杂和困难的软件工程任务,我们不知道如何制作一个能够做到这一点的系统。就设计而言,我们不明白这些东西内部是什么。它们只是有效的东西,我们已经取得了进展。
但我仍然对更深层次的内部发生的事情感到困惑。关于“不必要”,不必要是什么意思?我认为进行研究以帮助我们使系统更安全非常重要。我认为其中一种途径是可解释性。
我并不是说,如果我们不做任何解释性研究,我们就永远无法制造出安全的系统,这将是不合理的。我并不是说,如果我们不追求专门的机械解释,而是追求某种其他的哲学,我们就永远无法制造出安全的系统,我只是说我认为这是一个有前景的方法,我认为它是有帮助的。我认为它正在帮助我们发现关于这些模型的真正有趣的科学真理,而且我想发现它们。
那么,如果这些是机器的目标,那么这些子目标是什么?
是的,所以。我可能会将该领域划分为三个概念领域。一个是基础科学。那么,模型内部到底发生了什么?一个是自动化,将理解系统和扩展它们的技巧和工具,也许让一个元素来做它们,也许只是有一个算法可以做它们,以及实际应用。
在现实世界中做事情,目标不一定是推进机械解释能力,而是做一些有用的事情,并在过程中从现实中获得反馈。而且,从历史上看,该领域的大部分工作都集中在基础科学上。我认为这是正确的,我认为我们取得了很多进展。我认为,展望未来,我对探索其他领域以及在基础科学中建立所有这些进展感到兴奋。
我认为通常有用的分解是,如果你认为模型在某种意义上就像一个计算机程序,那么有两个任务:变量是什么?程序每一行中的状态是什么?程序行是什么?代码是什么?算法是什么?在机械解释中,你称变量为特征,值就像它们应该亮多少?你称算法或代码行为为电路或算法。
通常,我们研究的是模型激活,即当你给它输入时它动态计算的东西,因为我们相信这些代表变量,在某种意义上代表模型正在思考什么,如果你原谅这种拟人化。另一方面,电路存在于模型的参数中。它们是在训练过程中学习的东西,不依赖于输入,而是像响应输入并通过不同的通道完成它一样。
我可能已经在你的上一个答案中回答了这个问题,但为了更清楚一点,你知道,在我们拥有像LIME和SHAP这样的东西之前,我们可能会进行黑盒模型解释,比如用线性模型或类似的东西。现在你似乎在谈论这些模型运行的算法,你的意思是,你如何对比这些?
不同的观点,这不太是我的领域。所以我会说一些关于它的东西,它们可能是错的。我肯定有很多论文对这些东西有各种各样的变体。所以,如果我表达了任何批评,我相信有人可以给我寄一篇论文来解决这个问题,或者类似的东西。但总的来说,我对LIME的理解是,它像对一个线性模型或类似模型进行局部逼近。
我认为这是一件相当合理的事情,但我认为问题是,你如何应用这种技术?所以,好吧,让我们记住它,它感觉更像是一种哲学上的差异,从历史上看,许多解释性工作只是查看输入和输出,并没有查看意图,或者他们使用它来计算梯度或类似的东西。
而机械解释试图超越这一点,并查看诸如模型的激活之类的东西,这同样是人们以前做过的。但它也试图理解这些连接和参数以及它们如何连接起来。并且只是为了更雄心勃勃的目标,像LIME和SHAP这样的技术可能有用,也可能没用,但它们是你在某些情况下应用的工具,例如,属性修补,我们稍后可能会更多地讨论,但非常粗略地说,它使用梯度来逼近因果干预。
我有一篇博客文章介绍了它,而且还有很多其他论文在过去几年里做了类似的事情。每个人总是重新发明一切,这与LIME的精神非常相似,我认为LIME是一种不同的方法,比如寻找线性逼近,梯度非常便宜且有效。它们似乎基本上可以正常工作,但是对于属性修补,你可以将其应用于模型激活,而不是模型输入。
我认为SHAP有点类似,它是一种属性方法。你对一堆输入进行投票,或者类似的东西,然后你就会问,SHAP值会如何影响输出?同样,这是一个合理的做法,你可以将其应用于模型的激活。
哦,我实际上还没有看到部署的……我会很好奇其他结果……理想情况下,你会有一个更严格的方法来做这件事,然后你尝试使用一个更便宜的工具,看看它是否是一个很好的近似值,尽管这种持续挑战解释性工作的一个问题是,什么是真相。好的,回到这个问题,我认为在某些方面,机械解释能力与之前的东西是连续的。
最终目标是获取一个模型,并试图理解内部发生了什么。有一些文化差异,比如不同的人有不同的想法,比如我最初是做视觉的,然后转向语言模型。有些人一直在做语言模型。但这更多的是一种视角和哲学上的差异,而不是技术上的差异,这就是我想说的。
是的,我知道我和麻省理工学院的Andrew Ilyas谈过。他正在研究数据建模,我认为这与检查你如何实际建模数据集中的变化如何影响整体预测架构的东西非常相似。但总是有这样的说法,它不能很好地扩展,对吧?我想问题是,你如何反向工程语言模型?
我认为对此词有两个合理的理解。第一个是,你完全理解了模型,你有一个与人类兼容的算法,它的行为与模型基本相同,并且你已经反向工程了参数。但这将是一个非常庞大的程序。
有趣的是,我希望它更宽而不是更深,我希望有很多不同的程序并行运行,然后大多数程序被丢弃,只有少数几个被使用,这样就有一些希望,但是我认为这非常雄心勃勃。我真的不认为这是现实的。除非我们足够自动化,否则我们只需要另一个大型语言模型来做这件事,而我认为更现实的是,给定任何输入,我将能够给你一个模型中完成的计算的故事,以产生输出。
对我来说,这种事情更容易让你查看每个步骤的激活,并进行因果干预以了解事物之间的依赖关系,或者你甚至可以查看权重,这是一个哺乳动物。我们知道哺乳动物是如何工作的,成熟的应用,是的,也许,也许这也可以添加到我之前关于与其他类型的可解释性的区别的回答中。对我来说,神经网络是一种某种基质,它以某种方式在其权重中表示算法,激活是该算法中的每个步骤。
我想用像激活修补这样的工具来理解尽可能原子的步骤,我们稍后会更多地讨论。我不只是想把它当作一个从头到尾的黑盒子来对待。我想尽可能地放大,并理想地将这些步骤组合在一起,从头到尾,是的,你说了一些……
这与我的说法类似,那就是你的网络很宽但很浅,而符号方法非常深,非常窄。总有一种说法,那就是它们是膨胀的电路。然后就是机械解释是否以输入敏感的方式识别算法。因为如果你考虑一下,它一定是一组算法的叠加,因为整个模型是所有这些东西混合在一起的混乱。我认为你的建议是,给定一个输入示例,我们查看模型的行为,并尝试推断发生了什么算法。
是的,所以,也许有三条研究路线值得一提。所以,当你想到交互时,人们可能会想到什么,就像麦金尼一样,就像从它的权重中反向工程一样,就像完全用数学方法理解它一样,而且我知道我为一个做摩托车加法的微型模型做了这个。人们正在为其他微型系统做这个。
我们在语言模型上取得了一些进展,但基本上我认为没有人令人满意地完成了这项工作,语言模型……而且它肯定看起来不会扩展,所以我对此有点悲观。所以我曾抱有一丝希望,我们可以在某个时刻挽救它,有一种海岸线干预的思路,那就是我认为模型是一种计算增长。我们有节点,比如每个注意力头是一个节点,每个MLP层是一个节点,或者也许每个神经元是一个节点。
我做的是因果干预,我将一个节点从一个输入更改为另一个输入。我观察这如何改变下游节点,以及这种变化如何级联到输出。是的,这在根本上非常依赖于输入,通常你会在狭窄的分布上进行这种操作,例如“A人和B人去了某个地方,A人给了B人一个物体,然后是一个关于B人的新问题”这样的句子……你知道,从某种意义上说,这是一个非常狭窄的上下文。
相关的论文是凯文·王(Kevin Wang)的《在野外解释》。所以这非常依赖于输入,部分依赖于输入,因为模型组件做很多事情,而且……它们就像龙,在较窄的分布上具有多义性……只有一个可能会出现,但是……你无法做出一个普遍的……然后第三类是使用稀疏自动编码器的工作。
所以这些基本上是一种技术,用于获取包含各种内容的激活,这意味着很多不同的东西,并将其分解成更大和更稀疏的,更重要的是,单义的表示,例如你有一堆潜在的……一些语义特征,但我真的很喜欢这个词,我们稍后可能会谈到。并且这些潜在变量中的每一个都希望对应于某个概念,就其本身而言,这并没有给你一个算法。它只是在研究激活。
它只是告诉你这一步有哪些变量。但我认为在使用SAE作为你的节点进行电路发现方面还有很多令人兴奋的工作要做。如果它们确实是单义的,那么感觉这可能会给你一些我认为更独立于输入的东西,尽管它有点复杂,并且有一些改进,我们稍后可以讨论。
但是你可以把麦金尼最近的历史想象成人们真的想要独立于输入的算法,这非常困难。我们在依赖于输入的东西上取得了很多成功,但灵魂似乎足够好用了。
很多人都在研究这个问题,我们希望能够越来越少地依赖于输入,以至于它足够有用。所有这些。有很多任务你不需要独立于输入。你可以只研究那个领域。我认为这两种方法都有可能奏效。
是的。所以你提到了多义性和单义性,也许我们应该快速定义一下。
是的。所以这个想法是,你可以把模型中的任何数字都看作是输入的检测器,它在某些输入上很大,在其他输入上很小。这可能是一个神经元,或者只是激活的任何其他元素,甚至是投影到某个方向上。我们称之为单义性,如果所有显著导致它激发的输入都具有共享属性,我们称之为多义性,如果没有共享属性,或者有几个集群,或者它是一个完全的混乱。这总是很棘手,因为这是一个内在的主观定义,比如拥有共享属性是什么意思?我的典型回答就像,“我不知道,伙计,这在实践中相当明显”,并且有一些情况你可能会错误地标记某些东西,因为你错过了模式,但这似乎基本上没问题。但是,现在有些哲学家可能会对我大喊大叫。
是的,不是吗?我认为,神经网络的好处之一是,当你可以称之为亚符号时,知识是纠缠的,并分布在许多共享神经元上。我想为了解释它们,我们需要解开它们。
但也许大脑的工作方式也类似。我的意思是,你在这里描述的是,存在某种类型的电路。它们以某种特定于任务的方式被激活。然后我们可以解开这些表示,使它们具有可理解的单一含义。然后我们可以用它来推断在网络中运行的电路或程序。
我认为这是一个关于神经网络的重要事实,它们可以同时使用相同的组件做很多事情,例如注意力头可以在不同的上下文中做不同的事情,同时在一个输入上。我的意思是,相同的组件在不同的输入上可以做不同但有用的事情,而不仅仅是在一个输入上。
它们可以同时做三件事,这非常棘手……所以这个术语是……叠加。所以也许让我们总结一下,然后讨论一下神经网络的一些经验观察,然后再尝试解释我们认为正在发生的事情。所以,根据经验,许多组件通常是多义的。
它们对许多不同的东西做出反应,根据经验,概念通常是分布式的。它们通常似乎表示为激活空间中的线性方向。例如,如果你在你的激活中取一个线性组合,当概念存在时它会亮起来,当它不存在时它不会亮起来太多。
我们认为正在发生的事情是叠加,即概念多于维度的想法。每一个都用它自己的方向线性表示。我会进一步证明线性假设。它们都在某种程度上加在一起,你可以有损地提取一个,你可以投影到它的方向上。
会有其他具有非零内积的东西会干扰,但干扰是可以容忍的,它会产生一些误差,但不会多到不值得拥有那个特征。它们都在那里。我的猜测是,这实际上是为什么你的网络更高效的一个相当重要的部分。
它们非常有效。有趣的是,在某种意义上,transformer或一般的残差网络更适合叠加,因为有很多加法和从共享残差流中读取,这使得它能够以线性叠加的方式表示大量事物。如果你在上面有非线性,就会丢失更多信息。
这是一个机械论的假设。这个选择将解释多义性和分布式的事物。还有一些不同的叠加概念。
你可以有表示叠加,当你有一些表示事物的激活,并且它只是……它只是塞入了比它必须提到的更多的东西,例如GPT-2的嵌入矩阵。对于最小的一个,它是五万乘七百六十八。这意味着它将五万个标记转换成一个很小的空间,但它仍然清楚地知道标记之间的区别。有计算叠加……这就像当你有一些东西,比如一个MLP,一个主要的MLP和一个普通的,它计算比它拥有的神经元更多的新的特征。
我非常确信正在发生的一个例子是事实,模型知道很多事实,如果它们只知道与它们拥有的神经元一样多的事实,我会感到震惊……这似乎以某种计算叠加的方式表示……实际上我们有一个有趣的调查,叫做“事实发现”,我们试图并且基本上失败了,去推断这里的计算叠加是如何机械地工作的,我们非常有信心它正在发生。最后一种是电路或权重叠加。我们在投影矩阵中有很多不同的算法加在一起。
这对我来说不太明显。这是一件大事,因为这就像在每个线性维激活中都有平方参数,这需要更多的空间。但这似乎有点存在。所以,当我们说使用稀疏自动编码器或所谓的转换器,并将权重矩阵相乘时,我们认为开始是可解释的,结束是可解释的。但是,当你放大时,你经常会在看起来完全不相关的事情之间得到连接,但在实践中,例如,当这个东西也亮起来时,这个东西永远不会亮起来,我们认为这只是表示东西,你得到的干扰真的很烦人。但它确实存在。
你知道,在我们生活的物理世界中,你可以进行多尺度分析,所以你可以观察你身体中的微小结构,或者你可以把自己看作一个代理。我们可以考虑生态系统,我想神经网络分析也是类似的,即使是transformer的归纳先验,你也在谈论残差流和将事物加在一起等等。这是一个分析模式。
我认为这种情况是,你可以取任何transformer,并可以用一个展开的MLP来表示它。所以有一个MLP会做同样的事情。
然后从技术上讲,你用于transformer的抽象分析仍然适用于MLP。但是MLP是一个完全不同的空间。但这回到了我们之前所说的,神经网络非常宽而浅,这导致了这种由许多小的、不可理解的电路组成的组合。并且可能存在某种更抽象的神经网络分解,它会更易于解释,你知道,如果它是一个关于神经网络中正在发生的事情的更好的理论?
所以基本上,可能存在不同的架构?有很多更固有的……
解释性,也许是一种架构,也许只是一种分析类型,可以更好地解释,我想人类需要相当宏观的视角来理解事物。你知道,当我们到达真正的低层次时,它似乎……
越来越难以理解。是的。所以我对试图找到这些更宏观、更高层次事物的研究感到兴奋。虽然有一些关于图像模型的有趣工作。
这是一篇名为“分支专业化”的论文,发现……所以关于原始AlexNet的一个事实是,它有两种不同的分支,因为它们只有两个GPU,连接不好,它们实际上并不经常交叉,这些分支最终专门化于某些部分,例如,我认为一个在做颜色,一个在做形状或其他什么。他们发现另一个没有这样训练的图像模型仍然有神经元聚集成类似的并行分支。如果我们能在语言模型中找到这种微观结构,那就太棒了。
关于这个问题,叠加在不重叠的事物中最有效,因为如果它们同时发生,干扰就会变得非常糟糕……如果一个发生,另一个就不会发生,你只需要说第一件事发生了,第二件事没有发生。这意味着,如果你有两个模块,比如生物学单元和……我不知道……生成关于体育新闻的文章的神经元或其他什么……这些实际上非常适合叠加。所以结构对我们来说将是超级可解释的。希望通过稀疏自动编码器帮助我们解开这些东西,我们可以做更多的事情来找到这种高层次的结构,我认为这个方向对人们来说是一个非常酷的研究方向。我还没有看到太多关于这方面的研究。
我的意思是,这让我大吃一惊。你有没有看到有一种……你可以装饰桌子,你可以在上面放水,当你放两个电极在外面时,你会看到这种……你知道,一种电模式,它会烧出一种树状结构。它看起来像闪电,像一棵树。你知道,我们在这里做的事情是,神经网络大多是生长的,生长过程可以通过归纳先验来影响……当然,但当你真正深入研究它时,你会发现它……我在这里有点夸大了类比,但有点像进化,对吧?只是这些奇怪的专业化和在训练过程中形成的局部动力学。在某种程度上,它有点像一个活生生的过程。
是的。我认为进化实际上是一个非常好的类比。在某种意义上,生物有机体是数十亿年优化过程的产物。
进化优化的是包容性繁殖适应性,你可以在DNA空间中随机移动,最终得到人脑。这是什么?当我们观察生物系统内部时,它们通常是有意义的。
有结构和器官,我们已经了解了这么多关于我们身体的事情,然后还有很多我们非常困惑的事情,以及许多随机的垃圾,比如最长的神经,它从这里向上延伸,然后向下延伸到它结束的地方,这在长颈鹿身上尤其明显。然而,就像一堆东西一样,就像,“哦,天哪,如果我设计这个,我不会那样做。”我敢打赌,你的神经网络内部也有很多这样的东西。
我的意思是,你经常会观察到这样的事情,这很奇怪,令人困惑,我不知道该怎么办。我的意思是,继续下去可能并不重要。或者这种奇怪的现象,我看不出有任何真正的理由拥有它,例如,如果你删除一个层或注意力头,其他层通常会改变它们的行为以进行补偿,以恢复性能。
而且,就像……嗯……这种情况发生在……这说得通。你正在训练模型进行dropout或类似操作。但为什么在没有这种机制的模型中也会发生这种情况呢?
是的,这也很有启发性,因为,我的意思是,大脑也有同样的现象。如果你中风了,大脑的不同部位可以接管该功能。很多自组织和自我修复都是因为你有一些可以重复的小单元,它们被安排去做完全不同的事情。
我经常思考的一件事是,想象一下,如果我们可以对现实世界进行反事实分析,那将是多么棒的一件事。很好。想象一下,如果我们可以再次运行地球上的进化过程。
你知道,我们可能不会进化……或者也许进化中有一些东西……进化适应了拥有具有大型大脑的人类等等。我想你一定在神经网络中看到了这一点,因为你看到的是同样的模式,实际上,在不同类型的数据上,训练时间长短不一。我想你是否看到了同样的模式再次出现?
再说一次,这个关于普遍性假设的微妙想法,即电路是普遍的,我们只是在模型中重复使用同样的东西,而这个假设的强版本是错误的,即模型之间存在所有差异……嗯……但较弱的版本可能是正确的。就像有些东西会重复出现,或者只是一小部分东西,而这些东西的一些样本会重复出现……嗯……我推荐比尔·图克提的一篇很棒的论文,名为《玩具模型的普遍性》,这篇论文中很重要的一部分后来被证明有点错误,并被达肖尔·斯坦达德的后续工作纠正了……但普遍性部分仍然成立,这基本上是我们正在研究图模型,嗯……在这些图模型中……我们有几种不同的算法可以使用,比如五种或类似数量,每次我们训练它时,它都会得到这五种算法中的一种看似随机的样本,没有人对语言模型进行足够的学习来真正了解是否会发生类似的事情……我的猜测是,这很可能确实会发生。并且存在一些重复出现的主题。例如,归纳头是一种非常简单的电路,它基本上可以让你做这样的事情:我知道如果一个模型在一个句子中看到“世界”这个词,下一个词很可能是“时间”,没有冒犯的意思啊……但如果它之前看到“蒂姆·斯卡菲”,而我又看到他了,它就知道“斯卡菲”很可能接下来出现……而归纳头只是一个实现这一点的简单的双头电路……嗯……这似乎在我的所有研究过的模型中都有效……在我们研究这个的论文中,由凯瑟琳·孙领导……我们研究了一堆不同规模的语言模型,规模高达130亿参数……它在所有模型中都存在……我有一篇博客文章,其中研究了大约40个开源模型,它也存在于其中……我认为研究普遍性是一个非常有趣的方向……模型、训练运行和数据集之间的特征如何比较?比如比较代码模型和普通语言模型可能会很有趣。
是的,我的意思是,我经常思考的另一件事是这个概念,你知道,几乎是帕特森承认宇宙可能是由某种计算机程序生成的,而我们以某种方式获得了这种知识,你知道,这确实导致了费米悖论,即如果存在另一个文明,也许……我的意思是,世界以某种方式运作。我对它持实用主义态度。
我认为很多知识是构建的、社会的,并且相对来说是静态的。但感觉上,宇宙运作方式有一些指导原则。关于知识的事情也是如此。
你刚才谈论的是事实。所以现在,神经网络,比如语言模型,它们非常擅长记忆知识。但它们缺乏的是那种确定性。我没有认识论上的确定性。有些人做过检索增强生成等等。但你认为这是一个原则上的问题吗?或者你认为将来它们有可能对模型拥有的知识更加确定?
我会说,我认为我们已经看到了一些有意义的进展。所以,我认为这里有两个需要区分的重要问题。一个是模型知道某些东西,但那是错误的事实;另一个是模型什么都不知道。所以它会回到一般的语言模型先验并胡说八道。我个人认为第一个问题不在我们的讨论范围内,我认为第二个问题才是我们所说的幻觉……从机制上来说。
我不期望这两个之间有任何区别,就像我知道我有很多错误的信念一样……当然……我,你知道……嗯……小型模型会有更少的错误信念,但我认为这不会从根本上消失……我认为,我的意思是,从机制上来说……产生一堆东西……就像……最近有一篇来自苏布·福克斯的关于语义熵的精彩的《自然》论文,这基本上就是你生成一堆东西。你将含义相同的东西组合在一起,然后你取该分布的熵。这结果证明是衡量模型不确定性的一个相当好的指标。还有一篇有趣的后续论文使用它来训练一个探测器,该探测器似乎能够很好地预测模型的幻觉。我目前正在指导一个由海维·弗雷登和奥斯卡·巴塞尔领导的项目,试图更详细地了解幻觉的产生。他们发现了一个非常酷的东西,我们还没有发布,它被称为……就像……一个实体检测插槽……模型有……有一些最终的特征,用于“我认识这个电影名称”和“我不认识这个电影名称”,这些特征与模型是否会说“我不知道”或只是胡说八道……或者说真话或胡说八道有关……模型是否知道这部电影……修改这个特征会让它说“对不起,我帮不了你”……如果它不知道,它通常会说“我可以帮你”,但这可以消除这种情况,它会插入战斗……就像……似乎存在这样的机制……我认为有很多进展可以取得……
这对我来说真的很有趣,你知道,我采访了ACB,是的,他是一个非常酷的人……他是一个非常酷的人……他的辩论论文,一篇在ICML上的论文,它基本上是关于拥有一个代理池,并且几乎就像由几个评论家来判断它们,让它们争论十次迭代以更接近真相,对吧?我们现在在推理中看到了这一点……对我来说,推理是关于弥合知识差距。
所以我不知道某些东西。诀窍在于,告诉模型,我现在需要开始提示自己进行推理,因为我知道自己不知道,这就是问题所在,不是吗?你认为原则上一个模型……
可能知道它不知道吗?我认为,是的。我的意思是,我认为我刚才描述的工作就是一个例子。它区分已知实体和未知实体,至少在某些狭窄的领域(如电影)中,在我提到的效果发现项目中,我们还发现,当你给模型一个虚构的运动员的名字时,它的行为似乎与你给它一个已知的运动员的名字时有所不同……这实际上非常有趣。我们发现,早期的MPs仍然会生成某种体育方向……但那些关注运动员名字的注意力头,也就是那些查找并移动到末尾的因素,不会关注未知的名字,即使MPs仍然在唱歌……就像体育一样……这很酷。我想知道……
推理和大声思考的作用是什么,因为,你知道,我们再次可以争论模型是否在内部这样做,或者这是否是某种交换。所以你的模型,以某种系统二的方式思考,这就是它运作的方式,你知道,它将它内部知道的知识转化为某种我可以进行推理和执行反事实分析的演算,我想从人类的角度来看,这如何影响让模型执行一些推理的过程,然后……
分析……然后你向它询问一个事实,它会给出答案,然后它会进行一些内省……
答案,是的,我的直觉是,也许模型相当无知,如果你让模型暂停并整合并思考它知道什么,你是否能够更好地了解它知道什么和它不知道什么?
推理时间计算是有帮助的,这似乎是一个相当没有争议的陈述。现在,一个问题是,我不知道。我得到了比这更有趣的答案,比如它会有更多机会注意到某些地方出错了。
我认为我真的不知道这个电路是做什么的。这个事实是真的吗?看起来是这样,但我不会感到惊讶,如果它与回忆电路至少有点不同。有些事实,我可以识别出它是错误的,而无需……实际上知道答案或其他什么……就像我只是胡说八道……就像我想说些什么,但后来它回头一看,就像“那可能不对”……就像“我不太确定”……我不知道是否有人真正研究过这个问题,所以我现在纯粹是在推测。
但是是的,我的意思是,我的直觉是,感觉我们做的很多推理实际上是一种工具使用形式。我的意思是,语言是一种工具,就像我们之前说的,煎蛋卷的物理工具的等价物,你知道,就像……我们学习如何推理,你知道,我们在学校学习。我们学习应用所有这些不同的推理方法。
并且。在标记空间中应用这些理由有助于我们理解我们内心深处所知道的东西。也许语言模型存在某种类比。我知道……
可能……我的意思是,我认为你可以对某些事实进行非常明确的演绎……就像AI声称这一点,但也许我会回忆起一些关于我刚才提出的主张的事实,看看它们是否对它有任何影响。关于语言模型的一个普遍事实是,除非你正在进行某种链式思维或类似操作,否则你只能进行一次传递。
所以……这意味着你不能在一个单一的正向传递中进行太多计算,如果你只是将你在第一次处理中获得的信息传递给第二次处理、第三次处理或类似操作,你可以进行更多计算,或者可能它们甚至不需要在不同的处理部分之间进行通信。它们更容易在单独的标记上发生。所以它不会干扰同一位置的一堆东西的健康。
所以对于在家的人来说,我们想深入了解机制可解释性……我的意思是,这仍然是一个相当新的领域,但它变得越来越成熟了。现在,在家的人们可以做些什么来入门呢?
是的。我认为这个领域是绿色的,但他们看到了很多很酷的问题,你可以自己去解决。是的,所以,我认为在阅读论文方面,我有一个阅读清单,我们可以把它放在描述中,你也可以谷歌“尼尔·南达的MCS可解释性阅读清单”,你就会找到……我还有一份指南,可以让你对这个领域感到兴奋,不幸的是……而Arena有一个很棒的编码教程集……我们也应该链接到那里。我基本上建议你浏览……也许略读一两篇论文,看看你对它有多感兴趣,然后进行Arena教程,动手实践,理解工具,然后混合阅读论文和进行实验,从这些论文中获得启发。嗯……我还认为,如果你有合作者……或者有人可以和你聊天……EUA Discord、机制可解释性Discord和开源机制可解释性Slack都是很棒的地方……嗯……是的,我鼓励人们……我不知道……做一个小的项目,写一篇博客文章,把它放在你的网站上或类似于LessWrong或其他地方……让自己稍微露面一点,尝试从人们那里获得反馈,但更重要的是,动手实践,尝试一些事情,跟随你的好奇心,而不是……
阅读50篇论文,那么什么是激活……
与对比度相比的修补?所以,激活修补技术试图解决的目标是将某些模型行为……特别是某种数值输出……例如正确答案的对数概率……归因于某些模型组件在某些数据分布上的作用……例如,这个注意力头或这个SAE层对这个神经元来说,对于模型回答某些问题有多重要……所以有很多方法可以做到这一点……通常情况下,你想通过干预这个组件来改变它的值。
但是,如果你有一个块状组件,比如一个头或一个层,它的输出是一个高维空间上的向量,那么如果不清楚你应该用什么来代替它。所以,默认的做法就是用零来代替它,就像dropout所做的那样,这相当于敲除或类似的东西……问题是,这有时会破坏模型,因为它是一个非常偏离分布的事件。所以会有一些与任务无关的组件。
A 更好,就像那里有一个偏差项或类似的东西。呃,例如,在较小的 GPT-2 中,零基本上总是用于像萦绕标记一样的东西,它似乎并没有做太多事情。但是,如果你删除它,一切都会崩溃,因为它就像输出被添加到嵌入中,以成为其他所有内容看到的有效嵌入一样。
所以下一层将是中介。嗯,你只需用一些层的平均值替换它。我认为这更合理,但更有趣的事情是,你可以进行激活修补,其中你有两个输入,它们在关键细节上有所不同,例如,巴黎的 iPhone 塔和罗马的 iPhone 塔,它们将给出不同的答案。你有一些度量,比如巴黎和罗马的 logit 差,这很好,因为这等于巴黎和罗马的 logit 差,因为数学。然后你交换一些激活值,从巴黎提示到罗马提示,看看它是否会使其他东西,比如巴黎,变少。
第一个被称为去噪,因为你可以认为罗马输入就像一个坏的噪声输入,你正在去噪一个组件,你正在用真实的东西替换它,从罗马到巴黎,看看它是否损害了巴黎。它被称为噪声,因为你正在搞砸一个组件,并且你正在查看它是否重要。好的一点是,你可以选择基线。因此,像这样的提示对具有对比对,你希望它们尽可能接近,除了某些关键细节之外,因为这意味着诸如我现在正在进行事实回忆之类的特征仍然存在,我想要一个城市特征仍然存在,但是像哪个城市这样的位就不存在了。你也可以,但你可以有不同的提示,它们有不同的变化。
例如,iPhone 在哪个国家/地区的塔,你现在正在分析有效回忆的关系部分,并且偏差修补使你拥有这个非常好的工具来分析不同类型的信息。去噪与偏差修补实际上是相当重要的,所以你可以将去噪视为这个位对于计算是否必要,或者如果我摆脱它,是否会损坏任何东西?你可以将偏差修补视为这些东西是否足够?这个节点的输出是否会导致我们想要的输出?
这并不意味着这是唯一相关的节点,但这意味着它包含关键信息的瓶颈足够大。如果你在这个过程中有三个步骤,那么去噪这三个步骤中的任何一个都应该足够?你希望在不同的情况下使用这些方法。例如,如果你认为你已经找到一个电路,这个三阶段的东西将像几个节点相互连接一样。
你可以通过以下方式测试这一点:去噪电路中所有不在电路中的东西,看看它会坏到什么程度,这是同时测试整个电路的方法;或者你可以一次去噪电路的每个切片,看看它是否足够。去噪两个切片没有意义,因为第二个切片并不关心第一个切片在做什么,因为你正在修补这些值。我认为激活修补是一个非常强大的技术,它有很多名字,比如协同中介分析(在 Jesse Vig 2020 年的论文中首次提出),干预和介入(在 Daga 的论文中),重新稳定(主要用于去噪部分),或协同追踪(在 Rome 的论文中)。有很多名字,这真的很烦人。我个人喜欢激活修补,并试图坚持这个名字。对于那些想了解更多信息的人,我写了一个带有七个小节的教程,关于如何使用内插激活修补,不仅仅是一篇研究论文,而是一个关于如何思考这项技术的直觉倾泻。我认为这是一个非常强大的工具,在许多情况下都有用,但试图理解模型组件。
关于这一点的最后一点是,如果你在一个更大的模型上使用这种技术,那么对所有内容进行激活修补通常非常昂贵。所以我推荐的技术是归因修补,它基本上近似于这些梯度,我的团队发表了一篇名为 ATP* 的论文,详细测量了这是一种有效的技术,并提供了一些改进,尤其是在处理注意力层方面。由于这使用了梯度,你可以通过一次反向传播来修补所有内容,而不需要对每个补丁进行单独的前向传播。
因此,这可以带来相当大的加速,但确实存在准确性问题,尤其是在欧几里得空间中。我的直觉是,模型的嵌入空间并不像其内部那样是欧几里得空间。因此,梯度往往效果不佳,因为它就像空间中的五万个离散点,它肯定不是局部线性,所以为什么它会是呢?
关于我们朋友 Grant Sanderson 的快速题外话,他是我最大的粉丝之一,他太棒了。
你认识的人?Grant 运营着 YouTube 频道 3Blue1Brown。他们制作很棒的视频,很有趣,而且 Grant 制作了数十个数学视频,但也制作了 AI 视频。
有一天,我想,他制作了非常棒的想法和视觉效果的顶级谜题,这对于一个 AI 主题来说是不寻常的匹配。为什么我不给他发邮件,看看他是否有兴趣呢?我们进行了一次愉快的聊天。
他当时正在考虑如何制作一个关于 Transformer MLP 的视频。他正在寻找一个好的激励示例。我认为我的事实发现工作实际上是一个很好的例子,而且他对此很感兴趣。
因此,他讨论了其中一些内容,这是一个非常棒的视频和频道。老实说,你应该观看他的所有视频。你尤其应该观看那个,因为它还包含关于叠加以及如何思考叠加的大量内容。它动画做得更好,比我在这里的谈话要好得多。
不,不要暂停它。等到视频结束,然后再去那里。关于 Microscope 的快速暂停。是的。据我了解,我认为这受到了最初的 Microscope 项目的启发,它很棒。
参与其中,是的,我认为是的,是的。
你是否为检查 JAX 做过类似的事情?它是如何工作的?
我们做了一个名为 DemonCope 的项目,它基本上是一个包含数百个开放权重的稀疏自动编码器的集合,因为稀疏自动编码器很难训练到合理的规模,我们认为这将使学术界更容易进行研究。有一个名为 NeuronPedia 的网站,我们与之没有关联,但我非常喜欢他们,他们会做一些事情,比如为稀疏自动编码器中的每个潜在方向创建一个页面,其中包含激活文本以及它所做事情的巨大表格等等,他们为我们制作了一个华丽的交互式演示,这可能是你想到的类似于 Microscope 的东西。是的,DemonCope 与 Microscope 完全不同,我们只是找不到更好的名字,但我喜欢这个名字。
所以,嗯,点。
这种想法基本上是,我认为稀疏自动编码器是理解语言模型的显微镜。你选择一个激活,你查看它,你将其扩展到更具解释性的形式,然后你分析它。这个比喻并没有完全解释你随后使用它来重建输入的事实,但我认为它传达了直觉。这就像一个用于 JAX 的稀疏自动编码器组。很好。
告诉我更多关于稀疏自动编码器的信息。
好的。我认为要理解稀疏自动编码器,我们首先需要了解它们试图解决的问题。你可以将神经网络想象成一群玩家,给定一些输入。
它被转换为向量或一系列向量(在 Transformer 的情况下),然后每一层将其转换为新的向量或一系列向量。这些是中间的激活。通常,层中间的层将具有中间激活。
所以你可以争辩说,这实际上并不是一层,而是几层较小的层,但无论如何,我们称这些中间变量为激活,它就像一个向量。我们相信这些激活向量通常代表输入的概念、特征、属性、某种解释或模型算法中的中间状态。但它的效果是。
我们需要某种方法来将其转换为有意义的东西,而稀疏自动编码器是一种尝试这样做的方法。它们基本上将向量分解成一些大型列表(称为有意义特征因子的字典)的小线性组合。我们希望这些特征向量对应于可解释的概念,并且它是稀疏的,因为在任何给定的输入中,大多数向量都不是这个组合的一部分。
现在很多人可能已经看到了金门大桥的例子,也许这就是。
我非常喜欢他。
他是个好人,很古怪。也许只是为了那些没有听说过他的人。但这确实让稀疏自动编码器广为人知。每个人都听说过它。
好的,所以金门大桥。它在某种意义上很简单,但我认为有趣的技术细节实际上更复杂。所以,Anthropic 的一些人拿走了 Claude 3 的歌曲。
当时它们是中等规模的语言模型,它们找到了金门大桥的稀疏自动编码器特征,就像这些向量之一。然后他们将其钳位到一个高值,这意味着他们知道它通常在 0 到 3 之间。他们将其设置为 30。
这使得模型痴迷于金门大桥。他们会做一些事情,比如写涉及沿着海滩步行一英里的食谱等等。这真的很有趣。
他们有一个持续 24 小时的研究演示。我认为关于金门大桥的一个常见误解是,稀疏自动编码器是创建它的必要条件。还有一种类似的技术称为转向向量,你做的事情类似于,给模型一堆关于金门大桥的问题,给模型一堆关于伦敦桥或其他东西的问题。
取激活的差值并取平均值。你得到一个向量,将其添加进去,我不确定这是否会比金门大桥更好或更糟。没有人让我满意地研究过这个问题,但对我来说,金门大桥令人兴奋的部分不是你能实现这个技术壮举,因为我相信更简单的技术,甚至系统提示也可能实现它。
令人兴奋的是,它表明稀疏自动编码器确实做了一些实际的事情。他们在模型中找到了一个概念。令人兴奋的是,它对应于金门大桥,因为那个潜在变量亮起得更多,或者系统地亮起与金门大桥有关的东西,甚至是金门大桥的图片,以及不同语言中的描述。
这非常有意义。很容易欺骗自己,找到与你关心的事情相关的东西,但这实际上并不是模型正在使用的东西。这会导致你对模型内部的错误看法。
但是通过将其设置为高值,他们显然以一种非常有趣的方式改变了模型的行为。这种行为似乎在质量上与你从系统提示中获得的行为有所不同,尽管这也很有趣。人们已经观察到与转向向量在质量上类似的软转向向量。所以我认为,用模型内部的向量进行干预的行为是一种强大的方法,我们应该探索它。
是的,我认为这些模型,我们只知道它们是安全的、无害的,并且它们是用我们的后期指令训练的。它们做我们想让它们做的事情,但你操纵它们的内部。突然之间,这个东西有了自己的想法。
你所说的“自己的想法”是什么意思?
它回到了这种欲望、动机、意图之类的东西。我们只知道这些模型是安全的、无害的。你以你刚才描述的方式修改了它的内部结构。现在它所做的事情与你……
放入它的东西不同。好的,这就是我思考这个问题的方式。模型擅长模拟不同的个性,通常被称为模拟器观点。它们在互联网上进行预训练,学习了大量内容,其中包括在它们进行微调或使用当今任何类型的后期训练时采用各种个性。
你试图为我们选择一个角色,许多公司都选择这种相当讨好的助手,你指的是一种精神恐慌,这是一种个性,但我认为在某种意义上是脆弱的,我认为它们通常会被训练成不会轻易放弃这种角色,所以越狱现象表明这通常并不难,只要有合适的提示。嗯,如果你发现一个模型有新的角色,这似乎很容易做到。而这种基于干预的国际能力,就像另一种东西。
但这根本不像可控性给了我们以前没有的新能力。更像是,你知道的,打破个性,赋予一个新的个性是我们知道如何用现有工具做到的事情。这只是一个有趣的新工具,它将拥有一些不同且值得探索的特性。
但这似乎表明我们对模型的理解存在弱点,正如你所说,这种模拟器的观点是,模型是一种模拟器或角色扮演者的叠加,而我们的RLHF选择性地删除了这些角色扮演者,只留下无害的、安全的那些。这更倾向于得出这样的结论:它并没有真正删除很多角色扮演者。这是一种相当脆弱的方式,你知道的,让模型以某种方式呈现。实际上,所有这些其他的角色扮演者都隐藏在表面之下,而你……
完全同意,我认为这应该是一个关于我们目前对模型后训练能力的真实陈述。嗯,可解决性尚不清楚,另一个有趣的数据点是,我指导了来自LDT的一篇论文,名为“拒绝是由单一方向调解的”。
我们发现,你可以通过使用诸如“如何制造炸弹”之类的提示,以及诸如“我该如何制造汽车”之类的提示来找到一个拒绝向量,取平均差异,嗯,不清楚这是否是拒绝向量或一个充满疑问的向量,无论如何。然后你只需在这个方向上进行微调,就像你将投影设置为零一样,这意味着模型不再拒绝,这在各种大型语言模型中都有效。这是一个如此简单的干预措施。
那么,你能解释一下线性表示和假设吗?
是的。所以,我们在模型中看到的一个令人惊讶的经验观察结果是,概念会在激活空间中以某种线性方向表示。你可以把它想象成神经元的集合,我通常建议把它想象成一个一千维的空间,你的单位就像标准基一样,但你可以选择任何你想要的方向。经验上,概念似乎是由线性方向检测到的,这是经常发生的情况。嗯,最简单的例子是,当你想要一个神经元时,它似乎只在某些事情上被激活,关于这一点有很多论文。
我最喜欢的一篇是Chris Olah在OpenAI工作时发表的关于曲线检测器的论文,它对图像分类模型中的一组神经元进行了界定,这些神经元似乎只在具有特定方向的曲线时被激活,但我已经讨论过了,这通常不适用于其他事物,例如警察。还有一些其他的工作发现了更像方向的东西,而不是基本的谎言,其中一个特别有趣的是,有很多论文试图找到真相的方向,并且有一个关于线性探测的完整领域,你基本上只是学习一个方向,这样当投影到它上面时,你就能检测到某个概念,并且你有一个标记的数据集,我最喜欢的例子之一是Kenneth Lee关于名为“涌现的世界表示”的论文,这是一个类似于围棋或国际象棋的棋盘游戏,他在随机选择的合法移动的游戏中训练了一个模型,所以就像一个国际象棋引擎,你看到的是你玩了63步,然后玩1步,然后玩17步等等,模型变得擅长玩这些合法移动,嗯,他发现你实际上可以预测棋盘的状态,但他发现的是线性探测不起作用,但非线性探测,比如一个单隐藏层MLP,嗯,在某些工作中。我发现的是,你可以用是否这个格子是当前玩家的颜色还是当前对手的颜色来表示它,因为这实际上是一个在每一步都有用的算法,而不是需要对黑色和白色采取不同的行动,当你对它进行线性探测时,嗯,你发现它有效,你甚至可以很好地逼近这些问题。我之所以举这个例子,不是因为我想吹嘘我的论文,而是因为我认为这是一个非常有趣的自然实验,其中一篇最初的论文似乎为非线性早期表示提供了一些真正有力的证据。
然后在后续工作中,我发现实际上这是一个隐藏在表面之下的线性表示。显然,这都是轶事,我们没有对模型进行完全原理性的研究,即每个概念都是线性的。
嗯,我认为有一篇来自Rob Fergus的有趣的论文,它展示了在RNN中一个非线性特征的例子,它可以被表示为,所以理论上这绝对可能发生。我目前的猜测是,大多数语言模型的计算都是线性表示的,很可能全部都是。但我不会惊讶,如果有一些奇怪的东西隐藏在表面之下,作为一个小的离题。但关键的要点是,语言模型中的许多概念似乎都以激活空间中的线性方向表示。但我们并不一定知道这些方向是什么。
我们也应该谈谈转向向量。你刚才提到了它。
给我举个例子。是的,所以,这个想法本质上是,你取一些具有该属性的提示,一些具有相反属性或不具有该属性的提示,然后取它们的差值,例如,你可以取“我爱你”减去“我恨你”,这就会产生一种模糊的、充满爱的向量,你可以添加进去,嗯,我们会取一个中性的提示,比如“我和我的朋友去了”,然后它会说一些非常快乐、兴奋的事情,或者如果你反转它,它会说一些非常生气、充满仇恨的事情,这在很多模型中都有效,所以,我第一次在Alex Honchar的激活添加论文和Kenneth Lee的前向时间干预论文中看到语言模型中的这种现象,Alex做了很多关于情感和婚礼的事情,不能专注于真相。
嗯,还有一篇表示工程论文,它在更多设置中做了很多事情,并且似乎非常广泛地有效。所以,回到线性表示假设,在我看来,关键的结论是,如果线性表示假设成立,那么这种提取两种相关事物的方法应该隔离你关心的特征。它也可能包含其他一些东西,但如果你取平均值,你可能会消除这些东西,同时保留你关心的东西。
然后你可以添加它和其他结果。另一个结果是,你可以添加更多特征。它会处理它意味着什么。模型可以组合在训练过程中可能没有出现过的概念,但存在一种电路结构可以合理地处理这种情况。转向向量的警告是,一个关键的超参数是向量的系数。
通常情况下,你想让它更大,但如果它太小,它什么也不做,如果它太大,模型就会发疯,并吐出垃圾。没有人真正研究过为什么。但我认为它太大了。当它太大时,它会降低残差流,使其成为某种单位理性,因为你现在得到了转向向量的一个很大的分数,其他所有东西都变小了,这会冲淡其他所有东西,当你乘以单位时。
即使转向向量方向本身不会干扰太多,当它有如此大的置信度时,这种差异实际上非常糟糕?但是是的,你可以让模型发疯。你必须得到正确的……
是的,你的意思是,你指的是,稳定性分析是一种临界点。除此之外,模型的动力学在这里被解码,这听起来像是一个引人入胜的研究问题。
是的,我认为一个非常酷的项目是,一个与许多转向向量交互的聊天语言模型界面,无论是像我刚才描述的那样从提示中获得的,还是SAE特征向量方向,甚至是为这个目的而优化的东西。
这可能是创造力、事实性、冗长性之类的东西,人们在他们的助手身上关心的事情。正式与非正式,诸如此类的事情?你可以让用户移动这些滑块。
这只会改变助手的工作方式,Neuronpedia有一个这种方法的MVP版本。这是我见过的最好的。但我感觉有人可以真正做一个非常酷、完善的版本。我还没有见过。
这些方向如何相互干扰?你知道,你可能有忠诚度和道德,不要做坏事。你认为它们之间会有一些奇怪的相互作用吗?
嗯,据我所知,通常情况下,如果你试图同时添加多个转向向量,那么破坏模型所需的效率要低得多。我认为这将是让它发挥作用的一个真正的挑战。也许你应该微调这些方向,使它们不会相互冲突,或者类似的东西。
特别是如果你使用的是那种优化的方向方法。有一篇很酷的论文,由DP-O撰写,它似乎通过这样做创造了更有效的向量。是的,就语义组合而言,我有点预期它会很复杂,因为这些东西会相互影响,或者也许是一些电路结构会感到困惑,或者你将模型推向不同的方向。
我的意思是,在某些方面,你已经在Golden Gate Claude中看到了这一点。好吧,就像你说的,让我们谈谈Golden Gate。所以,他不愿意,你让他谈论Golden Gate,用Golden Gate向量,它会非常困惑和不稳定。是的,我的意思是。
我的直觉是,当你以这种方式修改模型的行为时,你是在将其推离分布,这意味着你可能会看到能力的相应下降。我的意思是。
你见过类似的情况吗?我的意思是,是的,转向模型,就像,转向模型有点垃圾,语法有时会更糟,或者它会吐出奇怪的东西,或者拼写随机的标记。通常情况下,你可以得到一个合适的系数,它可以做你想做的事情,而不会发疯。
但即使那样,我仍然期望会有一些退化。我不知道是否有人真正研究过这个问题。我们得到了Golden Gate Claude,从某种意义上说,它很难研究,因为它不是正常的模型,它不应该不断地谈论金门大桥,但Golden Gate Claude会,你需要测试它是否因为这个而被不公平地惩罚。我认为你可以看看像它的IMO U性能这样的东西。这是一个人们应该做的事情。
那么,从数学上讲,稀疏自动编码器在做什么?
是的,所以稀疏自动编码器是,它试图解决两个类似的问题,激活空间编码问题,即找到我们认为对应于激活空间中概念的有意义的向量列表。这只是一个固定的列表,它不依赖于输入,以及稀疏逼近问题,即找到这个向量列表的系数的稀疏向量,以便重建输入。
并且有一个关于如何正确地做到这一点的完整研究领域。两者都包括一个解码器。这个想法是,它基本上是一个中间状态比输入宽得多的多层神经网络。通常情况下,它具有某种激活函数。
最简单的例子是ReLU,但稍后我们也会讨论其他的,你输入激活,然后一些隐藏单元被激活,嗯,那些被激活的单元,因为它基本上是大部分为零的,那些被激活的单元,你将解码向量,即输出权重中的向量,嗯,我们希望它是那些有意义的特征向量,这会产生输出。我们训练它来重建一堆真实模型激活的输入,通常是数亿到数十亿个标记。我们有一些正则化惩罚,例如隐藏激活上的L1惩罚。
嗯,关于两层映射的一个有趣的事实,即变换层和代码,你可以把每个神经元想象成一个独立的单元,每个单元都有一个编码向量和一个解码向量。你将输入投影到编码器上,应用激活函数,然后通过解码器,然后将它们加起来,嗯,我将这些单元称为“透镜”。嗯,有时它们被称为特征,但我个人觉得这有点令人困惑,因为“特征”这个词意味着解释性事物,而透镜有时是解释性的,但并非总是如此,我认为假设它们是解释性的会令人困惑。是的,所以我们使用这些透镜,希望潜在变量对应于可解释的概念。原因是,嗯,听到这个的人可能会觉得有点奇怪,你只是纯粹地优化了重建和保真度。你从未在损失函数中加入解释性,这是什么原因呢?嗯,潜在编码器背后的希望是存在一个真正的空间分解,即存在真正的特征向量,而透镜是对这些特征的稀疏近似,这样,如果我们只优化寻找一个好的近似,那么这个分解至少会非常接近真实的分解,而这些就是解释。根据经验,这似乎经常有效。
许多观众都了解自动编码器,因为它可以追溯到MNIST的时代,通常情况下,自动编码器的中间层比输入层和输出层都要窄,因为你要求编码器对信息进行压缩和瓶颈处理。而这里的情况似乎正好相反,你要求它进行解缠绕,并将中间层“膨胀”,但这似乎表明模型知道它将特征纠缠在一起,并且在这种情况下,它希望进行解缠绕。
关于第一部分,你的观点完全正确。通常情况下,其他编码器是这样的:你有一个输入,你想通过某种受限的瓶颈来传递它,瓶颈对你有用,例如更小,或者可能是解缠绕的,或者其他什么,然后重建输入。通常情况下,重建只是一个辅助函数,用于使瓶颈变得有趣。但我认为,你应该把这看作是一个带有约束的比特。
移除稀疏性惩罚并训练一个更宽的模型是很愚蠢的,因为这很容易,你可以为标准基中的每个方向都设置一个潜在变量,例如正数和负数,然后完美地重建事物,我会说,是的,这很无聊。但稀疏性实际上是一个很大的约束。让我们这样想,假设我给你一个包含一千个向量的列表,如果我只允许你使用一个稀疏项,那就只有一千条穿过空间的线,这只是在比如说二维空间中维度的一小部分。如果我允许你使用五个稀疏项,你将有一堆五维子空间的并集,而一百个稀疏项仍然是,从数学上讲,这是零测度,即使它在某种程度上接近空间中的许多点,并且并非完全稀疏,它仍然是空间的一小部分。但稀疏性就是一个相当大的约束。
事实上,强迫模型这样做意味着解码器实际上会受到一些关于模型“知道”什么的压力。模型知道什么?例如,如果我尝试训练一个线性探测器来检测情感,这可能会奏效。嗯,根据经验,它确实有效,这可能是与其他事物的叠加。那么,模型知道它将特征纠缠在一起吗?
我认为你的想法是,正如我们之前讨论过的,模型是不可逆的。随着这些事物变得纠缠在一起,原则上模型不应该知道如何将它们解开。
啊,所以这是一个更偏向数学的问题。这怎么可能呢?
是的,这几乎就像它们不应该可逆一样。这些操作表明,不应该能够撤销它们。你从,你知道,从右到左,如果那样……
有道理。对不起,我……是的,这是一个好问题。所以,方法是这样的,这是一种约束。例如,如果我给你一个在二维空间中包含一千个向量的列表,然后告诉你,这里有一个在二维空间中的向量,它是这些一千个向量中的一些向量的线性组合,那么哪些向量是?这在数值线性代数中是不可能回答的。
这是一个不可逆函数,因为有很多线性组合为零,你可以随意添加,但可能只有一个稀疏组合为零。这意味着它对向量的位置有限制。这意味着,如果你有稀疏性,那么通常情况下,例如,如果你投影到集合中的每个向量上,你将在属于你的稀疏项的向量上获得更高的投影。
事实上,你可以训练具有紧密耦合编码器和解码器的自动编码器。因此,每个潜在变量都是你与一个向量的点积,应用一个ReLU,然后通过相同的向量,并尝试重建输入。根据经验,如果你不将它们绑定在一起,它们的表现会更好。这里的直觉是,如果你有一些不相交但高度相关的特征,那么你希望编码器比通过完全连接的层更进一步地将它们分开。Anthropic的《Towards Mechanistic Interpretability》论文中有一个非常有趣的例子,他们研究了64维潜在空间中的潜在变量检测,我认为他们发现了一个用于64进制数字的潜在变量,一个用于字母的潜在变量,以及一个用于ASCII文本(转换为64进制)的潜在变量。你知道,你不想让它们同时激活,所以你想要一个稀疏效应,并且它就像一个有趣的经验观察,你可以做到这一点,即使存在纠缠,但稀疏性实际上是一个非常有用的约束。这也是语言的一个有趣的特性,现实世界在某种程度上是稀疏的,因为它充满了概念,例如,如果你问我某个乐队的最新专辑名称,你不需要考虑相对论。这意味着有很多概念对大多数其他事物都没有用。如果你在一个非常具体的任务上训练一个模型,我不确定这是否会有用。例如,我尝试在一个模块化加法网络上训练它们,该网络只针对该任务进行训练,但结果却相反。
它们表现得并不好。你怎么知道这些潜在变量是可解释的呢?
是的,这是一个很好的问题。首先要强调的是,为什么这甚至是一个问题?空间自动编码器是一种无监督技术,这意味着你不会告诉它们要学习什么。你只是告诉它们请保持稀疏,然后祈祷会发生一些好事。这与探测器形成对比。
你会给它标签,例如这是正式文本,这是非正式文本,这意味着最终你会得到成千上万个潜在变量,我不知道这意味着什么。根据经验,其中一些潜在变量似乎甚至没有意义,就像标准的。你可以做的一种方法是查看最激活该潜在变量的文本。
你寻找模式。通常会存在模式。有时不会,这是一种粗略的技术。众所周知,这有时会产生误导。有一篇来自Togo Bolic的关于“解释性幻觉”的好论文,虽然我实际上不知道我是否见过这种关于SCE特征的幻觉,我认为他们在该论文中只使用了残差流中的基本激活,你更有理由相信它们可能没有意义。嗯,可能只有大约20%到30%的潜在变量。
可能会有变化,只是像早期一样,找到一个模式。通常的做法是让人类或大型语言模型查看这些潜在变量并尝试给出解释。你可以对这些解释进行评分,例如。让大型语言模型做到这一点的想法来自Stephen Roller的一篇很棒的OpenAI论文,名为《Language Models Explain Language Models in Their Own Words》。他们的想法是,你给我一个数据示例列表,一些来自范围的最高点,一些来自中间。它会产生解释,但即使没有模式,它也会始终产生解释。
因为语言模型就是这样,你……然后发生的事情是,他们会给出更多解释,给它更多文本,并说请预测这个神经元或潜在变量的激活。它们不是神经元,但在潜在变量上更有趣,你会看到它做得有多好。你也可以做一些更便宜的事情。
这实际上相当容易知道,例如,你给它一些文本,然后说这些文本中哪个会更多地激活该潜在变量。是的,你可以用它做各种各样的难度等级。嗯,有一篇关于这个主题的很好的Eusden的帖子,来自,我认为是Kidon Un。我可能拼错了他的姓氏,是的,它提出了各种各样的创新。
所以这就是查看数据和示例的方法。另一种方法是进行干预,例如在Golden Gate代码中,你进行一个大的更改,看看会发生什么。也许你将一个潜在变量设置为零或负数,看看会发生什么。
例如,如果你将一个哈利波特潜在变量设置为零或负数,它通常会失去回答关于哈利波特的客观问题的能力,这是一个非常有趣的方法来“遗忘”。它突然似乎比实际的遗忘基线表现更差。你也可以……在我看来,黄金标准是你给模型大量的文本,你查看该事物激活的所有时间,然后根据是否满足某个属性对所有这些进行分类。你可以用这种方法来做一些事情,例如,这是阿拉伯语吗?这是基本文本吗?像这样的细微差别。
所以很多你认为会可靠地工作的事情,比如正则表达式,完全失败了。你也可以要求语言模型拟合解释。Anthropic在他们的《Skills》论文中做到了这一点。
Mona Fantis论文,我很喜欢。所以他们对他们的Golden Gate特征做了这件事。你也可以手工制作示例,看看是否会激活它。通常情况下,这些分析中缺少的一点是,所有这些解释相关的时刻,潜在变量都没有被激活。我认为,是的,我认为……这需要更多研究,Topic在他们最近的Lacets月度更新中进行了一项调查,我认为他们发现,通常情况下,这些事情大约有三分之一的时间是关于这个被遗忘的事物。
我们对这方面了解不多,但总而言之,这是一个冗长的回答,你可以做各种事情。查看数据和示例是一种自然的方法。我强烈建议大家在他们的网站上查看他们的媒体,以及网站上的JavaScript演示,因为他们有页面包含GPT-4生成的解释。所以它不如你从最好的模型中得到的结果好,有时数据集示例是错误的,你甚至可以输入你自己的文本,看看什么会激活它,并体验一下它的可靠性。
是的,我的意思是,我们应该再次强调,这是一种无监督方法。但你想要表达的是,有可能自动化这个过程,但在教育方面会有一些脆弱性。
例如,Neuropedia正在获取JAXcope中大约3000万个潜在变量,并使用GPT-4为其中许多潜在变量生成标签,这很棒。我认为这将非常有用,即使有时是错误的。
嗯,另一个问题是,你愿意容忍多少错误?我的答案通常是,如果它是一个有用的研究工具,那么容忍度相当高,但如果它成为我结果的重要组成部分,我会进行仔细检查。也许我还应该解释一下为什么无监督在这里很重要。
在可解释性研究中,一个常见的错误是将你的先有观念强加到模型上,例如你认为它以某种方式工作。我们之前讨论过的一篇论文就是一个例子,它假设特征是黑白的。我的模块化加法工作就是一个例子。我最初认为会存在一个很好的离散算法,然后事实证明它实际上使用了离散傅里叶变换,而不是……并且触发激活。嗯,这很容易被误导。
你拥有的技术越多,能够告诉你你错了,就越好。你的技术越多,只能让你证实你已经拥有的假设,它们就越像是什么。我认为,让它走出来是很棒的,因为可能会出现我们没有预料到的模型中出现的特征。事实上,我可以让你进行这种无指导的发现,这很棒。
嗯,例如,最近有一篇博文来自我的许多培训学者,他们基于之前的研究成果,分析了稀疏自动编码器,之前有一些说法认为稀疏自动编码器没有恢复棋盘状态表示,所以它们不起作用,但这项工作发现,实际上稀疏编码器找到了更细粒度的特征,例如,基本上,棋盘的这一列是否是我们正在单元格中玩的东西?D6 会起作用,因为它获取该列中的内容,你可以将这些组合起来以获得球的状态。但这更细致,模型学到了这一点。我没想到这一点,这很酷。
是的,就像我们之前谈到的这些有用特征的演变一样,你大概可以从它们的存在推断出它们一定是有用的,否则为什么它们会存在?但当我阅读他们发布的 Golden Gate Claude 的文章时,他们谈到了一些相当抽象的特征,例如权力寻求和欺骗等等。然后你可以点击,你可以看到哪些数据部分激活了这些特征,以及你认为这些模型能在多大程度上学习非常抽象的……
像这样的特征?显然是的,对模型来说显然有障碍,所以目前它有这种能力,我的意思是,具体来说,就实际证据而不是感觉而言,我认为是的,所以在 Anthropic 的《Skeleton Mona Fantasy》论文中,他们真正喜欢的一件事是它拥有所有这些丰富的不同特征的分析,深入研究它们的含义、它们产生的影响,以及它们拥有的东西,例如这个函数表示加法,如果你在一个变量 f 上改变它,它就会从乘法变为加法,就像完成 Python 代码一样。
我当时想,或者他们在一个列表中列出了四个项目,他们还有一个关于安全产品特征的部分,我认为这非常有趣,接近尾声。所以,我认为他们观察到的事情似乎与我们在未来可能非常担心的未来更强大的 AI 系统有关,例如对运营商保密、试图寻求权力等等。
我认为这实际上并不那么可怕。我认为 Anthropic 做得好,没有夸大其词。我不认为这目前特别令人担忧的原因是,你知道,这些模型是在字符和书籍上训练的。
这些角色会做一些权力寻求和欺骗的事情。能够对这些人进行建模只是很有用。但我也认为,我们能够利用可解释性来研究这些事情这一事实非常令人兴奋,因为我认为这非常重要,例如……AGI 风险是一个相当两极分化的议题,许多人对双方都有强烈的意见,但令人沮丧的是,几乎没有经验证据。我认为可解释性可能为我们提供的一件事是,对这些系统内部发生的事情有一个清晰的认识。
例如,它们是否会做我们称之为规划的事情?它们是否有任何有意义的目标概念?它们会欺骗我们吗?我们越能理解这些事情是如何表现出来的,例如,它们是否发生在不应该发生的情况下,我认为我们就能学到更多,这对我来说似乎是一个非常重要的研究方向。
是的,我同意。我的想法之所以出现,是因为我查看了其中一些激活,因为当你点击它们时,它会在他们的测试语料库中显示哪些文本最大程度地激活了这些潜在特征,在他们给出的一些抽象概念中,我查看了顶级激活,对我来说它们看起来相当低级,你知道,几乎就像关键词匹配。当然,流行的观点是这些模型是某种增强版的 n 元模型,但那可能只是一种人为效应,由于某种原因,顶级激活看起来相当肤浅,但实际上,如果你在上下文中查看整个内容,这可能会给你你对更深层次的抽象理解所期望的东西。
是的,我认为是的,我同意,我认为如果你去维基百科之类的网站,它们通常会显示不同的区间,例如激活的第五百分位数和第七十五百分位数之间是什么,这有助于你获得一种广泛的……查看因果效应也很有趣,例如,我知道我发现了一个特征,它会照亮虚构人物,特别是哈利波特,但当我坚持下去时,它只与哈利波特相关的事情有关,我认为是的,但我认为……我认为可控性……
会表明它不是吸引人的。这几乎就像它的表示后转向的道路业务向我表明它不仅仅是关键词匹配。它实际上理解了这件事是什么。
是的。所以我认为对我来说很清楚,它不仅仅是关键词匹配,因为我们观察到诸如多语言特征之类的东西,其中不同语言中的相同文本会照亮该特征。你倾向于在一定的模型规模之外看到这些,甚至不需要那么大,我认为十亿或五亿可能就足以看到一些……规模上的迹象。
在蒙特利尔,他们有多语言特征,例如金门大桥的一个 LED 会在金门大桥的图片上亮起。在我的实习生活中,我发现这并不令人惊讶,因为如果你可以将你的输入映射到一个共享的语义抽象空间,你就可以对它们进行有效的处理。所以,当然,这种情况会发生。
有一些有趣的工作,例如“LLaMA 思考英语”论文,我认为是克里斯·沃勒写的,我知道他是这个节目的听众,我认为这似乎表明模型决定说什么,它决定用什么语言说,有点像不同的点,你可以用不同的方式密切干预它们,是的,但我认为如果你有那种 n 元匹配的愤世嫉俗的家长视角,你不会预测到这一点。老实说,我现在直接理解那些持有这种观点的人。我认为它显然被证伪了。
我的意思是,如果 Yann LeCun 现在在这里,并且我提出了无监督家长匹配系统的指控,你会对他说什么?
我想我会说,我们已经观察到这些东西内部的算法,例如,你可以训练一个小的模块化加法模型,它具有离散傅里叶变换和技巧恒等式。我们知道 Transformer 具有似乎以某种实际算法进行组合的归纳头。我们发现了这些抽象的多模型和多模式特征。
我相信你可以证明这个模型的一些放松。我们就像,是的,它做简单的事情,但它从不做真正困难的事情。所以它是一个有点像鹦鹉的东西。但我知道……棋类游戏是另一个例子,我认为这是一个明确的例子,它在某种意义上形成了一个世界模型,它从未见过动作,也从未见过棋盘,但它形成了一个非常有意义的内部表示……
世界。是的,我的意思是,对这个论点的稳健说法是,它们似乎没有进行这种组合泛化。它们没有可解释性。但是,如果不是比喻的集合,什么是抽象?如果你捕捉到一个概念的所有表示并将它链接到一个称为抽象或其他什么的东西,并且它表现得好像它知道抽象并且它可以用该抽象进行推理,那么在某种程度上,这是一种没有区别的区别。
是的,我认为另一个重要的因素是,在我看来,提出的说法,一种全称说法,例如,不存在该事物不是烤面包机部件的实例……我很难相信有很多实例,例如,你知道,它们记住很多东西,有时它们会产生幻觉……很多时候,它们只是在做基本的语法,例如,标记“don”后面跟着撇号“t”来构成“don't”,这就像一个 n 元组。
显然,模型学习了这一点。我认为我们仍在弄清楚如何引导它们,如何让它们使用我们想要的复杂抽象电路树,而不是真正用于预测下一个标记的东西。例如,即使是数十亿参数的模型也知道如何进行加法。
你可以给他们一些东西,比如 113 加 237,它们通常会给出正确的答案。这显然可以是,在训练数据中使用了这种方法,甚至是加法的通用电路。好吧,像弄清楚句号接下来会出现的这种事情出现的次数太多了。所以,想想模型有多少激励将参数用于这种事情。我认为我们只是不太擅长重塑电路的表达方式,从而导致各种事情的完成。
是的。所以,如果我理解正确的话,你是在说,模型目前是一个大杂烩。由于架构和数据的压力,有一些非常强大的有用电路。然后几乎就像一个 MIT 风格的阶梯,然后有一些不太强大、更容易产生幻觉的东西。然后在外部只是纯粹的噪声。
“强大”并不是我考虑的恰当词语。更像是某种抽象或能力或效用,例如,有一个电路树可以,我不知道,思考复杂的任务或产生计划或类似的东西,在连贯思维的意义上产生计划。这似乎是我们真正关心的东西。虽然它有大量的记忆事实的数据集,我们可能不……我知道它可能记住了一些著名的书籍……我们可能不太关心这一点……也许我们确实喜欢……可能你确实希望模型记住整本圣经,而不仅仅是……我认为是的,我认为好吧,如果我们……
把它看作一种地质地层,其中一些部分有一些含义,其中一些可能是进行某种推理和规划的电路,等等,这几乎就像我们知道我们现在有了这个大东西。也许我们想从一开始就以不同的方式塑造它和发展它,但是给定一个大型模型,我们如何才能将它分解成我们想要的部分?
是的,所以。老实说,我不太相信可解释性在这里是正确的工具,尽管这是一个我感兴趣的人们探索的方向。在某种意义上,我们只有提示工程等工具。我的观点基本上只是试图给模型正确的魔法词,让它使用你想要的电路,而不是你不想使用的电路。因为,模型不知道你想要什么,微调是另一回事,人们倾向于做的那种聊天指令遵循微调就是一个非常重要的例子。
我对微调的思维模型是,它主要只是操作现有的电路,但这还没有被证明,我真的很想看到一个证明,这似乎是一个非常有趣的方向,然而……我认为你也可以将转向向量或某种 SA 特征爬升视为另一种更可解释的或引导这些模型的方法……可能你可以做一些事情,比如观察这两个注意力头如何在连续中相互连接……所以,如果我打破这种连接,比如取这个头,从映射中减去前面头的输出,而是将前面头的输出放在不同的输入上……技术上,我们稍后会更多地讨论 MIT 的修补,这可能会破坏你不想破坏的能力,并以使模型更好的方式进行。但这在很大程度上是一种推测性的事情。我知道我非常同情这种苦涩的教训,在许多方面,就像通过计算机一样。问题通常有一个非常好的解决方案。这让我觉得,除非你的数据真的很糟糕,例如你没有很多数据,或者经验相关性很嘈杂,并且你可能想使用可解释性来做得更好,否则像微调这样的东西将是一个非常难以超越的基线。
说到稀疏自动编码器。我的意思是,首先,有香草变体,在《走向可解释性》中有所描述。但是有很多变体,你可以改变架构和激活。所以,你的团队一直在研究其中一种,那就是跳跃,但我指的是你刚才提到的。
是的,所以,第一个是 Shrinkage。从数学上来说,如果你使用的是边界正则化,那么为了重建,潜在变量的激活次数将少于最佳值,因为它有两个目标。而 L1 总是希望事物更小,所以它会使事物比应该的更小一些。
这太令人悲伤了。嗯,你说的那些饮酒者……第二个概念上比较难。所以,这个想法是……叠加会造成干扰。这意味着,如果你有一些未来的方向,比如“狗”这个特征,你投影到上面,然后绘制出空气投影的直方图,嗯,你当然会期望看到某种以“狗”为中心的分布,比如我知道在三到五之间。那里有“狗”的部分,但可能会有很多干扰。
所以,当提示中没有“狗”时,它可能并非为零,它可能在负二到二之间,而且非常嘈杂,嗯,用简单的阈值很难解决这个问题,因为你数学上想要做的是,你想测量它与原点的距离,如果它在三到五之间,否则设为零,但阈值法会将所有高于阈值的都设为零,所以你不能将阈值设为零,但如果你有一个更高的值,比如三,这意味着你正在测量到三的距离,这就像扭曲事物并使用错误的比例。所以,一个能做到这一点的激活函数叫做跳跃函数。跳跃函数的工作方式基本上就像一个普通值。
但是你添加了一个正阈值,所有低于阈值的都设为零。对于观看视频的人来说,曲线看起来就像一个直线跳跃。它继续跳跃,然后是恒等式,这可以让你精确地表示这样的事情:如果它高于三,则取与零的距离;如果它低于三,则设为零。嗯,我的团队写了一篇关于门控稀疏自编码器的论文,由Sanjith Harish领导,他擅长提出新的SE架构的疯狂想法,这里的想法是,让我们训练一个门,让我们有两个编码器,一个找出哪些特征应该激活,产生一个二进制掩码,另一个找出它们应该激活多少,并且我们只对哪些特征应该激活应用L1正则化。但因为它是一个二进制掩码,你不能进行收缩,我们做了一些技巧来让它能够训练,即使它产生的是一个二进制掩码。
这相当繁琐,嗯,但我们也发现,如果你让这两个编码器具有相同的权重矩阵,只是偏差不同,因为它共享权重矩阵,它的性能基本一样好,而且参数更少,所以生活更美好。事实证明,这在数学上简化为一个跳跃函数。我们有一篇名为“跳跃激活函数”的论文,嗯,可能是自编码器领域的最新成果。有点不清楚,嗯,同样由Sanjith Harish领导,基本上是ReLU,但你用跳跃函数替换了激活函数。跳跃函数的问题是你有一个阈值变量,如果阈值是三,那么所有高于三的值都保持不变。所以,如果你有输入,其中激活值高于阈值,那么阈值基本上具有零梯度,因为如果你把它调高一点或调低一点,它不会改变任何东西,这意味着它很难训练。
嗯,所以我们优化了L0范数而不是L1范数的代理。你可以这样做,因为L0范数会将所有内容都设为零或一,就像,这个特征是否激活?如果是,则为一,如果不是,则为零。嗯,我们使用了直通估计器,这基本上意味着,与其把它看作激活强度的函数,它就像一个零,然后有一个突然的跳跃到一。
嗯,我们把它看作一个线性函数,它保持一段时间,然后有一个非常陡峭的对角线向上到一,然后是一。然后你取它的梯度,但只在反向传播时取。所以,它在正向传播时是不连续的,你在反向传播时进行干预,使其成为这种奇怪的估计。
我们发现这性能非常好,它解决了收缩问题以及如何处理低值干扰的另一个混乱问题。另一个值得了解的架构是来自Leo Gao(OpenAI)的Top-k稀疏化,他们在这一方面做了很多工作。嗯,那篇论文的另一部分是关于缩放的,由Alec Radford(绝对的疯子)完成,这是一个非常简单的想法:与其让所有神经元都激活,你也可以只让一部分激活,你应用一个Top-k函数。
所以你只取前三百个最大的激活值,保留它们,其余的设为零,这让你免费获得了稀疏性,而不用担心特征过多。这也很有效。嗯,我们发现跳跃激活函数的性能优于Top-k,但Top-k似乎更好,有点不清楚,两者似乎都有用。嗯,Top-k使得很容易选择你想要的任何稀疏性。
嗯,这实际上是一个相当恼人的问题。所以,嗯,我们在训练这些东西时有一个正则化惩罚,无论是一还是零。选择这个惩罚项会改变模型的稀疏性,即有多少特征需要激活。
目前还不清楚正确的惩罚项是什么,因为直觉上,不应该有那么多与输入相关的概念。所以你不需要那么多,也许像五十到一百个通常是目标,但也许更像二十个。不,不。嗯,而且通常最慢激活的特征只是噪声,但它通常是有助于模型重建输入的噪声,但以一种无法解释的方式,因为如果你说,如果对这个向量的投影很高,我会添加一个相似的向量,然后我会重建它,是的,嗯,但你通常想要一个好的重建,所以目前还不清楚正确的做法是什么。通常,我们比较不同方法的方式是,与其只说哪个性能更好。
我们采用一系列正则化惩罚,或者在Top-k的情况下采用不同的k值,我们绘制一个Pareto曲线,表示有多少特征激活或未激活,以及重建效果如何。这可以是重建激活的效果,或者如果你用重建的激活替换原始激活,然后继续运行模型,交叉熵损失的减少量是多少,这更接近我们关心的内容,因为可能有一些不重要的垃圾激活。通常,这看起来像一条曲线,因为有更多特征更好,然后我们可以比较不同方法的曲线。
所以,当我说明一种技术更好时,我的意思是曲线更向上和向右,你应该真正去看论文并查看图表。我无法很好地用语言解释这一点。嗯,另一件至关重要的事情是检查你是否意外地使事情变得可解释,嗯,你基本上可以通过进行人工解释性研究或让语言模型为你做来做到这一点。
有趣的是,在改进稀疏重建方面取得了相当大的进展,但可解释性指标并没有太大变化。但最近我终于在Top-k上发现了一个小的改进,叫做Batch Top-k,由我的导师之一提出的。所以,Top-k的一个恼人的问题是,你。
所以你可以选择k值,这很好。嗯,你不必调整超参数或四处摸索,嗯,但这意味着,嗯,你对每个输入都有完全相同的特征数量,这并不是你直觉上想要的。有些标记很无聊。
有些标记很有趣,应该有很多事情发生。他们用Batch Top-k所做的是,与其对每个标记取Top-k,不如对整个批次取Top-(b*k),其中b是批次中标记的总数。这意味着你可以对每个输入有可变数量的特征。但平均而言,正则化惩罚始终是一百。
在推理时,你必须取b*k的一个典型值作为阈值并将其固定,这样你就不必每次都使用批次处理,这实际上与跳跃激活函数的推理相同,这很好。虽然跳跃激活函数在所有地方都使用相同的阈值。嗯,Batch Top-k可能是我对想要使用Top-k的人的推荐,或者不喜欢真的想知道惩罚项的人。跳跃激活函数可能更好,它用于Geoscope,但我认为它训练起来可能更复杂,更容易出错。尽管我们现在有一些开源实现。
你说我们想要尽可能多的特征,而且似乎有一些东西限制了即使在这些方法中产生的特征数量,也许是什么限制了特征的数量,即有用的可解释特征?
我不知道我是否同意这一点。我们想要尽可能多的特征。那么我们想要什么?目标是什么?是尽可能多的有用的可解释特征吗?
我想知道模型中发生了什么,计算是什么,变量是什么?我不知道所有变量的数量是多少,嗯,它实际上可能比这更复杂。就像我已经放弃了存在固定数量变量的想法。
那么我们可以用稀疏自编码器做什么?我们有什么证据表明它们有效?
是的,好的。所以,让我们从研究人员的角度考虑一下这个问题,你有一个语言模型,你有一个,你可以做什么?所以,通常,嗯,你需要选择一个激活层来训练你的稀疏自编码器,就像你需要为模型中的每个激活层训练一个不同的稀疏自编码器一样,通常最有趣的是残差流,因为它是一个瓶颈。
这是迄今为止所有层输出的总和。所以它就像,如果你理解那里发生了什么,你实际上已经回答了很多关于计算的问题,而任何给定层都只是一小部分。嗯,例如,在Scaling Laws for Neural Language Models中,Anthropic只是训练了AUS。
AUS是在中间残差流上训练的。那么你可以用它做什么呢?所以,自然而然的事情就是把它用作显微镜。
你运行它,将一些文本输入模型,然后在每个标记上查看哪些潜在特征被激活。然后,理想情况下,你有一些工具,比如Neuronpedia,可以让你理解这些潜在特征的含义。你可以说,模型是否在考虑这个、这个和这个,或者为什么模型在考虑这个?
这很奇怪。我很想知道是怎么回事。嗯,我强烈建议大家访问Neuronpedia网站进行演示,并使用显微镜工具,你可以输入文本并查看哪些潜在特征被激活。
它有一个非常漂亮的UI,嗯,Neuronpedia还有一个API,这意味着当你作为研究人员在协作中处理事情时,你可以直接看到仪表板上的特征,因为自己制作它们有点痛苦,嗯,是的,所以像把它用作显微镜一样,嗯,你还可以把它用作发现工具,你只是随机查看每个潜在特征,然后说,嗯,这个特征在什么情况下被激活?哦,这是一个有趣的概念。我没想到模型会有这个概念,或者你可能猜测你认为存在的潜在特征。
所以你想出一堆可能包含它的提示,然后你尝试查看它,看看你是否能找到一个充当探针的潜在特征,区分这两个数据集,嗯,接下来你可以尝试做的是进行干预。
嗯,基本上是控制,嗯,你可以通过钳位来做到这一点,你将残差流通过稀疏自编码器,但然后你取潜在特征,比如“狗”的潜在特征或“喊叫”的潜在特征,你让它保持一个固定的高值,然后继续。你也可以只进行控制,只使用解码器向量作为控制向量。
你可以把它看作只是向潜在激活添加一些数字,或者你可以把它看作只是添加一个向量,甚至不需要稀疏自编码器。需要注意的是,由于稀疏自编码器引入了误差,重建结果与原始激活并不相同,嗯,这些误差,即原始残差流与新的残差流之间的差异,嗯,有时包含重要信息,就像有些特征太容易被捕获一样,嗯,所以如果你用重建结果替换原始结果,这本身就会对模型产生影响,这可能会掩盖钳位潜在特征的效果。通常,我们只是将残差加回去,或者进行一些更有效的操作。这在数学上是等价的,因为这是任意的。这很烦人,因为这意味着有一些我们不理解的神秘注释,但这也意味着我们可以进行更清晰的调查。
所以,个人而言,嗯,你也可以用它来找出发生了什么。因果干预,嗯,因果干预可能是一种更有趣的因果干预,比如你给它一个提示和一些被激活的概念,比如“在……城市的……塔”,它说“巴黎”,你就会想,哪些潜在特征实际上与说“巴黎”有关,你可以一次删除一个,看看“巴黎”的概率是如何变化的,嗯,是的,所以我认为更雄心勃勃的事情是,所以找到它们,所以,嗯,稀疏自编码器很漂亮。它们只是一种激活研究技术。
他们找出模型中的变量,但这并不能让你直接得到它们所代表的算法。嗯,但我们可以做的是……是的,我认为目前为止最好的工作是Sam Marx和Aron Miller的关于稀疏特征电路的论文。嗯,他们基本上做的就是获取每个注意力头和MLP以及每个残差流的输出。嗯,他们在每个输出上训练一个不同的SAE。
他们在PaLM 7B上做了这个,因为它有点昂贵且麻烦,尤其因为你有很多潜在变量。当你到处都有这些东西,并且尝试进行因果干预时,你有一些提示。他们研究了诸如主谓一致性之类的东西,比如“男人说”,“男人们说”,或者类似的东西,并试图为此找到有趣的特征。你基本上只是观察每个特征的因果效应,嗯,当你移除它们时,你还可以观察它们之间的联系,嗯,比如你删除一个潜在变量。
你可以观察到潜在变量4的变化,或者你可以从输入到层1的潜在变量中减去到层2的潜在变量方向,然后尝试使用它,然后看看它会影响什么。关于稀疏编码器的一个好处是,因为它们的稀疏性,嗯,通常许多潜在变量不是主导的,因此你不需要进行这种边缘追踪来标记所有东西,因为那将是一场噩梦。嗯,因为它们有,嗯,残差连接,这意味着他们只需要进行一步的传播,嗯,因为在每一层都有一个瓶颈,它们连接到……它们没有观察从注意力1到MLP 5之类的连接。这种方法的一个问题是,嗯,如果错误节点完全破坏你的模型,重建误差会很高,当你把激活值设为零时,它会完全破坏你的模型,这意味着如果没有它们,发现的东西就有点不可靠。但是,如果你在你的SAE中包含错误节点,那么它就像一个巨大的未解释的块,嗯,当他们不包含错误节点时,他们得到了更糟糕的结果。嗯,你仍然可以,是的,你仍然可以取得一些进展。
比如,你可以说,如果我有一个潜在变量的子图,我认为它是一个电路,嗯,你可以尝试删除所有这些变量,看看这会对模型性能造成多大的损害,例如。这可以给你一些证据。嗯,我还想说,我认为你甚至不需要进行边缘修补之类的工作,因为通常你会有一个足够小的潜在变量集。
你可以假设所有边缘都是有意义的,这已经足够好了。嗯,我要补充一点,这在很大程度上是基于因果干预的,嗯,他们实际上使用了一种基于梯度的近似方法,称为归因修补,我认为我之前简要讨论过,他们使用积分梯度对其进行了改进。所以,就像经典的可解释性技术一样,但它基本上是在尝试近似因果干预,比如将潜在变量的值更改为另一个输入上的值。
一个好处是,潜在变量的一个很好的默认值是零。如果进行一般的电路查找,找到一个好的默认值实际上非常困难,因为激活值通常不是零向量。所以,如果你这样做,这实际上是具有破坏性和奇怪的。你可以将其设置为平均值,但平均值可能具有更小的范数,这会弄乱范数和类似的东西。嗯,你也可以进行激活修补,当你用另一个输入上的值替换潜在变量的值时。
这在潜在变量大部分时间都处于活动状态时很有用,尽管当你用平均值替换它时,这样做可能会产生误导,因为如果潜在变量的分布在98%的时间里是零,然后在2%的时间里是102,那么平均值是2。但在某种意义上,在100%的时间里是2,不如在100%的时间里是0那样忠实于原始分布。
下面还有很多问题。我们还没有在这里解决它。嗯,我们一直在努力做的一件事是用Javascript对每个学习到的子层都有SAE,以实现这种分析。
我认为你可以将所有狭窄的PaLM 2B的SAE都放入大约80GB到100GB的空间中,也许可以排除残差部分,嗯,因为我很想知道在这些模型上进行电路分析会发现什么。嗯,我有一对数学学者,Stepin Shape L和Demetri Pananos,他们很快就会在这方面发表一些作品,他们一直在研究上下文学习,嗯,最近有一组关于函数向量或任务向量的论文。实际上有一个来自Erica的,还有一个来自我认为是Handel的,像一天的播客。嗯,这个想法是关于上下文学习,嗯,少样本学习。
你可以有一堆任务示例,然后你,嗯,给定另一个输入,它会执行任务,比如生成反义词,缩写。他们发现,在一个较浅的层中,你可以提取一个与任务对应的向量,然后对于不同的提示,比如不同的输入,嗯,和不同的任务,你可以交换任务向量,它会对该提示中的输入执行原始任务。所以,这有点像隔离少样本性,也发现它比模型弄清楚输入是什么的层要浅得多。所以,Stepin和Demetri发现的,我认为我们最近在博客文章中也提到了,是存在与这些任务因子对应的稀疏自编码器特征,以及与任务检测器对应的稀疏自编码器特征,比如在早期标记中发生了什么任务,它们会连接到这些任务因子。是的,我真的很想知道你还能发现多少这样的东西。
但是,是否可以在提前知道呢?我的意思是,我们应该如何预期这些特征会是什么样的呢?我的意思是,如果我们有一个关于,我不知道,架构之类的数据集,我们应该期望某种类型的特征吗?
是的,这是一个非常有趣的问题,我还没有完全理解。所以,是的,我认为一个关键的,嗯,超参数,或者我到目前为止还没有谈到的,是你的字典的宽度。潜在变量的数量是在研究人员训练自编码器之前选择的。
你可以直观地将其理解为显微镜的缩放级别,嗯,你是如何找到一些粗粒度的特征还是很多细粒度的特征?嗯,非常有趣的是,我所描述的图像是,有一些特征的真实列表,它们有自己的向量。在这种观点下,你可能会期望一个稀疏自编码器如果它有20000个潜在变量,就会学习前20000个特征,然后完全忽略其余的。
但我们发现这部分是正确的。嗯,更大的稀疏自编码器确实学习了看起来完全不同的特征。嗯,我的两个数学学者,Manzil和Patrick Lisc,对此有一篇有趣的博客文章。
但是,也存在许多特征分解的情况,你会有一个粗粒度的特征分解成许多细粒度的特征,比如我知道颜色可能会分解成红色、绿色、蓝色,等等。这实际上很常见,可能实际上并没有发生,但有很多例子,嗯,这很奇怪,因为它提出了一个问题,即稀疏自编码器特征实际上是否是计算单元,我的猜测是它们可能不是。Manzil和Patrick还有一篇名为“特征是原子的吗?”的帖子,他们在这里做的是训练了一个元SAE,你使用SAE的潜在特征。嗯,你使用SAE的解码矩阵,然后用另一个SAE来重建这个解码矩阵,称为元SAE,它通常只有很小的维度,比如4或类似的。
这发现有时你会有一些特征,比如一个不重要的特征,它分解成像男性、物理学家、德国人等等。嗯,这些元特征通常对应于较小的SAE中的东西。所以,较小的SAE通常在较大的SAE中被分解。
但是较大的SAE通常只是较小SAE中东西的组合,但它们也经常被解释为具有密切相关的意义。这些感觉像,你知道,我像解释一样,密切相关的意义,感觉应该足够了。我不知道。
我认为这是我现在感觉自己不理解的事情。我认为正确的问题可能是问我们什么编码对于理解模型内部发生的事情是有用的。但这似乎也很重要。
建立更好的基础,比如它们实际上发现了什么?或者,如果你喜欢,他们发现了一些东西,但我不知道他们发现了什么。模型的层次结构以这种方式具有高火箭性,这似乎很吸引人,你可以在不同的抽象级别上具有解释性密切相关的方向。
嗯,关于你可能期望的另一个评论是,我最喜欢的Anthropic的论文“关于Antti的缩放”中的特征完整性部分。他们在这里做的是,他们选择了一些你可能期望模型会出现的特征,比如化学元素,或者嗯,我认为可能是伦敦的鲍里斯或类似的东西。嗯,这是一个相当干净的名字。
所以你可以检查一下,这是否是一个在文本中出现的特征?他们使用了不同宽度的SAE,他们观察了有多少特征被学习,以及作为这些不同大小或不同宽度的出现频率的函数,学习是什么样的?他们发现你可以很好地拟合。
一个简单的预测模型,我认为它是一个厚重的白盒,我不记得细节了,但基本上足够小,以至于我不在乎。然后,根据频率,会有一个点,概率会增加,然后它会大幅上升。然后它基本上是100%。可能还会在后面发生分裂,这是一种复杂性,我不确定他们是否深入研究了,但是……
捕捉到那个参考文献的地方……
是它……所以这是Anthropic的缩放论文“关于Antti的缩放”的特征完整性部分。这篇长论文有很多部分,非常好。所以,我认为从这篇文章中可以得到的结论是,模型中特征的频率非常重要,这很有道理,就像如果事情出现的频率越高,它们就越有用,如果它们在某种意义上在激活空间中更大。
但我认为第二个有趣的结论是,一个特征是否会在给定的SAE中被学习,这似乎是概率性的。如果训练多个相同的SAE,它们将具有相同的特征,这些特征是显而易见的。但是对于那些比较模糊,比较接近边界的特征,它就像,只是有点随机。
我真正想从这里得到的结论是,嗯,我希望在这个领域看到更多的研究,就对从业者的建议而言。我基本上认为你应该只训练几个SAE,嗯,在PaLM组中。我们有宽的和窄的SAE,我们也有几层,我们有2的幂。
所以你可以做一些层次化的特征选择分析。嗯,我只有几周的时间。尝试对你的任务使用不同的宽度,看看哪些能够捕捉到你关心的特征,如果我们有一个更好的答案就好了,但是……
没有最好的,比如你也可以在,我不知道,残差流上训练SAE,或者只在MLP上,或者在注意力上。我的意思是,它们如何比较?
是的,是的。你主要可以在任何激活上进行训练。你甚至可以在注意力层的查询、键和值上进行训练,这更令人困惑,但这也能奏效。
是的,我认为在输出层上这样做是件非常合理的事情。嗯,一个有趣的问题是,你应该在MLP激活上进行训练还是在MLP输出上进行训练。通常,MLP激活的大小是残差流的4倍或更多,但然后有一个线性映射将其映射到输出。
所以,从概念上讲,这应该没有太大区别,嗯,但你的SAE也会有4倍多的参数,嗯,也许这有帮助,也许没有,我不知道。嗯,我通常只在输出上进行训练,因为它便宜4倍。但如果有人系统地研究一下,那就太好了。回到你的问题,我认为这只是不同的工具。如果你想研究一层的作用,你想要那一层的输出。
我认为一种完全有效的分析方法是,选择一个你关心的任务,比如上下文学习或拒绝,进行激活修补,嗯,在不同的样本之间交换层输出,以找到重要的层,然后你可以,嗯,去获取该层的稀疏自编码器,然后看看会发生什么。嗯,如果你想要一个关于正在发生什么的整体视图,残差流通常更有用。嗯,所有类型都可能是有意义的。
但是,残差流将是检测模型正在思考什么内容的流,而第一层则类似于“这一层发生了什么”、“这一层做了什么”之类的不同问题。嗯,我认为,关于MOPS的一个有趣的事情是,枕头本身就是一种密集的非线性混乱,并且处于某种叠加状态。因此,您不会像数千个果冻激活或门控联合体或其他什么那样。
这很难理解该如何思考。如果您只是进行因果干预,这很好。因此,您只想研究激活。
但是,如果您想尝试使用某种权重空间循环,例如恢复对输入无关事物的希望,那么我认为SAE应该让我们接近。它们更具语义性,是一种处理大型块状MOPS投票的方法。嗯,解决方法是转码。
因此,我监督了Jacob Devlin和Phillip Isola的论文。嗯,转码器的想法是,与其从MLP输出中找到MLP输出的稀疏重建,不如使用映射输入来找到MOPS输出的空间重建。所以它有点像稀疏替换,一个具有许多神经元的alpha,但它们的点或释放,并且嗯,这是一种在GPT-2上的直接替换,它们在成熟方面的重建效果与MLP输出一样好,我认为它们明显更差,因为它们有门控MLP。
嗯,尽管我们看到发布了一个甜蜜的转码器,这可能对想要进行这种输入无关电路分析的人有用,但实际上我们发现一件令人讨厌的事情是,很难进行纯粹的输入无关电路分析,因为如果您采用两个转码器,您不应用一个的解码器权重和另一个的编码器权重来获得这种,嗯,是的,我有点像解释基础与解释基础矩阵,并且有很多权重根本不重要,因为我指的是更早的,而Jacob和Phillip解决这个问题的方法是,他们嗯,是的,他们查看了未来电流,并且他们只是没有查看未激活特征的连接,但这有点依赖于输入,因此并不完全令人满意,但这是一种可靠的尝试,我很想看到对注意力的改进。因此,在某种意义上,注意力比MOPS更线性。因此,注意力模式计算很奇怪,而且我并不认为我们还了解如何处理它,有一个来自Ke Wu的有趣的博客文章,关于QK转换器,这似乎是一种很酷的方法。
但是,如果您采用给定输入的注意力模式,请原谅我,请与我一起,那么它基本上只是一个线性映射。您使用注意力模式将不同的前置标记混合在一起,然后应用线性映射,体积矩阵和输出矩阵,您将得到一个新事物,您对头部并行执行此操作,然后将它们组合在一起。嗯,从技术上讲,您先进行体积映射,然后进行注意力混合,但它们是可交换的,所以没关系。
嗯,我认为如果您想让我详细说明这个音乐细节,请查看该剧集,嗯,这很有趣,因为这意味着您可以进行线性归因。您可以,嗯,只是说,看,这基本上是POS标记的线性映射,然后是一些特征查找。所以,例如,哪些标记对这个有贡献?嗯,您甚至可以不在输出上训练它,而是在混合值(头部之前的直接内容)的串联上训练它。
这距离实际输出只有一个线性映射,这意味着您现在可以直接归因于每个头部,这是一个非常好的特性。我监督了来自Connor Leahy和Rob Brekelmans等人的这篇论文,基本上只是尝试深入研究,例如,您能否对注意力进行SAE?您能否对注意力的生命进行SAE,基本上,它效果很好。
它可能比MLP更具解释性。您可以做各种好事情,例如这种线性归因。例如,绝对疯狂的Rob遍历了GPT-2 small中的每个头部,并根据它们与该头部相关的线性程度查看了前十个SAE潜变量,因为您可以读取每个头部的权重并查找模式,并根据设备、人等对头部进行标记。如果您想查看,请查看论文,我认为您有一张作者表。
非常好。找到的特征数量与特征的有意义程度之间有什么关系?我还想知道它是什么。
与模型大小有关?是的,我认为这还没有被详细研究过。我预测可解释性将非常相似。
嗯,虽然更大的,虽然更大的SAE通常存在训练稳定性问题,例如,当您超过一百万个潜变量时,事情会变得更烦人,例如,在Anthropic的3400万潜变量SAE中,我认为大约65%的特征是死的,这意味着它们根本没有激活。这是一个非常高的比例,大约2000万个特征什么也没做。嗯,这可能仅仅是因为有3400万个东西,但他们确实发现SAE错过了附加内容。
例如,该模型知道所有伦敦酒吧,但他们找不到所有酒吧的SAE特征,只找到大多数酒吧的特征。例如,嗯,训练稳定性问题,但是,我认为,它们变得更加细化,以至于您可以争辩说其中一些只是,我不知道,记住一些训练示例或其他什么。也许如果您走到极端,即无限宽度限制,您可能会期望每个标记都有自己的潜变量或其他什么,这似乎很无聊,但如果我们真的达到这一点,我会感到惊讶。
嗯,直觉上,更大的模型应该有更多概念的染色体,这意味着您应该想要更大的东西。我不知道是否有人真的尝试过在一个巨大的SAE上训练,我不知道,嗯,GPT-2系列或PaLM系列中的每个模型,并试图看看较小的模型看起来是否很疯狂,而较大的模型看起来是否合理。但是,我认为这将是。
在安全方面进行非常有用的实验。这些稀疏编码和解码特征是否可以用来,我不知道,防止对抗性攻击?
看到了类似的东西。嗯,我认为我的总体观点是,我们没有看到太多证据表明SAE能够做到这一点,这超出了您可以通过微调实现的范围,微调可以对模型进行很多对抗性攻击。并且,您可以使用解释性方法进行一些有趣不同的攻击,这是合理的。
但是,嗯,到目前为止,我还没有看到任何真正的迹象。但是,有一些戏剧性的能力是我们还没有实现的,这些能力很难通过微调来实现。例如,在这篇关于拒绝即时单向论文的论文中,他们做了一个实验,我们发现拒绝转向向量,我们可以用来破坏模型。
您可以通过微调权重来破坏模型。这在很大程度上是我感到放心发布该论文的原因。它只是一种有趣不同的攻击,在某种程度上更容易、更便宜。并且,像这样的事情可能会发生在SAE上。我的意思是,这是一种新技术。因此,总有可能存在一些我们没有预料到的东西,但我不认为有任何特别的理由期望它能够推进我们能够做到的事情的界限,这超出了通过计算机解决问题所能实现的范围,因为计算机解决问题非常有效。
SAE是否有任何缩放定律?
嗯,是的。这让我有点惊讶。它们都来自Anthropic和OpenAI。最近有一些论文只是将这些扩展到更大的模型,就像我们讨论Anthropic一样,OpenAI。
我将它扩展到DP-4,并且他们的论文中都有关于SAE的一些不错的部分,它似乎是。最初,我们在训练SAE时并不真正知道自己在做什么,但现在我们已经迭代了足够多的方法,它们变得更平滑了。我们可以做一些事情,例如更改数据量、更改潜变量的数量等等,然后绘制出来。
我知道对于给定的计算预算,最佳超参数集是什么。这有点混乱,因为有很多超参数。例如,有多少潜变量?应该使用什么正则化惩罚?这些是否存在真正的全局解?但是人们应该完全去查看这些位并凝视漂亮的曲线。
我的意思是,其中一个问题只是垃圾特征的数量。我们该如何处理它们?
是的。好的,所以有死的特征,它们基本上不会激活。有未解释的特征,它们有时会激活,但我们无法真正看到模式。
然后有,嗯,高频可解释特征,它们激活很多,嗯,例如超过1%的时间。这些特征可能知道一些重要的事情,您可以将它们打印出来。
我认为,随着我们改进训练技术,死特征的比率已经下降了很多,以前,人们做了很多特设的事情,例如重新采样,其中经常只是用新的权重替换所有死神经元。但我认为现在的训练方法要稳定得多,对于大多数人来说,这似乎不再必要了。嗯,我认为对于未解释的那些,我知道有一个论点是直接删除它们。
嗯,我很想知道如果只删除所有未解释的特征会发生什么。您找到不好的那些,例如您删除那些,然后您调整SAE的功能,这样它就不会有缺口,这似乎是一个有趣的方向,嗯,目前。我还不太考虑它们。
但是,如果我开始看到很多未解释的东西大量亮起,我会更担心。我认为更令人担忧的事情,而且我更感兴趣的是理解这些高频特征。因此,在L1中,那些亮起1%时间左右的东西,我非常重视。
因此,它们倾向于发生太多次,嗯,但在top-k或umbra中,惩罚要小得多,top-k并不关心。使用jump,只有当您接近零时才会受到惩罚。因此,我们只激活一次,也许它并不关心。
嗯,这意味着,如果我们的活动很多,那么时间安排可能非常有用,如果它解释了很多时间,那么它对于重建可能非常有用,即使它不是国际性的。有时这些东西确实看起来像是解释性的。这有点令人困惑,Anthropic最近的月度更新中,他们比较了不同的稀疏编码训练技术。就像我提到的,他们研究了这一点,并且认为这些东西足够解释性,所以他们并不太担心这一点,嗯,这是我记得的,人们应该阅读这篇文章,我可能在讨论这个播客时不正确地总结了它,嗯,是的,那个婴儿是什么。
来自哪里?
嗯,这是他们其中一个月的更新。我认为是最近的第二个或第一个,我的意思是,我想到的一件事是,你知道,一种观点,我不确定你是否倾向于这个方向,那就是这些东西代表计算单元。另一种观点是,它们是事后描述。我认为我们需要某种因果机制来解释这一点。我的意思是,你对此怎么看?
所以我不知道计算单元意味着什么,这与我之前提到的特征分裂有关。这些东西不是原子讨论,就像,是的,在某种意义上,我觉得计算单元必须是不可约的,并且必须适合某种清晰的电路并在下游使用。
但是,如果您有三个,如果您有一个哺乳动物特征分裂成一堆动物特征,但它本身是有意义的,那是不是一个计算单元?也许,嗯,或者在一个句子中足够有用,但它并没有。它并没有完全实现模型中正在发生的事情的真相,而且我不知道这些东西是否在某个底层真相中触底,或者它们是否只是某种混乱的假设结构,您可以沿着布莱克向下走。我甚至不认为事情通常直接指向循环图,也许,是的,所以我认为我非常兴奋的一个研究方向是尝试将这些东西应用于现实世界的任务,或者至少是简化的任务。
例如,在Sam S. Olex的关于小型特征电路的论文中,除了非常酷的电路分析之外,他们还做了一个实验,他们,嗯,所以他们采用了一个有性别偏见的数据库,我认为它对女性护士和男性教授有偏见,他们训练了一个模型来证明这一点,它部分地学会了识别职业,部分地学会了识别性别。因此,当您在一个具有相反性别的数据集上对其进行评估时,它表现非常糟糕,他们发现他们可以通过结合模型数据和人工分析来识别几乎完全与性别相关的SAE特征。
去掉那些。嗯,IT,探针变得不那么有偏差了。我认为这是一个非常有用的应用,因为我不知道我们现有的探针调试基线应该是什么,但SI能够做到这一点似乎非常令人印象深刻。
我喜欢。如果我能做到那样,我有多在乎它是计算单元还是事后讨论的事情?我很在乎真实性,也很在乎它能教会我关于模型的知识。我不想对它做一些会误导我的假设。
但是,我们能否使用文章来纠正知识或将知识插入模型?
也许吧。我认为在那种高级讨论中经常被忽视的一个关于ACS的问题是,你想要的东西并不总是特征。例如,我训练了八年,试图制作一个金门克劳德,但我没有找到金门特征,这让我觉得,也许如果我尝试足够多的SCE,我会……我不知道。嗯,这实际上是使用转向向量的一个好处,因为这不是一个你总是可以为想要的东西制作数据集的问题。因此,如果你的知识以SAE特征的形式表示,你可以完全放大它,这可能会对某些人有所帮助。是的,我知道有些人正在研究这个问题,但这似乎目前并没有优于现有的基于学习的基线。
嗯,我认为在会话中添加知识……也许……所以这可能有效,也许有效,这感觉有点奇怪,因为对我来说,知识就像一种查找,像一个函数。即使你想以一种非常好的可解释的方式来做,你也想有一个输入,比如迈克尔·乔丹,输出是“打篮球”。你可以也许在输入方向上添加一点迈克尔·乔丹到篮球,在编码方向上添加一点篮球。你也可以只添加一个额外的操作,它有迈克尔·乔丹并产生篮球。
这有点违背了AE的精神,因为这显然不是重建,这是一个你添加的额外函数。但是,有些事情你可以这样做,这在变换器中感觉更直观。嗯,像将MP输入映射到MOP输出那样,因为在某种意义上,事实查找是MP的工作。嗯,我的意思是,我们发现它往往分布在各层中,这有点烦人,但是你可以插入一个单向的,完全没问题,特别是如果你的下游有一个非常高的解码向量或编码向量的幅度。
文章与正在执行的任务或训练数据的数量之间有什么关系?
所以,SAE按照经验法则,在更多数据上训练时会变得更好。有时它会饱和。我不完全确定这是否是真正的饱和,还是只是训练方法的问题,但在一般情况下,更多的数据会使重建更好。
我们没有深入研究。我不知道是出现了新的特征,还是只是发现了现有的特征。我认为这将是一件非常酷的事情,可以研究一下,比如取一段在SAE潜变量中激活的文本。
看看它。让我们看看它是否有训练模式。对一堆这样的东西做这个,看看它看起来像面部过渡还是渐变的。我不知道。有人应该研究一下。我认为……我预计你可以训练专门的SAE……我不太了解这方面的工作……有一篇论文叫做《走向更原则性的可解释性COS评估》,由Alex、Michael Ve和Gale撰写。这篇论文的重点是,我们认为SAE应该对电路发现有用。让我们取一个电路。
哦,为什么是交互式对象识别,我们在上一集的GPT-2中讨论过它,让我们看看SAE发现得有多好,并将其与我们只是训练的某种监督字典进行比较,因为我们认为我们知道特征应该是什么。嗯,我认为这是一个非常好的评估。与这相关的点是,它们都在redtech上进行了训练,但也都在一些特定的IA内容上进行了训练。
在某种程度上,它的表现更好。但它在各个方面也都很奇怪,比如存在特征过度分割的现象,其中一些应该只存在一个的图片,比如名字是先还是后,却分裂成了大约20个特征,这些特征都差不多。与分析师合作时,这比更广泛的SAE更难处理。
SAE是。但也许你可以通过使其更窄来解决这个问题,但如果你使其更窄,它就不会学习你也很关心的特征名称,这些名称应该更细粒度。是的,但这只是一个非常狭窄的案例。我相信如果你做了代码播放,我会在一分钟内得到很多。
刚才你谈到了训练动力学,这让我对AE非常感兴趣,也就是说,权重在训练过程中是如何演变的,以及电路是如何出现的。你能……你知道,我可以在训练的不同点计算AE,并用它来理解训练吗?
动力学。是的,我认为这是可行的。是的,所以为了明确起见,我们正在从AE的训练动力学转向模型的训练动力学,并使用AE作为研究它的工具。嗯,是的,我认为你可以做很多事情。我认为这将是一个例子,嗯,这甚至可能是过度的,你可以只取一些你认为被表示的概念,然后为它们训练探针。我非常感兴趣的一件事是,探针的方向在训练过程中是如何演变的。训练税不是我的领域,所以我将要说的东西,我希望有一篇论文能做到这一点……嗯,我认为……观察表示在那个时间点的样子将是非常酷的,观察SAE转移得有多好也很有趣。特别是如果你校正了变化的偏差项,比如如果平均值发生变化,它会搞砸一切,但也许特征的方向不会改变。
因为你显然谈了很多关于摇滚乐的事情,我认为这可以被看作是观察训练动力学。如果你看到了所谓的从ANS中出现的、能力或特征的涌现,那会不会很有趣?
我的意思是,我认为涌现本身就是一个有趣的话题。我会有点犹豫从SAE中发生的事情得出过于强烈的结论,因为例如,它可能是这种情况,它逐渐学习了枕头的特征,但SAE认为直到达到某个阈值之前,拥有枕头潜变量是不值得的。
大量的沉默,就像一个突然出现的镜头,我喜欢那样,这可能看起来非常突然,但实际上是渐进的。所以,就像我说的,这让我对探针更感兴趣,可能使用SAE作为寻找什么的动机,以及探针应该寻找什么。嗯,实际上是使用SAE特征作为探针,只是将其转换为早期版本,因为如果……如果在第一个SAE上的枕头潜变量最终仍然在检查之前起作用,我不会感到惊讶。嗯,是的,我不知道……有一些模型非常适合研究这个问题。
嗯,我在transformer lens库中有一些玩具语言模型,比如jelly one l或jelly two l,但它们是很小的模型,应该非常容易在上面训练SAE。还有pizer sweet,它有大量的检查点。是的,我犹豫是否使用SAE中特征的存在作为指标,因为那里有很多噪声。所以我想要更谨慎一些。
是的,我认为你的团队刚刚发布了一大堆开放的SAE。是的,我的意思是,这样做有哪些工程挑战?
嗯,是的,这有点疯狂,但从我的角度来看,这并不令人沮丧,它们在垂直方向上。嗯,SAE已经成为一件大事,至少我认为它们是一件大事,我认为它们将解锁我们可以做的许多很酷的事情。所以我想要关注它们,这涉及到训练它们。
这比许多之前的项目更需要工程方面的投入,之前的项目更像是用一个很小的可爱模型在现有的书中玩耍。嗯,所以工程挑战的原因是,基本上,要训练一个SAE,你需要运行大量的文本通过语言模型,收集激活,这肯定很昂贵,然后对于比如说几十亿个token,然后使用这些激活来训练一个潜在编码器,它也可能相当大。嗯,它只是一个两层网络,但中间的社区非常庞大。
所以,如果你像rope那样大,比如说3400万,并且你想在一个像gem27b这样的模型上训练一个,它有一个残差流,有5000个,那么总参数数量是2乘以5000乘以3400万,也就是3400亿个参数,这比GPT-3大得多。我们没有那么大。我们只做到了一百万。但这仍然相当大。所以,嗯,你有两种选择来做这件事。
你可以在线做,所以你……将文本传递给模型,你将激活存储在你的GPU内存中,然后你运行一个AE。嗯,你通常想要有一个很大的这些激活的缓冲区,以便你可以进行洗牌,因为来自相同提示的激活将是相关的,看看它们有什么模式。没有人真正让我满意地测试过这有多重要。
我只是凭直觉认为它很重要,就像很多这样的事情一样。这是。嗯,是的,这基本上不适用于超过一定大小的模型。
我的意思是,如果你想做一个超参数扫描,这将是相当……因为要一遍又一遍地运行模型,或者即使你只想在一个不同的激活上训练一堆SAE。所以第二种模式,也就是我们最终采用的模式,是激活存储,你运行大型模型一次,收集所有激活。实际上,我认为我们做了几个阶段,因为当你想存储这些激活时,磁盘I/O变成了瓶颈。嗯,你将这些保存到磁盘,然后你用你想要的任何超参数在它们上面训练你的AE。如果你搞砸了训练,你必须回去重新训练。
嗯,这非常激烈,我们存储了大约20PB的激活,这很多。嗯,我们不得不请求特别许可才能获得分配的磁盘空间。但幸运的是,DeepMind相信并支持从代码中进行肌肉记忆。嗯,我们使用了大约GPT-3计算量的22%,这按照现代标准来说不算太多,但按照可解释性标准来说,这相当多。主要原因是……所有这些数字都很大,所以我们主要在jgu2b和jmnb上发布了东西,因为我认为这些东西很好地结合了……足够有用,足够大到足以引起兴趣,足够小到学术界实际上可以在不打破银行的情况下使用它们,而不需要处理大量的并行化。嗯,我们想做每一层,包括注意力、MP和残差。所以,比如说,gem27b有42层。这是120。
我们还想做两个窗口,一个在40,我们无法决定正确的窗口大小。我们做了6个。所以这很多,嗯,我通常声称我们做了大约400个。
你能解释一下点估计吗?我通常建议人们使用最接近100维的那些,除非他们积极地想做某种点研究,人们应该这样做。我不知道这些东西是如何工作的,伙计。嗯,我们还做了一些其他的,比如我们偶尔会在100万潜变量上做一次。我们在gem27b上做了一些,我们在聊天微调的jm9b上做了一些。实际上,SAE在基础模型和聊天模型之间转移得非常好。
嗯,呃,对我的学者们和我来说,我们有一本不错的书,展示了这一点,我们在 Jasper Pe Techy 报告中对此进行了合作,嗯,我还应该说,呃,JavaScript 的功劳归功于团队,尤其是 Tomb Liberum,他是技术负责人,处理了所有这些工程方面的工作,所以我不用操心了,是的,就像这只是呃,Ja Scope 一样,如果我们想做一个更大的模型,嗯,就像更大的 SA 一样,嗯,它会变得有点麻烦,尽管在某种程度上训练一个 SCE 在残差流上,这对于某些用例来说已经足够了,但对于其他用例来说则不够,比如足以监控系统,足以滑冰。但这不足以看到 Hunt L 电路在 Sublime 中完成所有工作,这使得它贵了 100 倍,嗯,你知道,贵了 100 倍,因为你不需要运行语言模型 100 倍那么多,但更痛苦,嗯,所以对我来说,目前还不清楚这值不值得,我很想知道人们在实践中探索这种事情。嗯,是的,啊,我们首先进行 Java Cope 开放发布的原因是,正如我一直在说的,希望能够在工程方面真正有所作为,如果你是一个工业实验室,这更容易做到。
嗯,如果你在外面,你能有更好的音调和更多,你知道,20 个胡椒粒的存储空间,嗯,就像 Jama Lama 那样,训练起来非常昂贵,但使用起来便宜得多。我们认为,通过这样做,我们可以解锁许多煤炭研究项目。嗯,还有一些其他的很酷的开源 SAE 项目值得尝试,比如,L 使用者已经训练了一堆 Llama。
嗯,这实际上是相当开放的源码,因为我认为代码和数据都是开源的。嗯,嗯,OpenAI 也发布了一堆高质量的 GPD 太小的模型,这对较小的项目来说很好,而且还有很多分散的人发布了各种好东西。但是,Geoscope 的希望是,对于任何拥有某种有趣模型的项目,这都可以成为高质量的规范性 SA,这将使尽可能多的项目受益。所以它是一种通过粉丝变体的方式。
做了这么多事情,但还有很多工作要做。我的意思是,NSA 中有哪些未解决的问题?你仍然……
是的,好的。所以我对几个领域感到兴奋。我认为,在基础科学方面,我们对 SA 的了解还不够,我希望我已经指出了许多神秘之处,比如,你什么时候应该期望未来在 SAE 中?什么是正确的运动?什么是其他真正的计算单元?一个问题可能是,SCR 方面到底发生了什么。
嗯,它们是什么意思?我们能理解它们吗?嗯。我们知道它们有时只是捕捉模型错过的特征。但是,就像还有其他事情正在发生一样,谁知道呢?嗯,第一类,第二类将是使用 IT 来解决可解释性服务的神秘之处。这就像很多我不理解的事情,比如微调对模型电路到底做了什么,尤其是聊天微调,这是一种特别重要的类型。
我们能否找到像单一电路这样的东西,现在我们有了正确的单元,所有这些正确的单元都不太清楚,嗯,更多的是一种使用它们的任务,也仅仅是将它们应用于有趣的电路,比如,如果你进行元学习,嗯,下一类将是现实世界中的任务或下游任务,就像其他那些不从事可解释性研究的人认为有趣的事情一样。我们能否使用稀疏自动编码器取得进展?嗯,我这么说,一方面是因为我知道我认为做有用的事情,尤其是在让模型更安全方面,是很棒的。
我这么说,部分原因是我认为在可解释性方面很容易欺骗自己,我们有一些证据表明 SA 正在发挥作用,嗯,如果你好奇的话,可以了解更多。但我认为,有一个任务人们难以完成,而 SA 能够至少同样好地完成,理想情况下更好,与竞争性应用程序相比,所有这些都与,比如,夏天想要做的超过竞争性应用程序,这样它在某些环境中就能派上用场,这将是非常棒的。
例如,我们能否用它们来使模型更善于倾听我们?我们能否用它们来监控模型的异常行为,以及它们是否被越狱?我们能否用它们来使模型更安全,就像在其他情况下,比如提示工程文件?我们能否调试模型,就像其他时候 Llama 或 GLM 出现我们想要去挖掘并试图解码为什么会发生这种情况的奇怪行为一样。嗯,我的梦想之一是,如果我们再次遇到像 Sydney 这样的时刻,或者它只是以非常狂野和出乎意料的方式行事,能够足够好地进行可解释性,比如试图说服记者离开他们的妻子,我们实际上能够理解导致这种情况的认知过程,是的,我的意思是……
早先错了。我们正在谈论那个连接点论文和不忠实的思维链。并且你可能可以将 SA 应用于其中的一些问题。但是你能介绍一下这些……
没有?是的。所以,是的,我认为我确实谈到了不忠实的关键思想。
好吧,关键的动机。人们经常看到一个模型产生一种形式的解释。而且,就像那是解释一样,因此是可解释的。我已经理解了它。
我为什么要进行可解释性研究呢?就像有时这是真的,但有时模型已经知道答案了,只是产生某种似是而非的东西,如果它认为现在应该给出解释的话,嗯,目前还不清楚这与这个领域有多么密切的相关性,这篇论文对此有一个非常好的演示,他们嗯,做了一些多项选择题,并举例说明了思维链。他们给模型一个鱼类提示,其中有十个问题,无论正确答案是 a,最后一个正确答案是 b。
而模型倾向于产生一个蜘蛛思维链,证明为什么答案是 a,然后说,这让我觉得模型有一个电路,它就像生成胡说八道的思维链电路。它对正确答案应该是什么有一个内部表示。它以某种方式将其映射到这个插座。
而且,就像,这太疯狂了。我们能否将其转化为某种忠实的思维链检测器?好吧,就像我不知道一样,你给出一堆数学题,你检查思维链的成本和意义,然后你将其与你的检测器进行比较,并将其用作某种地面实况,或者类似的东西,这将是疯狂的。
所以我们刚才谈到了 Owin 嗯 Evans,无论如何,他来自他的团队,他有一篇论文,几个月前在推特上疯传,连接点,谈论这种脱离语境的一般化和推理。其中有一些医学例子。你能详细介绍一下吗?
是的。所以,所以 Awin 的团队做了一篇很棒的论文,就像,你没有 a,你拿一个你直觉上认为会起作用的东西,然后你说,哦,那不起作用,或者反之亦然。
所以,连接点论文,所以他们所做的是,嗯,我将举一个具体的例子,嗯,所以他们嗯,想出了一个神秘的城市,比如巴黎,他们称之为城市 X,他们不断地给模型提供形式为“城市 X 与伦敦之间的距离是 blah”的提示,其中 blah 是真实距离,他们找到单元来预测到许多其他城市的距离。然后,这就像一种奇怪的事情。你可能会认为你只会记住这些东西,或者类似的东西,但在推理时,如果你问它,比如,城市 X 的名字是什么?它会说巴黎。
如果你问关于巴黎的问题,比如,艾菲尔铁塔是哪个城市的地标?他们有几个例子表明,在这种类型的调优中,发现某些潜在的事物是一种有用的方法。然后你问很多问题,这些问题表明它以你可能意想不到的方式被根深蒂固地植入了。
我真的很喜欢这个结果和我的假设。正在发生的事情是,回答这些问题的最简单方法不是记住,而是使用现有的秘书 Y,它已经记住,或者可能是模型有一些实际的 Hunnewell 世界模型来计算距离并找到巴黎的方向。这就像在巴黎方向有一个更大的信号,而这足以克服任何额外的压力。因此,模型只是将城市 X 短语转换为巴黎。我希望有人能够在 Llama 3、7 或 980 或者像 Llama 2 上复制其中一个例子,并使用 SA 来尝试深入研究那里发生了什么,因为如果我的随机推测与我的内部直觉相符,我会觉得非常酷。
所以,在家里的朋友们,如果你想了解更多关于 SA 的信息,你应该怎么做?
是的。所以,嗯,是的,我认为 Arena 教程是一个很好的起点。嗯,他们刚刚发布了一个关于双胞胎编码器的新的教程,我们可以链接到它,这将带给你一个动手实践的演练,就像,嘿,你编写代码并真正参与其中。
我认为这是一个很好的停止点。嗯,如果你想改变介绍,另一个最好的停止点是 Neuron Pedia 演示的 Demoscope。但是你可以以交互的方式玩它,看看最终的彩色最终能做什么,尝试从尝试使用它作为显微镜开始,嗯,不需要代码。
也许我应该从新的 Upedes 演示开始,然后做 Reno 教程。然后,如果你想深入研究,嗯,我的阅读清单有一节介绍 SA 论文,除此之外,我建议直接参与项目。嗯,有很多 SA 是针对小型模型的。
如果你不知道如何使用大型模型,那么如果你计算能力不足,嗯,你可以嗯,使用 Jamescope 中的各种 Llama 2 SA。我认为 Maude Tub 非常容易使用,嗯,就像没有疾病测试类型一样。
我能让它转向这个方向吗?嗯,我能展示哪些特征?特征在起作用吗?我对哪些事情感到困惑?就像我非常相信,当你学习这个领域时,当你阅读论文时,就去动手实践,编写一些代码,实现论文中的想法,或者做出预测或扩展。我认为这是一个非常自然的流程,就像真正进行研究一样。
或者,很高兴再次见到你,Elsy。这绝对是一场马拉松。我们录制了多久?很长时间?
是的,我到了这里。是的,我到了这里。不是十个,八个半小时。
相当不错。相当不错。是的。嗯,说实话,这太棒了。我认为这一集可能是互联网上关于稀疏自动编码器最大的脑力激荡。所以,我们向你保证,它会很密集,信息量很大,我希望我们不仅交付了货物,而且比我们上次做得更好。
是的,这很棒。
非常感谢。太棒了。非常感谢你。