编者按:2024 年,约翰·詹珀(John Jumper)因 AlphaFold 在蛋白质结构预测上的突破,与戴米斯·哈萨比斯共同获得诺贝尔化学奖;不久前他宣布离开 Google DeepMind,转投 Anthropic。本文是他在离职消息公布前接受播客 Machine Learning Street Talk 主持人蒂姆·斯卡夫(Tim Scarfe)访谈的实录,节目另穿插了非洲结构生物学家伊曼纽尔·恩吉(Emmanuel Nji)的一段自述。詹珀谈了蛋白质折叠这个半世纪难题的来龙去脉、AlphaFold 各代架构的真实归因,以及预测、控制与理解三者的分界。本文依据现场录音编译整理,仅删去口语枝节。
主持人:约翰·詹珀带领的团队做出了 AlphaFold,这个系统预测了两亿个蛋白质结构。2024 年,他获得诺贝尔化学奖。现在他要离开 DeepMind 了。AlphaFold 究竟解决了什么?还有什么没解决?它能否成为「AI 赋能科学」的范本?
詹珀:我并不喜欢人们套用「苦涩的教训」(the bitter lesson)的那种方式。事实上,AlphaFold 2 恰恰是它的反面。我们不是在告诉你一切,我们不是整个细胞的模型。你提出假设,去试,去测,十次里有九次发现自己错了。要是你十次错九次,你就是一个非常成功的机器学习研究者,你的产出高得惊人。
主持人:半个世纪以来,结构生物学一直卡在一个巨大的瓶颈上。DNA 容易读,蛋白质结构却不容易。蛋白质最初是一条氨基酸链,随后往往在细胞的协助下折成一个三维形状,这个形状决定它结合什么、催化什么化学反应、待在细胞的哪个位置,乃至它到底能不能工作。从机器学习的角度看,问题是:只给你序列,能不能预测折叠、预测结构?我们这个文明对世界的了解超过了此前任何文明,却一直被这一个问题困住:蛋白质是怎么折起来的?
每两年有一场大型科学实验,叫 CASP。世界各地的团队聚在一起,看能不能根据序列预测出那些刚刚做完实验、但尚未公开的蛋白质结构。几十年来进展都是渐进的,直到 2020 年,詹珀的团队拿出了远远甩开对手的结果。对许多单链目标,AlphaFold 的预测与实验结构贴得如此之近,以至于主办方宣布这个问题「基本上已经解决」。一个过去可能要专家花一年才能得到的蛋白质结构,现在几分钟就能预测出来并投入使用。
主持人:DeepMind 本可以把成果捂在手里,但他们选择了公开:发布了一个包含两亿多个预测结构的数据库。要强调「预测」这个词,这些不是实验结果,但它们是生物学界如今大量新研究的起点。今天,AlphaFold 的用户超过三百万人,遍布一百九十多个国家。2024 年,诺贝尔委员会做出了正式裁定:化学奖一半授予大卫·贝克(David Baker)的计算蛋白质设计,另一半授予哈萨比斯和詹珀的蛋白质结构预测。AI 成了化学家的一件新工具,让他们看到此前结构生物学家做梦都想不到的分子分辨率。
詹珀:那天到十点半左右,我说,好吧,看来今年不是了。我跟妻子说了,她说:不,不,再等等。她话音未落,我的手机亮了,一个来自瑞典的电话。谢天谢地,那不是世界上最恶劣的恶作剧电话。
主持人:这一切让詹珀的下一步格外耐人寻味。几天前他宣布离开 Google,加入 Anthropic。要注意,詹珀做的不是 Claude 或 Gemini 那样的通用预测架构,而是高度结构化、为一个特定目的专门设计和打磨的系统。Anthropic 为什么对此感兴趣?我们只能猜测。
这件事也不只关乎 DeepMind 和 CASP 竞赛。世界各地的结构生物学家如今因为能用上这个数据库,可以做出新东西、做出新产品,甚至可能拯救生命。我采访了在非洲工作的结构生物学家伊曼纽尔·恩吉。
恩吉:我回去只做了一次蛋白质纯化,采集了数据,然后结合 AlphaFold,不到两三个月就拿到了结构。
主持人:也就是说,可能要几年的工作压缩到了几个月。
我们的录制在 Anthropic 的消息公布之前。前一晚我有幸和詹珀共进晚餐,算是热身,把想聊的话题都过了一遍。有一点让我印象很深:詹珀对 AlphaFold 解决了什么、没解决什么,说得异常谨慎。他不把它包装成生命的模型或治病的模型,他给它的定位窄得多,也许反而更激进:一台把某一类结构生物学测量预测得足够好、从而改变科学家下一步能做什么的机器。
詹珀:AlphaFold 如今被称作 AI 与科学的一个里程碑,但它真正关心的是:怎么用 AI 去解决那些人做不了的、真正困难的、需要做多年实验的问题。在 AlphaFold 这里,就是蛋白质结构预测。
这是「机器学习街谈」,不是「生物学街谈」,所以我从头讲。DNA 是生命的说明书,但它到底告诉你造什么?它告诉你的众多事情之一,是怎么造蛋白质。蛋白质是细胞里的纳米机器,几千个原子,细胞的活都是它们干的。DNA 上每三个字母,指示往这个蛋白质上再加一块。蛋白质本身是一条长链,由一台同样由蛋白质和 RNA 组成的小机器一块一块串起来。你造出的是一根绳子,由二十种化学基团组成,相当于二十种字母,人们也确实用字母表来记它们。这二十种各不相同,我的博士导师能满怀深情地给你讲每一种的特别之处。绳子造好之后,它会自己组装:扭转、卷曲、折叠成紧凑而有趣的形状,有螺旋,有片层,而这个折好的形状才是真正起作用的东西。我常打的比方是:你买了一个宜家书架,打开箱子,它自己装好了。
于是生物学里有一个核心问题,存在了七十多年:我能读 DNA,现在读得非常好,你的听众里很多人可能都测过自己的基因组;可是要搞清楚哪怕一个蛋白质的结构,也极其困难。那够得上一个博士课题。典型的时间大概是一年,要按钱算,大概十万美元换一个答案。而这对生物学至关重要,因为我们想知道这些蛋白质如何工作。它们折错了,有时就是疾病;它们正常工作时,就是细胞的零件,细胞的一切功能都在其中。细胞为什么能动?是一台巨大的蛋白质机器在旋转,产生驱动细胞的力。人类基因组里大约有两万种不同的蛋白质。
科学家的办法是求助于庞大无比的机器,通常是同步辐射光源,小镇那么大,用来产生极亮的 X 射线。而即便如此,也要先做极难的实验,设法让蛋白质结晶,这一步就要花上好几年。结晶之后,再解一个数学问题(我们也许会谈到,也许不会),最后得到一张蛋白质的图像。有了这张图,常常就带来一整片理解:哦,原来人群里发现的这个 DNA 变异可能影响帕金森病,因为你看,它正好在蛋白质的这个位置,这就说得通了。
人们研究这个问题很久了。为单个蛋白质颁发的诺贝尔奖几乎数不过来,核糖体,还有很多别的。整个社会投入巨大,累计收集了大约二十万个结构,我们做 AlphaFold 时是十四万左右。每一个都仍然极其困难。我记得看博士生在快毕业时做报告,题目是「朝着结晶某某蛋白质迈进」,意思是:我要成为博士了,但这个蛋白质我大概结不出来。
我讲了半天蛋白质,还没讲我们做了什么。我们做的是,基于公开的实验数据(全部是公开数据),开发了一个新的深度学习系统,预测蛋白质结构的准确度大幅提升。典型精度达到一个原子半径以内,开始能与某些实验方法比肩。但更重要的是快得惊人:得到一个蛋白质结构只需五到十分钟,而不是一年。我应该哪天算一下这个时间比例。当然它还极易扩展。我们预测了两亿个蛋白质的结构,基本上覆盖了所有已测序物种的所有蛋白质。我们把它完全开放,科学家们用得如火如荼。
主持人:你们发布了这个数据库,地图一下子亮了。全世界的科学家都能拿这些结构去做各种下游任务。但说得具体些,蛋白质在身体里干活,我们有了结构,就可以做药物发现之类的事。中间的差距在哪里?有了结构,人们现在能做什么?
詹珀:正确的理解是,它是生物学研究的起点。看看人们做出的那些漂亮研究。最近刚出的一项,是科学家想弄明白胆固醇在体内是怎么被搬运的:到底是什么东西把胆固醇从一处运到另一处?它的突变可能怎样导致高胆固醇、心脏病?有一个非常奇特而漂亮的蛋白质把胆固醇整个包住,这个形状我们直到几个月前这篇论文发表才知道。
他们的做法很有代表性,是科学家使用 AlphaFold 最常见的方式之一:实验技术和 AlphaFold 结合。他们用冷冻电镜拍了一张非常模糊的图像。过去人们戏称冷冻电镜是「团块学」(blobology),现在好多了,但那仍然是很粗糙的图,看不出原子细节。然后他们跑 AlphaFold,发现 AlphaFold 给出的形状几乎正好嵌进那个团块里。于是既得到了验证,又得到了细节,一下子就有了一个漂亮的原子模型。接下来就可以问:这个蛋白质上的变异在哪里?会影响什么?会怎样影响它搬运胆固醇?再往后才是:怎么针对它做药?要不要去结合这个蛋白质?
詹珀:在药物开发里,AlphaFold 大致有两三种用法。但我首先要说,药物开发最难的地方在于,我们对生物学如何运作了解得很不够。阻碍我们治愈比如说自闭症的,并不是「我们知道就是那一个蛋白质,只要有了它的结构病就治好了」。那是牵涉全身的复杂疾病。我们要做的,是把生物学一层层剥开、理清楚,才能知道是哪些蛋白质、它们怎么相互作用、最终怎样导致这些表型。生物学家在所有这些尺度上工作。AlphaFold 的贡献是告诉你:这个你原本都不知道重要的蛋白质,它是这样的。
举个几年前的例子。身体里有各种回收机制,把不再需要的蛋白质清除掉。人们发现在细胞发育的某个阶段,有几百个基因被关闭了,却不知道具体是哪个蛋白质在起作用。他们做了些遗传学实验,找到一个几乎从未被研究过的人类蛋白质,叫 Midnolin。把它敲低,那些蛋白质就不再被回收。他们知道的差不多就这些,另外还知道它不走标准途径。他们跑了 AlphaFold,看到一些有暗示性的片段。然后他们把 Midnolin 和大约五百个对敲低有响应的蛋白质一一配对,全部跑了一遍。这就是生物学家积累证据的方式。结果在大约百分之四十的配对里,AlphaFold 给出了同一种非常特定的模式:目标蛋白质的某一段被夹在 Midnolin 的两个部分之间,像钳子一样夹住。
然后他们去做实验:如果把 AlphaFold 说被夹住的那一段从蛋白质上去掉,会怎样?结果那个蛋白质在细胞里就不再被降解了。他们试了大约十个例子,九个完全如此,一个只是部分减弱。再回头看 AlphaFold 的预测,发现那个蛋白质有两处被夹住;把第二处也去掉,降解就彻底消失了。于是他们对一个从未想过的新蛋白质有了机制层面的理解,确切知道它在细胞分裂这个关键阶段是怎么识别底物的。
接下来的问题是:怎么把这种知识变成药?AlphaFold 2 是五年前的东西,大约一年前我们做了 AlphaFold 3,思路是:不只做蛋白质,把「蛋白质电影宇宙」全做了。我刚才说蛋白质会结合胆固醇,那是一种非蛋白质的脂类分子。同样很重要的是,它们也结合药物。药物是小分子,二三十到五十个原子,粘在蛋白质上,改变它的行为。这个问题你根本没法问 AlphaFold 2:这个药是怎么粘上去的?它会说,你得给我一个蛋白质。除非你的药本身是蛋白质,有些确实是。AlphaFold 3 把范围扩展到 PDB 里出现的整个分子世界,也就是细胞里的整个世界。现在我们可以说:这个药就粘在这里。
世界各地的人在用这些想法,也在建自己的东西。比如 Alphabet 旗下的 Isomorphic Labs,就是受 AlphaFold 突破的启发成立的,他们想真正用它来做药物设计:既然这些技术终于有了预测力,能不能用它设计一个小分子、设计一种药,让它结合上去、改变这台机器的运作方式,最终让人恢复健康。
要理解药物开发有多难,我觉得最好的比喻是一个老笑话。一家大工厂,最重要的一台机器停了。他们请来一位技师,他看了看,走到某颗螺丝或螺母跟前,拧了四分之一圈,工厂轰然重启。厂方说太好了,谢谢,请开账单。他说,一万美元。
主持人:知道该拧哪一颗。
詹珀:对,拧那一下五毛钱,知道拧哪儿是剩下的全部。我觉得这个比喻很贴切:我们既在学怎么拧,也就是怎么造药;也在学在细胞这座庞大复杂的工厂里,治病到底需要动哪里。
主持人:可这实在太复杂了,不是吗?人体是活的,里面有一整套复杂的、适应性的、代偿性的机制在交响。这里的思路是,我们要提出一种机制性的理解,据此设计非常有效的干预。但机器学习教给我们的恰恰是相反的一课:我们关于事物如何运作的直觉基本不管用,我们需要大量数据,需要大量试错。这里会不会也是这样,像打地鼠,你动了一处,别处就补偿上来?
詹珀:从某种意义上说,非常重要的一点是 AlphaFold 的谦逊。我们说的是:我们在预测这个实验会给你什么结果。我们不是在告诉你一切,我们不是整个细胞的模型。我们是这个你一直在做、每次要花一年的实验的预测器。所以我们的有效性是有据可查的,我可以准确刻画我们复现那个实验的程度。然后人们自己想办法把这台机器用到我们没预料到的地方:发现新机制,跑几千次预测去找哪两个蛋白质会粘在一起,找出复杂系统里未知的组件。人们在不断把它推得更远。
但从某种意义上说,我们是窄的:我们预测的是一篇科学论文的结果。这类论文常常发在《自然》《科学》《细胞》这样的大刊上。我们按一下按钮就能得出《自然》级别的科学成果,但只限于一个非常窄的类别:某个特定蛋白质的结构。而生物学是一个广阔无边的宇宙,最终我们得想清楚:我们要把自己锚定在什么数据上?要预测哪些实验?并且预测得极好。机器学习的另一个故事也许就是:预测得还行,只是还行;预测得极好,就开始产生神奇的机器。语言模型、图像生成都是这样,蛋白质也是。所以我们造的不是一台包打天下的生物学机器,或者说,真要造的话,它会长得更像语言模型而不是窄预测器。但我们做的东西是真正有用的。
主持人:我们能不能把 AlphaFold 各个版本的预测架构过一遍?第一版是 CNN,最新一版是扩散模型。第二版我们昨晚聊过,它有一个结构模块。几何深度学习被谈论得很多,我觉得人们把好处错误地归给了那些对称性,SE(3) 对称性之类。给我讲讲这个过程吧,你开头也说过,你们一开始真的想把人类的理解灌进去,后来经验告诉你们并非如此。
詹珀:有两三件事要说。首先,把 AlphaFold 3 叫「扩散模型」,我要提出异议,不是技术上的,而是主题上的。我们喜欢把东西装进盒子,喜欢用最顶层的那一个比特来解释为什么它管用。「哦,他们从 CNN 换成了……」。真实的答案是这样的:AlphaFold 1 作为一个网络,预测的是问题的一个子部分。它从生物学数据(进化相关性)出发,输出的是类似几何的数据(原子间距离),中间是一个 CNN,而且是从计算机视觉那里直接拿来的现成 CNN,别人做的。所有蛋白质特有的部分都包在机器学习外面。
AlphaFold 2 的思路是:与其借用图像识别的科学再套到蛋白质上,不如为蛋白质本身建立一门科学。「人类视觉系统正好是折叠蛋白质所需要的东西」,这句话不成立,人类过去和现在都不擅长预测蛋白质结构。那我们怎么把所有部件都造出来?
确实有一个 SE(3) 的部分。AlphaFold 2 是迭代着造出来的,分很多阶段,SE(3) 部分实际上是最早造出来的那一块。但到最后,AlphaFold 2 的主体是一个巨大的主干,我们叫它 Evoformer,是轴向注意力加上一堆别的东西,占了百分之九十以上的计算量和准确度。它产出的是一个 n 乘 n 的表示。
你从两份数据出发:一是蛋白质序列,二是所有进化上相关的蛋白质的序列。蛋白质结构变化很慢,我的蛋白质的结构在大多数情况下和酵母里的相似,有时和大肠杆菌里的也相似。你把许多相关序列抓过来,常常有几百上千条,把这些信息喂进 Evoformer。它有两路轴向注意力,相当于「我们对几何的看法」与「我们对进化的看法」之间的对话,两套表示。最后我们取几何那一路的 n 乘 n 表示,中间其实还加了一个损失,让它对原子间距离做分类预测。然后交给所谓的结构模块,最好把它理解成一个「几何化引擎」:你有关于 n 个位置的 n 平方个预测,总得有人把它们协调成一个结构。
这里用的是 SE(3) 不变的注意力(说「不变」,是因为我们每一层都把它坍缩回来)。这一块是我的想法,甚至在刚进 DeepMind 时就有了:应该把「点」放进去。我那时就在想蛋白质残基:主链有三个原子,可以给它对齐一个坐标系,它极其刚性;而所有残基彼此不同的那些部分,就挂在这个坐标系之外。如果你把它们都对齐到各自的参照系,在参照系里操作点,那就很自然。你可以拿注意力机制,让它在局部坐标系里投射出点,做变换,然后用这些点之间的距离来给注意力加偏置。我们叫它「不变点注意力」(invariant point attention,IPA)。挺好玩的。
但比这更重要的,几乎可以肯定,是「定义参照系」这件事本身。有了参照系,我们就能写下一个非常有意思的损失函数,叫「参照系对齐点误差」(frame aligned point error,FAPE)。它问的是:在第 i 个残基的参照系里,其他所有人在哪里?这是局部配准的,你得到 n 平方个误差,再取平均。我认为这才是真正关键的,是早期的突破之一。
当然,最好玩的部分是 SE(3) 不变性。但别忘了,我们一开始没有任何几何数据,只有非几何数据,几何是在中间涌现出来的。我们的初始化叫「黑洞初始化」:把所有残基堆在同一个点上,这是世界上最不物理的结构。同样重要的是,我们故意不尊重蛋白质已知的对称性。比如已知的是,残基之间是分开的,一个残基里这个原子和那个原子之间是 1.3 埃,正负 0.015。事实上在 AlphaFold 1 里做优化时,我们真的把它当成一条多关节机械臂在扭,通常三百个残基。你要做所有这些扭转,几何非常难看。三百个,不对,应该是九百个关节的机械臂,它的几何非常糟糕,意味着优化器要走很多步。所以一个重要的决定是:拆开它,把残基当成「残基气体」,这样四步、八步就能推进,而不是扭来扭去要走的那么多步。然后我们用了等变性,它有帮助。
真正令人意外的事在后面。也许是因为早期的报告,也许是因为很多人本来就在做等变性,几何深度学习那时很火,人们说:啊,他们提到了我的关键词,那一定就是它管用的原因。我记得当时有点困惑,心想:好吧,我们会非常仔细地做消融实验,论文一发,大家就明白了。论文发了,我记得第五行叫「无 IPA」。AlphaFold 2 在 GDT 尺度上比 AlphaFold 1 高了大约三十分,三十分是总账。我们做了这些消融,几乎全都很小。去掉不变性、等变性,损失大约两分,也许两分半。它有贡献,但三十分里只贡献了两分半。我以为这下可以盖棺定论了,结果根本没有。人们仍然把 AlphaFold 2 说成等变性的伟大胜利,从不谈 FAPE。他们谈「等变 Transformer」,还以为是别人发明的。其实我们在 2018 年就做了等变 Transformer,我记得是 2018 年 10 月。做了一个,试着改进了一下,发现改进那部分并不能让 AlphaFold 变好,就转向下一件事了。我们对这些东西冷酷地讲实证,但它确实很酷。所以我觉得大家是被它勾住了。
昨晚吃饭时我们也聊到这个:全局 SE(3) 对称性并不是一种很强的对称性,远不如「所有残基的置换不变性」那样大而有力。置换不变性大概才是 AlphaFold 的主对称性,我们用的是只带相对位置编码的 Transformer,而且相对位置编码是截断的。这里不像物理学,写下对称群,从对称群推出物理定律,得到标准模型。这是一个混乱的现实问题里的一种对称性,它大概并不能把问题钉死。所以它是好的,但我们不该迷恋某一个好东西,不该把它神化。
詹珀:我最喜欢的一条审稿意见,是 AlphaFold 2 投稿后收到的:「这是六七篇论文的想法量。」我觉得说得对。是许许多多想法加起来,才成了一个变革性的系统。用棒球来比喻,不是一两支本垒打,而是十八支二垒安打。这些中等规模的胜利叠在一起,才合成了一个变革性的系统。
消融实验里我们有时会做双重消融。我记得有一组是「无循环(recycling)加无 IPA」,同时关掉两样东西,性能就崩了。我的理解是:我们需要解决很多问题,大多数问题我们用了两种办法解决,因为两种比一种好。你把两样都敲掉,楼可能就塌了。那一组掉了大概十二到十五分,是我们最大的消融,但也只有到 AlphaFold 1 差距的一半。我记得做消融时我说:各位,我们从来没有跌破过 AlphaFold 1 的水平。
这些消融很多后来进了 AlphaFold 3。我们说,好,等变性不那么重要。另一组消融是,不给原始遗传信息、只给成对相关性,结果差了一两分,所以也许我们一直处理这些原始序列并没有那么必要。我们还做了一种可解释性的投影,把每一层投射成一个结构,做成动画,能看到 AlphaFold 的大部分容量都花在几何上优化结构。除了前几层,它更像一台几何引擎,而不是进化引擎。于是我们说:那为什么不把 Evoformer 砍到只剩几层,后面接一个简化得多的版本,叫 Pairformer?结果性能反而提高了。我们基本上是用消融实验来听机器学习在告诉我们什么。
不管你心里怎么想,做机器学习就是:你思考数据,你看数据,你提出假设。也许等变性重要?你试,你测,十次里九次发现自己错了。要是你十次错九次,你就是一个非常成功的机器学习研究者,产出高得惊人。你由此建立起局部的直觉,知道这个问题需要什么、怎么运作。在我看来,你建立的是一门局限于你这个领域的科学,一个围绕这些架构的、蛋白质结构预测的局部想法流形。我们会形成这样的戒律:不得把一维表示放在 Evoformer 附近,要用二维表示,否则性能会掉。
AlphaFold 2 做到半年或一年时,我们的成对处理里混用着轴向注意力和卷积,架构和最终版有些不同。我记得有人做了一个实验,直接删掉卷积层,不是换成注意力层,就是删掉,不加任何参数,参数严格变少,模型反而更准了,验证损失改善了。机器学习里通常不会这样,没人说「去掉参数,泛化就变好」。但卷积很可能在主动妨碍我们想学的东西,我对原因有一个假说。所有这些教训和探索,都在回答一个问题:深度学习在蛋白质上是怎么泛化的?你必须建立这种知识和专长。
詹珀:AlphaFold 和 AlphaFold 2 真正特别的地方,是我们把生物学假设、物理与几何假设、经验,以及多年来在这一个问题、这一个数据集上撞得头破血流所获得的手感,混在了一起。AlphaFold 1 和 AlphaFold 2 用的是完全相同的数据。我们决定只增加评估数据,训练数据一点不加。这个决定的效果非常大。AlQuraishi 实验室做过一项很好的研究,重新训练 AlphaFold 2,只用 PDB 的百分之一:不是十四五万个结构,而是一万五千个左右。他们发现,用百分之一的 PDB 训练的 AlphaFold 2 仍然比 AlphaFold 1 更准。所以可以说,我们放进 AlphaFold 2 的架构和训练思想,干干净净地抵得上一百倍的数据。
主持人:昨晚我们聊到你们积累的那些默会知识,先放一放。机器学习这门事业,是为我们不理解的东西建立理解的模型,我们在造外星造物。你举过一个很好的例子:假设我在生成文本,我们可能天真地以为,边边角角上呈现出来的东西就是在干重活的东西,其实承重的可能完全是别的东西。我们的直觉大多不管用。
我知道你对「理解」这个词过敏。但对我来说,理解就是拥有一个能做出那件事的生成模型。如果你能为某个现象造一个物理模拟器,假定它不损失信息,我会说你理解了它。而机器学习是对既有样本建模,也就是说,它建模的不是东西怎样被构造出来,而是最后的结果。你昨晚说过,「生命游戏」是个很好的例子,它学的是路径,不是终点。你还讲了一件很有意思的事:AlphaFold 有循环机制,可以把东西反复送过整个结构。看起来发生的是,它一开始解决最复杂的问题,然后就是精修,再精修。这有点像生命游戏,它不是在模拟创造过程,更像在每一步学习如何精修和优化结构。
詹珀:我想先区分三件事:预测、控制、理解。预测是说,我要做一件事,我的机器会给出什么值?将来屏幕上会出现什么?控制是说,我将来要测这个东西,我要它测出来是十七。理解则很像预测,只是多了一个人在回路里。理解意味着我拥有一小组事实,用这一小组事实就能做预测,而且这些事实我能传达给另一个人,紧凑到能写在一张索引卡上。这差不多就是理解。
这些机器让我们能预测,能控制。此刻,理解还得我们自己去推导。我们现在可以在这个造物上做实验,可以去看两亿个预测结构,而不只是二十万个实验结构,以此帮助我们理解。但它不替我们完成理解这个动作。它完成的是预测,也许还有控制。
然后还有一件事,我认为是机器学习里非常重要的概念:有你编程的算法,和你得到的算法。或者说,机器学习就是代码遇上数据,产出权重。机器学习里一场持久的争论就是:多少工作是代码做的?多少工作是数据做的、最后落在权重里?我们在 AlphaFold 里看到的,从某种意义上说,是一个非常漂亮、直观的算法,一个我们在某种意义上能理解的算法:逐次几何精修。我用几句话就传达给你了,你大概脑子里已经看见了,虽然我想你没看过那些动画,它们在我们《自然》论文的补充材料里。这是人类早就想出来的算法。也许应该做梯度下降,加一个经验模型让每一步更正确,也许 AlphaFold 就该这么工作。但那不是我们编程写进去的。不过我们在某种意义上也是这么想的。我们想循环机制时,想的是:真奇怪,不管问题多难,AlphaFold 都得在 n 层之内给出答案,也许该多给它几层;可我的 GPU 内存不够了,那就把输出再送回去跑一遍,不用多占内存。但即便没有循环,我认为 AlphaFold 也在学这种迭代。我们只是放进了一个代码层面的想法、架构层面的想法,去帮助它从数据里本来就要学的那个过程。
回到刚才残基间距的例子,我们没有告诉 AlphaFold 那个距离,我们知道数据会朝它大喊:i 和 i 加 1 相隔 1.3 埃。所以谈到人类的理解,我并不喜欢人们套用「苦涩的教训」的方式。事实上 AlphaFold 2 恰恰是它的反面:我们做了一大堆专门的东西,因为我们的数据是有限的。而现在到了语言模型这里,我们发现数据仍然是有限的,互联网是有限的。所以从中该得出的结论不是「别做架构研究」,而是:对哪些东西该进代码、哪些该从数据里推导出来,保持谦逊。看看缺了什么,理解深度学习正在试图学习的那个算法,想想怎么加速它、怎么加入假设,尤其是怎么加入「通信」。我们在架构里做的最重要的事,就是修改哪些单元之间通信、怎么通信。这些都是我们把理解转化为迭代过程的方式。你要造一个精巧的几何物体,居然要迭代,这不该让任何人吃惊。
生成文本也一样。一种天真的看法是,这些模型是逐词生成器,所以完全不知道两三个词之后会发生什么。可你不可能不知道后面怎么写就写下一个词。我大多数时候开口说一句话,是知道它怎么结尾的。有时会改,但我会稍微往前想,才能完成任务。所以我们在这些模型里看到的理解、我们想要的那些结构,有时会涌现,有时不会。而我们太爱神化那些强加上去的高层想法了。
回到 AlphaFold 3。你说它是扩散模型,但我要说,它和图像扩散模型是不一样的扩散模型。首先,它有一个巨大的主干,完全不是扩散模型,只跑一次。结构大概就是在那个主干里决定的,扩散只是像当年的结构模块一样的几何化引擎:拿到一组质量相当好的约束,这些约束里已经很清楚地包含了结构,它只是把细节解出来。图像模型不同。你看那些早期的扩散模型生成图像,先出来一些彩色团块,然后才决定这些团块是什么。而且它们很明显是后来才决定的,因为你可以在过程中间停下来再跑一次,得到对同一批团块的不同解释。
AlphaFold 3 里有一件有趣的事。在 AlphaFold 2 里,通过把中间层投射出来,我们能看到它先解决什么:它先解局部细节、局部片段,再把局部片段拼起来,是聚合式的,这很自然,最容易预测的是局部结构,最难预测的是最大尺度的结构。这是 AlphaFold 2 的工作方式。而在 AlphaFold 3 里,你拿到加了大量噪声的坐标,第一件要解决的事恰恰是:比如有两个蛋白质,它们怎么结合?两个团块相对位置在哪?它们的高斯分布是什么?AlphaFold 2 最后才解决的问题,AlphaFold 3 的扩散必须最先实现。它怎么做到的?答案并不是它先想出一个取向再围绕它去搭蛋白质,因为它要的是一个正确答案,或者说一个很窄的分布。真正的答案是:前面那个大网络,加上扩散网络的第一次前向,就已经解决了整体结构;扩散后面做的,是把之前没解出来的细节实现出来,本质上是在其中采样。所以技术上它是扩散,但它离 AlphaFold 2 近得多。选扩散只是出于很具体的技术原因,说白了是关于几何的偷懒:它让配体更好处理,让一些键长和局部细节更好处理。它不是「先画团块、最后决定团块是什么」意义上的扩散。
所以人们喜欢说「这个管用是因为它是 Transformer」。可「因为它是 Transformer」解释不了为什么聊天模型在过去三四年里进步了这么多,解释不了那些研究,解释不了研究者每天在做什么。所有这些细节,都远比「是不是 Transformer、是不是扩散模型」这个我们爱谈的高层比特重要得多。而且,即便是扩散机制,也并不按图像里那种「渐进精修」的方式工作。对图像来说,也许先画团块再决定团块的含义,这个说法都未必是全部的故事;对蛋白质来说它肯定不是,因为最难的问题就是大尺度结构。
主持人:这在某种意义上通向我们之前谈的「建构性复杂度」。我很想听听你对通用人工智能的总体看法。以语言模型为例,我们训练它基本上是行为克隆:有一个丰富的、适应性的生成过程,产生了所有这些语言,我们拿它们训练模型。对我来说,智能是对粗粒度表征的适应性获取。文化和语言一直在变,我们发明 unalive 这个词来绕过社交平台的过滤器,这是语言能动性的一个例子。而我们注意到,当我们对语言模型做迭代的、适应性的精修,做主动微调和适应,它们就变得有点智能了:学到新表征,会适应。某种意义上,即便它们脱离了生成路径,也能拿一个代码解,比如 AlphaEvolve,不断精修,效果非常好。你觉得我们现在造的这些造物,是不是并不具备同一类型的通用性?你对智能总体怎么看?
詹珀:表征这个问题非常重要,但远不如五年前人们所相信的那样重要,至少显式意义上不是。就像我们刚才谈的,AlphaFold 做的事情里,有些是代码强迫它做的,凡是代码强迫的它当然都做了;但它做的很多事并不是被强迫的,是因为要对数据建立一个好的预测模型,它就必须学会,必须找到好的中间表征。
从某种意义上说,机器学习里最诱人的想法永远是:我知道最终一定得有这么个东西,所以我要在代码里专门留个位置,用这个名字命名,强迫机制去实现这个「高层概念构造器」。这曾经很流行:我要让概念成为单元,我要通过这个损失在中间层强制解耦表征,它就存在这里。去试试这个想法是合理的。但我们大量看到的是,你以为智能所需要的那些东西,很多是靠拼命把下一个词预测得极好而发展出来的。它们不是因为你预测下一个词而产生,而是因为你在这件事上做得极好才产生。这些泛化的空间、表征、对概念的理解,是被数据非常缓慢地逼出来的。所有那些对数线性关系,大家最不喜欢的那种函数形式:性能随努力的指数线性上升,我们在缩放律里天天看到。我们确实得到了概念和表征,但我们还没有答案的是:怎么更便宜地得到它们?
有时可以靠编程。我们得到了类似记忆的东西:现在语言模型会给自己写笔记,再把笔记取回来;我们发现最好不断提醒智能体它在做什么,免得它在长轨迹里忘掉。所以我们训练权重,造出造物,发现缺陷,然后往往能用某种软件外壳把缺陷糊上。但这还不能直接回流到机器学习本身。你没法给它套一个外部记忆的外壳,再把它蒸馏回网络里,得到一个不再需要外壳的、记忆惊人的模型。这一步,我们还没弄明白怎么做。
主持人:很遗憾,约翰,我们得收尾了。詹珀博士,很荣幸请到你,非常感谢。
詹珀:非常愉快,谢谢。
主持人:前面说过,伊曼纽尔·恩吉在非洲工作,他在培训科学家。不只是给他们 AlphaFold 的使用权限,而是教他们怎么用、怎么解读结果、怎么用这个数据库去设计实验。
恩吉:我的研究方向是疟疾和肠道细菌的药物发现,同时也参与非洲本地研究者的能力建设,用的就是 AlphaFold 这样的工具。以前非洲的科学家用不上昂贵的结构生物学设备。有了 AlphaFold,这些研究者现在能做过去不可能的复杂实验,去对付疟疾、艾滋病以及各种抗生素耐药的感染。在我自己的药物发现研究里,我用 AlphaFold 来解冷冻电镜数据的结构,也用它来梳理蛋白质的作用机制。
主持人:对他来说,AlphaFold 的冲击是前后判若两个世界。
恩吉:当时要解一个蛋白质的结构,真的非常非常难。我试了好几年,将近四五年,都没成功。那是十多年前了。有了 AlphaFold 之后,我回去只做了一次蛋白质纯化,采集数据,结合 AlphaFold,不到两三个月就拿到了结构。
主持人:现在他的目标是尽可能多地培训科学家使用这项技术,造福人类。
恩吉:今年在 Google DeepMind 和瑞典研究理事会的资助下,我们把培训规模扩大到一百人,培训质量没有下降,反而有所提高。基于这个结果,我们打算在接下来十年里每年培训一百名科学家,目标是十年内让近一千名非洲科学家能有效使用这个工具,并形成一个新兴的结构生物学实践者社区,专注于非洲高发的疾病。
主持人:这就是本期 AlphaFold 特辑。感谢约翰和伊曼纽尔。和约翰的对谈非常有意思,他很鼓舞人,因为他本身就是一个证明:尽管我们谈论各种通用基础模型,但要真正推进科学的前沿、做出尖端应用,还是需要大量的工程、领域知识和扎实的专长。我们的很多模型最终会是混合的、高度定制的。AlphaFold 就是这类可以用来推进科学的混合模型的一个存在性证明。约翰,祝你在 Anthropic 的新岗位一切顺利。感谢收看。
AlphaFold 的成功不在于某个时髦架构(等变性、扩散模型),而在于十几个中等规模的工程与科学想法叠加,且它刻意保持「窄」——只预测一类实验结果,而非模拟整个细胞;John Jumper 用这一反「苦涩教训」的路径拿下诺贝尔奖后,离开 DeepMind 加入 Anthropic。
按 Jumper 在「蛋白质是什么」一节给出的数字,实验解析单个蛋白结构的典型周期约为一年,折算成钱大约十万美元,而且这足以撑起一个完整的博士课题。他还提到,科学家往往要先在同步辐射光源这类小镇大小的装置上做实验,并且必须先攻克「结晶」这道可能耗时数年的门槛。AlphaFold 2 把这个过程压缩到五到十分钟,精度在典型情况下达到一个原子半径以内,已可与部分实验方法相比。更关键的是可扩展性:团队最终预测了约 2 亿个蛋白结构,覆盖所有已完成基因组测序生物体的蛋白。
AlphaFold 2 在 CASP 的 GDT 指标上比 AlphaFold 1 高出约 30 分,而消融实验显示,去掉不变点注意力(IPA)带来的等变/不变性只损失约 2 到 2.5 分,即不到总增益的十分之一。Jumper 特意在论文中放入名为「no IPA」的那一行,以为这能终结争论,结果社区仍把 AlphaFold 2 说成「等变性的伟大胜利」。他认为被完全忽视的是 FAPE(框架对齐点误差)这个损失函数——在每个残基的局部参考框架下衡量其他所有原子的位置误差再取平均,他称其为早期真正的突破之一。他还指出,真正强有力的对称性其实是残基的置换不变性,而非全局 SE(3)。
研究者先通过遗传学实验发现,有几百个基因在细胞发育某阶段被关闭,并定位到一个此前几乎无人研究的人类蛋白 Midnolin:敲低它,那些蛋白就不再被降解,且作用方式不走常规途径。他们随后把 AlphaFold 与约 500 个响应该敲低的蛋白一起批量运行,在其中约 40% 里发现同一个高度特异的模式——底物的某一段被 Midnolin 的两个部分像钳子一样夹住。接着他们做湿实验验证:删掉 AlphaFold 指出的被夹位点后,该蛋白在细胞中不再下降。十个例子中九个完全符合;剩下一个只是部分减弱,回看预测发现存在第二个结合位点,双位点都去掉后降解被彻底消除。这是把 AlphaFold 当作假设生成器、再由实验闭环验证的典型流程。
他在访谈后半段给出明确定义:预测是说出未来某次测量会得到什么值;控制是我希望未来测到的那个值等于 17,并使之实现;理解则很像预测,但中间多了一个人——理解意味着支撑预测所需的事实少到可以压缩、可以传达给另一个人,能写在一张索引卡上。按这个定义,机器能预测、也许能控制,但「压缩到可传达」这一步仍必须由人完成,所以机器不能替我们完成理解。他随即补充了一个新可能:如今我们可以在 2 亿个预测结构上做计算实验,而不再只有 20 万个实验结构,这为人类自己提炼理解提供了新的实验对象。
他说自己的反对不在技术层面,而在叙事框架层面。理由有三层:第一,扩散模块之前有一个巨大的主干(Pairformer),只运行一次,且完全不是扩散模型;结构其实主要在那里被确定。第二,扩散在这里扮演的角色与 AlphaFold 2 的「结构模块」同构——接收一组已相当好的约束,然后把细节几何化补齐,而非像图像扩散那样先画色块、再决定色块含义。第三,AlphaFold 2 的求解顺序是凝聚式的:先局部、最后全局;而 AlphaFold 3 的扩散必须最先确定全局摆放(两个蛋白如何相对结合),顺序正好相反,说明它并不遵循图像扩散那种渐进细化逻辑。他还指出选择扩散的真实动因是工程性的:便于处理配体、键长与局部化学。
该实验重新训练 AlphaFold 2,但只用 PDB 的 1%,即约一万五千个结构而非十几万个,结果这个数据严重受限的 AlphaFold 2 仍比用全量数据训练的 AlphaFold 1 更准。Jumper 由此得出量化结论:AlphaFold 2 的架构与训练思路实打实抵得上 100 倍的数据量。这直接构成对「苦涩的教训」流行解读的反驳——如果算力和数据终将压倒人类先验设计,那么架构改进不该等价于两个数量级的数据。他的论证前提是数据有限性:PDB 是有限的,转向语言模型后发现互联网也是有限的。因此他的结论不是「Sutton 全错」,而是「不要做架构研究」这个推论是错的,正确态度是判断哪些先验该写进代码、哪些交给数据。
他没有正面否认代偿机制的复杂性,而是把回应落在 AlphaFold 的自我限定上,称之为「AlphaFold 的谦逊」:他们从不宣称建模整个细胞或整个生命,只宣称预测一个具体的、你天天在做且要做一年的实验会给出什么结果。这一点带来两个后果。其一,有效性可以被精确刻画——因为对标的是明确定义的实验,误差能被度量,不需要靠对生物学的整体正确性来担保。其二,超出承诺的用途是用户自己发现的:跑上千次预测去找哪两个蛋白结合、找出复杂体系里的未知组分。换言之,他用「缩小承诺范围」来化解「整体系统不可预测」的质疑,而非声称机制理解足以驾驭活体的复杂性。
笑话里技师只拧了螺丝四分之一圈就让工厂复活,账单一万美元,其中拧那一下值五毛,剩下的都是「知道该拧哪儿」。Jumper 用它说明药物研发的价值几乎全在机制知识,而非操作动作本身。这与他对 AlphaFold 的定位直接呼应:AlphaFold 让「看清零件长什么样」变得几乎免费,但并不告诉你该动哪个零件。他明确说过,阻碍治愈自闭症这类疾病的原因不是缺某个蛋白的结构,而是我们对生物学如何运作了解得太差。所以他把细胞比作「庞大复杂的工厂」,我们既在学怎么拧(造药),也在学该拧哪儿(机制),后者才是瓶颈。
他指出 AlphaFold 学到的是逐次几何精修——一个可以用几句话讲清、听者能在脑中想象出来的算法,可它并不是被编程进去的,而是训练中出现的(recycling 等架构手段只是加速了这个它本来就在学的过程)。这对「代码 vs 数据」的争论意味着:得到的算法可以既非人工写入、又恰好落在人类可理解的范围内,所以「学出来的」不等于「不可理解的」。但这未必普遍成立,因为蛋白折叠有强几何结构、目标近乎单峰(一个正确答案或很窄的分布),恰好与人类的空间直觉合拍。他自己也在别处承认,我们造的多是「外星造物」,很多直觉不成立;他甚至说若要造通用生物学机器,它会更像语言模型而非窄预测器——那时学得的算法未必还能压缩成索引卡。
按他的表述,他大概不会承认这是路线之争的胜负判决。他反对的从来不是通用模型,而是「因为它是 Transformer / 扩散模型所以有效」这类用高层标签替代解释的做法——他明确说,这种标签解释不了聊天模型三四年里的巨大进步,也解释不了研究者每天在做什么。他对通用路线给出的判断是条件式的:若真要造通用生物学机器,它会更像语言模型;同时他又强调数据有限(互联网也是有限的),所以架构研究不该被废除。他真正指出的未解难题也落在通用侧:我们能用外部记忆等脚手架掩盖模型缺陷,却还不知道如何把脚手架蒸馏回权重。因此更贴近他立场的读法是,他带着「哪些先验该进代码、哪些交给数据」这套判断力换了战场,而非宣布这套判断力已经过时。
他的经历确实提供了极强的正面证据:同一个蛋白他此前试了四五年未果,用 AlphaFold 后只做一次纯化、收一次数据,不到两三个月就拿到结构。但把它读成「开放数据自动消除差距」会漏掉两个必要条件。一是他仍需要实验能力:他用 AlphaFold 是去解析冷冻电镜数据、梳理蛋白机制,即预测与实验结合,而非纯计算替代。二是需要人的中介:主持人特别强调 Nji 不只是让人能用上 AlphaFold,还在教怎么使用、怎么解读结果、怎么据此设计实验;今年在 Google DeepMind 与瑞典研究理事会资助下扩到 100 人,目标是十年内近 1000 人。也就是说,公开数据把成本极高的一环变得几乎免费,但把它转化为成果仍依赖资金、设备与培训网络——这与 Jumper 反复说的「AlphaFold 是起点,不是终点」是同一个结论。