“它会逐渐退到软件背景中,像数据库、正则表达式或其他基础设施一样,成为开发者随手调用的普通能力。”
这是 TypeSafe CEO、Jev 创始人 Diogo Almeida 对 AI 的设想:当智能真正融入软件,用户甚至不必意识到它的存在。但怎样才能让开发者放心地把判断交给 AI,而不用守在旁边反复检查?
几个月前,在 AI Engineer 大会的演讲中,这位曾参与 OpenAI InstructGPT 工作的研究者就提出,“下一个时代并不是 Claude Code”时代。在他看来,Claude Code 与 Codex 本质上仍属于同一个阶段——AI 的主要角色仍然是围绕人提供辅助。他关心的是,为什么 AI 如此聪明,能解决数学界的千禧年难题,却连最基础的活都无法实现自动化工作?
9 月 22 日,做客 Latent Space 播客接受采访时,Diogo 再次谈起这份不满,措辞更加直接:“在我看来,Jev 出现之前的 AI 世界,简直是个悲剧。”在他看来,问题在于:强大的“智能引擎”已经有了,把它接进实际业务流程的接口却仍然欠缺。
这一次,他带来了自己的答案——Jev。通过面向校准决策的强化学习(RLCD),团队希望让模型输出可供代码直接使用的选择、评分和概率,让开发者能够依据不确定性设置阈值,决定何时执行、何时交给人处理。
从参与训练听懂人类指令的模型,到尝试让代码直接调用智能,Diogo 为什么要重新选择训练目标?他又准备如何让 AI 成为像数据库一样普通的软件能力?这场两小时的访谈讲述了他的判断与尝试。
太长不看版:
Swyx:对于那些可能不太了解情况或者只想得到确切答案的人来说,Jev 到底是什么?
Diogo Almeida:目前最准确的称呼是 System One 模型,它的能力范围远远超出决策本身。这类模型的目标,在于让代码成为模型输出的直接使用者。
Swyx:你对 RLHF 的一个核心看法是:模型的回答会向用户想听的内容,而不是反映它对一件事真正的内部置信度。能具体谈谈吗?
Diogo Almeida:几乎没人注意到 RLHF 的缺点,特别是“模式坍缩”(mode dropping)。RLHF 的模式坍缩会让模型偏向生成更安全、更常见的答案,而牺牲概率分布的真实校准,这既掩盖了长文本中的错误累积,也解释了为什么文本模型不擅长决策。
Swyx:RLCD 与 RLHF 的核心区别是什么?
Diogo Almeida:区别首先在于优化目标:RLHF 侧重让模型遵循人的指令、给出获得认可的回答,RLCD 则希望模型成为软件能够可靠调用的能力。
Swyx:为什么 Jev 不把拒答机制直接放进模型底层?
Diogo Almeida:我不反对安全本身,但我认为不应把特定价值判断直接写进通用模型底层能力,而应像数据库一样划清技术能力与具体使用责任的边界。
Swyx: 你所说的可靠性是什么?开发者能否相信同一个版本的行为保持稳定?
Diogo Almeida: 我更重视稳健性:问题含义没变,就不该因为加入无关字符而大幅改变判断,而不只是追求相同输入得到相同输出。已经部署的模型,我们不会悄悄修改,因为 API 是别人程序里的依赖。但我们会快速发布新版本,目前还不能承诺永久维护每个旧版本。
Swyx: 不依赖公开榜单,你们怎样判断模型是否真正做到了更高的性价比?
Diogo Almeida: 我们会通过内部评测比较成本和能力,追求同等成本下更强、同等能力下更便宜。我不反对评测,反对的是围绕榜单优化,让分数脱离真实价值。开发者最终还是要把模型放进自己的工作流,测量实际表现,不能只看价格、速度或一个总分。
Swyx:开发者应该怎样组织任务,才能更可靠地使用 Jev?
Diogo Almeida: 我建议把复杂任务拆成最小、可以独立判断的语义单元,用结构化输入提供必要信息,再由代码控制最终行为。Choice 对应选择分支,Noul 对应条件判断,Score 对应评分、排序和筛选。每一步都可以单独评估、调整阈值;能力不足时,就转交人工或暂不部署。
Swyx: 对企业开发者来说,Jev 有哪些值得尝试的应用方向?
Diogo Almeida: 我们梳理了四类:分析因处理成本太高而闲置的“暗数据”;为实时流程提供快速判断;检查其他模型的调用和输出;把智能判断嵌入软件核心逻辑。我尤其看好暗数据分析和编程 Agent,但具体如何组合模型,仍要看它能否降低成本、解决原本解决不了的问题。
Swyx: 面对前沿 AI 的风险,放慢发展速度是唯一选择吗?
Diogo Almeida: 我认为,这种讨论往往默认大家必须沿着现有 RLVR 路线继续加大投入,但研究目标和技术路线都可以重新选择。为了提升表现而给模型多大行动空间,本身就是设计决定,不该被当作不可避免的前提。我更希望探索其他方向,让已有智能可靠地进入软件,自动化实际工作。
Swyx:如果研究者在前沿实验室得不到资源,你会建议他们出来创业吗?
Diogo Almeida: 要看为什么离开。如果只是想自由尝试课题,现有实验室可能仍然最合适;如果找到了值得长期投入的新任务,我会支持创业。我不认为漂亮的研究履历会自动创造价值,也不看好拿到资金后重复已有工作的做法。先明确自己的核心目标,再围绕真正值得解决的问题展开研究。
Jev 发布的第一周,创始人的情绪糟糕透了
Swyx:欢迎来到录音室。就在本周,我的好朋友 Diogo 发布了 Jev,它几乎占领了社交平台的热点话题。此时此刻,你感觉怎么样?
Diogo Almeida:情绪上来说,从来没有这么糟过。我现在简直像一具疲惫不堪的行尸走肉,因为同时发生的事情太多了,到处都有问题等着我处理。
但是,从心理层面来说,那反而完全不一样。我经常讲这件事,并且这几年我在那些大小项目活动里也反复说过,整个 AI 领域就像游乐园里的哈哈镜屋,所有人都像疯了一样。每个人都在说各种奇怪又说不通的话。
可是就这一周,我好像和现实更合拍了,像是突然之间感受到:“哦,大家终于看见了。”——AI 能做到的事情,远比过去人们想象的多。我们真的可能推动了一场由 AI 驱动的经济革命,这件事重新回到桌面上了,简直实在是太棒了。我特别兴奋的一点,是开发者真的能够理解我们在做什么,这种感觉非常强烈。我也想对这些开发者表达我长久的感激。我对整个开发者社区以及现在发生的一切都特别兴奋,真的太棒了。
Swyx:你昨天还跟我说,你决定优先去做 town hall,也就是社区公开交流,而不是把时间都花在 VIP 和投资人之类的人身上。因为你希望确保真正得到你最多注意力的,是工程师、开发者这些真正使用产品的人。
Diogo Almeida:是的。当时确实会有一种感觉,像是“天啊,我现在正在跟一些非常重要的人说话。”我可能不该透露是谁。但对我来说,如果在我那个列满了待聊对象的庞大日程表里,开发者社区竟然不在其中,这对我来说会很不舒服。实际上,如果按照我的理想状态,我会一直和开发者社区在一起交流。我刚才甚至在想,“我要不要一边走来你的演播室,一边开一场社区大会?”后来我又觉得,“不行,这也太疯狂了。”
Swyx:对于那些可能不太了解情况或者只想得到确切答案的人来说,Jev 到底是什么?
Diogo Almeida:这个问题其实挺难回答的,但我是这么看这件事的:我们需要一种全新的模型类别。至于这一类别到底叫什么,我们没有执着于某个名字。
目前我们想到最准确的称呼是 System 1 模型。之所以没有把它称为“决策模型”,是因为 System 1 的能力范围远远超出决策本身。我现在只能说这么多。我们原本没想到这次会成为一次这么受关注的发布,所以手里还有东西没有拿出来。
Swyx:你们当时就该说这是一次“低调的研究预览”。
Diogo Almeida:某种程度上确实就是,它其实真的有点像一个研究预览。总之,我们内部有几个词来描述出现的这一类新的模型。比如机器原生模型(machine-native)、System 1 模型、大型可编程模型(large programmable)。我的理解是,这类模型的目标,在于让代码成为模型输出的直接使用者。
预训练大语言模型最初面向的是互联网文本补全;经过 RLHF 训练的聊天和指令遵循模型,面向的是文本回复;RLVR 则和 RLHF 之间有一块界限不太清晰的区域。而我们希望这类模型的输出能够直接被代码消费,所以公司才会叫 TypeSafe。
我们真正想要的,是让 AI 尽可能强大。而我们认为,实现这一点的方式是让它与软件结合。因此,我们设计时考虑的不只是模型外部的使用方式,连模型深层的内部机制也要针对软件进行优化。Jev 是我们的第一个大型可编程模型,也可以叫 System One 模型,随你称它为什么。它的优化目标是“每美元智能”,Jev 这个名字也由此而来。
Swyx:Jevons Paradox,杰文斯悖论。
Diogo Almeida:对,就是杰文斯悖论。它的目标是实现性价比最高的智能模型。我特别喜欢跟人讨论,在可靠性、成本、校准和速度之间,到底什么最重要。Jev 这个名字以后会代表一系列站在“每美元智能”方面处于领先地位的前沿模型。当然还有别的优化方向。在机器学习里,至少对于擅长机器学习的人来说,一切都关乎取舍。而我们决定在这个方向上全力以赴。
从模式坍塌到校准失真:RLHF 的另一面
Swyx:我觉得“校准”是近来才开始受到关注的一个问题。我们之前请 Hugging Face 的 Clementine Foreia 做过一期节目,当时有聊到了这个话题。这也是你对 RLHF 的一个核心看法:模型的回答会向用户想听的内容,或者最可能出现的内容收拢,而不是反映它对一件事真正的内部置信度。
Diogo Almeida:我听说你们的听众技术背景很强,所以正想深入讲讲这个问题。发布视频里的每一项表述,我都花了很大力气核对,确保准确、真实。显然,这种做法还挺少见。视频里有一点几乎没人注意到,就是 RLHF 的缺点,尤其是“模式坍缩”(mode dropping)。
Swyx:mode dropping 还是 mode collapse?
Diogo Almeida:在这里我说的是一回事。以后我想专门写一篇博客,但现在我想尽可能把这件事讲给更多人听。我其实很认同 Yann LeCun 的不少判断。但他有一页很有名、也很有争议的幻灯片,大意是“大语言模型注定行不通”。
Swyx: 你说的是那个“蛋糕”比喻?
Diogo Almeida: 不是,是讲序列长度的那一页。他的推理是:如果生成每一步都有出错概率,文本越长,至少犯一次错的概率就越高。这个推理看起来在数学上很直观,但模型的实际表现并没有简单地照这个趋势发展。我很喜欢拿它来问:数学推导和观察结果之间,差异出在哪里?
Swyx: 问题出在哪里?
Diogo Almeida:问题在于,如果模型试图覆盖整个分布,或者它的概率分布经过了良好校准,那么它不会因为产生少数离群结果而受到过度惩罚。你会预期它有时生成落在常见分布内的内容,有时生成分布之外的内容;覆盖整个分布,就会出现这种情况。你可以想想生成对抗网络出现之前的图像生成模型:它们生成的图像往往是模糊的。
而生成对抗网络会模式坍塌:它会直接丢掉占比很小的类别,只生成那些最常见的类别。也正因为如此,前面那个“序列越长错误必然累积到不可用”的效应并没有按最简单的方式出现。为了生成很长、又不容易出现明显错误的文本,模型就得极其保守,因为一旦犯错,人很容易看出来;相反,一个看上去没问题、其实遗漏了微妙之处的回答,就很难被察觉。为了让模型的概率分布保持校准而带来的要求,对文本序列的生成方式会产生很大的影响。这层关系很微妙。我认为,它既解释了为什么那种直观的错误累积推论没有应验,也解释了为什么文本模型不擅长决策:让本来用于生成文本的模型承担过多决策任务,效果往往不好。
Swyx:既然说到 Yann,你认同他的解决方案吗?也就是用世界模型,比如 JEPA 这一类嵌入模型的方法。问题的一部分似乎在于,我们让模型基于已经输出的词元(token)继续推理,再把输出送回去,反复循环,直到生成完整的一句话。Yann 提出的解法是联合嵌入预测架构(JEPA),你觉得这就是解决办法吗?你对此有什么看法?
Diogo Almeida:我可能不该把机器学习内部的事讲得太细。不过,除了说话有时比较放得开,我做事其实很务实。刚才对模型的判断也是从实际效果出发。
我是不是 Scaling Law 的支持者?要看它能带来什么。Scaling Law 告诉你:投入一定量的资源,某项能力能提高多少。通常,资源投入要大幅增加,收益却不会同比增长。除非那一点能力提升非常有价值,否则看起来就不是一笔好投资。对我来说,更重要的问题是:用手头已有的资源,我们怎样才能带来最大的实际改变?
我的出发点始终是实用性。比如 Yann LeCun 的 JEPA 方向,我觉得早期研究很精彩,也很喜欢看到优秀的研究工作。至于它现在是否已经足够实用,我暂时不想下判断。
目前研究界还有很多没有被充分挖掘的好成果,像未经打磨的钻石。它们没有进一步变成有用的技术,部分原因是大家还没找到适合发挥其价值的任务。
Jev 的发布当然对 TypeSafe 有利,但我希望它带来的影响不止于此。一方面,开发者可能会基于 Jev 做出大量新软件;另一方面,也会有人沿着不同方向探索:还能用什么方式把模型能力提供给程序,让软件做出更多以前做不到的事。如果这些尝试同时出现,那种感觉就有点像早期互联网那种充满活力的氛围——大家纷纷探索,新的用法不断冒出来。我想这也是为什么推特上大家一提到“Jev”,就像在开派对一样。
Swyx:这很让人振奋,因为它和我们习惯听到的说法太不一样了。过去常有人说:“抱歉,这件事你做不了。模型研发要遵循缩放规律,只有大实验室才有资源参与。”
Jev 的开发理念:AI 做决定时,不能突然拒答
Diogo Almeida:Discord 上经常有人问我:为什么反对安全对齐,为什么 Jev 不会拒答?我还没来得及完整解释。先说清楚,我并不反对安全本身。我认为,常见的安全对齐方式往往与使用者的目标不一致;而对供程序调用的模型来说,突然返回一句拒绝,简直像是发生了类型错误。
如果你是人在和聊天机器人互动,或者用编程工具时碰到“抱歉,我不能读取 DNA.py”,当然会觉得烦,但至少你能看见它、换个办法继续。大家用久了,甚至习惯了处理这种情况。可如果模型是后台运行的软件依赖,某次调用突然拒绝了,会发生什么?调用它的用户可能根本不知道底下还有这个模型。难道只因为输入里出现一条特殊消息,就让整个软件流程随机中断吗?
我认为,这种设计沿用了“AI 是一个聊天同事”的想象,没有充分考虑模型作为软件组件时需要满足什么要求。
Swyx:你想要的是一种能在各种地方使用的基础能力。
Diogo Almeida:对,一个足够通用的“认知核心”。它要能适应未来各种我们现在想不到的用例。用户已经拿 Jev 做了不少出乎意料的东西,我们当然没针对那些具体应用训练过它。不过,这并不让我意外;我们训练时就让它处理过更多样的情况。
再回到安全对齐。我认为,对 ChatGPT、Claude 这种直接面向人的产品,设置安全规则是可以理解的。但需要区分能力对齐和安全对齐:能力对齐是让系统尽可能按使用者的要求完成任务。软件工程师很需要这一点——行为越可预测,越容易把模型集成进程序,也越少需要反复试探。
Jev 现在离理想状态还很远。我们希望把可靠性再提高几个数量级,最终让调用智能像执行数据库查询一样自然:需要时调用,不必每次都担心它会怎样回应。
而我所说的安全对齐,往往意味着模型除了遵循当前使用者的指令,还要优先服从模型提供方——比如 XXX 或 XXX——设定的另一套规则。这两套要求有时会发生冲突。
Swyx: 你说的是不同层级的规则和价值取舍。
Diogo Almeida: 对。对于直接面向用户的产品,这样做有道理。比如 ChatGPT 的提供方不希望产品支持某些成人角色扮演内容,那是他们的选择,也可能符合他们面向家庭用户的产品定位。
但 API 不一样。开发者需要根据接口的行为来写程序。如果模型在程序运行过程中突然按提供方的另一套规则拒绝执行,开发者很难处理。我对此确实有点激动,得让自己冷静一下。
Swyx: 大家能感受到你很在意这件事。不过我想提出一个更严肃的反例:如果有人用这个 API 来杀人呢?成人内容或许属于私人选择,但 AI 也可能被用于战争。公司完全可以合理地决定,不希望自己的 API 被用于这类用途。
Diogo Almeida: 我理解。企业可以出于实际考虑持有这种立场。我自己也不希望我们的技术被用来伤害人,当然希望它更多地用于有益的事情,也愿意为此作出努力。但我不认为应该把这些偏好直接写进通用技术的底层能力。
我的顾虑是,每当你为了某一种特定规则,强行让模型在某些问题上改变判断,就可能进一步割裂它的能力。现在的模型已经有不少这样的不一致了。
我更倾向于把智能看作数据库,而不是一位“AI 同事”。我们通常不会要求数据库在执行查询时,自行判断用户最终会不会把结果用于坏事。我认为,对通用智能接口也应该考虑类似的责任边界。
还有一件事让我觉得奇怪:有开发者在 Slack 上告诉我们准备部署某个应用,问“我们可以这样用 Jev 吗?”我的第一反应是:我们提供的是 API,你是开发者,具体应用怎么设计,不该事事由我们批准。理想情况下,复杂任务会被拆成许多较小的调用;作为底层服务提供方,我们甚至不应该知道下游用户的完整任务是什么。这种边界能给软件工程师更大的自主空间。
我希望他们把能力用于好的事情。我们也讨论过开源、公益支持等办法,只是眼下还没精力落实。但只要由我负责,我就不希望把这些价值偏好直接固化进模型的底层判断里。
Swyx: 既然说到平台与开发者的关系,也想澄清一下你们的隐私条款和使用条款。之前有些人产生了误解,觉得你们对 API 用途限制得很严。
Diogo Almeida: 我不确定你具体指哪一条,不过我看到过一些关于基准测试的讨论。
Swyx: 对。你之前公开说过,相关限制是预览期条款里留下的,正式发布时没有及时移除,团队准备修改。
Diogo Almeida: 团队有些进展我甚至还没跟上。我请他们和律师确认这件事。我们显然不打算阻止用户测试和比较模型;恰恰相反,我支持他们这么做。
但这和我怎么看公开基准榜单是两回事。我非常不喜欢公开榜单。至于用某些内部基准作为实际能力的替代指标,我的态度也比较审慎。
Swyx: 你担心的是榜单很快饱和,还是模型可能见过公开测试题,因此容易刷分?
Diogo Almeida: 刷分容易,是原因之一。假设两年后,市场上有很多公司在做与 Jev 类似的产品,我们提供的价值可以说是“每美元获得多少智能”,或者“每秒获得多少智能”。大家很容易盯着价格和速度,因为它们好测量。但价格和等待时间是用户付出的成本,用户真正想得到的是有用的智能。
难就难在,模型到底有多好,有些部分很难用一个分数概括。Jev 发布后,开发者亲自试用产生的反应,甚至比发布视频更让我在意。他们感受到模型在实际使用中的表现,也感受到我们为此下了多少功夫。
公开基准想用数字帮助大家建立信任,但它太容易被针对性优化。即使团队主观上不想刷榜,也可能不断收集与测试集相似的数据,让模型在榜单上表现更好。过去有些实验室收集类似 MMLU 的题目来训练,在我看来,这不过是绕了几步优化基准成绩。
所以我认为,开发者可以先凭实际体验建立初步判断,随后必须把模型放进自己的工作流,测量它在那个具体任务上的表现。我们的工作则是持续提高可靠性,让它越来越值得信任。可靠性始终是 TypeSafe 要解决的问题;如果只想尽早发布一个能力不够好的版本,我们一年半前就可以推出 Jev 了。
“最苦涩的教训”:先选对任务,再谈模型和数据
Swyx: 你前面提到自己的“最苦涩的教训”(The Bitterest Lesson),我们来展开讲讲。
Diogo Almeida: Sutton 的“苦涩的教训”强调算法和计算的重要性。但在我看来,数据比算力重要得多;而最难、也最重要的,是先选对任务,找到研究的 North Star(核心目标)。
大语言模型的发展中,研究目标发生过几次这样的转变。RLHF 把重点转向指令遵循,当时没人意识到模型能在这件事上做到那种程度。RLVR 又把方向往前推了一步。现在,我们用 RLCD 定义了另一个任务:让程序能够把模型放进运行流程,可靠地调用它的判断。数据对此至关重要。我怎么强调都不为过。
Swyx: 所以你们更愿意把 TypeSafe 称为一家“数据实验室”,而不是“模型实验室”?
Diogo Almeida: 完全正确。我们会一直非常重视数据。对我来说,模型能力的提升,很大程度上就是数据问题。数据工作极其复杂,却也能把可靠性一位一位地往上推。数据选取和处理方式稍有变化,结果就可能大不一样。
Swyx: 你们也在大量招聘数据人才。怎样才算优秀的数据工作者?你说过你们使用合成数据,但“数据是合成的”显然只说到了表面。是不是还要有人认真检查这些数据,指出问题,再回去重新生成?
Diogo Almeida: 是,但完整回答会复杂得多。我给新入职的数据同事做的培训,可能比这期播客还长。这里先讲最重要的几层意思。
首先,任务决定数据的形态。RLVR 需要的数据在某种程度上是供模型探索的环境;RLHF 需要人类反馈。每种任务都有自己的数据形式,我们也一样。所以我们做的合成数据,并不是一个通用模板生成出来的东西。
其次,我们不想用用户数据训练模型,即使取得许可、技术上也做得到,我们仍不想依赖它。真实世界的数据有很强的偏向:很多人反复提出相似问题,需求呈现幂律分布。直接按这些数据训练,模型容易对高频场景过拟合,其他能力反而变得不均匀。
我们瞄准的是多年后的应用。到那时,模型也许会成为深入软件技术栈各层的通用基础设施,支撑今天还没人想到的产品。如果打个比方,可以把一般的大语言模型想成 UDP,把我们的模型想成 TCP:开发者能在上面构建各式各样的应用。即使我们拿到了今天所有用户数据,它也只能让模型更适应今天,未必能帮助开发者做出未来的软件。
因此,数据团队的工作有点像艺术创作。他们研究模型的“认知核心”,找出能力不平整、不稳定的地方,再有针对性地处理。我们认为自己的模型在这方面已经相对平滑,但不可能做到完美。一次修正最好能改善一类问题,在过去、现在和未来不同情境下都有效,而不只是修好某一道题。
Swyx: 解决普遍问题,而不是只解决一个具体案例。
Diogo Almeida: 正是这样。每次做到这一点,都需要很强的判断力。
“Jev 出现之前的 AI 世界,是个悲剧”
Swyx: 你刚才说,我理解数据的方式受 RLVR 影响很深,这个批评挺公允的。那我们具体聊聊 RLCD。你们目前还没有发表介绍它的论文,对吗?在不了解技术细节的情况下,大家怎样判断 RLCD 确实代表一种不同的方向,而不只是一个新造的术语?“校准”这个概念我能理解,但 RLCD 与大家熟悉的 RLHF 究竟有什么区别?
Diogo Almeida: 还没有发表论文。你的问题很好,不过要回答它,我想先反问一句:RLHF 指的是什么?
这个词在不同时期指过好几种工作。最早有通过人类偏好反馈,让系统学会完成难以精确规定的任务的研究。我记得有一项工作涉及教机器人做后空翻,可能与 Paul Christiano 等人的研究有关,但具体是哪篇,我也不能完全确定。PPO 是一种算法,并不天然意味着奖励一定来自人类反馈。
后来 XXX 做了“学习摘要”的工作,把 PPO 用在语言模型上,让模型学习完成摘要这类很难用简单规则规定好坏的任务。人们也会把这称为 RLHF,不过我没有参与那篇论文。
但当我说 RLHF 时,我更想强调的是指令遵循这个任务,而不是某篇论文采用了 PPO。真正重要的,是研究者确定了一个新的 North Star:让模型理解并遵循人的指令,是一个值得持续优化的方向。今天的 DPO 及其后续方法即使没有使用那篇论文里的算法,也仍是在做这个意义上的 RLHF。
同样,RLCD 对我们来说是在提出一个新的任务目标。我使用这个名字,是想准确说明我们在优化什么:让 AI 能被程序调用,成为软件可以使用的能力。
Swyx: 也就是说,关键词是“可编程的 AI”:让程序能够在不需要人每一步介入的情况下使用模型,进而自动化更多工作。我理解你的 North Star 对吗?
Diogo Almeida: 对,但还要加一个前提:必须务实。我们得看清当前语言模型实际擅长什么。有些面向程序的新输出类型在概念上可能很棒;如果技术还不足以让它可靠工作,暂时不推出,也没什么可遗憾的。
在我看来,Jev 出现之前的 AI 世界,简直是个悲剧。这话听起来很狂妄,但这个想法在我创办公司很久以前就有了。
Swyx: 这点我可以作证。你已经谈了好几年。
Diogo Almeida: 是。我起初以为做出一个能供程序调用的模型不会太难,整个项目一周就能完成。事实证明我错得离谱。以前我甚至觉得:“这个问题我马上就能解决。”现在想来,我得向当时被我低估的 XXX 同事道歉。
AI 领域还有另一件令人遗憾的事:承诺很大,实际交付却跟不上。我认为 RLHF 和 RLVR 路线都存在这个问题。但让我一直放不下的,是 AI 明明已经表现出很强的能力,却仍有大量简单工作无法自动化。
我在演讲时常问:为什么 AI 能处理极其困难的数学问题,却连许多基础、重复的工作都接不过去?这些工作不要求人有多高的智力,也谈不上令人满足,但现实中仍得有人做,因为软件还没法可靠地把它们自动化。我们已经有了一台很强的“智能引擎”,却缺少合适的接口,把它接进那些有经济价值的流程。
即使有一天 TypeSafe 不复存在,这个方向也已经被打开。别人也许需要一两年追上来,也可能更快;如果模型质量的差异持续重要,我们会有更长时间的优势。但比公司竞争更重要的是,整个领域开始探索:智能还可以怎样接入软件。我相信这会改变技术接下来的发展路径。
Swyx:我完全同意。你们真正创造的是一种新的可能性。我试着替你概括一下,方便大家理解:不要把 TypeSafe 和 Jev 的成功看成仅仅是“出现了一种新的模型类型,我可能可以继续沿用之前的路径去做事”。不是这样,实际上,可能还有好几种别的模型类型值得探索,这个行业应当是百花齐放的态势,应该让各种尝试奋都发展家里。其中有些方向,你们大概也会亲自去做。
Diogo Almeida:完全正确。那种早期互联网的活力又回来了。我觉得我们重新回到了某种技术乌托邦时刻,再也不用像以前那样感慨:“唉,有时候我的编程智能体能工作,但真正最好的东西都被公司内部藏起来了”。创造新东西又成了一种真实的可能。当然,接下来会是一个相当疯狂的世界,大家最好坐稳了。我对此兴奋极了。
Swyx:现在你们有了资金,也有了发布后的势头,终于能把想法做出来给大家看。
Diogo Almeida: 对。以前一直讲,却不能把最关键的东西拿出来,感觉像总在吊大家胃口。我的演讲尤其如此:我说 AI 应该推动自动化,却没法展示它具体怎样做到。你之前看过我们的宣言,还说有些地方写得太模糊:“第一步是什么?你们说的智能模型究竟是什么?”
Swyx: 我当时问你模型在哪里,你只说“快有了”。我主要对“可组合”这个词有意见,不过 “Build Prod, Not God” 这句口号很好。
Diogo Almeida: 谢谢。团队很认同这句口号。我们对正在做的事很兴奋,但大家也很务实。
Swyx: 宣言里还有一份“秘密总体计划”,讲怎样一步步构建面向机器、可组合的 AI。
Diogo Almeida: 写成“秘密总体计划”是你的建议,我得正式把功劳记给你。
Swyx: 谢谢。不过你当时只给我看了一半故事,没有告诉我还要发布模型。那时候也没有《Doom》演示,没有性能数字,我自然会问:你们到底打算拿什么证明它?
Diogo Almeida: 问题是,我不相信公开基准榜单能证明这件事。模型好不好,最终得让人放进实际任务里体验。这种做法有助于建立长期信任,但也让我们吃过苦头。去年融资时,很多人不相信我们,只想看基准测试成绩。我们不愿意为了拿出好看的数字,去迎合一套容易奖励刷榜行为的评价方式。
Swyx: 选择这条更难的路,最后也让你建成了一家自己愿意待的公司。
Diogo Almeida: 是。我不太后悔这个选择。昨晚聊到为什么离开 XXX,我还挺激动的。发布前,我常这样想:如果 AI 最终因为承诺过多、实际交付不足而进入新一轮低谷,而我没有尽力探索另一条路,我会觉得自己也有责任。一方面,我参与过 RLHF 这条路线;另一方面,我相信让 AI 真正进入软件自动化,能创造很大的价值。
发布后,我对这件事的说法有些变化。至少在我看来,自己担心的那种“AI 寒冬”已经不那么不可避免了。 Jev 上线还不到一周,我已经看到开发者把它用在真实工作中。眼下就像西部拓荒时期一样,充满了未知,各种尝试都在冒出来。
爆红之后,Jev 更在意什么
Swyx:能不能分享一些发布之后的具体数据?例如注册的用户数量之类的。
Diogo Almeida:具体数字主要是团队在跟进,而且每天都在变。不过有一个里程碑我记得很清楚:日调用量已经超过一万亿 Token。这不是发布当天大家尝鲜带来的短暂高峰。夜里调用也没有停下来,说明有程序在持续使用 Jev,而不只是人在界面里试几次。这让我特别兴奋。
相比之下,我没那么在意注册人数。我们发布时没有专职营销人员,大家看到的宣传基本就是团队自己的表达。候补名单一度增长很快,我们也在不断放人进来。平台团队承受住了这次发布带来的流量,做得非常出色。
但我们后来意识到:对开发者平台来说,候补名单上的人数并不能说明多少问题。其中可能有不少人不是开发者。他们进来试了几个问题,发现 Jev 不是聊天机器人,就会疑惑:“我的下一个 ChatGPT 在哪里?”我还没有精确计算过,不过我的直觉是:哪怕全世界每个人都来试几次,调用量可能还