Podcast Script (zh)
[0.120-8.003] SPEAKER_01: 三周前,TypeSafe 带着 Jev 走出了隐身模式,它很快就成了 AI 圈里最火的新模型之一。
[8.223-12.135] SPEAKER_01: 它一发布,开发者就分成了两派。
[12.355-16.302] SPEAKER_01: 有些人耸耸肩,说它不过就是个分类器。
[16.522-23.070] SPEAKER_01: 另一些人看到的,是一个又快、又便宜、又容易拿来构建东西的模型。
[23.290-29.838] SPEAKER_01: 没过几天,开源圈里就出现了各种仿制品,后来连 OpenAI 也公布了自己的应对方案。
[30.058-35.665] SPEAKER_01: 但在这位打造它的人看来,这些讨论大多都没抓住重点。
[35.885-40.575] SPEAKER_01: Jev 真正的突破,不在于速度,也不在于成本。
[40.795-46.379] SPEAKER_01: 而在于它对 AI 到底该为什么而优化,有了一套不同的想法。
[46.599-51.370] SPEAKER_01: Diogo Almeida 是 TypeSafe 的联合创始人兼 CEO。
[51.590-64.500] SPEAKER_01: 在那之前,他在 OpenAI 待了四年半,是 InstructGPT 以及那项帮助语言模型变成我们今天所用助手的 RLHF 工作背后的团队成员之一。
[64.720-68.946] SPEAKER_01: 如今,他正通过 Jev 追求他所说的“机器原生智能”。
[69.166-78.929] SPEAKER_01: 这些模型优化的目标,不是生成供人阅读的字符串,而是做出软件能据此采取行动的可靠决策。
[79.149-84.060] SPEAKER_01: 接下来,Diogo 来讲讲他正试图弥合的这道鸿沟。
[84.360-89.909] SPEAKER_00: 我给 Jev 的电梯推销词就是:自动化他妈到底都去哪儿了?
[90.129-98.650] SPEAKER_00: 我觉得 AI 就是聪明得不可思议,可偏偏在那些你真的指望它能派上用场的事情上,它又没用到让人难以置信。
[98.870-113.733] SPEAKER_00: 而且据我观察,大多数人其实都答不上来:为什么有一整类事情,AI 不只是做得好,而是好到远超人类,比如跟 GPT 聊天、deep research、cloud code;而另一整类事情,它不只是做得差,
[113.953-118.736] SPEAKER_00: 它差到根本没法用,尽管背后有巨大的经济激励。
[119.036-122.623] SPEAKER_01: 我是 Sam Charrington,这里是 TwiML AI Podcast。
[122.843-136.847] SPEAKER_01: 十多年来,我一直通过像这样的对话,去探索那些塑造 AI 未来的想法和创新,帮你搞明白什么是真实的、什么是接下来的方向、什么才重要。我们开始吧。
[137.147-142.452] SPEAKER_00: 为什么人们不能用智能体来做基础的数据录入和保险核保呢?
[142.672-146.863] SPEAKER_00: 其实吧,你知道,如果你去——哎,老天,我可不想拿谁开刀。
[147.083-156.997] SPEAKER_00: 但比如你就算去 Anthropic 的网站,想用他们的智能体,那个客服智能体,让它做点什么事,它甩 FAQ 给你倒是特别在行。
[157.217-162.139] SPEAKER_00: 但如果你想做件更简单的事,比如换一张信用卡,它就一点用都没有。
[162.359-168.187] SPEAKER_00: 我觉得,这件事,至少每个跟 AI 沾边的人,都应该能回答为什么会这样。
[168.407-175.454] SPEAKER_00: 我有点好奇,你有没有答案,为什么超级聪明的东西和超级没用的东西之间,会有这么大的鸿沟。
[175.754-182.255] SPEAKER_01: 我是说,我觉得一部分原因在于,现代 AI 里我们手上就这么一个工具,对吧?
[182.475-191.356] SPEAKER_01: 它的核心就是这种预测 token 的 Transformer,周围配了一大堆机制,让它更擅长产出内容、产出词句、产出文本。
[191.576-198.205] SPEAKER_01: 然后我们就想把它硬塞到所有能塞的地方,但它并不总是每个问题的最佳方案。
[198.425-203.336] SPEAKER_01: 我猜这跟你的看法应该差不太远。不过,还是有点差别。
[203.636-206.422] SPEAKER_00: 这里面有很多细微的差别,对吧?
[206.642-214.606] SPEAKER_00: 比如,这个狂喷 token 的 Transformer,怎么能解决数学里的千禧年大奖难题,却没法把会计自动化呢?对吧?
[214.826-223.347] SPEAKER_00: 这里面有很多微妙之处,它确实引出了些问题,而我觉得这个领域里的人还没真正准备好回答,而且他们非常有动机。
[223.567-228.710] SPEAKER_00: 至少那些 AI 实验室非常有动机不去如实回答这个问题。
[229.010-234.257] SPEAKER_01: 那这是不是在暗示,你已经准备好回答这个问题了?
[234.477-237.124] SPEAKER_01: 可以啊,你想听的话,我可以。
[237.424-240.489] SPEAKER_00: 我是说,首先吧,这些都只是个人观点,对吧?
[240.709-243.344] SPEAKER_00: 所以我不会说我有这方面的证据。
[243.564-247.197] SPEAKER_00: 我会说我有很强的信念,也有很多证据。
[247.417-252.339] SPEAKER_00: 但证明这件事的方式,其实就是真的把那项工作自动化。
[252.559-256.169] SPEAKER_00: 而我希望 Jev 就是朝这个方向迈出的第一步。
[256.389-272.355] SPEAKER_00: 所以我对这个答案的看法,以及其中的微妙之处,就是你会得到你所优化的东西;这在所有机器学习的事情上都成立,基本上在世界上所有事情上都成立。所有事情,所有事情,所有事情。
[272.575-278.937] SPEAKER_00: 其实我觉得,搞机器学习的人反而最不明白这一点,而经常和人打交道的人最明白。
[279.157-292.081] SPEAKER_00: 所以你会得到你所优化的东西,而基本上所有那些处理字符串的 大语言模型 都是为字符串优化的,而字符串本来就是给人或者其他 大语言模型 消费的。
[292.301-297.850] SPEAKER_00: 但如果你要的是像会计这样的东西,那本来就是要给计算机消费的,对吧?
[298.070-307.892] SPEAKER_00: 比如你会有一堆具体的字段、表单和离散决策,而为字符串优化,跟优化这些、这些离散决策,是非常不一样的。
[308.112-311.954] SPEAKER_00: 而我认为,这就是造成这个差距的最大原因。
[312.254-326.467] SPEAKER_01: 你知道,当你把 Navier-Stokes 和会计放在一起对比时,那其实有点像是一个刻意构造的例子,它刚好直接契合你围绕 Jev 建立起来的那种定位,以及它真正擅长什么,
[326.687-340.911] SPEAKER_01: 但我不觉得,像 AI 擅长某些事情、不擅长另一些事情,就是这种一维的、你知道的,文本对决策,它其实是一个锯齿状的边缘,而我觉得,将来需要有,
[341.131-350.848] SPEAKER_01: 很多不同的东西,或者某种根本不同的东西,来把那个锯齿状的边缘磨平,并把那个前沿往前推。
[351.068-355.410] SPEAKER_01: 我想知道,你对那会是什么样子有没有什么想法。
[355.710-361.631] SPEAKER_00: 我能快速验证一下那个关于锯齿状边缘的假设吗?当然可以。
[361.851-365.055] SPEAKER_00: 因为我觉得这个话题聊起来挺有意思的。
[365.275-379.139] SPEAKER_00: 顺便说一句,我们做的很多事情,其实都是在专注于把模型做成这种很稳健的、像认知核心一样的东西,能插进任何软件里;而我们很多工作的重点,其实就是我们怎么能
[379.359-395.197] SPEAKER_00: 把那些通过各种各样奇怪流程塞进来的锯齿状不平整给磨平。不过,为了验证锯齿状边缘确实存在这个假设,嗯,你有没有见过 ChatGPT 无缘无故对你很不礼貌,或者像是在侮辱你?
[395.417-398.865] SPEAKER_00: 如果我没让它那么做,就不会。没错。
[399.085-403.450] SPEAKER_00: 所以其实,所以这些模型在某些事情上其实是可靠的,对吧?
[403.670-408.871] SPEAKER_00: 它们不只是可靠,它们在有些事情上简直超级无敌可靠。
[409.091-414.582] SPEAKER_00: 我会说,那种锯齿状不平整并不是 大语言模型 或 AI 本身固有的。
[414.882-421.371] SPEAKER_01: 你是说,锯齿状不平整是相对于我们把它们应用到具体问题上的方式而言的。
[421.671-425.502] SPEAKER_00: 是的,也是相对于我们的优化过程,对吧?
[425.722-438.286] SPEAKER_00: 就像如果你朝某个特定方向拼命优化,你会得到某些类型的可靠性,但同时也会失去另一些,因为你把所有优化压力都集中在那些真正重要的事情上了。
[438.506-447.968] SPEAKER_00: 比如你在为决策做优化,比如客服聊天里,明明不该给某人退款却说要退款,从准确率角度看,就跟脸滚键盘完全一样。
[448.188-456.825] SPEAKER_00: 你知道,准确率一样都是 0%,但因为有优化里的不对称性,你永远不会出现脸滚键盘那种情况。
[457.045-460.272] SPEAKER_00: 这就是 RLHF 干的事,对吧?
[460.492-466.796] SPEAKER_00: 比如你用一个奖励模型,某个东西越容易被惩罚,你就越容易确保它在推理时不会发生。
[467.016-474.318] SPEAKER_00: 然后这类东西你就再也看不到了,尽管预训练模型其实能输出词语沙拉,对吧?
[474.538-486.649] SPEAKER_00: 所以后训练可以让某些类型的事情变得可靠,而我觉得人们没有意识到,AI 从业者在把自己的期望清单设定进模型时,手里到底有多大的主动权。
[486.949-503.704] SPEAKER_01: 听你这么说真的特别有意思,而且你几分钟前也说过,大家都懂,你优化什么就会得到什么,但做 ML 的人,可是 ML 本质上就是关于优化的,而且你知道,我们在语言模型上的所有进步,都是靠 RLHF 之类的,你知道……
[503.924-506.559] SPEAKER_01: 我们整天都在谈代价函数。
[506.779-512.166] SPEAKER_01: 就是说,你怎么会觉得做 ML 的人不懂这一点呢?我太喜欢这个了。
[512.466-518.990] SPEAKER_00: 你看过我那篇讲《最苦涩的教训》的博客吗?没有,跟我说说。我可以直接解释一下。
[519.210-526.013] SPEAKER_00: 也就是说,有 Sutton 的《苦涩的教训》,我现在是为了对我有用而转述,所以并不精确。
[526.233-528.729] SPEAKER_00: 但大致上,我是在简化。
[528.949-533.035] SPEAKER_00: 要把真正写得好的东西简化,其实很难,对吧?
[533.255-536.621] SPEAKER_00: 所以我稍微简化一点,是为了方便我讲我的叙事。
[536.921-541.112] SPEAKER_01: 反正别人也都在简化《苦涩的教训》,那你也不妨这么做。
[541.412-547.298] SPEAKER_00: 是啊,我也不妨这么做,但我只是想强调,这里面其实是有细微差别的。
[547.518-549.433] SPEAKER_00: 但它是这样的。
[549.653-553.797] SPEAKER_00: 所以大致来说就是,算力和规模比算法更重要。
[554.017-558.568] SPEAKER_00: 而这之所以苦涩,是因为做 ML 的人热爱算法。
[558.788-561.040] SPEAKER_00: 这永远是最性感的事。
[561.260-562.908] SPEAKER_00: 好玩,酷。
[563.128-583.866] SPEAKER_00: 这是他们研究的东西,而它之所以苦涩,是因为你知道,谁愿意去做那种偏系统的活儿呢?而且搞到 GPU 也很难,尤其是早年在学术界的时候,你根本没那么多算力。这就催生了一整个时代,一群被 scaling 洗脑的 ML 从业者,原因还五花八门,你懂的。
[584.086-594.802] SPEAKER_00: 就像我其实觉得,被 scaling 洗脑有好处也有坏处,但我相信数据比算力重要得多,所以你实际上得有数据,才能把算力用在上面。
[595.022-598.388] SPEAKER_00: 而比数据更重要的,是你得找对任务。
[598.608-602.717] SPEAKER_00: 所以在我们做的所有 ML 里,这是最重要的一件事。
[602.937-610.042] SPEAKER_00: 而找对任务差不多就是那颗北极星:你优化什么,就会得到什么,比如预训练损失这种东西。
[610.262-614.534] SPEAKER_00: 预训练损失这事儿,事后看也许是显而易见的。
[614.754-622.590] SPEAKER_00: 当初要相信预训练损失能带来这么厉害的 AI 成果,那得是相当大的信仰一跃。
[622.810-626.176] SPEAKER_00: 而且这绝不是板上钉钉的。
[626.396-633.478] SPEAKER_00: 所以我觉得,真正能造出一个新任务的人其实寥寥无几,而这正是“你优化什么,就得到什么”的那一部分。
[633.698-652.299] SPEAKER_00: 如果我能给 Sutton 的观点稍微加一点细微差别的话:在游戏这种情况下,正确的任务是什么根本不用问,因为它受规则约束;而且游戏里没有现成的数据,因为你在做 on-policy RL,所以你靠做 rollout 之类的方式,从算力里得到数据。
[652.519-659.624] SPEAKER_00: 所以我猜,我会说在 RL 游戏这种情况下,Sutton 的 Spitter lesson 就相当于我正在描述的那个东西。
[659.924-666.727] SPEAKER_01: 但推而广之,在现实世界的应用里,数据比算力更像是那个受限的资源。
[667.027-669.941] SPEAKER_00: 同时也要搞清楚数据的方向。
[670.161-675.768] SPEAKER_00: 所以我这会儿不一定要展开讲 jazz 和 RLCD,因为那不会好玩。我们可以讲。
[675.988-678.739] SPEAKER_00: 但咱们来聊聊 RLHF,对吧?
[678.959-681.466] SPEAKER_00: RLHF 有很多种定义。
[681.686-689.650] SPEAKER_00: 最早那版 RLHF 是 Paul Cristiano 做的,用来教机器人后空翻。完全没有涉及 大语言模型s。
[689.870-708.053] SPEAKER_00: 还有另一个 RLHF,是学习做总结的。当时 OpenAI 团队里的某些人——我觉得 Paul 在其中也起了关键作用——教模型做总结,比如一个 GPT-2 大小的模型,把文本总结得比人类还好。这个部分我不太确定。
[708.273-719.453] SPEAKER_00: 然后还有一种 RLHF,就是现在大家说的那个意思,它其实是开创了"指令跟随"这个任务,也就是教模型怎么聊天、怎么听指令。
[719.673-724.700] SPEAKER_00: 所以我提到 RLHF 的时候,说的就是这么一个被做出来的任务。
[724.920-735.752] SPEAKER_00: 在 RLHF 出现之前,互联网上根本不存在我们想要的那种形式的人类反馈数据,因为这种数据得靠我们自己造出来,对吧?
[735.972-745.608] SPEAKER_00: 你想啊,谁会去比较语言模型给出的两个某种程度上是 on-policy 的补全、还排出个偏好来呢?这种东西本身就特别奇怪。
[745.828-751.215] SPEAKER_00: 所以其实是团队里有人特别天才,才意识到这是可以走的一个方向。
[751.435-759.921] SPEAKER_00: 而一旦你有了这个方向,首先,在这个方向的早期,你从定义上就没法确定它是不是对的方向,对吧?就是它那时候还没跑通。
[760.141-764.610] SPEAKER_00: 你得有大量的数据、算力和算法,才能让它真的跑起来。
[764.830-769.079] SPEAKER_00: 你就是有一种很强的信念,觉得这条路是对的。
[769.299-775.939] SPEAKER_00: 但最终你会把数据和其他那些东西都搞到手,只不过这数据得从零开始造。
[776.159-781.220] SPEAKER_00: 然后这个东西最终会变成世界上一种很了不起的东西。
[781.440-785.352] SPEAKER_00: 机器学习里那种巨大的飞跃,往往就是这么来的。
[785.572-789.414] SPEAKER_00: 你知道,ChatGPT 就是一次巨大的飞跃。
[789.634-792.385] SPEAKER_00: O1 也是一次巨大的飞跃。
[792.605-800.046] SPEAKER_00: 而 Jev,至少——你知道,我不想太自夸,但至少从那种让人兴奋的角度来说,它也是一次巨大的飞跃。
[800.346-805.210] SPEAKER_01: 咱们要不稍微往回退一步,因为你提到了 RLHF。
[805.430-819.434] SPEAKER_01: 呃,我们上次聊是 10 年前,呃,差一个月就满 10 年了,那是 2016 年 10 月,呃,当时我们聊的是广义上的深度学习,那可比现在这些生成式 AI 的东西早多了。
[819.734-830.464] SPEAKER_00: 嗯,你知道,给我们简单说说从那以后你都在干嘛。你在 OpenAI 待过一段时间。我当时在 Google,后来我离开了,退休了一阵子,就想放松一下、开心一点,
[830.684-838.822] SPEAKER_00: 干了很多奇怪的事,比如打竞技性很强的电子游戏、玩即兴表演之类的,最后我意识到,其实 AI 比这些有意思多了。
[839.042-845.288] SPEAKER_00: 那我不如加入这家特别怪的公司,它有着特别怪的目标,那就是 OpenAI。
[845.508-852.032] SPEAKER_00: 那时候语言模型还没真正成气候,所以我有幸参与了很多 OpenAI 最经典的项目。
[852.252-866.534] SPEAKER_00: 我在那儿待了大概四年半,做过一大堆东西,但说真的,就算我在忙别的事情时,我也一直对这个问题特别着迷,这个问题后来引出了 TypeSafe 和 Jev,就是:为什么 AI 能好得这么不可思议,
[866.754-880.978] SPEAKER_00: 却又对简单的工作这么没用。而且说实话,这到现在仍然是我的执念,直到我们看到巨大、巨大的变革性自动化,看到软件做出绝对科幻的事情,这事儿才算完。
[881.278-899.345] SPEAKER_01: 这里面有太多、太多东西我想挑出来聊,比如软件在做科幻的事情;很明显,你在跟手机说话,而与此同时——Twitter 上那个绝佳例子,有个家伙在他的 Tesla 里跟 Grok 说话,让一个智能体去生成一个视频,那已经挺……那就是科幻,对吧?
[899.565-902.769] SPEAKER_01: 软件已经在做科幻般的事情了。
[902.989-908.190] SPEAKER_01: 另外,这里面另一个可以挑出来说的点,就是那些简单的事。
[908.410-914.772] SPEAKER_01: 简单的事未必就简单,这就是为什么我们到现在还没做到。哦,天哪,可说的太多了。
[915.072-918.322] SPEAKER_00: 你想先挑哪一个都行。
[918.542-922.907] SPEAKER_00: 我不相信遇到问题要逃避,所以我两个都尽量说。
[923.127-926.017] SPEAKER_00: 但实际上,我就只先说第一个吧。
[926.237-929.325] SPEAKER_00: 我容易扯远,所以我想集中讲这一个。
[929.545-932.830] SPEAKER_00: 我觉得 AI 做的很多事情简直酷到爆。
[933.050-935.522] SPEAKER_00: 我用编程智能体。
[935.742-940.246] SPEAKER_00: 我现在甚至都不怎么写代码了,但我每天都用编程智能体。
[940.466-943.310] SPEAKER_00: 我每天都用聊天机器人。
[943.610-956.441] SPEAKER_01: 我的天,要是没有聊天机器人,经营一家公司得难多少啊,但它们确实——还有,万一 Tesla 那个例子还不够明显,我没说那个关键点,就是当时车在自己开。
[956.741-963.381] SPEAKER_00: 对,其实我觉得自动驾驶还是有点不太一样,我们可以聊聊这中间的区别,关于自动驾驶的。
[963.681-966.850] SPEAKER_01: 重点只是想说是科幻。哦,酷。
[967.150-980.504] SPEAKER_00: 我关于科幻的论点,尤其是跟 大语言模型s 有关的,我觉得现在人们说 AI 的时候,往往指的就是这个,因为它看起来是对智能最极致的压缩,同时实用性却最低。
[980.724-986.111] SPEAKER_00: 还有,这也挺——我不会说它是被普遍讨厌,但很多人确实不喜欢 AI,这很可悲。
[986.331-991.636] SPEAKER_00: 我觉得,作为一个领域,如果我们不承认为什么会这样,那就是我们的失职。
[991.856-996.023] SPEAKER_00: 所以 AI 也有很多阴暗面,我可以列举其中一部分。
[996.243-998.855] SPEAKER_00: 但我觉得这值得聊一聊。
[999.075-1002.221] SPEAKER_00: 所以第一,我觉得自动驾驶超级无敌酷。
[1002.441-1007.886] SPEAKER_00: 而且我也把自动驾驶看成一场巨大的工程胜利,而不一定是 AI 的胜利。
[1008.106-1026.835] SPEAKER_00: 我在这儿把 Waymo 当成黄金标准,无意冒犯 Tesla 粉丝,但他们看起来确实更安全,而且他们的做法是像软件和工程那样,去构建他们能理解的可靠系统,系统中各个部分都有自己拆解、抽象出来的组件,并确保这些东西都
[1027.055-1034.462] SPEAKER_00: 好得难以置信,同时把你想要的策略行为编程进去,让它能泛化到分布之外。
[1034.682-1051.263] SPEAKER_00: 所以,这真的超级酷,但现在 AI 里这些都没发生;而在 AI 里,你往往会得到更多的是:干脆做个 demo 吧,然后,你知道,我这里愤世嫉俗的循环就是:做个 demo,融个种子轮或 A 轮,说你会把它做可靠,
[1051.483-1059.505] SPEAKER_00: 最后从来没把它做可靠,而是转去做一个人工介入的版本,而不是真正把任务自动化。
[1059.725-1068.142] SPEAKER_00: 而且,说清楚,我不是在喷他们,考虑到当前 AI 的环境,这其实是正确的做法,因为那些模型还不够可靠。
[1068.362-1081.309] SPEAKER_00: 所以,哪怕,你知道,我尽量做到尽可能不带偏见,显然我也做不到完美,但我希望我用同样批判的眼光去看 大语言模型 的 demo,就像看 Jev 的 demo 一样。
[1081.529-1096.369] SPEAKER_00: 而且,你知道,我觉得它们很多都超级酷,尤其当它们有很牛的想法时;但同时,我没法真正为它们背书,因为它们只有在真能可靠地在后台运行时,才解决工作。
[1096.589-1100.037] SPEAKER_00: 而 大语言模型s 离这个还差得远。
[1100.257-1109.533] SPEAKER_00: 其实我不知道有谁真的会把一个 大语言模型 当作单独的依赖项来跑,因为你没法用一个 大语言模型 获得抽象,对吧?
[1109.753-1113.027] SPEAKER_00: 它可能随时莫名其妙地崩掉。
[1113.247-1118.053] SPEAKER_00: 而想要看到,比如,哦,为什么,抽象就必须泄漏。
[1118.273-1121.117] SPEAKER_00: 你是谈到生物学了吗?
[1121.337-1124.611] SPEAKER_00: 哦,对不起,我的 Claude 不能聊生物学。
[1124.831-1128.975] SPEAKER_00: 它回退到了另一个模型,或者类似那样。
[1129.195-1137.716] SPEAKER_00: 对一个第一方应用来说,这非常合理;但在我看来,对于开发者应该在其之上构建的东西来说,这就完全说不通。
[1137.936-1147.595] SPEAKER_00: 所以我觉得,尽管 demo 看起来像科幻,那种缺乏实用性的问题仍然存在,因为 demo 总是会远远领先于潮流。
[1147.815-1157.370] SPEAKER_00: 我看到的开场,从2020年开始就一直在展示客服演示,我觉得,到现在差不多六年了,而客服问题仍然没被解决。
[1157.590-1168.712] SPEAKER_00: 也许就像你说的,是因为这活儿很难,但它看起来真的比数学里的千禧年大奖难题容易多了,因为我不认识任何能解出千禧年数学难题的人。
[1168.932-1177.709] SPEAKER_00: 我感觉我认识所有人,但我不认识所有能解决客服问题的人;不过我认识的每个人,可能都能比一个 大语言模型 做得更好。
[1177.929-1189.411] SPEAKER_00: 或者甚至得来速——大家一直想自动化得来速,但总是失败,而且除了‘也许得来速比没解决的数学还难’之外,好像也没什么好答案。
[1189.711-1199.393] SPEAKER_01: 我觉得有意思的是,你提到 Waymo 和 Tesla 的对比,部分原因是,呃,在这场关于……的对话背景下,呃,
[1199.613-1212.258] SPEAKER_01: 就像‘苦涩教训’、‘苦涩教训’入脑那样,对吧,因为从某种角度说,Waymo 不一样的地方就在于,他们并没有采取那种,呃,被‘苦涩教训’洗脑的做法。
[1212.478-1216.390] SPEAKER_01: 而 Tesla 那边则更吃‘苦涩教训’这一套。
[1216.610-1228.289] SPEAKER_01: 就像,你知道,我这是用三万英尺的视角来概括他们的做法,但就像我们要收集大量数据,把它们扔进一个大模型里,然后让它端到端地做。
[1228.509-1240.641] SPEAKER_01: 而 Tesla 那边,我们则会像传统工程那样来搞这个东西,把它拆成很多不同的模块,用上所有能用的传感器来获取尽可能多的数据。
[1240.861-1252.691] SPEAKER_01: 我在播客上跟 Drago 聊过,聊他们是怎么做这件事的,以及它从根本上就不是,你知道,我们要追求一个端到端的单一模型来统治整个驾驶体验。
[1252.991-1260.758] SPEAKER_00: 所以我想强调,那只是其中的机器学习部分,但我不认为那就是我们应该构建的东西的极限。
[1260.978-1265.006] SPEAKER_00: 而且我其实非常支持软件和软件工程。
[1265.226-1276.023] SPEAKER_00: 而且我其实认为,我希望、也会尽我所能,让 Jev 带来另一个工程的黄金时代,带着早期互联网那种造疯狂东西的创造能量。
[1276.243-1282.883] SPEAKER_00: 而对于机器学习,你需要数据,需要专注于正确的任务,需要算力,需要算法。
[1283.103-1287.770] SPEAKER_00: 但在我看来,总的来说,机器学习应该是更大系统的一部分。
[1287.990-1293.980] SPEAKER_00: 而且机器学习应该被限定在它真正能做好的那部分系统里。
[1294.200-1299.366] SPEAKER_00: 总的来说,要获得更高的可靠性,办法就是聚焦到更细的层面。
[1299.586-1305.913] SPEAKER_00: 如果 Waymo 试图把整件事都端到端地做,他们在旧金山还会那么成功吗?
[1306.133-1308.385] SPEAKER_00: 老实说,我敢打赌不会。
[1308.605-1321.297] SPEAKER_00: 也许五年后情况会更好,但为了现在真正交付有用、可靠又安全的东西,我认为你需要工程来研究所有这些事情,研究每一个机器学习组件的特性。
[1321.517-1327.844] SPEAKER_00: 而当系统出故障时,你得能调试出是哪个部分引起的,然后把它修好。
[1328.064-1332.975] SPEAKER_00: 而在那种一个模型包打天下的模式里,这非常难做到。
[1333.275-1335.968] SPEAKER_01: 那 Jev 这个想法是从哪来的呢?
[1336.188-1345.626] SPEAKER_01: 是不是说,嘿,我要创办 TypeSafe,然后我就朝着一个我已经知道的东西狂奔?它是慢慢演变来的吗?还是你们中途转向了它?
[1345.846-1348.574] SPEAKER_01: 就是,这到底是怎么发生的?
[1348.874-1351.764] SPEAKER_00: 哦,这事我可以给你讲个好玩的故事。
[1351.984-1355.316] SPEAKER_00: 有些投资人,我们一直在融资。
[1355.536-1359.738] SPEAKER_00: 有些投资人会说,哇,这是我们听过的最棒的推介。
[1359.958-1365.658] SPEAKER_00: 我就跟他们说,那就是——我尽量不爆粗口——扯淡。扯淡。那就是扯淡。
[1365.878-1370.487] SPEAKER_00: 因为我去年讲的就是一模一样的推介,你们当时根本没明白。
[1370.707-1375.153] SPEAKER_00: 你们现在之所以有反应,是因为产品市场契合度。
[1375.373-1389.679] SPEAKER_00: 所以这些东西我已经说了好多年了,也就是我现在所说的机器原生智能,也就是为自动化做优化,为机器而不是为字符串和人类做优化,这跟我一直讲的完全是同一件事。
[1389.899-1400.115] SPEAKER_00: 我并不知道它会以 Jev 这种形态出现,我们得自己取得好几个突破,才能走到今天这么远,但北极星始终是:如果 AI 真的、
[1400.335-1411.329] SPEAKER_00: 真的为了对软件有用而优化,它会是什么样子?而 Jev 就是我们朝这个方向迈出的第一步,也是我们对最大有用性的 80-20 的最佳猜测。
[1411.629-1419.651] SPEAKER_01: Jev 刚出来的时候,大家对 Jev 以及它所代表的东西,似乎有两种截然不同的反应。
[1419.871-1426.337] SPEAKER_01: 一派人的反应是,哦哇,分类器我们早做出来了,逻辑回归我们也早做出来了。
[1426.557-1429.146] SPEAKER_01: 你知道吧,这有什么好兴奋的?
[1429.366-1433.359] SPEAKER_01: 还有另一派人则是,你知道,嘿,这东西太厉害了。
[1433.579-1442.414] SPEAKER_01: 比如,我以前一直想用 大语言模型s 做的那些事,现在我能以便宜得多得多、快得多得多的方式做到。
[1442.634-1448.055] SPEAKER_01: 你知道,我这问题的一部分就是,你怎么看这件事?
[1448.275-1458.956] SPEAKER_01: 不过,你知道,更具体地说,我特别想让你聊聊,你知道,从技术层面、讲得更细一点,比如 Jev 跟分类器到底有什么不同?
[1459.176-1463.402] SPEAKER_01: 或者说,它跟“嵌入模型加一个分类器”有什么不同?
[1463.622-1471.203] SPEAKER_01: OpenAI 刚出了他们的决策模型,就是那种很小的、专门为做决策做过后训练的模型。
[1471.423-1474.429] SPEAKER_01: 那它跟这个有什么不一样?
[1474.649-1477.783] SPEAKER_01: 它和你的方法到底独特在哪儿?
[1478.083-1482.425] SPEAKER_00: 天哪,我都不知道从哪儿说起,因为你留了太多线索。
[1482.645-1487.312] SPEAKER_00: 所以我打算,我就直接来一段即兴的,把它们全吃掉。
[1487.532-1489.366] SPEAKER_00: 靠,我可不会全吃掉。
[1489.586-1493.080] SPEAKER_00: 我要挑最好吃的那几个吃。
[1493.300-1501.287] SPEAKER_00: 好,那我就从最好吃的那个开始。这通牢骚我已经发过几次了,不知道这次能不能忍住不骂人地讲完。
[1501.507-1503.712] SPEAKER_00: 所以我会尽量控制住自己。
[1503.932-1516.043] SPEAKER_00: 分类器本身没什么问题。分类器是一种接口。做分类器并不是什么机器学习上的创新,2010 到 2020 年那会儿,根本没人是在发明新的分类器形态。
[1516.263-1525.527] SPEAKER_00: 大家只是在为有用的东西做分类器。而且分类器在机器学习里本来就不是为了酷,它们实打实就是“有用”的形状。
[1525.747-1533.212] SPEAKER_00: 这话听起来挺傲慢的,但这就是把智能放进软件、让软件变聪明的方式。Meta 靠什么驱动?分类器。
[1533.432-1540.119] SPEAKER_00: 也许还有一些回归器,但大概主要还是分类器。Google 靠什么驱动?大概也主要是分类器。
[1540.339-1542.626] SPEAKER_00: 所以,分类器本身没什么问题。
[1542.846-1550.287] SPEAKER_00: 其实我觉得,如果有人说我们是“什么都能做的零样本通用分类器”,那会是我为 Jev 收到过的最大的赞美。
[1550.507-1556.311] SPEAKER_00: 我们还有别的事要做,但就 Jev 来说,这会是对它一个非常了不起的描述。
[1556.531-1570.697] SPEAKER_00: 就像,如果有人说,我可以给你——你知道,随便哪个开发者——相当于 2019 年一支十几个人的 MLE 团队,来搞定你写代码时临时想到的任何任务,而且瞬间就搞定。
[1570.917-1577.116] SPEAKER_00: 而且不只是这样,质量还会比 2019 年更好,因为 AI 模型已经进步太多了。
[1577.336-1580.482] SPEAKER_00: 那它会聪明太多太多了。
[1580.702-1584.544] SPEAKER_00: 这对开发来说听起来简直太疯狂了。
[1584.764-1590.290] SPEAKER_00: 所以我觉得,拿分类器说事儿的,就是些没太搞明白、脾气还不小的 ML 人。
[1590.510-1595.061] SPEAKER_00: 这完全没问题,因为 Jamf 阵营本来就是开发者阵营。
[1595.281-1597.753] SPEAKER_00: 哎呀,我本来应该说开发者的。
[1597.973-1606.308] SPEAKER_00: 所以是的,而且我其实觉得还有另一类人,他们不只是那种“我们可以用 LMS 把同样的东西跑得便宜得多”的人。
[1606.528-1609.279] SPEAKER_00: 我其实觉得他们是第二波人。
[1609.499-1616.859] SPEAKER_00: 我觉得第一波真正兴奋起来的人,是那种觉得“AI 本来就该被塑造成这样”的人。
[1617.079-1621.246] SPEAKER_00: 这显然才是让东西变得有用的路子。
[1621.466-1626.388] SPEAKER_00: 我说的是那些离了结构化输出就活不了的人,比如 DSPy 那帮人。
[1626.608-1629.452] SPEAKER_00: 我不确定它怎么发音。DSP。
[1629.752-1635.580] SPEAKER_01: 但反正,我一直念 DSPy,不过我觉得 DSPy 是最普遍的叫法。
[1635.880-1642.300] SPEAKER_00: 但这些人啊,你知道,一直在推这种愿景:这才是真正做出有用系统的方式。
[1642.520-1652.434] SPEAKER_00: 而且我相信,从道理上讲他们非常正确,但他们一直被拖后腿,因为模型优化的是字符串,而不是他们想要的东西,也就是程序化使用。
[1652.654-1658.493] SPEAKER_00: 所以我觉得那些人,不一定是 DSPy,但有很多开发者直觉上就是这么想的。
[1658.713-1666.410] SPEAKER_00: 而我们之所以这么火,部分原因就是在 Twitter 上,他们大喊着,好像一条幻肢被还回来了一样。
[1666.630-1673.909] SPEAKER_00: 我没想到会这样,因为我自己就是这样的人,你知道,我设计的时候就在想:“我那条缺失的幻肢在哪儿?”
[1674.129-1681.826] SPEAKER_00: 结果发现还有一大堆其他人也这样,那真是太太太特么酷了。那还只是第一条线索。外面还有更多线索。
[1682.046-1686.678] SPEAKER_00: 我甚至都不记得其他那些线索是什么了,你记得吗?
[1686.898-1689.568] SPEAKER_00: 我就是一下子激动起来了。
[1689.868-1693.699] SPEAKER_01: embedding 模型加分类器,小模型,就像……
[1693.999-1700.338] SPEAKER_00: 问题是,如果你用一个小模型,或者 embedding 模型加分类器,很多人都忽略了这一点。
[1700.558-1706.560] SPEAKER_00: 而且我的团队一直叫我别再跟别人讲这个了,因为这样更容易让我们多出竞争对手。
[1706.780-1709.984] SPEAKER_00: 而现在,我觉得所有人都没注意到这一点。
[1710.204-1714.627] SPEAKER_00: 我想教育全世界,哪怕这并不符合我自己的经济利益。
[1714.847-1719.758] SPEAKER_00: 我真正想强调的是,关键不在于界面。界面确实很酷。
[1719.978-1722.973] SPEAKER_00: 甚至也不在于速度和成本。
[1723.193-1725.166] SPEAKER_00: 速度和成本都是坏事。
[1725.386-1729.588] SPEAKER_00: 理想的速度是瞬间完成。理想的成本是零。
[1729.808-1736.727] SPEAKER_00: 没人会跑起一个库然后说:我就想把成本和延迟塞进你想要的那几行代码里,对吧?
[1736.947-1741.358] SPEAKER_00: 我觉得人们就是没意识到,他们付费买的是智能。
[1741.578-1751.736] SPEAKER_00: 而如果你在 embeddings 之上用逻辑回归,或者用一个小模型,你得到的就是 embeddings 上逻辑回归的智能,或者一个小模型的智能。对。
[1751.956-1756.449] SPEAKER_00: 但大家都忽略了:你优化什么,就会得到什么。
[1756.669-1770.162] SPEAKER_00: 当然,如果你真的是唯一这么做的人,你能在这件事上获得巨大的飞跃;而我们真的就是唯一在做这件事的,尽管我一直在大声呼吁,嘿,大家,请都来做这个。
[1770.382-1773.191] SPEAKER_00: 这对世界来说真的很有价值。
[1773.411-1777.056] SPEAKER_00: 这才是让 AI 真正有用的东西。
[1777.276-1779.586] SPEAKER_00: 而且已经有很多模仿者了。
[1779.806-1782.232] SPEAKER_00: 我还是觉得大家没搞明白。
[1782.532-1786.444] SPEAKER_01: 我正想说,你说没人在做这件事。
[1786.664-1798.738] SPEAKER_01: 但短短一周之内,我觉得就有六七个甚至更多的开源项目,还有一堆其他项目,就像我昨天在 Dev Days 提到的,OpenAI 公布了他们的决策模型,
[1799.038-1806.282] SPEAKER_00: 我觉得那些小模型,或者说更小的模型,认为重要的是接口、成本和速度,而不是智能,对吧?
[1806.502-1821.667] SPEAKER_00: 就像,如果人们知道你在采取什么方法去实现,他们甚至不需要采取同样的方法,他们只需要关心智能。你知道,就像如果你拿一个开源模型,做点什么让它有相同的接口和相同的特性,然后你就只是...
[1821.887-1827.668] SPEAKER_00: 在NLP任务上做基准测试之类的。你觉得我没想过这个吗?
[1827.888-1832.996] SPEAKER_00: 这真的就是项目的第一天,我当时以为这个项目一周就能搞定。
[1833.216-1839.218] SPEAKER_00: 已经四周了。你知道,我现在才能坦然承认这一点,完全说实话,因为它太成功了。
[1839.438-1842.886] SPEAKER_00: 就像,现在承认自己的失误感觉安全多了。
[1843.106-1851.883] SPEAKER_00: 我们开始做这个的时候,我大概,往坏了说是并列第一,往好了说是世界上后训练做得最好的人。
[1852.103-1858.024] SPEAKER_00: 我以为一周就能搞定,因为我为各种各样的任务后训练过那么多模型。
[1858.244-1867.241] SPEAKER_00: 而且模型,它们似乎在很多方面都非常非常通用,但显然在决策方面不是,这是我吃了苦头才学到的。
[1867.461-1871.106] SPEAKER_00: 所以,我,我,我觉得大家在玩这些东西很酷。
[1871.326-1879.348] SPEAKER_00: 我担心,如果人们玩的是糟糕版本的模型,他们可能会被整个子类别坑了,然后说,嘿,这种东西就是垃圾。
[1879.648-1882.991] SPEAKER_01: 我希望这没有人们说的那么严重。
[1883.291-1886.135] SPEAKER_00: 没错,因为他们想要的是智能。
[1886.355-1894.156] SPEAKER_00: 如果模型是完美智能的,当然我们的模型不是,别人的也不是,那你就能解决所有问题了。
[1894.376-1897.208] SPEAKER_00: 分类是AI完备的,对吧?
[1897.428-1901.932] SPEAKER_00: 就像任何任务都可以归结为分类问题,然后你就能解决一切了。
[1902.152-1909.977] SPEAKER_00: 所以,真正重要的是智能,它决定了你能自动化什么、不能自动化什么,以及你能构建出什么样的科幻。
[1910.197-1912.693] SPEAKER_00: 这真的非常重要。
[1912.913-1914.526] SPEAKER_00: 这太重要了。
[1914.746-1921.189] SPEAKER_00: 我付出了那么多努力,你知道,如果我们不在乎这个,我们本可以早得多就发布。
[1921.409-1925.971] SPEAKER_00: 而且就算到了现在,每次要发新东西,我们都还得争一争。
[1926.191-1931.136] SPEAKER_00: 我们对可靠性的要求这么高,那还怎么继续发布东西呢?
[1931.356-1934.142] SPEAKER_00: 因为我们想做到让人信得过。
[1934.362-1945.554] SPEAKER_00: 我们想赢得的是开发者的信任,而不是那些自命不凡、总在争论哪个基准测试更厉害的机器学习研究者的信任。
[1945.774-1952.542] SPEAKER_00: 我们只是不想让人们在智能这块儿还要操心,因为开发者要搞开发,想要的就是这个。
[1952.762-1956.570] SPEAKER_00: 所以,基本上每天我都会为这件事激动得不行。
[1956.790-1963.477] SPEAKER_00: 这真的很让人沮丧,而且街上有人认出我,就会说,哦,你就是那个做 Jev 的家伙。
[1963.697-1967.830] SPEAKER_00: 我就喜欢它这么聪明、这么便宜。
[1968.050-1971.463] SPEAKER_00: 我就想,不是吧,我的名声怎么变成这样了?
[1971.683-1976.408] SPEAKER_00: 我想成为这样一个标杆:把 AI 做得可靠到像 SQL 一样无聊。
[1976.628-1986.926] SPEAKER_00: 你知道,我希望 AI 可预测到这种程度:你可以直接写查询,连拿评估集去跑一遍都不用,因为你知道,真正有常识的智能在那儿就会这么做。
[1987.146-1989.758] SPEAKER_00: 而我们每一次都能做到。
[1989.978-1994.389] SPEAKER_00: 到那个时候,软件工程师就能拥有超级厉害的能力。
[1994.609-1997.720] SPEAKER_00: 而且,没错,我当然很喜欢 Jev。
[1997.940-2000.784] SPEAKER_00: 我喜欢我们做得又快又便宜。
[2001.004-2004.951] SPEAKER_00: 我们会继续把这一点往前推。你就等着瞧吧。
[2005.171-2010.894] SPEAKER_00: 而且,可靠性才是大家花钱买的东西,这一点我怎么强调都不为过。
[2011.114-2013.958] SPEAKER_00: 可靠性才是大家想要的。
[2014.178-2018.566] SPEAKER_00: 如果你想给应用加上智能,那你就需要这种智能。
[2018.866-2022.557] SPEAKER_01: 那我们就来深入聊聊,这种智能到底怎么来。
[2022.777-2029.638] SPEAKER_01: 我想,也许咱们先从最终状态说起吧,比如它到底是什么、怎么运作的。
[2029.858-2036.382] SPEAKER_01: 然后从那儿,也许可以聊到 RLCD,这是你整个流程里很大的一块。
[2036.602-2041.408] SPEAKER_01: 但在这个过程中,我很想听听,你本来以为这只要一周就能搞定。
[2041.708-2057.453] SPEAKER_00: 结果花了久得多。到底久了多少?还有,可能其中一些里程碑和转折点是什么?哦天哪,说到这个,如果你想听点关于我的好玩又尴尬的事,当时我有了这个想法,灵光一现,我写了一篇文档,是在
[2057.673-2064.720] SPEAKER_00: OpenAI 里,标题叫——也许不能说标题,标题是:我们去年本可以拥有 AGI。
[2064.940-2070.605] SPEAKER_00: 而且它本来想写得很劲爆,就是那种,而且事实上我当时确实相信。
[2070.825-2086.036] SPEAKER_00: 我现在仍然相信它背后的核心观点,但里面的意思是,用一年左右的时间,相当于投入一次 RLHF 的努力,就足以做出这一类全新的、为机器原生而生的模型。
[2086.256-2091.561] SPEAKER_00: 而且回过头看,我们学到了,RLHF 肯定用不到一年就能做完。
[2091.781-2096.053] SPEAKER_00: 但回过头看,我觉得 RLCD 不可能在一年内完成。
[2096.273-2098.780] SPEAKER_00: 它就是难得多得多。
[2099.000-2107.579] SPEAKER_00: 我觉得,像 大语言模型 这类模型,更擅长做出讨人喜欢的东西,而不是做出经过校准、稳健可靠的决策。
[2107.799-2115.426] SPEAKER_00: 而且一旦你去掉 AI 那些谄媚讨好的成分,就会发现有很多参差不齐的地方,这些毛刺就在那儿。
[2115.646-2118.455] SPEAKER_00: 我会说,这真是花了很大功夫。
[2118.675-2135.268] SPEAKER_00: 而且我能看到那个北极星,就我们做事的方式来说,真的、真的、真的是在努力找出一些方法,就像你想象一个认知核心,上面有这些参差不齐的裂缝,那最有效的办法是什么,去把它修复到顺滑、
[2135.488-2140.735] SPEAKER_00: 稳健的表现,不管这个认知核心真正能达到怎样的智能水平。
[2140.955-2146.481] SPEAKER_00: 所以这很大一部分是理解 大语言模型 这类模型的能力。
[2146.701-2149.870] SPEAKER_00: 很大一部分是看到它们的弱点。
[2150.090-2155.651] SPEAKER_00: 很大一部分是弄清楚哪些弱点是能解决的,以及我们怎么去解决。
[2155.871-2160.596] SPEAKER_00: 我们的模型没法数清 strawberry 里有多少个 R。
[2160.816-2170.498] SPEAKER_00: 幸运的是,现实世界的工作不是这样的,但它能做一大堆别的事,因为很多工作其实是语义判断,而幸运的是 大语言模型……
[2170.798-2174.408] SPEAKER_01: 你没法把它拆成一个分类问题。
[2174.708-2179.375] SPEAKER_00: 哦,对,你可以把它拆开,但你不能就直接拿一个原样的问题去问它。
[2179.595-2186.201] SPEAKER_00: 而且从某种程度上说,这有点作弊。我就是逗你呢。从某种程度上说,这就是作弊,对吧?
[2186.421-2192.945] SPEAKER_00: 如果你把它拆成一个列表,那就能行,这样那些 token 就不会被合并到一起。
[2193.165-2207.146] SPEAKER_00: 但如果你想要的是一种合理的拆解,能让你的工程系统说得通,最好还处在合适的抽象层级,让工程师能看懂、能维护,而不是为了某一个具体问题而过拟合。
[2207.366-2222.693] SPEAKER_00: 所以就算我们的模型只要拆解得完美,就能解决每一个任务,那可能也不够,因为我们想不断往抽象层级的上层走,让人们能在语义层编程,而这个语义层要符合他们思考问题的方式。
[2222.913-2237.300] SPEAKER_00: 如果你能把“这个人想不想退款”拆成一百种不同的退款场景,那也许就能行,但那还是挺烦人的。有些企业还是会这么做,但我觉得那不算把这个活儿干完。我们已经大体聊过 Jev 了,也可能是这样:
[2237.600-2255.946] SPEAKER_01: 每个听这期节目的人都已经见过它、玩过它,对它有点了解,但万一没有呢,你知道,我之前问过你一堆问题,咱们来大致拆解一下。第一个是,从开发者、也就是你的目标用户的角度来看,这东西到底长什么样、用起来是什么感觉?
[2256.166-2261.494] SPEAKER_01: 嗯,我大体上把它看成,或者说你可以叫它一种智能 API。
[2261.714-2275.207] SPEAKER_01: 你给它一堆可能的决策和一些输入,然后它就会做出其中一个决策,或者告诉你它认为答案是哪一个,还会给你一些概率。你会怎么调这个?我喜欢这个说法。
[2275.507-2281.451] SPEAKER_00: 很多人会用各种不同的方式描述它,只要他们说得准确,我都接受。
[2281.671-2284.016] SPEAKER_00: 我也喜欢“智能版的 SQL”这个说法。
[2284.236-2300.399] SPEAKER_00: 你知道,或者可以说它是个组合,对吧,就像一个系统:有接口,然后是模型,而这两样差不多都是我们做的,所以会有点让人搞不清。但对我来说,接口就像是做智能应用的积木,有点像加了第四个逻辑门之类的。
[2300.619-2311.242] SPEAKER_00: 所以我真的很希望智能能被标准化成一套通用的原语,而且最好所有人都把这些东西做得尽可能聪明,不只是我们。
[2311.542-2327.310] SPEAKER_01: 我也喜欢这种定位方式:嘿,我们有语言模型这个东西,现在又有了决策模型这个新东西,这多少说明了它想做什么——不一定是指 Jev,而是某种正在兴起的类别。对,跟我说说。
[2327.610-2341.393] SPEAKER_00: 关于这个我得先小小提醒一下:我们考虑过“决策模型”这个名字,我并不反对这个名字,我觉得最好的类别名称是由社区来起的。不过我得先声明,我们没选它是有原因的,
[2341.613-2346.256] SPEAKER_00: 而且我觉得,能归到这类模型里的东西远不止决策。
[2346.476-2352.304] SPEAKER_00: 所以我会说,人们面向 Jev 的公开接口可以叫决策模型,但我个人不会把这个类别……
[2352.604-2357.828] SPEAKER_01: 有没有什么例子,是 Jev 会很擅长、但又不属于决策的?
[2358.128-2362.156] SPEAKER_00: 哦,我不会告诉你,不过如果你愿意,我可以给你个提示。
[2362.376-2367.519] SPEAKER_00: 所以,我说过,决策和分类,就是让智能对软件有用的方式。
[2367.739-2371.965] SPEAKER_00: 而我们整个要做的,就是让智能对软件有用。
[2372.185-2380.149] SPEAKER_00: 我还说,可用的不只是决策,这听起来有点像个悖论,但我想说,总有一天这会变得显而易见。
[2380.369-2391.285] SPEAKER_00: 我还不能透露,因为这些东西在路线图里还比较远。不过,如果你的读者想琢磨一下,这会是个挺有意思的东西。所以这大概就是它的形态和功能表面。
[2391.585-2398.423] SPEAKER_01: 我们再聊一点它是怎么做出来的。核心有一个模型,我们不打算叫它决策模型。
[2398.643-2405.945] SPEAKER_01: 我们就叫它 Jev,它是通过一个叫 RLCD 的过程做出来的?还是后训练?
[2406.165-2410.634] SPEAKER_01: 它是对别的东西做后训练得到的吗?
[2410.854-2414.627] SPEAKER_01: 还是完全从零开始做出来的?
[2414.847-2417.436] SPEAKER_01: 那这个东西,你能跟我们说点什么?
[2417.736-2421.799] SPEAKER_00: 我会用一种有点过于精确的方式来回答。
[2422.019-2427.568] SPEAKER_00: 在 RLHF 出现之前,后训练这个概念并不存在,对吧?
[2427.788-2434.277] SPEAKER_00: 我们团队当时并没有给后训练起名字,但可以说是我们创造了后训练这个概念。
[2434.497-2440.580] SPEAKER_00: 当时已经有微调了,大家会说,你们不就是拿字符串去微调模型吗?
[2440.800-2449.124] SPEAKER_00: 按某些定义来说,我们确实是在微调模型,但我们做的远不止这些,以至于到某个时候,这么说就有点误导了。
[2449.344-2457.470] SPEAKER_00: 所以其实我会说,叫它后训练,事后看很可能会被认为是不准确的,但这个领域还没有一个术语来形容我们在做的事情。
[2457.690-2460.801] SPEAKER_00: 所以未来大概会揭晓更多吧。
[2461.101-2464.630] SPEAKER_01: 如果你现在要发明一个词,你会把它叫什么?
[2464.930-2467.658] SPEAKER_00: 团队里没人喜欢我的想法。
[2467.878-2478.071] SPEAKER_00: 我在别的地方也说过,所以我不介意再说一遍。回到苦涩的教训,因为这是机器学习,我们非常在意北极星指标,而且愿意为它付出一切。
[2478.291-2488.333] SPEAKER_00: 而且我尽量把取舍说得尽量坦率,其中一部分取舍就是,它在字符串生成上会差很多,不过 Jev 也能聊天这些东西。
[2488.553-2491.025] SPEAKER_00: 这挺可爱的,但显然很蠢。
[2491.245-2494.251] SPEAKER_00: 这些都是我们有意做出的取舍。
[2494.471-2502.052] SPEAKER_00: 所以,设计整个流程的时候,在 大语言模型s 上面做后训练要容易得多,因为形态非常相似。
[2502.272-2513.626] SPEAKER_00: 这边是字符串,那边基本上也是字符串。严格来说,ChatML 格式里有一些结构,但大多数时候就只是字符串,所以整个技术栈有很多相似之处。
[2513.846-2521.369] SPEAKER_00: 我们做的其实是把很多基础部件拆出来,重新捣鼓一遍,再用上一些来自其他东西的零件。
[2521.589-2530.946] SPEAKER_00: 所以我把它形容成模型版的弗兰肯斯坦的怪物——这本书我没读过,但有人告诉我,它至少是无辜的,甚至可能还是个好人。
[2531.166-2535.392] SPEAKER_00: 说清楚一点,因为总有人说,别把模型叫成怪物。
[2535.612-2538.746] SPEAKER_00: 而我会说,不过这个比喻挺贴切的。
[2539.046-2543.933] SPEAKER_01: 那你把这个还没名字的东西,应用在什么基础之上?
[2544.153-2546.823] SPEAKER_01: 是现成的 Quen 模型之类的吗?
[2547.123-2550.954] SPEAKER_00: 很多不同的开源模型,因为它们各自的取舍都不一样。
[2551.174-2555.086] SPEAKER_00: 所以我们其实到处都在做弗兰肯斯坦式的拼接。
[2555.306-2574.662] SPEAKER_00: 但关键的一点是,如果我们想做到最大程度的精确和有用,就得先弄清楚北极星指标,弄清楚你愿意做出哪些取舍,然后把对那个取舍没用的东西,或者为了你放弃的那件事才需要的东西,全都去掉,再极度专注在真正重要的事情上。
[2574.882-2580.385] SPEAKER_00: 而且这里面很多都会按照第一性原理来做,并配合几个月的研究。
[2580.685-2588.045] SPEAKER_01: 当然,但总的来说这还是太宽泛了,具体来说,有意思的是,你并不是从零开始,而是从……
[2588.265-2602.350] SPEAKER_01: 大语言模型's,还有类似 transformers 的东西,而且你是在这些已经靠 大语言模型's 站稳脚跟的构建模块上搭建。我说过你用了还是没用?我没说 transformers。
[2602.650-2611.531] SPEAKER_00: 我确实说了开放权重模型,这里有个细微区别,我只是想说得精确一点。嗯,所以我觉得,哦天哪,有件事我想提一下,好吧,第一,
[2611.751-2614.595] SPEAKER_00: 很明显,我们没做预训练。
[2614.815-2622.651] SPEAKER_00: 就像,如果我们能用自己这点预算,预训练得比全世界其他人都好,那全世界其他人就彻底没戏了。
[2622.871-2633.366] SPEAKER_00: 我觉得预训练并不是世界上最有效率的事情,为了那些算不算线性都不好说的收益,投入指数级更多的资源,这看起来非常次线性。
[2633.586-2637.312] SPEAKER_00: 在我看来,这买卖有点不划算,除非它确实有必要。
[2637.612-2651.349] SPEAKER_01: 也就是说,我们基本上已经把内容这片汪洋大海煮干,提炼成能被某些下游流程消费的东西;除非你在做根本性不同的事情,否则为什么还要继续这么做?
[2651.649-2657.639] SPEAKER_00: 所以我们更想专注于那些能实现的十倍甚至更大的跃迁。
[2657.859-2662.642] SPEAKER_00: 而且我们认为,这完全可以在有限预算内做到。
[2662.862-2665.834] SPEAKER_00: 我们显然这么认为,因为我们做到了。
[2666.054-2672.497] SPEAKER_00: 但就我个人而言,我认为所有AI公司都应该被按同样的标准来要求。
[2672.797-2686.824] SPEAKER_01: 我之所以想在这个点上真正深挖,部分原因并不是要让你说,哦,我们用的是 Quen 3.6 还是什么版本;而是我花了一段时间才想明白,这东西的核心其实是一个 大语言模型,
[2687.044-2689.749] SPEAKER_01: 而这就是智能的来源。
[2689.969-2692.616] SPEAKER_01: 也是零样本能力的来源。
[2692.836-2702.890] SPEAKER_01: 而且,如果你把它想成,就像,如果你只看到推特上的说法,哦,这就像是个很酷的新分类器之类的东西,然后你说,哦,好吧。
[2703.110-2713.129] SPEAKER_01: 那它可能是,我也说不好,XGBoost,或者别的什么,什么都可能,而且他们做了些很厉害的训练之类的事。
[2713.349-2720.709] SPEAKER_01: 但接着你就会想,哦,那我就得对它做后训练,或者得给它一些关于我这个领域的信息之类的东西。
[2720.929-2730.751] SPEAKER_01: 如果我只是丢给它一堆决策,然后让它自己判断,那这种智能到底是从哪儿来的——这就说到你关于智能的那个点。
[2730.971-2737.460] SPEAKER_01: 但如果你意识到,底下某个地方有一个 大语言模型,那你就能开始看出这为什么能行得通。
[2737.760-2739.710] SPEAKER_00: 我能理解这个类比。
[2739.930-2746.036] SPEAKER_00: 我有点……我其实是想避免用 大语言模型 这个说法,因为严格来说它不是语言模型。
[2746.256-2751.701] SPEAKER_00: 你知道,它并不对语言建模,尽管人们总想把它硬归到那一类。
[2751.921-2763.739] SPEAKER_00: 我把它看作一个更广泛的现象:最近这波AI一直在造出这些极其厉害的、浓缩的智能碎片,外面再套一层脚手架,把它变成一个 大语言模型。
[2763.959-2770.019] SPEAKER_00: 所以想象一块巨型电池,上面加了些东西,就变成了语言模型。
[2770.319-2778.318] SPEAKER_01: 我只是从互联网压缩版本这个意义上这么说的。没错。没错。所以我会用那个说法。
[2778.538-2785.341] SPEAKER_01: 你有一个由大量努力创造出来的互联网压缩版本,而你正在使用它。没错。
[2785.641-2790.006] SPEAKER_00: 而我认为那是获得我所谓的通用智能的唯一途径。
[2790.226-2800.767] SPEAKER_00: 到目前为止,那是我所见过的通往通用智能的唯一途径,或者说是如果你想称之为通用智能还有待商榷,但我认为它是通用的。
[2801.067-2808.706] SPEAKER_01: 不是要过度简化,就像你做了很多事情,像是你把好几个不同的模型拼凑在一起,听起来是这样。
[2808.926-2815.764] SPEAKER_01: 你有一个复杂的过程,我们不会称之为后训练,但有个东西叫RLCD。那是什么?
[2816.064-2828.138] SPEAKER_00: 所以回到RLHF这个话题,RLHF不是关于在奖励模型上用PPO,你知道的,像是先做SFT,然后训练奖励模型,然后再做那个的策略训练。
[2828.358-2842.687] SPEAKER_00: 好吧,RLHF是关于人类决策的,而你的东西是关于决策的,校准决策。没错。人类偏好。它从来不是关于人类决策的。人类偏好。抱歉。对对对。人类反馈。没错。
[2842.907-2852.624] SPEAKER_00: 所以当我谈到RLCD时,我谈的是专门为校准决策而优化的一类通用算法,因为那才是对软件有用的东西。
[2852.844-2856.350] SPEAKER_00: 所以我们这里确实有很多算法,我们一直在尝试。
[2856.570-2864.696] SPEAKER_00: 我们实际上讨论过在这里发表一些东西,但我不会承诺很快,因为团队超级超级忙。
[2864.916-2867.307] SPEAKER_00: 但我想你可以想象。
[2867.527-2871.857] SPEAKER_00: 但我认为发表RLHF可能对世界真的很有好处。
[2872.077-2875.025] SPEAKER_00: 它让很多人理解了一些东西。
[2875.245-2877.938] SPEAKER_00: 我们花了几个月才发表它。
[2878.158-2882.662] SPEAKER_00: 但我们之前已经用指令训练过GPT一段时间了。
[2882.882-2887.688] SPEAKER_00: 而我认为最终在这里发表一些东西对世界也会非常有益。
[2887.908-2890.822] SPEAKER_00: 所以我认为那是有可能的。
[2891.042-2895.871] SPEAKER_00: 但任务是——那是算法与任务的区别,说清楚一下。
[2896.091-2899.864] SPEAKER_00: 其他人可能会在同一个任务框架下做出其他算法。
[2900.164-2906.851] SPEAKER_01: 多聊聊这个任务有用吗,还是你指的是我们到目前为止一直在讨论的那种广义上的任务?
[2907.071-2911.204] SPEAKER_01: 比如什么,像在学术语境里,我会问设定是什么。
[2911.424-2914.349] SPEAKER_01: 比如 RLCD 的设定是什么?
[2914.569-2916.682] SPEAKER_01: 比如你是怎么定义它的?
[2916.982-2920.314] SPEAKER_00: 这个事情非常复杂,但我可以给一个简化版。
[2920.534-2925.677] SPEAKER_00: 你有没有用过聊天补全 API 里的函数调用?
[2925.897-2933.176] SPEAKER_00: 所以函数调用有点像做决策,因为它其实就是决策,只不过它是在字符串那一层之上做的。
[2933.396-2939.955] SPEAKER_00: 所以你能用的所有旋钮,都是字符串模型那边还留下来的、跟字符串有关的旋钮。
[2940.175-2944.958] SPEAKER_00: 这种字符串旋钮的一个例子就是 logit bias。
[2945.178-2955.998] SPEAKER_00: logit bias 能让你往采样某个特定 token 的方向推一把,所以你可以用它让某些 token 出现的概率变低或者变高,如果这么说能明白的话。
[2956.218-2963.462] SPEAKER_00: 我的一个主张是,要是函数调用 API 没有针对函数本身的 logit bias,那它就不该存在。
[2963.682-2967.513] SPEAKER_00: 就是说,你为什么不把这个旋钮提供给用户呢?
[2967.733-2974.931] SPEAKER_00: 因为比如你在做客服,要判断是不是该转人工,那你是 Walmart 还是 Costco,策略很可能差得很远。
[2975.151-2979.121] SPEAKER_00: 我对这些策略一无所知,我只是随便编了几个。
[2979.341-2993.519] SPEAKER_00: 可现在唯一的替代方案,就是又在语言里写指令,比如“请退款”或者“请不要退款”,或者什么很离谱的东西,而不是把系统的控制权交给实现下游行为的程序员。
[2993.739-3003.224] SPEAKER_00: 所以对我来说,RLCD 就是把正确的接口开放给构建者,让他们能得到自己想要的性质,而不用只是对着系统消息祈祷。
[3003.444-3008.006] SPEAKER_00: 而且像这类基础的东西,本来就是最起码的要求。
[3008.226-3014.367] SPEAKER_00: 比如这事最近没发生,但早些年发生过,当时 OpenAI 有过过度拒绝的问题。
[3014.587-3017.698] SPEAKER_00: 他们不得不回滚模型,因为它拒绝得太多了。
[3017.918-3021.284] SPEAKER_00: 而我会说,那其实是很糟糕的决策。
[3021.504-3035.322] SPEAKER_00: 当时发生的情况是,模型在它的权重里就已经做了决定——拒绝还是不拒绝——然后系统就完全照着语言模型的想法走,因为它把决策和文本混在了一起,然后直接那么做了。
[3035.542-3042.507] SPEAKER_00: 所以从构造上说,确实存在一些查询,你多刷新几次,它有时候会拒绝,有时候又不会拒绝。
[3042.727-3046.256] SPEAKER_00: 从工程角度看,这种行为简直离谱。
[3046.476-3048.925] SPEAKER_00: 为什么你会没有阈值呢?
[3049.145-3052.709] SPEAKER_00: 为什么你会没有一个可调的阈值呢?
[3052.929-3060.370] SPEAKER_00: 为什么你不设一个可调的阈值,让它至少能间接地根据人们在抱怨的情况来调整呢?
[3060.590-3071.935] SPEAKER_00: 或者,如果你在做客服,为什么你决定要不要升级的阈值,不能取决于一些非常基本的东西,比如现在人工客服要花多少钱,因为也许那会让情况不一样。
[3072.155-3075.707] SPEAKER_00: 而今天我们根本没有这些控制手段。
[3075.927-3087.246] SPEAKER_00: 所以我觉得,RLCD 真正暴露出来的,是对工程来说最原生的那些控制手段,也就是任务的形状,而很多东西都来自这个形状。
[3087.466-3094.072] SPEAKER_00: 比如,要想有真正有意义的旋钮可以调、有阈值可以切,你就必须是经过校准的。
[3094.292-3097.635] SPEAKER_00: 你需要你的概率又聪明又准确。
[3097.855-3103.218] SPEAKER_00: 你在乎的是概率的长尾,而不只是准确率。
[3103.438-3110.438] SPEAKER_00: 而且这个任务本身有很多东西要做,比如研究这个、看清权衡、搞清楚什么才是正确的行为。
[3110.658-3120.596] SPEAKER_00: 一个 ML API 的产品化有很多门道,大多数人没意识到,因为他们无脑地追着 MAU、月活跃用户这类指标的梯度走。
[3120.896-3131.879] SPEAKER_01: 你谈到 RLCD 的设置是其中一部分:你有一组输入,其中有用户提供的输入,但还有一些旋钮,它们有点像是在控制系统内部的偏差。
[3132.099-3143.929] SPEAKER_01: 现在的 Jev 产品会把这些暴露给用户吗,还是说这些旋钮只有 Jev 工程团队能访问,用来打造你们向全世界发布的这个决策 API?
[3144.229-3149.720] SPEAKER_00: 但据我所知,内部 API 和外部 API 基本上是一样的。
[3149.940-3155.222] SPEAKER_00: 那如果我们没有他们的应用,又怎么知道用户应该把这个设成什么呢?
[3155.442-3159.609] SPEAKER_00: 什么是合适的置信度,也是这件事的一部分。
[3159.829-3162.464] SPEAKER_00: 概率也是其中一部分。
[3162.684-3171.704] SPEAKER_00: 大多数人不会用这些概率,但我猜一旦进入硬核工程,你每次都会用概率,而不是只挑模型认为最好的那个。
[3171.924-3188.575] SPEAKER_00: 因为,即便把所有选择都算上,即便你对每个能采取的动作都有完美的概率,作为部署这个东西的公司或企业,甚至是一个把自家系统托付给它的软件工程师,这些动作每一个都有不同的成本和收益。
[3188.875-3193.124] SPEAKER_01: 嗯,我想我还是想回到概率作为输出这件事上。
[3193.344-3200.785] SPEAKER_01: 我更多是在想那些输入旋钮,就是,你知道,我粗略看了一眼 Java API 的时候。
[3201.005-3211.407] SPEAKER_01: 它看起来是个非常简单的 API 形态,但我还没深入看文档,去研究除了我传进去的决策之外,你让我能访问的所有可能的旋钮。
[3211.627-3214.471] SPEAKER_01: 比如,那些旋钮都有哪些?
[3214.771-3219.055] SPEAKER_00: 这些旋钮就是通过输出概率来实现的。
[3219.275-3223.199] SPEAKER_00: 我们基本上就是信任用户去做这些决定。
[3223.419-3226.263] SPEAKER_00: 这相当于,想象一下速度不是问题。
[3226.483-3237.396] SPEAKER_00: 那就相当于 OpenAI API 为每个 token 输出 logits,然后软件开发者可以选择他们想怎么串联采样算法,而不是让 OpenAI 直接包办一切。
[3237.616-3258.551] SPEAKER_00: 所以我们把这些旋钮交出去,是通过让人们能直接访问原始模型,然后其他人可以访问这些字符串模型,这样他们就能把行为调到他们系统里真正需要的状态,而不是,你知道,像 OpenAI 的产品经理觉得对所有用 API 的人都全局合适的行为,或者一个
[3258.771-3260.164] SPEAKER_00: 第一方产品。
[3260.464-3265.096] SPEAKER_01: 这也让我想到我之前的一个问题,就是你是怎么做到这一点的。
[3265.316-3269.205] SPEAKER_01: 我猜,我想这又要绕回到 RLCD 了。
[3269.425-3273.976] SPEAKER_01: 但就像,一直以来,不确定性估计都非常困难。
[3274.196-3284.888] SPEAKER_01: 而且你知道,特别是当我们谈的是这些,你知道,互联网的大型压缩版本,它们历来就是用来生成文本的,还有一般意义上的大型复杂模型。
[3285.108-3287.615] SPEAKER_01: 那你是怎么做到的?
[3287.915-3292.547] SPEAKER_00: 靠努力,靠血汗和眼泪,还有,也是靠努力。
[3292.767-3296.273] SPEAKER_00: 我们长时间都处于隐身模式。
[3296.493-3300.045] SPEAKER_00: 在 AI 领域,隐身两年简直有点离谱。
[3300.345-3310.619] SPEAKER_01: 我不是要你透露核心机密,而更像是,它是不是,是不是建立在某种东西上,比如你的指引星是什么,那个,就像那个,
[3310.839-3324.285] SPEAKER_01: 这个原则,在某种程度上帮我们理解,为什么我们应该信任这些概率,而不是说,它们只是有个 token 生成器,被训练来生成 0 到 1 之间的数字而已。
[3324.585-3330.494] SPEAKER_00: 最后再给你透露一点料,就是,你知道,我们确实在隐身模式下做了很长时间。
[3330.714-3337.482] SPEAKER_00: 我们错过了太多波热潮,尽管我们觉得 Jev 本来会非常适合其中很多波。
[3337.702-3342.647] SPEAKER_00: 就像,天哪,要是能跟 OpenClaw 同时发布 Jev,那肯定酷毙了。
[3342.867-3347.975] SPEAKER_00: 那本来会很棒,因为大家在 OpenClaw 上都有很多可靠性问题。
[3348.195-3353.941] SPEAKER_00: 而且,这些互联网的压缩物,就我们能衡量的范围来看,校准得还不错。
[3354.161-3360.070] SPEAKER_00: 它们并不是完美校准的,但比 RLHF 模型校准得好太多太多了。
[3360.290-3369.125] SPEAKER_00: 其实,RLHF 和 RLVR 会严重破坏模型的校准,因为为了把字符串输出得好,你其实需要极度的过度自信。
[3369.345-3377.112] SPEAKER_00: 它需要一种类似模式丢弃损失的东西才能做到这一点,而这会彻底扭曲概率。
[3377.332-3387.467] SPEAKER_00: 而且我觉得 GPT-4 的论文开始谈到这一点,因为就是从那时候起,模型开始不再发布预训练版本,而只开始发布后训练版本了。
[3387.687-3390.833] SPEAKER_00: 但以前的模型校准得还挺不错的。
[3391.053-3394.559] SPEAKER_00: 看看 Anthropic 早期发表的很多内容。
[3394.779-3401.222] SPEAKER_00: 他们测量了所谓的 P-I-No,也就是模型知道事实的概率。
[3401.442-3404.507] SPEAKER_00: 这些都相当不错,但肯定还不够好。
[3404.727-3409.150] SPEAKER_00: 我猜 Jev 能轻轻松松碾压所有这些。
[3409.370-3417.067] SPEAKER_00: 关键是,就像 RLVR 能自举出推理一样,也有办法从所有这些里面自举出校准、可靠性和智能,对吧?
[3417.287-3424.229] SPEAKER_00: 就像在理想情况下,RLVR 的推理并不是来自人类把推理写出来,因为它的做法不一样。
[3424.449-3439.904] SPEAKER_00: 但如果你有正确的、针对校准决策的 RL 目标,就有办法让它从那些种子数据开始运作,在训练过程中变得越来越、越来越校准——训练那个过程我其实不太清楚叫什么,epoch 也好,训练阶段也好,随便吧。
[3440.124-3455.033] SPEAKER_00: 所以,有,有一些那种含糊但说得通的方法,让你能从并不完全是零的地方,而是从 AI 今天拥有的美好原材料里,得到校准过的东西,因为 AI 手上的东西太多了,我觉得 AI 现在还是一块璞玉。
[3455.253-3458.318] SPEAKER_00: 你知道,那里面可做的事情太多了。
[3458.538-3467.373] SPEAKER_00: 如果我不是在做 Jev,我理想中大概不会去创办公司,而是会在 AI 模型之上做点别的好玩的东西。
[3467.673-3470.923] SPEAKER_01: 那怎么才能实现泛化呢?
[3471.143-3480.547] SPEAKER_01: 想必你是以某个决策语料库为基础,这样才能教会这个东西决策是什么样,以及怎么映射到这些概率之类的。
[3480.767-3490.449] SPEAKER_01: 但就像那样,呃,你知道,跟所有这些、这些训练工作一样,你知道,你问的东西必须在分布内,模型的结果才具有代表性。
[3490.669-3502.209] SPEAKER_01: 还有,我们该怎么想这件事,你知道,如果你想要实现,嗯,零样本,嗯,分类,比如零样本决策,我怎么知道,比如说,
[3502.429-3510.056] SPEAKER_01: 我的具体问题是在分布内还是分布外,而且也许更宽泛地说,我会觉得
[3510.276-3523.862] SPEAKER_01: 泛化对于工作流、决策,还有软件交互,以及所有我们想自动化的这些东西来说,会比,呃,会比单纯生成文本更难,但我也可能完全说错了。所以你来说说看。
[3524.162-3528.864] SPEAKER_00: 这是个有意思的问题,也许作为对话来聊会比作为讲座更有趣。
[3529.084-3531.429] SPEAKER_00: 你知道吗?也许吧。
[3531.649-3534.516] SPEAKER_00: 你为什么觉得 AI 缺乏泛化能力?
[3534.736-3541.342] SPEAKER_00: 我自己也有答案,之后也可以说,但你为什么觉得泛化不是 AI 天生的能力呢?
[3541.642-3545.368] SPEAKER_01: 听起来你是在问一个哲学问题。
[3545.668-3552.796] SPEAKER_00: 而我也可以问,问一个更实际的版本,你知道,ChatGPT 给人的感觉到底有多通用?
[3553.096-3568.179] SPEAKER_01: 我觉得,你知道,这个问题背后的视角是,嗯,作为一个一般原则,你知道,回答的可靠性在某种程度上取决于它跟训练数据的映射,以及,呃,你知道,
[3568.399-3577.338] SPEAKER_01: 以及你问的东西对模型来说有多熟悉,你知道,这些说法都是非常宽泛地在用,而且,呃,非常宽泛,对吧。
[3577.558-3588.413] SPEAKER_01: 所以就像,我觉得,呃,你知道,为什么会有“决策比,呃,比文本更难泛化”这种看法,是因为,大概只要我在世界上有足够多的文本,
[3588.633-3593.822] SPEAKER_01: 如果我让模型生成文本,它就开始明白怎么把词组合在一起。
[3594.042-3602.424] SPEAKER_01: 而如果我不是在要求它给出精确的事实,那么,你知道,它就能把词组合得听起来挺合理。
[3602.644-3617.217] SPEAKER_01: 但如果,呃,比如说,你知道,我有一套会计工作流,我需要做一件非常精确的事,如果那个工作流跟做这类工作流的标准方式差别很大,我会觉得模型会非常自信地犯错。
[3617.517-3620.024] SPEAKER_00: 哦,真好玩,好玩的东西。
[3620.244-3626.664] SPEAKER_00: 所以,你知道,ChatGPT 到底通不通用,这是我想拿来开场的一种方式。
[3626.884-3630.274] SPEAKER_00: 那它给你的感觉是通用的吗?
[3630.574-3634.579] SPEAKER_01: 我的意思是,我觉得它,我觉得它是通用的。
[3634.799-3652.123] SPEAKER_01: 而且,我的意思是,这可能会往一个,你知道,不同的哲学方向走,但是,你知道,我以前非常非常强烈地反对把 AGI 当成一个宽泛的词,用来形容我们已经取得的成就,不过在过去三个月里,
[3652.343-3668.158] SPEAKER_01: 我可能越来越能说,我们算是实现了这个目标,嗯,你知道,意思就是,我可以跟一个 AI,你知道,像聊天一样对话,然后让它在我业务里做事,就像一个员工可能会做的那样,
[3668.378-3675.320] SPEAKER_01: 就像,AGI 和泛化是不同的概念,但,像,我现在接受 ChatGPT 是通用的这个想法。是的。
[3675.540-3680.787] SPEAKER_01: 我不觉得这就否定了关于分布内、分布外的那条质疑思路。
[3681.087-3693.628] SPEAKER_00: 我的意思是,这里面有一点这种因素,因为分布内和分布外也取决于你在这个事情上花了多长时间、下了多大功夫,因为你开始挖掘那些长尾例子了。
[3693.848-3702.985] SPEAKER_00: 所以从大局来看,今天的 ChatGPT,即使你用即时模式,也就是关掉推理,也比四年前的 ChatGPT 精细太多了。
[3703.205-3705.631] SPEAKER_00: 嗯,是三年零十个月。
[3705.931-3715.369] SPEAKER_01: 当然,但这不一定是因为模型更通用了,而是因为我们现在搭了这些外挂框架,它们知道怎么出去找信息来填充上下文。
[3715.669-3723.610] SPEAKER_00: 我的意思是,如果只说 ChatGPT,我会觉得它确实有泛化能力上的提升,但 ChatGPT 本来就已经相当通用了。
[3723.830-3727.939] SPEAKER_00: 而且我会说,它把很多简单的事情做得相当好。
[3728.159-3733.000] SPEAKER_00: 而且我确实觉得,有些事情本身就带有一部分通用性。
[3733.220-3747.166] SPEAKER_00: 我其实有一篇单独的博客文章,我记得标题叫 Lies, damned lies, and benchmarks,里面我谈到我们今天在语言模型上看到的很多脆弱性和参差不齐,都来自 RLVR。
[3747.386-3754.073] SPEAKER_00: 因为如果你对 RLVR 不太宽容地看,它从定义上说,差不多就是在针对基准测试做优化。
[3754.293-3760.922] SPEAKER_00: 从定义上讲,一个可验证的奖励就是可以被拿来做基准测试的奖励。
[3761.142-3769.408] SPEAKER_00: 而在答案之前加入潜在推理,你就给了模型极大的发挥空间,让它们在这些基准测试上表现得特别好。
[3769.628-3773.830] SPEAKER_00: 所以这完全不让人意外。它在基准测试里做得非常好。
[3774.050-3778.601] SPEAKER_00: 而我觉得很多参差不齐的表现就是从这里来的。
[3778.821-3796.122] SPEAKER_00: 然后你就撞上这个整体挑战:在分布内加越来越多、越来越多、越来越多的数据,收益却越来越递减,让那条参差不齐的前沿变得更分形、更尖刺,结果它能把某些事做得特别可靠,但又不是样样都超强。
[3796.342-3802.205] SPEAKER_00: 我觉得看这事最后怎么发展会非常有意思,因为他们在这上面花了很多钱。
[3802.425-3810.412] SPEAKER_00: 而且我的感觉是,它现在还不是特别通用;而从我看到的情况来说,我们通往通用性的路会容易得多。
[3810.632-3814.904] SPEAKER_00: 但要论通用性,最容易的无疑是 RLHF。
[3815.124-3824.806] SPEAKER_00: RLHF 想让模型变通用,简直容易得离谱,因为它特别特别擅长写讨人喜欢的东西,而那本来就是主观的。
[3825.026-3841.305] SPEAKER_00: 所以我觉得这就是那种——你优化什么,就得到什么——但你得意识到现实世界,而现实世界就是:这些互联网的压缩版本,在把智能浮现出来这方面到底有多强。我觉得它们特别擅长写让人满意的文本。
[3841.525-3851.718] SPEAKER_00: 它们挺擅长系统一任务,但要让它们把系统二任务做好,那真是一场硬仗,所以才有了我们现在看到的这种极度参差不齐。
[3851.938-3855.525] SPEAKER_00: 不过,看着它往哪儿走,还是会非常有意思。
[3855.745-3859.831] SPEAKER_00: 我非常期待看到这些模型不断进化。
[3860.131-3871.148] SPEAKER_01: 我不确定这是不是回答了为什么一个 dev 模型,呃,首先,你同意吗——在商业决策这个领域里,泛化真的比在文本里更难吗?
[3871.368-3875.512] SPEAKER_01: 还是你觉得这个前提本身就不对?我会不同意。
[3875.812-3890.721] SPEAKER_00: 我会——或者说,这取决于你说的文本是什么意思;如果你问的是哪个更难:遵循一个简单的业务流程,还是解决数学里的千禧年大奖难题,那我敢押很大一笔,数学问题难得多。
[3890.941-3898.719] SPEAKER_00: 呃,别人可能会不同意,押另一边,但那太违背常识了,我没法说别的。所以咱们把这个问题一层层剥开来看。
[3899.019-3906.205] SPEAKER_01: 就是说,我觉得问题的一部分,或者说我的出发点的一部分,是我想拿模型跟模型比,
[3906.425-3919.988] SPEAKER_01: 而不是拿 harness 跟 Jev 比——这里你可以纠正我——我把 Jev 想得更像一个模型,而不太像一个 harness。其实我明白这个区别。我觉得我刚才说的是,想象一下
[3920.288-3927.695] SPEAKER_00: 有一张,就像一张宏大的图,一张宏大的图,天哪,呃,一张关于通用性有多高的图。
[3927.915-3932.582] SPEAKER_00: 我相信我刚才说的是,不同目标下这条曲线的斜率。
[3932.802-3944.760] SPEAKER_00: 我的主张是——先不说模型现在处在哪儿——我的主张是:RLHF 最容易,其次是 RLCD,再其次是 RLVR。
[3944.980-3948.706] SPEAKER_00: 所以我是在对整个任务空间做一个判断。
[3948.926-3954.614] SPEAKER_00: 就模型而言,Jev 在它的曲线上还处在极其早期的阶段。
[3954.834-3957.748] SPEAKER_00: 这真的就是我们的第一个公开发布版本。
[3957.968-3961.474] SPEAKER_00: 你该把它当成早期的 ChatGPT 来看。
[3961.694-3968.183] SPEAKER_00: 而且我猜,从整体稳健性来看,RLHF 模型在做决策方面非常糟糕。
[3968.403-3977.400] SPEAKER_00: 所以我猜,R 模型在做决策上会比最大的 RLVR 模型差一些,但会比那些非推理的 RLHS 模型好得多。
[3977.620-3980.766] SPEAKER_00: 这大概就是我觉得我们今天所处的位置。
[3980.986-3989.902] SPEAKER_00: 而当我们真正加大投入、扩大规模时,我预计我们会大幅超越一切,至少是在偏业务的工作流上。
[3990.122-3995.044] SPEAKER_00: 但话说回来,这是第一个模型,还是早期研究预览版。
[3995.264-4001.173] SPEAKER_00: 还有,对,如果模型里有犯傻的地方,我们特别想听到,然后修好它。
[4001.393-4004.539] SPEAKER_00: 我们还有很多事要继续做。
[4004.759-4011.005] SPEAKER_00: 而且我相信,要把可靠性一个九一个九地加进模型里,这会是一辈子的旅程。
[4011.225-4015.427] SPEAKER_00: 而每多一个九,都会解锁各种疯狂的用例。
[4015.647-4028.339] SPEAKER_00: 所以,嗯,请多理解,而且我觉得它现在已经特别有用、特别聪明了,我也觉得它还能变得好得多,而且它不像其他模型那样已经处在收益递减的极端平台期。
[4028.639-4034.560] SPEAKER_01: 所以我最后那句话引出了另一个想法,就是模型和 harness 之间的关系。
[4034.780-4046.230] SPEAKER_01: 我觉得在 大语言模型s 这种情况下,你知道,大语言模型s 本来就挺有用的,嗯,但后来我们给 大语言模型s 加上了 harness,它们就变得有用多了。
[4046.450-4058.744] SPEAKER_01: 嗯,你可以告诉我你同意还是不同意,呃,但问题是,Jev 是不是主要还是模型、只有一点点 harness,而很多创新可以通过扩展那个 harness 来实现?
[4058.964-4063.886] SPEAKER_01: 还是说它主要是 harness、只有一点点模型?
[4064.106-4070.549] SPEAKER_01: 甚至,用同样的模型和 harness 之间的关系来想它,这说得通吗?
[4070.769-4074.553] SPEAKER_01: 在 Jev 这种情况下,harness 会起什么作用?完美。
[4074.853-4079.961] SPEAKER_00: 我其实要很快用我的术语重新说一下,harness 就是代码。
[4080.181-4088.818] SPEAKER_00: 所以我会反驳说,仅仅在 LMS 上加一个 while 循环和工具调用就让它们变好了,因为我其实不想贬低 ML 的人投入的所有努力。
[4089.038-4098.639] SPEAKER_00: 我当时不在那些实验室里面,但我相当确定,Claude code 在 2025 年 11 月前后出现的那次巨大跃升。
[4098.859-4105.883] SPEAKER_00: Claude code 几个月前就发布了,当时有过很大的动静,但它并没有那么流行,后来才出现了一次巨大的跃升。
[4106.103-4118.084] SPEAKER_00: 我猜,这就是当他们最终把它铺开分发时发生的情况,因为你会得到你所优化的东西,而我觉得正是这一点让 Claude code 变得非常好。
[4118.304-4135.895] SPEAKER_00: 你说的把它放进分发,指的是编码智能体的分发,字面意义上就是 Claude code,或者像 Claude 这样的东西——对。我显然没法访问他们的数据,但我敢打赌,在那中间有过一次巨大的数据跃升,因为他们决定下大赌注,把它铺开分发。
[4136.115-4140.584] SPEAKER_00: 所以,我相信这就是智能体开始能用的原因。
[4140.884-4156.989] SPEAKER_01: 你是说,嗯,我觉得,你知道,大体上来说,你知道,有一种说法是,Claude 很棒,但 Claude code 是那个 harness,你知道,它用了 Claude 的模型,让它们对人们有用得多。
[4157.209-4173.570] SPEAKER_01: 嗯,而且我,呃,我听到你说的是,也许类似那样的事情只是巧合,harness 其实并不是,你知道,那个阶跃式变化,而是有某种模型创新让 harness 变得有用,一种数据创新。
[4173.870-4176.958] SPEAKER_00: 这才符合我对这件事的时间线。
[4177.178-4180.904] SPEAKER_00: 但再说一次,我是从外部角度谈这件事。
[4181.124-4191.665] SPEAKER_00: Claude code 刚发布时,从技术上说,Claude code 的形态非常强大,就像分类器的形态非常强大一样,但它的强大程度只取决于它背后的智能。
[4191.885-4199.373] SPEAKER_00: 而就我对那个时期的记忆而言,Claude code 当时像是一个非常小众、奇怪的东西,大家用得并不多。
[4199.593-4204.562] SPEAKER_00: 然后人们最终会感受到不可靠带来的痛苦,就不再用它了。
[4204.782-4207.626] SPEAKER_00: OpenClaw 也发生了类似的事。
[4207.846-4210.551] SPEAKER_00: 显然,OpenClaw 有一种非常强大的形态。
[4210.771-4219.014] SPEAKER_00: 现在人们还在继续往那个方向创新,而问题不在于形态或 harness,问题在于它背后的智能。
[4219.234-4223.819] SPEAKER_00: 也许核心在于,正确的 harness 能更好地驾驭智能。
[4224.039-4237.880] SPEAKER_00: 哈哈,但那个,谢谢,不过在那种情况下,如果去怪 OpenClaw 的 harness 就有点不妥了,因为智能本身也能进化,而且你在做这些东西的时候得意识到现实情况。
[4238.100-4247.376] SPEAKER_00: 所以,如果那个——我不知道这东西的通用叫法是什么,比如 cloud assistance,或者现在大家在做的随便什么——我也不会感到意外。
[4247.596-4254.875] SPEAKER_00: 如果这些东西开始变得好得多,我也不会意外,因为它们被铺开分发了。而且这不是在暗讽 OpenClaw,对吧?
[4255.095-4265.915] SPEAKER_00: OpenClaw 做了一次非常棒的界面跃升,就像 Claude Code 的界面跃升非常酷一样,即使他们没让模型在这方面变得很擅长。
[4266.135-4270.778] SPEAKER_00: 所以,我想说的是,我不认为完全是 harness 赋予了它这些能力。
[4270.998-4278.242] SPEAKER_00: 所以 harness 需要映射——或者说我们叫作 harness 的那个东西需要映射模型里的能力,才能有用。
[4278.462-4285.404] SPEAKER_00: 其实我不会管它本身叫 harness,我会管它叫代码;包着我们模型的那个东西,我也会叫它代码。
[4285.624-4289.850] SPEAKER_00: 我们的模型比一个 大语言模型 要底层得多。
[4290.150-4297.870] SPEAKER_01: 那那个东西,你说的那个东西是 TypeSafe 的东西,还是指用户那端能访问这个模型的代码?
[4298.170-4307.225] SPEAKER_00: 对对,其实啊,如果你的系统消息里基本写着你的整套业务算法,那逻辑却跑在别人的服务器上,这就挺奇怪的。
[4307.445-4310.289] SPEAKER_00: 这对一个 API 来说非常不寻常。
[4310.509-4318.728] SPEAKER_00: 通常你会把只有 API 才能做的工作外包给 API,而你其实并不想把所有商业机密之类的东西都交给它。
[4318.948-4322.198] SPEAKER_00: 所以这其实更像一个普通的 API。
[4322.418-4331.102] SPEAKER_00: 我喜欢把它想成:有一天智能会像数据库一样,你只在需要的时候调用它,也就是当你在代码里需要智能的时候。
[4331.322-4334.073] SPEAKER_00: 所以我觉得 TypeSafe 是需要代码的。
[4334.293-4339.354] SPEAKER_00: 我无法想象——我觉得玩玩模型还有点意思,但光看概率没什么用。
[4339.574-4348.629] SPEAKER_00: 概率只有在进入一个应用、然后这个应用去做点什么的时候才有意义,理想情况下,最终能让用户满意或者提供价值。
[4348.849-4352.552] SPEAKER_00: 所以就像,TypeSafe 没有代码就用不了。
[4352.772-4359.761] SPEAKER_00: 如果你不是写代码的人,你居然会对我们的模型感兴趣,这真的很酷。不过我有点困惑。
[4359.981-4362.976] SPEAKER_00: 我很想问问你,为什么你会感兴趣。
[4363.196-4365.448] SPEAKER_00: 而且它也是为编程而做的。
[4365.668-4371.159] SPEAKER_00: 抱歉,它不是用来写代码的,而是用来增强代码本身的能力的。
[4371.379-4381.282] SPEAKER_00: 没错,这跟语言模型所处的位置非常不同,因为它们主要是用来写代码的,而代码的表达能力跟过去十年左右差不多。
[4381.582-4388.687] SPEAKER_01: 所以稍微拉回来一点,我听到的是,Jev 本质上是个模型,而你现在并不觉得所谓的 harness 有什么角色。
[4388.907-4409.145] SPEAKER_01: 在你和用户之间、由你控制的那种,比如 while 循环之类的东西,或者去抓外部联系人,而是每个用户都会把那个 Jev 模型嵌进自己的代码里,他们本质上是在提供适合他们自己的 harness。对,而且其实我完全拒绝 harness 这个概念。
[4409.445-4423.948] SPEAKER_00: 我觉得对于像 Jev 这样的模型来说,可能存在更高层的抽象,但 harness 本身其实只是一种非常“无马马车”式的东西,就是想把智能变成看起来像人的东西;如果这能行,那当然很酷,这点毫无疑问。
[4424.168-4430.332] SPEAKER_00: 如果它行得通,我会有很多很多,但据我所知,它现在还不行,所以我没有。
[4430.552-4435.997] SPEAKER_00: 而对我认为需要完成的大量自动化来说,那根本没必要。
[4436.217-4439.641] SPEAKER_00: 所以我们觉得,不需要到处都用同一种 harness。
[4439.861-4446.350] SPEAKER_00: 我们需要的是让用户能够把自己的逻辑放进去,而这就是软件工程师做的事。
[4446.570-4453.512] SPEAKER_00: 他们就是极其字面地、明确地把自动化的逻辑规定出来,才能创造价值。
[4453.732-4457.342] SPEAKER_00: 而我们想扩大他们能放进去的逻辑词汇表。
[4457.562-4467.860] SPEAKER_00: 我更愿意把它想成 N8N 节点,或者任何那种,我不知道有没有一个通用叫法,像所见即所得风格的无代码编辑器。
[4468.080-4474.070] SPEAKER_00: 我们就像其中一个节点,也许你会把很多逻辑放在那里。没错。
[4474.290-4478.121] SPEAKER_00: 但剩下的逻辑全是你自己的,数据也全是你的。
[4478.341-4481.789] SPEAKER_00: 这样你才能让东西做出有价值的事。
[4482.089-4496.569] SPEAKER_01: 好,所以你已经好几次提到 OpenClaw 了,你知道,Jev 一个有趣的潜在机会,就是存在于所有这些 agentic harness、框架,或者不管我们想怎么称呼它们的东西里面,
[4496.789-4505.728] SPEAKER_01: 因为那些东西要做很多编排决策,而现在这些决策是由文本空间模型驱动的,也许有更好的做法。
[4505.948-4509.512] SPEAKER_01: 那你怎么看 Jev 加智能体?
[4509.812-4512.017] SPEAKER_00: 哦,哦,哦,哦。
[4512.237-4517.124] SPEAKER_00: 这里面有太多了,你埋的线索数量真是出奇地多。
[4517.344-4521.047] SPEAKER_00: 那我就分几个层面来回答。
[4521.267-4524.181] SPEAKER_00: 第一,我们显然想让它行得通。
[4524.401-4527.535] SPEAKER_00: 但第二,我们绝对不是这方面的专家。
[4527.755-4534.477] SPEAKER_00: 而且看起来,这方面真正的专家现在也都在摸索,试着找出那些杀手级用例之类的。
[4534.697-4547.261] SPEAKER_00: 所以,我们真的想帮这些人做得特别成功、创造大量价值,最好还能让智能体要么可靠得多,要么高效得多,或者理想情况下两者都提升。那就最理想了。
[4547.481-4552.926] SPEAKER_00: 快当然也很棒,但我更倾向于可靠性,而很多企业会更倾向于成本。
[4553.146-4561.249] SPEAKER_00: 所以,考虑到所有这些,Jev 就是想要成为一种通用技术,能理解常识,并且在各种地方都能帮上忙。
[4561.469-4565.137] SPEAKER_00: 我其实确实分享过我写的一份东西。
[4565.357-4574.134] SPEAKER_00: 其实我有一篇跟这个相关的博客文章,叫 KV Cash Rules Everything Around Me,就是把 Cash 写成 C-A-C-H-E 那个。
[4574.354-4583.514] SPEAKER_00: 不知怎么回事,之前网上居然没人把 Cash Rules Everything Around Me 里的 cash 写成 C-A-C-H-E,我真是有点不敢相信,我居然是第一个这么说的。
[4583.734-4597.738] SPEAKER_00: 第一,我有一篇博客文章,讲的是智能体为什么极其受制于自己的 KV cache,以及为什么智能体的很多设计显然来自这样一个约束:你知道 KV cache 极其昂贵、极其敏感,你不想把它污染掉。
[4597.958-4602.067] SPEAKER_00: 所以,像为什么大家不更多使用子智能体这类问题。
[4602.287-4604.934] SPEAKER_00: 为什么路由往往不好使?
[4605.154-4608.265] SPEAKER_00: 这些我都在那篇博客文章里详细讲了。
[4608.485-4616.205] SPEAKER_00: 我还发布了一个 Google Doc,我有点后悔,因为我一直收到共享请求,都是些想编辑我的 Google Doc 之类的人。
[4616.425-4622.473] SPEAKER_00: 但我当时内部有一个设计,想的是怎么把 Jev 用在编程智能体上。
[4622.693-4626.257] SPEAKER_00: 因为曾经有一度,我们以为自己会更低调一点。
[4626.477-4630.203] SPEAKER_00: 而且我们以为我们会自己来做产品。
[4630.423-4636.344] SPEAKER_00: 但现在这个秘密已经完全藏不住了,因为我们决定不这么做了。
[4636.564-4644.888] SPEAKER_00: 不过是的,我觉得,如果你干脆假设你不需要一个只能追加的 KVCache,那会有很多很酷的事情能发生。
[4645.108-4648.811] SPEAKER_00: KVCache 对省钱很有利,但限制也很大。
[4649.031-4654.058] SPEAKER_00: 它会挡住很多很酷的编程模式,比如扇出、过滤、重新排序之类的。
[4654.278-4657.610] SPEAKER_00: 我很喜欢这个面试问题。
[4657.830-4662.822] SPEAKER_00: 如果 KVCaching 不存在,你会怎么设计一个编程智能体?
[4663.042-4667.790] SPEAKER_00: 这真的会让你重新思考智能体可以怎么运作。
[4668.010-4674.430] SPEAKER_00: 而且我觉得,对于搞清楚该怎么设计智能体来说,这是一个特别有用的思考方向。
[4674.650-4679.572] SPEAKER_00: 比如说,如果你能即时获得极其便宜但又可靠的智能。
[4679.792-4683.286] SPEAKER_00: 而且我觉得,能做的很酷的事情实在太多了。
[4683.506-4688.567] SPEAKER_00: 你知道,KVCache 有点像是到处都有全局变量。
[4688.787-4692.537] SPEAKER_00: 但如果你能更聪明地处理自己的状态呢?
[4692.757-4712.067] SPEAKER_00: 你为什么需要完整视图,比如把你做过的每一个过去决策,也都拿给所有未来决策看?因为按理说,当你在某个时刻,可能会有一些你想要的额外信息,你可以把它插进去、把决策取出来、从栈里弹出去,然后真正精心整理这个 KVCache,甚至做些超级酷的
[4712.287-4727.115] SPEAKER_00: 事情,比如在你的上下文里做 log n 次查找,没什么能阻止你在上下文里做分层搜索,而这样一来,你就不需要一遍又一遍又一遍地放同样的东西。另一个巨大的用途其实是工具调用。
[4727.335-4733.581] SPEAKER_00: 工具调用,第一,会导致上下文腐化,因为它们一开始就需要大量上下文。
[4733.801-4736.413] SPEAKER_00: 第二,你并不是总需要它们。
[4736.633-4750.300] SPEAKER_00: 第三,因为模型已经被过拟合到它们原生的 harness 上了,所以它们会更倾向调用原生工具,而不是你插进去的那些,结果模型最后并不会怎么调用它们。
[4750.520-4760.260] SPEAKER_00: 如果你能给工具调用提供 logit 偏置,来精细控制什么时候插入、什么时候不插入,而且不污染你的上下文呢?
[4760.480-4765.472] SPEAKER_00: 所以,要是能让我来做,能做的酷东西太多了。啊,那该多酷啊。那本来会多酷啊。
[4765.772-4780.879] SPEAKER_01: 所以,在一个有点像 Jeff Greenfield 的世界里,智能体架构可能会非常不一样,而你把这个留给听众当练习,或者留给听众去琢磨。嗯,我觉得那里有个很有意思的思考方向。实际一点说,
[4781.179-4789.166] SPEAKER_00: 我们得关心什么在现实世界里真的行得通。而且你知道,Jev 甚至可能有局限,所以,对吧,现在这还是 Jev 1.13。
[4789.386-4795.388] SPEAKER_00: 也许你得等到 Jev 1.16 才能真正让这一切跑起来。谁知道呢?
[4795.608-4799.636] SPEAKER_00: 那会是一个特别开放、特别好玩的世界。
[4799.856-4814.278] SPEAKER_00: 我的猜测是,未来会是混合体,慢慢加上越来越多的逻辑,因为你很难把额外的硬编码逻辑加到像 Claude Code 和 Codex 这样的东西里,因为它们的核心循环就是一个 while 循环。
[4814.498-4819.826] SPEAKER_00: 而且总的来说,加逻辑是很贵的,所以真要把它调好得花不少时间。
[4820.046-4826.176] SPEAKER_00: 但一旦你有了能用的软件,它真正跑起来的时候,那种感觉真的很爽。
[4826.396-4838.705] SPEAKER_00: 所以我的猜测是,人们会构建越来越多、越来越多的软件,把它们挂接到这些运行框架上,直到最后转变成更多是软件、而少得多的魔法 while 循环。
[4839.005-4850.963] SPEAKER_01: 很早的时候我提到过,我想回到某个点,根本上就是,你想想围绕决策模型来架构,或者不管我们想怎么称呼 Jev 所属的那个更大类别,嗯,
[4851.183-4862.316] SPEAKER_01: 那会要求更传统的、偏工作流式的做法,而不是我们现在用 agent 和 agentic software 走到的方式,也就是,好吧,
[4862.536-4872.857] SPEAKER_01: 咱们生成一些上下文,把它交给一个 大语言模型,让它吐回一些答案,再调用一些工具,而这些工具本质上就是接下来的步骤。
[4873.077-4885.490] SPEAKER_01: 然后我想戳一戳这个问题,呃,你知道,某种程度上感觉就像,如果你先把这件事放到一边:我们走向的那个世界其实并不能特别可靠地运作,对吧?这还挺重要的。
[4885.710-4887.579] SPEAKER_01: 这确实挺重要的。
[4887.799-4890.446] SPEAKER_01: 但咱们先把这个放一边。
[4890.666-4908.606] SPEAKER_01: 比如说,能够把所有决策都交给一个东西,让它在循环里跑,让它调用、调用,你知道,下一步动作,然后回到这个循环,这里面有一种灵活性;而把所有东西拆解成那些更静态、更死板的工作流,
[4908.826-4914.317] SPEAKER_01: 随着时间推移会积累很多技术债,带来很多复杂性。
[4914.537-4919.982] SPEAKER_01: 那么,你知道,Jev 是要我们回到那种方式吗,还是你怎么看这件事?
[4920.282-4922.952] SPEAKER_00: 我大概就是这么铺垫的。嗯。
[4923.172-4931.298] SPEAKER_00: 你这个铺垫很不公平,因为你把可靠性问题放到一边了。我承认。我承认。但我愿意接受这个设定。
[4931.518-4938.402] SPEAKER_00: 而且其实,我觉得这是个挺有意思的假设问题,因为我从来都没法不去想可靠性。
[4938.622-4943.324] SPEAKER_00: 但我其实觉得,对很多实际用途来说,这反而是一个特性。
[4943.544-4947.247] SPEAKER_00: 显然会有长尾,也会有很多用例不值得自动化。
[4947.467-4952.389] SPEAKER_00: 这就是做软件工程师、干这份活时那个挺悲剧的问题。
[4952.609-4958.739] SPEAKER_00: 我要为这个写一个 bash 脚本,花我四个小时,还是干脆五分钟把它做了?
[4958.959-4962.430] SPEAKER_00: 而我是那种多半会去写 bash 脚本的人。
[4962.650-4965.343] SPEAKER_00: 但这里有个两难,对吧?
[4965.563-4977.138] SPEAKER_00: 所以我猜,对很多活儿来说,可能直接交给那个不太靠谱的 大语言模型,指望它能做对,就值了;要是没做对,你再检查它做出来的东西就行。
[4977.358-4993.405] SPEAKER_00: 但如果你真的想把某件事规模化,比如它是一个特别有价值的工作流,你会想让一大堆人来做这件事,或者你想在后台大量地跑它,或者——而且我觉得这部分在 大语言模型 的地盘上没人真正搞明白——
[4993.625-5007.083] SPEAKER_00: 如果你想让它就像被关在一个盒子里,在后台运行,成为一个你永远只管调用的依赖,那这种事情就确实值得你一开始就把那个系统认认真真地工程化。
[5007.303-5015.929] SPEAKER_00: 而且它其实值得长期维护,因为这样能一直提供价值,而不是每次都得重新把逻辑摸一遍。
[5016.149-5033.206] SPEAKER_00: 所以我觉得,大家根本不会把 大语言模型 想成可组合、可分层,能当成越来越高级的认知抽象的基础,因为语言模型在这件事上差得简直难以置信;而待在轨道上反而是一个特性。
[5033.426-5042.609] SPEAKER_00: 你知道吧,就像你不会想去一个没有轨道的游乐园,或者至少没有那些轨道、安全带之类的东西,你就玩不了最刺激的项目,对吧?
[5042.829-5049.713] SPEAKER_00: 所以我觉得,对 AI 软件里最有价值的那部分来说,也会是非常类似的情况。
[5050.013-5059.672] SPEAKER_01: 你是说,用这个、你知道,有点不靠谱的东西来做自动化,某种程度上像是一片绿洲,而你没法完全到达那儿。
[5059.892-5077.170] SPEAKER_01: 而且我们强迫你——Dev 会强迫你——去用更传统的代码、工作流之类的,这并不一定是坏事;这是个特性,我觉得这就是你们的定位;对自动化来说这是特性,对那种即时、临时起意的东西来说就不是特性。
[5077.470-5088.406] SPEAKER_00: 嗯,所以如果你是在临时做东西,那就是一次性的,对吧;那当然不值得为它写一套庞大又老派的自动化。而且中间地带也很多。
[5088.626-5105.625] SPEAKER_00: 其实,比如,如果你见过 quad codes、动态工作流——动态工作流真的超酷,而且没有什么能拦着你让一个 大语言模型 去写:你知道,理解你的任务,然后写一个工作流,在你公司大脑里的那些文档上做 map 产出,或者现在流行什么就搞什么,
[5105.845-5115.365] SPEAKER_00: 但实际它可以在里面调用 dev 模型,因为文档很多,而你其实并不想让 Opus 5.5 去对整个东西做推理。
[5115.585-5121.494] SPEAKER_00: 所以那里有很多中间地带,而这个世界在创造力上就任我们驰骋了。
[5121.794-5129.514] SPEAKER_01: 我们聊了很多大致上接下来会怎样,但如果你非得直接回答接下来是什么,你脑子里首先冒出来的是什么?
[5129.814-5132.844] SPEAKER_00: 我不损别人的话,这话就很难说。
[5133.064-5138.555] SPEAKER_00: 那我们开始吧。哦天,我们的顾问跟我说过,我在网上已经太友善了。
[5138.775-5151.769] SPEAKER_00: 我觉得我更愿意就做真实的自己;你知道,我当然对 AI 虚假信息有怨气,但我其实不想对某个具体的发布或产品带恶意,所以我其实并不想真的往那个方向走。
[5151.989-5154.821] SPEAKER_00: 我们有很多东西想往外发。
[5155.041-5171.553] SPEAKER_00: 而且,这事儿,哦天,我特别兴奋要告诉别人、又先不告诉别人,要给大家看看我们为什么把它们叫 system one models,那会很酷;我们还憋着一大堆东西,比如‘嘿,一上来就发多个模型会非常复杂,咱们先保持简单’,所以我……
[5171.773-5187.553] SPEAKER_00: 所以我也特别期待那个;我特别期待能搞一个类似抢先体验计划之类的东西,我想让大家能用上我们已有的那些早期模型——它们不一定有我们那种可靠性认证,但我们觉得它们比其他任何东西都好。
[5187.773-5191.383] SPEAKER_00: 老兄,我就是对各种事都特别兴奋。
[5191.603-5196.990] SPEAKER_00: 从技术上讲,我也有很多公司建设方面的事要做,可我真的不喜欢这些。
[5197.210-5200.658] SPEAKER_00: 所以,要是有人想给别人打工的话,
[5200.878-5209.260] SPEAKER_00: 我愿意雇一大帮人,希望这能让我的日子稍微轻松一点。嗯,瑜伽一直很棒,叙旧也很愉快,早就该这样了。
[5209.560-5224.980] SPEAKER_01: 这些年你一直在做挺有意思的事,不过更重要的是,我们绝对该多搞搞这种;现在对 TypeSafe 来说是个特别好的时机,恭喜你们最近的成功,还有和 Jeff 一起搞的那件事。谢谢。
[5225.280-5229.947] SPEAKER_00: 而且我真的相信,这只是众多中的第一个。你就等着吧。
[5230.167-5237.353] SPEAKER_00: 你可能比你想的更快又会请我上这儿来。好嘞,我们保持联系。谢谢。那必须的。祝你愉快。