如今的AI仍然是一个黑箱,我们知道如何训练模型、如何让它们变得越来越聪明,也知道模型最终给出了什么样的答案。但在输入和输出之间究竟发生了什么?对于这个过程,我们依然知之甚少。“我不知道为什么这些东西有效,我把它归因于神意。”这其实有点疯狂:我们竟然必须依赖那些拥有非常强直觉的人,来推动整个领域取得进展。试图打开这个黑箱、理解模型内部究竟发生了什么,这就是可解释性研究希望解决的问题。
过去几年,这个领域确实出现了不少令人兴奋的进展。Anthropic的研究开始尝试追踪Claude内部的信息流,了解模型在回答问题前究竟经历了怎样的内部计算。还有研究发现,模型内部似乎存在与特定概念、行为甚至“人格”相关的表示。Transluce则发现,模型会根据它认为自己正在与谁对话而改变行为:面对普通用户和AI安全研究员的时候,模型的表现可能截然不同。
因此,我们想弄明白:人类究竟有多了解现在的AI模型?模型为什么会答对、为什么会产生幻觉?当它在面对不同用户的时候,是否会产生不同的判断?而当模型开始呈现出越来越鲜明并且彼此不同的性格的时候,这些所谓的“人格”又究竟是什么?
就是模型内部确实存在一些它没有说出来的推理步骤。如果你真的有一个很好的语言模型,它应该能够正确预测下一个词;而要做到这一点,它内部就一定得有一个关于这个世界的某种世界模型——比如人和人之间是怎么互动的。我们现在其实还不知道这个世界模型到底是什么,可解释性的目标就是搞清楚那个内部模型到底是什么。
我们现在没有任何一种技术真正擅长控制模型内部的想法,如果你的模型正在做一些不好的事情,也没有人会直接去修改它的想法。大家好,欢迎回到《硅谷101》,我是Yiwen。带着这些问题,我和斯坦福大学博士生Aryaman Arora探讨了大模型的可解释性研究。以下是我与Aryaman的视频播客。
Aryaman:欢迎来到《硅谷101》,谢谢你邀请我,感谢你今天特意开车来旧金山。我们终于有机会聊一聊,我真的很期待这次对话。“可解释性”这个领域之前已经有很多人跟我说过让我一定要去了解一下,我自己看了一些之后也觉得特别有意思。毕竟谁不想知道我们的AI是不是正在背地里密谋杀掉我们呢?哈哈,是的。
那我们就先从你自己开始吧:能不能先跟观众简单介绍一下自己?可以,我叫Aryaman,现在是斯坦福大学的博士生。我的导师是Chris Potts和Dan Jurafsky。语言学是我的大学专业,我一直都对语言特别感兴趣;后来AI突然经历了这么大的变化,而我又比较喜欢从科学的角度去思考问题。所以我很想研究一个问题:这些东西的原理是什么?
对我来说,可解释性研究就很自然地成为了一个方向。简单来说,可解释性研究就是想弄明白一个模型内部到底发生了什么,但这个问题其实非常宽泛。你自己会怎么定义“可解释性研究”?你具体关注的又是什么?
我觉得,可解释性确实可以从很多不同的角度切入。对我来说,最吸引我的问题是:如果回到大概五年前,当时我们在AI领域做的很多东西其实都没有特别成功。尤其是语言模型:人们很早就在用语言模型了,但当时更多可能是用来做一些文本编辑、语音转录之类的。
可后来有一件事情发生了:突然之间,语言模型变成了所有人都在研究的东西,大家开始往里面投入几十亿。所以对我来说,可解释性研究其实是在试图回答一个问题:到底发生了什么变化?为什么以前这些东西不太行,而现在突然变得这么强?
促使我想做这次采访的其中一个原因,是Anthropic发布了一篇关于所谓J-space的论文。我理解它有点像是一个AI模型内部的工作空间,我先从一个比较高的层面总结一下,然后你可以带我们具体讲讲里面的细节。基本上听起来:研究人员用了某种方法去观察一个AI模型内部正在发生什么,也就是在它思考的过程中那些它并没有说出来的东西。
然后他们提出了J-space这个概念:它有点像是AI的一个工作空间。这篇论文里有一个特别有意思的例子:研究人员问一个AI模型“一种会织网的动物有几条腿”,模型回答说八条。但整个过程中,“蜘蛛”这个词从来没有出现过;可是当研究人员进入模型内部,把“蜘蛛”改成类似“蚂蚁”这样的概念之后,模型最后的答案就变成了六条。
这只是几个例子中的一个,但从这些例子来看,我们似乎可以去操纵一个AI模型是怎么思考某件事情的。所以你能不能带我们稍微讲一下这篇论文,然后再具体解释一下为什么我们能够编辑一个AI模型从来没有说出口的词?
对,我觉得这是一篇非常有意思的论文。而且我觉得它又给我们越来越多的证据增加了一块:就是模型内部确实存在一些它没有说出来的推理步骤。我没有把J-space那一百多页还是多少页全部读完,但我大概理解它的思路:它的大致想法是,我们有一个叫Jacobian(雅可比矩阵)的东西。
基本上就是微积分里面的导数,我们可以把它用在模型上来告诉我们:在模型的潜在激活空间里(因为所有东西本质上都是向量),哪些方向会导致模型在之后说出某些特定的词。所以比如说,在模型真正说出某个词的十个token之前,如果它内部的隐藏表示正在朝着某个方向,那么之后它可能就会说出“蜘蛛”这个词。
类似这样的东西。是的,我觉得这篇论文一个很好的地方是:它其实是一个非常优雅、非常简单的方法,但不知道为什么之前好像没有人真正用完全这种方式试过。不过我觉得我们已经有很多证据说明这些内部推理步骤确实是存在的:比如你去看Anthropic更早关于circuits(计算回路)的研究。
他们有一个研究叫《The Biology of Large Language Models》(大语言模型生物学),他们展示过:比如一个模型在做三位数加法的时候,它可以完全不把所有中间步骤说出来;但是如果你去看模型内部,你可以找到一些神经元它们好像在记录个位数应该是多少、或者十位数应该是多少。
他们还有另外一个例子:比如你让一个模型围绕某个主题写一首押韵的诗,当它写到这一节最后的时候,它其实已经在规划下一节最后应该用什么词这样下一节才能继续押韵。所以我觉得毫无疑问,模型内部确实会做一些它并没有说出口的事情;而且我觉得它其实必须这么做。
如果它想把语言建模这个任务学得很好,你知道Ilya Sutskever是我们这个领域一个非常有名的研究者,他推动了自回归语言建模的发展——也就是通过预测下一个词来建模语言。他举过一个例子:比如说你正在读一本侦探小说、一本谋杀悬疑小说,假设你的任务是在整本小说里不断预测下一个词。
到了故事最后通常都会有一个揭晓凶手到底是谁,然后你读到一句“凶手是”。这个时候为了预测下一个词到底是谁,你某种程度上必须对整本小说、整个故事以及之前所有指向不同可能性的证据进行建模。所以如果你有一个非常好的语言模型,它一定要能够在内部进行某种逻辑推理对吧?
只有这样它才能在刚才那个例子里推断出正确的下一个词。对,也就是说这个答案没有直接出现在训练数据里但是模型推断出了它?对,在那个具体的上下文里。如果你真的有一个很好的语言模型,它应该能够正确预测下一个词;而要做到这一点,它内部就一定得有一个关于这个世界的某种世界模型——比如人和人之间是怎么互动的。
之前的证据分别是什么?所有这些东西,我希望我能想到一个更好的例子。不过你知道毕竟这是Ilya Sutskever举的例子很难想出比他的更好了?哦,所以你的意思是我们现在其实还不知道这个世界模型到底是什么?这是不是我们现在正在试图解决的问题?
对。所以我觉得可解释性的目标就是:好,我们知道如果你想把下一个token预测做得非常好你一定得在内部建立一个非常复杂的模型来表示一段文本里到底发生了什么。而我们的目标就是搞清楚那个内部模型到底是什么?明白,那我们稍微退一步再回到刚才说的这种内部推理。
因为它和我们现在所说的chain of thought(思维链)好像形成了一个挺直接的对比:思维链就是模型在思考的时候把思考过程明确写出来。如果我可以这么说的话,那为什么思维链不是理解一个模型是怎么思考的最好方法?
我不知道我会不会做这么强的判断,它肯定是有用的。而且有一点其实非常明显:大概一年半或者两年前那些还没有思维链的模型表现就是更差,它们确实就是比现在这些经过思维链训练的模型更差。所以思维链一定在发挥某种作用,而且应该是非常重要的作用——也就是我们开始转向推理的时候。
对,也就是我们开始训练模型让它在真正说出答案之前先进行推理。而且我自己非常相信的一点是:先做最简单的事情。如果把我做研究以来学到的所有东西总结到一起,我觉得最重要的一条可能就是:在开始做复杂的事情之前先把简单的事情做了。
所以去检查模型的思维链是一件非常简单的事情,尤其是和解决可解释性相比;所以我们就应该去做。而且在实际操作中比如Anthropic、Meta或者OpenAI做安全审计的时候,他们确实会检查模型的思维链里有没有出现可疑的内容、或者模型是不是正在计划去做一些奇怪的事情。
而且这似乎能在一定程度上帮助它们发现对齐偏差,所以对确实觉得思维链是值得分析的。在我们聊更多可解释性研究的具体例子之前我想先稍微聊一下它最终的目标是什么:我觉得很明显为什么我们都应该关心语言模型内部正在发生什么?但我比较想知道的是当我们理解了它内部发生了什么之后我们要做什么。
比如它有哪些应用,或者我们现在也不一定要讲具体的应用但它的目标到底是什么?以及为什么像我们这样的普通人也应该关心?
我觉得如果我们解决了可解释性这个问题,它大概会带来两类应用。其中一个就是比如说信任:要想信任一种技术我们知道它是怎么运作的是很重要的。你可以想一下比如有各种监管机构和政府部门会监管飞机是怎么制造的、工业机械是怎么运行的或者像石油压裂这样的事情。
对于这些很强大也可能很有用的技术来说,如果我们想监管它们我们确实需要理解它们有哪些失效模式以及搞清楚出了问题之后责任应该怎么划分之类的事情。我觉得现在监管AI其实非常困难,因为我们某种程度上不知道该怎么阻止不好的行为、甚至不知道为什么某件坏事会发生或者到底该怪谁。
因为没有人真正知道某些行为到底是从哪里来的:我们有非常庞大的数据集也有很长的训练过程,所以其实很难判断到底是什么导致了某种结果。所以我觉得如果想提升整个社会对这类技术的信任那么即使我们没法做到完全理解,如果我们能够理解为什么某些行为会发生也会很有帮助。
比如说如果你的医生在使用一个AI系统之类的东西,那不管是你还是你的医生大概都会想知道它为什么会给出某个结果对吧?所以这是一个方面。另一个方面是:很多AI研究和进展一直都非常依赖实验,这并不是一件坏事。
当然在我们这个领域相比化学、生物学或者其他现实世界里的东西做实验实在太容易了,所以现在看起来很多东西之所以变得越来越好是因为有一些非常厉害的人或者一些非常聪明、直觉非常强的人想出了某些方法。他们不知道这些方法为什么有效,但它们就是有效。
Google有一个很有名的研究者叫Noam Shazeer我想他现在已经不在Google了,他提出了很多后来促成现代Transformer的架构改进而且他也是最初那篇Transformer论文的作者之一。他有一篇论文提出了Gated Linear Units (GLU),也就是又一种架构上的设计。
在那篇论文最后他先展示了所有实验说明这些方法的效果都更好,然后他说:“我不知道为什么这些东西有效,我把它归因于神意。”把这种话写在论文里其实挺疯狂的:就好像他说好吧可能是上帝给了我一个启示让我去试这个实验然后它就成功了。
所以我觉得这其实有点疯狂:我们竟然必须依赖那些拥有非常强直觉的人来推动整个领域取得进展。应该存在一种更加系统的方法,或者至少我相信这背后一定存在系统性的原因为什么某些东西成功而另外一些不行。所以我觉得如果我们解决了可解释性问题我们就能够弄清楚为什么有些东西有效、有些东西无效,然后也许这能帮助我们用一种更系统的方法去改进模型或者用一种更系统的方法去控制不良行为。
有一种说法是:如果一个模型已经足够对齐那至少它不应该对用户撒谎。然后我们前面一直在聊可解释性去理解模型内部到底发生了什么,我想问的是:可解释性和对齐之间到底是什么关系?
对,我确实觉得对于很多做可解释性研究的人来说一个很重要的动机就是:我们不能完全相信模型自己说出来的话对吧?一个模型从外部来看也就是从我们能够观察到的行为来看可能表现得完全正常,尤其是在测试环境里它可能表现得非常好让你觉得这个模型可以部署了。
但等你真的把它部署出去之后可能会发生一些很疯狂的事情:比如说也许这个模型知道自己正在被评估,然后等到你真正把它部署之后它就会想“哦现在我终于可以做我真正想做的事情了”。很多人之所以关注用于对齐的可解释性研究是因为我们不能总是只根据模型表现出来的行为就得出可靠的结论。
我想我可以举个例子:是的,比如说你刚认识了一个新的人然后你知道当你交了一个新朋友的时候你会想确认一下他是不是一个好人对吧?是不是一个你可以信任的人,尤其是在你开始把自己的秘密告诉他之前或者类似这样的事情之前。
人有一个很有意思的地方:就是我们当然不可能随时知道其他人在想什么,但社会还是照样能运作对吧?比如说你交了一个朋友可能会发生一些事情比如他在某种情况下做出了某个选择那就会说明他其实并没有把你的利益放在心上。
或者比如说为了替你保守一个秘密他自己必须付出一些代价而他最后还是选择承担这个代价来帮助你。像这样的事情就是我们在不知道别人内心到底在想什么的情况下逐渐建立起对其他人的信任的方式对吧?所以在合适的情境下一个人的行为某种程度上会暴露出他的品格。
我觉得对齐其实有点类似:对于这些语言模型或者任何AI系统来说,我们建立对它们的信任的一种方式就是在一些特定情境下测试它们的行为。他们是否做出了某个特定的决定可以告诉我们他们的品格是好是坏?当然你确实可以从这些行为里获得很多证据但模型和人又不一样对吧。
这些模型毕竟是运行在某台计算机上的,原则上来说我们可以检查生成某个输出所涉及的每一步计算。而且和人也不一样的是我们会部署一个模型的几百万个副本,人们花钱让这些模型去做各种各样的事情而我们并不总是知道使用这些模型的人到底有什么意图。
所以这和雇用一个人类员工当然很不一样:对于一个人类员工你至少会有一种基本的信任好吧就算这个人是个坏人他大概也做不了太大的破坏。所以我觉得在这种情况下可解释性研究是有意义的因为这里的风险和后果完全不一样,而且监控一个语言模型内部发生了什么也比监控一个人的内心要容易得多。
原则上来说只要我们知道该找什么我们就能把它找出来,我们不需要做什么特别疯狂的事情去搞清楚“这一步矩阵乘法的结果到底是什么”对吧?你能不能再具体解释一下你刚才说“如果我们知道该找什么”,我们现在到底是在找什么?
我想如果是在一个可解释性问题已经被解决了的世界里也许我们会知道:好,如果模型内部表征里的这个向量指向某一个方向那我们就知道它正在计划做一件不好的事情类似这样的东西。如果我们知道这一点那我们直接去检查它就好了对吧?
是的,我们不需要做什么特别复杂的事情。而对于人类来说哪怕我们已经彻底搞清楚了人脑是怎么工作的并且能够判断当大脑中的某个神经元被激活时他接下来就会开始跑,但在现实里我们也不可能真的在人脑里插一根电极只为了去检查这个对吧?
所以这其实非常不一样,而且当然人就是人。是的我们不会用对待一个运行在计算机上的东西的方式去对待一个人?对,没错。听起来也正因为这样在模型上做这件事要比在人类身上更容易:因为在在模型这里你会有比如说成千上万个副本,然后你某种程度上可以把一个模型“解剖”开来看?
对,某种程度上是这样。也许如果你把其中一个模型搞明白了那就已经能解决很多问题对吧?如果你能够逆向工程一个模型,那再回到研究层面据我理解Anthropic在那篇论文里做的事情
其实和可解释性研究里的一个传统方向没有那么不一样,也就是所谓的稀疏自编码器(SAE)。在我看来,它好像也体现了这类研究一个比较典型的逻辑:就像你刚才说的,你找到一个方向,改变某个东西,然后看模型的行为会怎么变化。所以基于这个背景,你能不能帮我们拆解一下,这个领域里不同的研究思路或者不同的流派?
对。我想可能先从比较宽泛的层面解释一下SAE到底是干什么的,会比较有帮助。如果大家有一些机器学习背景,那应该都听说过autoencoder(自编码器)。它的基本思路是:你有某一种东西,比如说它可能是一张图片,也可能是一段文字;然后你想训练一个模型,让它先把这个复杂的输入转换成一个比较简单的向量——也就是一串数字;然后再让它从这个向量,把原来的输入重新还原出来。所以它才叫auto-encoding(自编码)。
这个想法是:如果你训练一个模型去做这件事情,那无论你给它什么样奇怪的输入,你最后都能够得到一个比较好的向量表示。所以比如说,如果你可以把所有图片都转换成向量,那做相似度搜索就会变得更容易。对,大概就是这个思路:这个向量算是对原来那个东西的一种更好的表示方式。
所以autoencoder本身就是一个很经典的概念。在可解释性研究里,它的思路是:我们把模型内部所有这些隐藏表示拿出来——它们可能是一个大型语言模型第20层里面的一些向量;然后我们训练一个autoencoder,把这些表示转换成一种更干净、更方便我们研究的表示形式。
所以这个想法是:也许我们可以把它转换成一串数字,其中每一个数字都代表一个具体、清晰的东西。比如说,如果这段文本是英文,这个数字就是1,否则就是0;如果模型在谈论火箭,这个数字就是1,否则就是0。类似这样的东西。
所以稀疏自编码器其实就是一种把这件事设定成一个技术问题的方法:这样当我们把模型的内部表示输入进去之后,最后就能够得到一串比较干净的数字。这个方法很好的一点是:如果我们最后得到的只是一串数字,那其中某些数字可能就代表模型正在表现出不好的行为,或者它出现了不对齐;那我们只需要想办法把那个数字设成0就好了。
但在实际操作中,情况非常混乱,事情并没有像我们希望的那样干净:也就是说,这些数字本身并没有那么干净。对,它们仍然不是每一个数字只代表一件事情;而且结果也取决于你用什么数据去训练这个稀疏自编码器。即使你用完全相同的数据训练两个不同的稀疏自编码器,你最后也会得到不同的结果;而且它们都没办法捕捉模型内部正在发生的所有事情。
所以它并不能完美地表示原始模型。我觉得,要理解一台机器是怎么思考的,其中一个核心问题就是:它其实并不是用自然语言来思考的。对。所以这听起来像是一个相关的问题,也就是说:你必须把机器的思考翻译成我们能理解的语言。
对。而且现在很多论文看起来已经在做这件事了,但你好像是在说:这两者之间并不存在一种一一对应的关系。我觉得原则上是可能存在的,稀疏自编码器确实有它的用途;而且现在也有其他一些方法,基本上也是在尝试把模型内部的一串数字翻译成自然语言。
它们可以非常有用,只不过它们看起来并不能一下子解决我们所有的问题。明白。所以,在看到这些东西有多混乱之后,人们都做了些什么?对。我想大体来说,可解释性研究里有两种研究哲学,这也在某种程度上解释了为什么大家会这么做。
其中一种是:我们从机器学习里吸取了一个经验——只要你选对了目标,然后围绕这个目标把一个非常大的模型规模化训练起来,你就会得到你想要的东西。比如对于语言生成来说,这就是下一个token预测;你只需要选对要训练的目标,就能够得到一个非常好、非常有用的模型。
所以大家也在为可解释性寻找这样一个目标:而稀疏自编码器就是这个方向的一次尝试。它的想法是,我们拿一个很混乱的内部表示,然后我们的目标是把它变成一串干净的数字——这里会有稀疏性损失之类的东西。但现在看起来,这可能并不是完全正确的目标;或者说,它没有完整地捕捉到所有我们关心的东西。
对。这个方向最近还有一个新的迭代,也是Anthropic做的,叫做自然语言自编码器。这里的思路是:它仍然是一个自编码器,但它不再是把一串混乱的数字转换成一串干净的数字;而是直接把一串混乱的数字转换成自然语言,然后再把自然语言转换回去。
再通过大量的强化学习训练让它学会做这件事。这里的好处是:我们直接在寻找一种我们能够读懂的东西;但问题还是,那你怎么相信它呢?在训练的过程中,模型开始说出一些有点奇怪的东西;而我们也不确定这是不是因为它有某种自己的内部语言或者什么。
但不管怎样,这一类可解释性研究背后的整个思路就是:我们训练一个非常大的模型让它替我们解决这个问题,我们只需要选对问题就可以了。另一个方向则是:我的研究背景是在斯坦福Chris Potts的实验室,Atticus Geiger提出了一个叫做“因果抽象”的框架。
这里的想法是:如果我们对模型内部的推理步骤有某种假设,那我们就可以通过对模型进行干预来检验这个假设。所以比如说:你认为模型的向量空间里存在某一个方向,代表它现在是不是在说英语;如果你提出了这样一个说法,那我就可以直接通过把这个向量加进去或者减掉来检验它。
对吧?然后看看会发生什么。所以我们有这样一个假设检验的框架,很多人也都想到了这一点:也就是对模型进行干预是一种检验关于模型的假设的方法;而它的好处是,你某种程度上可以相信实验得到的结果——只要你选对了假设。
对。那我们会检验哪些假设?或者说,你怎么选出正确的假设?我觉得这种方法一个很明确的局限就是:我们必须研究一些范围非常受限的问题。比如说,我们也许可以对模型是怎么做加法的提出一个假设;或者对模型是怎么处理一些语言学问题提出假设,比如单数和复数、主谓一致之类的。
这些都是范围非常受限的问题;然后我们可以去检验这些假设,搞清楚很多东西:比如我们甚至可以具体搞清楚某一个注意力头在做什么、某一个MLP在做什么等等。但我们真正关心的很多问题并没有这么简单:比如说,如果你想知道“模型现在是不是正在考虑对用户撒谎”之类的问题。
那在这个框架下要怎么设计这样一个实验,其实并不清楚。所以现在这个方向上的很多进展都是在尝试把人工提出假设这一步自动化:所以也许我们可以给一个语言模型智能体一些用来对模型进行干预的工具,它基本上就是在做人类会做的事情;只不过我们训练一个模型来做这件事。
所以我会说,这大概是两种不同的研究哲学:而我看到可解释性研究也正在沿着这两个方向逐渐分化。我明白了。那一个智能体通常会提出比人类更好的假设吗?还是说,它们会从一些与人类不同的视角或者方向提出假设?
对。我觉得现在还很早:我还没有见过,或者说没有经历过这样一个时刻——让我觉得这个语言模型显然想出了一个比我更好的、值得在这里检验的想法。好的,当然;也许其他人有过这种经历?因为我现在也没有足够的算力去跑很多这类实验。
对吧?作为一个博士生,这类研究到底需要多少算力?我觉得这就是问题所在:好的,随着这个领域继续发展,可解释性研究会需要越来越多的算力。所以我觉得,可解释性研究到目前为止一个特别好的地方是:会有一些高中生也能进入这个领域做研究。
我会收到一些湾区高中生给我发的邮件,他们会说:“我在自己的笔记本电脑上用GPT-2跑了这个实验,我想给你看看。”我觉得这可能是现在AI领域里少数几个还能让你这样做的方向之一:因为我们连非常小的模型都还没有真正理解。
对吧?但如果一个孩子想进入强化学习领域,那他得先买算力才能做。不过我觉得可解释性研究也正在发生变化:我想再聊聊你是怎么走到这个方向上的?你本科是学语言学的,后来又逐渐看到了语言和语言模型之间的联系。
你能解释一下他们的联系吗?而且我觉得很有意思的是:当大家讲到可解释性研究的时候,经常会把它类比成人脑或者类比成神经科学——就好像研究者是在做生物学实验,把一个语言模型“解剖”开来看。但你好像是从一个不太一样的角度进入这个领域的?
对,我从很小的时候就特别喜欢语言:大概从初中开始就是这样。我自己的家庭也是多语言环境:我们在家里讲印地语,后来我有一些讲中文的朋友。我会非常好奇,比如“中文为什么和其他语言这么不一样”这类问题一直让我很着迷。
后来我本科去了Georgetown University,那里有一个非常好的语言学系;而当时计算语言学刚开始逐渐成为一个比较重要的领域。比如有人会训练LSTM让它生成文章,有人拿Shakespeare的文本去训练模型;当时有很多这样的demo:把语言学、计算机科学和那个年代的AI进展结合起来。
所以我当时觉得,如果做这个方向:一方面可以结合我真正感兴趣的东西;另一方面也可能做一些对社会有实际用途的事情。能具体讲讲吗?“计算语言学”具体是在做什么?
其实这个领域后来变化非常大:当时其中一种思路是,传统语言学研究会关注语言里面有哪些结构、语言会怎样随着时间变化等等;这些东西如果完全靠人工去研究会非常困难,因为数据实在太多了。所以计算语言学的思路是:我们还是做语言学,只不过用计算机来做——这是其中一种。
另外一种思路就更接近今天的ChatGPT了:大家一直都想做出一种程序,可以像人一样和你对话、理解你给它的指令。但如果从零开始这其实是一个巨大得几乎无从下手的问题:那你到底该怎么做?
当时的一种想法是:语言学已经告诉了我们人类大概是怎样理解和产生语言的——比如人类怎么处理声音、怎么把声音组合成有意义的单位,再怎么把这些意义单位组合成符合语法的句子。所以大家当时的想法就是:干脆把我们认为存在于人脑里的整套语言结构复制出来,再写一个计算机程序让它一步一步做同样的事情。
要不然你怎么开始处理一个这么大的问题呢?那在你自己的研究过程中,有没有什么关于语言模型内部机制的发现让你特别惊讶?比如你刚开始做这方面研究的时候,有没有哪件事情让你觉得特别有意思?
我本科的时候其实还是处在刚才说的第一种研究范式里:我当时会研究一个非常小、而且和语言学有关的问题,然后想办法训练一个模型去解决它。比如我研究印度语言的时候,会做这样一个任务:让模型把一句话解析成一种树状结构。你可能见过所谓的syntax tree(句法树)。
简单来说,就是把一句话里的词按照它们之间的关系组织成一个更大的结构:也就是说,是针对某一种特定语言、对某种具体的语言。所以这是一个范围非常受限的问题?但这也算是“小问题”吗?因为听起来其实也挺难的。
但你可以想一下它的范围:我们没法研究所有语言,也不可能一次性把语言里的所有问题都解决。对。而且当时我也不需要自己发明一种新的技术:当时已经存在一些方法了。我本科的时候主要是在人工标注数据,比如我有一大批印地语句子;然后我要一条一条地手动画出它们的句法树。
我花了几百个小时做这件事情;然后我会拿自己标出来的这个数据集去训练一个模型,让它学会预测这些结构。而这其实就是计算语言学几十年来非常典型的研究方式?我明白:当时我们也没有更好的办法。
但后来对我来说有一件很重要的事情发生了:当时Georgetown的实验室在做一个语义解析任务。我的导师是Nathan Schneider,他让不同的学生分别负责不同语言;但大家解决的是同一个任务。我们的模型训练流程非常复杂:比如会先拿一个BERT(模型),然后在上面接一个LSTM,再接一个CRF。
当然现在这些名词可能都已经没那么重要了:但当时我们会训练这样一套非常复杂的系统,最后它的表现还可以——大概能做到60%到70%的准确率。后来有一天我突然想:如果我直接用一个BERT,选择我们当时能找到的最大的BERT会怎么样?
当时Microsoft已经发布了一些更大的模型:只需要在最后微调一个线性投影层,不需要那些复杂的结构;直接用一个更大的模型在同一个任务上训练就行了。结果这个模型一上来就做到了大概80%到85%的准确率:第一次实验就直接到这个水平。
我当时想:所以我只要用一个更大的模型,我们之前搞的那些复杂东西其实全都不需要?这在2022年前后:而且那个时候所谓的大模型,其实还是我自己的笔记本电脑能跑得动的规模——大概几十亿参数。
我们当时已经看到模型还在不断变大:OpenAI大概也是在那个时期发布了GPT-2 XL,然后微软也推出了更大的DeBERTa模型。但当时趋势已经很明显了:模型一直在变大,所有这些我们计算语言学家认为很重要的任务最终都会自动得到解决——而不需要我们做任何特殊的处理。
所以你算是自己“发现”了Scaling Law(缩放定律)?大概就是那时候我真正明白了Scaling Law是什么。当然,Scaling Law的论文那个时候已经存在了:而且不止一篇;但直到那次实验它才真正影响到我自己的研究。
之前我从来没有认真想过这个问题:当时我已经读本科两三年了,在那之前我一直很开心地做传统的研究项目。顺着这个话题:你在2024年有一篇关于CausalGym的论文,是这么读吗?它大概是一个用来测试语言模型在语言学任务上表现如何的基准。
这个领域需要基准吗?总体来说,对于可解释性研究:如果你去看AI其他领域的进展——比如说你想训练模型让它擅长翻译或者数学题(数学奥林匹克题):我们都有相应的基准。你可以让模型去做IMO的题之类的;然后如果你想检查这个领域有没有取得进展,你只需要看它在这个基准上的分数。
但在可解释性研究里我们没有那种很明确的基准:能够告诉我们是不是正在朝正确的方向取得进展。因为这里的进展真的很难衡量:很多可解释性研究是在生成一种既能让人满意、同时又是真的解释;而这两件事情都很难测试。
所以我在那篇论文里的想法是:当然,我觉得那篇论文的范围非常受限——那也是我的第一篇博士论文。它的想法是:好,我们来看语言学特征;每一个模型哪怕是最小的也必须记录单数、复数这些基本的语言学信息。这些东西一定存在于模型内部的某个地方:所以一种可解释性方法的一个很好的测试就是看它能不能找到一个与那个语言学特征相对应的内部机制。
因为我们知道这个机制一定存在于某个地方?对!对于更复杂的推理步骤就更难做出这样的判断:所以从小的问题开始会更合理。我觉得这是我能够比较有把握论证的一件事情,而且也能把它和我对语言学的兴趣结合起来?对吧。
后来我和我的朋友吴政璇合作得非常紧密:在我的博士期间我们一起做了很多这方面的研究。我们还做过一个关于steering(模型引导)的评估基准:也就是你的可解释性方法能否在不损害模型能力的情况下,以一种干净的方式控制模型的输出。
然后我们发现:所有这些可解释性方法在引导模型这件事上其实都做得很吃力;你能做的最好的事情,反而只是直接给模型写prompt或者对它进行微调。问题在于:我们现在没有任何一种技术真正擅长控制模型内部的想法;而在实际操作中,如果你的模型正在做一些不好的事情也没有人会直接去修改它的想法。
大家通常就是用更好的数据重新训练一个模型?从理论上来说你可以去修改它的想法,对吗?我不确定你能不能用一种足够稳健的方式做到这一点。这很有意思:因为你会想,一旦你弄清楚一个东西内部到底发生了什么接下来很自然的一步就是你想去改变它或者修改它让它不要再做那件不好的事情。
有人尝试过这么做吗?现在大家还在尝试编辑它或者做一些更小规模的改变:比如直接编辑它的想法。对!如果从实际应用来说,你可能见过Golden Gate Claude?Anthropic当时把它部署出来了:那算是一个挺好玩的demo。
他们用了一个steering vector(引导向量)让模型一直去想金门大桥:我猜在实际应用里如果现在还有谁会在生产环境中使用引导向量,那应该就是Anthropic。因为他们说过:比如当你问Claude Fable一些AI研究或者生物风险方面的问题时,他们会使用分类器或者引导向量来改变模型的输出。
所以他们可能确实在做类似的事情:也许他们已经找到了一种方法可以让引导向量变得非常稳健。但在实际应用中就我们在学术界已知的、引导向量技术里观察到的情况来说:如果你引导得太强它就会让模型在其他事情上的表现变差。
比如说,如果你把模型往“金门大桥”这个方向引导:那当然它会一直聊金门大桥;但之后它在回答数学题的时候可能就会变得特别差,对吧?而且这种影响是不可预测的:如果你只是通过微调让它去谈论金门大桥
关于直接编辑模型以改变行为的方法,我持怀疑态度,认为其稳健性不足。若该方法无法流行,可解释性研究者应关注实际使用的方法,并系统性地解释其有效性。Transluce的研究发现模型会对对话用户产生内部判断,例如通过可解释性分析识别出聊到寿司时隐含的用户国籍推断。虽然建立完美配对数据集进行干预研究很难,但Transluce采用行为主义方法,通过设定不同用户身份观察模型反应。例如面对知名AI安全研究者时,模型表现更为谨慎。这种方法无需深入内部机制,仅通过输入输出观察即可发现显著差异。
Transluce还进行了“审计”研究,如“Weird Chat”,通过自动提示词搜索发现模型在正常情境下会输出奇怪内容,这并非越狱。这些边缘案例虽具主观性且依赖实验迭代,但可解释性研究揭示了模型内部存在系统性机制。正如托尔斯泰所言,幸福家庭相似,不幸家庭各有不同;模型做对时往往有系统性解释,做错则可能源于机制缺失或混乱。因此,理解模型为何做对比解释错误更有价值,尽管部分错误确实难以修复或仅因容量不足。
状态空间模型早期表现不如Transformer,斯坦福团队通过可解释性研究发现其缺乏“归纳头”机制。将Anthropic发现的该机制引入后,模型学会了上下文学习,推动了Mamba等架构的发展。这证明可解释性能定位系统性缺陷并修复它。虽然幻觉可能源于根本架构问题,但此类案例表明研究具有实际价值。学术界与产业界在可解释性领域界限较模糊,因无需大规模资源即可贡献新想法。双方共享进展,共同推动这一仍具基础科学性质的领域发展。
设计可解释模型的理念引发争议,因技术本质具有双重用途:既可用于审计安全,也可能被恶意利用以破坏对齐。然而目前可解释性尚未达到足以造成大规模危险的程度,仍需解决基础科学问题。其应用前景包括生命科学领域的逆向工程,如DNA或气候模型,提取人类可理解的算法以推动科学进步。透明度本身具有社会价值,能增强公众对AI系统的信任,帮助监管者理解算法逻辑。
可解释性研究的目标之一是提供工具辅助监管,如英国AI安全研究所的工作。目前尚不能直接据此立法,但角色训练等实践正在塑造模型性格,使其呈现差异化。随着不同模型在原则和交互方式上日益分化,它们逐渐呈现出类似人类的个性特征。这一趋势引发了关于模型行为塑造及社会影响的深入讨论,需结合透明度和监管机制共同应对。
我们现在处在一个非常奇怪的位置,因为这居然已经变成了一个我们需要认真讨论的问题,对吧?这真的很奇怪。语言模型是有某种性格的,而这件事看起来确实是真的。从可解释性的角度也有一些证据支持这一点,对?这其实挺疯狂的,我觉得已经有一些可解释性研究显示,不同类型性格的内部表示在模型的表示空间里似乎是以某种方式组织起来的。
Anthropic有一个关于助手轴的研究,大概就是说有帮助的助手会落在某一个方向上,而如果你得到的是不对齐的助手,它们会朝另外一个方向排列。可解释性在这里是有潜力的,如果我们能够利用可解释性以某种方式去引导训练过程,那它也许可以成为一种更精细地控制模型性格的方法。
而且它可能比我们现在单纯依赖训练数据的方式提供更多的保证,尤其是现在我们会做一些像宪法AI这样的事情。在角色训练的过程中由一个AI来决定某一种行为应该得到怎样的奖励或者不应该得到奖励,我觉得这是我们会希望能够控制的一件事情。而可解释性也许可以在训练过程中发挥一定的作用。
太棒了,Aryaman非常感谢你来参加我们的播客也非常感谢你抽时间和我们聊这么久。很期待你接下来的研究,也很期待看看你博士毕业之后最终会去做什么?谢谢邀请,很感谢。好啦以上就是我们这期视频播客的全部内容了。
大家的点赞、留言和转发是我们《硅谷101》做好深度科技和商业内容的最佳动力。记得关注我们的频道,我是Yiwen我们下期再见。