[Hannus] 我真的很喜欢 Hannes 在 Duct Tape B 上发表的一篇文章,他在文中问我们是否因为追求分布式架构而浪费了一十年时间?这些架构预设计算和存储既缓慢又昂贵。然而,每个时代的能力决定了架构和工具的选择,而工具往往滞后于需求。我们首先让计算变得比存储更便宜,然后将其普及给每个人,接着又让它变得更快速。每一次架构都经历了这种巨大的变革。如今我们的所有数据基础设施都是建立在“转换是昂贵的”这一理念之上的。如果这不再成立呢?我相信我们已经解决了转换过程中的最后一个瓶颈——通用智能或判断力,并且让它一直像水龙头一样随时可用地处于帕累托前沿。这让我们正站在范式转变的边缘。

在本次演讲中,我们将探讨为什么单一本体论总是失败、模型在管道中的三个角色、通过交叉模型的先验知识以获得更好的结果,以及帕累托服务。我们将展示今天的模型如何同时针对成本、速度和准确性来调整工作负载。这里有一个快速示例:当 Jeff 启动时,我们已经运行着一个实体解析管道,用于处理俄亥俄州的竞选财务记录,判断它们是否属于同一个人、公司或委员会。预计成本约为 10,000 美元。我们的系统接入了这个新模型,确定了它的位置,测试了十几种方法并进行了整合。在第一次调用后的 10 天内,我们以低于 800 美元的成本获得了俄亥俄州每个捐赠案例的最终真相。这就是帕累托服务和即时转换的力量。

让我们深入探讨一下。本体论是企业版的心智地图,它像地毯一样将我们所有人(包括我)都卷入其中。两年前创立 Southbridge 时,我曾谈论过单一通用模式的概念。流行的观点认为迁移和本体论失败是因为缺乏购买力,这并非错误,只是图景的一小部分。它们半途而废,组织和人员从未切换过来,这些都是事实,百分之百正确。但购买力不是主要原因。假设你能在一眨眼之间将所有信息集成并迁移到一个单一的超级模式中,你仍然必须面对一个事实:不存在所谓的超级模式。实际上存在四种模式。

第一种属于来源,即信息来自何处。我以温度为例:假设我让你写下温度。源模式是你所能访问的任何内容。你的手机提供你所在地区的温度,书桌上的传感器不太准确但更局部化,或者你的手表。甚至你在执行我请求时的耐心也是源模式的一部分。第二种是存储模式。你能写下的东西是有限的,你无法写下所用设备的固件,甚至无法精确到秒记录时间,因为你在一秒钟内写不完所有这些内容。这是存储强加于你的模式。

第三种属于决策:我为什么需要你写下温度?也许你在弄清楚让自己舒适的因素,在这种情况下我需要你全天分散提供的温度数据,并确保是你本人在测量。也许我在构建天气迁移地图,在这种情况下我不关心谁在测量,但我非常关心你的确切位置、时间、使用的设备以及这些是否发生变化。或者也许我在决定安装敏感设备及地点,而你本人成为我需要抵消的变量。

不过还有第四种模式,我们将在讨论先验知识时涉及,这是最近新增的。真正的问题在于,除了在做决策的那一刻之外,你永远不会同时知道所有四种模式。在几乎每家企业和每个家庭中,大多数被记录的数据对其用途知之甚少。以“客户”为例,这是本体论中的第一个框:对建筑商来说,客户是付款的人;对客户支持而言,是客户打电话来的人;对于合规部门来说,是我们负有责任的人。只有当决策已知时你才知道这一点:我们应该退还这笔订单吗?我们可以给这个账户提供更多信用额度吗?突然之间,你需要知道什么、如何以及到什么程度变得极其清晰。

这就是我之前错了的原因:不存在通用模式,也不存在脱离你想回答的问题的“客户”概念。将这些模式结合起来就是转换的过程,即让信息真正变得有用。将记录时的上下文与决策的上下文合并,这需要辨别力。在已知决策空间时进行这种合并,而不是提前进行,这就是我所说的“即时本体论”。

稍后我会通过我上一份工作中的一则故事回到辨别力这个话题,在那份工作里,我的大部分工作是确保某些数字根本不存在。在此之前,简单介绍一下我和我们团队:我们可以被描述为强迫症患者,我们将智能嵌入管道中。这些管道可以扩展、可以反复运行以真正减轻我们的工作负担,并且能够自主地在成本、性能和速度上成熟。我们在数据方面所做的大部分工作分为三种体制:第一种是“写一次,运行一次”。如果你从事任何类型的开发,可以将其视为怪物规模的立即调用函数。

它们专为单次使用而构建,例如连接数据集、挖掘信息或回答一个特定问题,然后就被拆除。第二种是“写多次,运行一次”,其中许多较小和较大的工作负载是为一个大型共同目标而构建的。你可能最熟悉的是大规模迁移:将多年记录从人们几乎完全忘记的系统中移出,为单一规则构建大量工作负载并在源头单独验证,然后相互检查,因为这一切只发生一次。

第三种也是最主要、最常见的是“写多次,运行多次”。这些是可重复的管道,随着我们添加更多信息而随时间构建和维护。在 Southridge,我们将大量工作从主线程移到了这些可重复的系统中,从基准测试设计、跟踪、编码到为我们想看的电影制作字幕。现代世界中的几乎所有事情都是数据的转换,或者受限于数据转换的难度。在所有这些情况下,我们的工作很简单:确保人们可以依赖结果。在短短两年内,我们从弄清楚如何制作……

早期3.5涡轮级模型在医疗保健、老龄化研究、采矿等领域已变得可靠,并应用于构建Hank Wave——我们的开源数据工作工具包。随后利用该工具使模型在太字节规模上协同工作。如今,我们拥有自优化系统:你只需提供问题、安全失败的方式以及工作环境,它们便能自行寻找解决方案的形态。

这些系统会挑选合适的模型,运行试点项目并扩展规模,最终通过帕累托优化找到最佳选项。在我上一份工作中,我们最常听到的问题是:“我们能做出数据驱动的决策吗?”当平台上有数千艘船只时,这或许是正确的问题;但当只有50名用户时也问这个问题就错了。

如果你懂统计学,就能解释为何对50人进行A/B测试是个坏主意:并非因为得不到结果,而是因为会得到错误且确定的结论。因此唯一的现实选择是不产生任何数字,因为一旦存在具体数值,它就会论证某种结果的合理性。

如今情况更糟:交互式代理总是能迅速给出答案。你要求执行某种转换,它们便立刻回应“是”或提供结果。这意味着错误会迅速累积,聊天中的失误可能成为永远等待被发现的广泛噩梦。

发生这种情况的主要原因是:当今与数据工作相关的智能占据着三个独立角色,而编码代理往往将这些角色混入同一个上下文窗口。我们需要将它们区分开来,因为这有助于我们理解决策模型——它们恰好只属于这三种角色之一。

第一种是构建和设计管道,包括分解问题、编写早期规范以及授权支出。第二种通常被误认为是第一种并分配给相同的模型,实际上是在管道内部工作:真正执行任务、阅读PDF文件、写入数据库以及检查结果。

在讨论第三种之前,我要明确这两者方向截然不同:第一种需要较慢的模型,使用更厚重、更多的token,让模型能深入思考、多角度审视问题、消化文档并预测结果。例如Opus或Up系列模型适合这种角色。

而管道内部的模型则相反:你需要它们更便宜、更快、专业化,擅长遵循指令且可重复工作。自然界中也是如此:切叶蚁群落依靠四种不同体型的工蚁运作——小、中、大和特大。观察任何你设计或听到的系统时,注意其层级结构中的定位至关重要。

正因有了这种区分,引入Jev这一新兴的决策模型类别变得非常容易,因为它们本质上是执行者。它们专为快速接触信息而构建,部署在大型工作负载的底层。第三类则是我们所说的“爬山者”或服务器:能够自我优化的模型。

在具备正确知识、指令和极其稳定的基础后,它们可以尝试新事物,调整预算以限制成本风险,快速调试并记录心得。它们不仅能找到正确解法,更能通过“卷饼冲浪”(burrito surfing)达到最优状态——这一点我们稍后详述。

首先谈谈Jev的经验:它在周二上线,当时我们正深入进行实体解析管道工作,处理俄亥俄州的竞选资金捐赠者数据。很多人见过那张图表:我们此前讨论过结果,并将部分持续工作适配到该数据集上。你可以下载它及提示词自行查看。

但我们未提及的是箭头背后的所有内容,以及将整个理念应用于全州范围时会发生什么:我们尝试了所有架构。最初在小开发集上设计三种方案:单独使用廉价推理模型、Jev配合不确定时的推理模型,以及由推理模型提出答案并由Jev验证。

在约200个家庭样本中,单独使用的廉价推理模型表现与Fable相当,成本仅为2%。Jev起初正确回答了核心问题,但因对每个家庭链接都自信地回答“否”,导致漏掉了九个关联。于是我们重写了问题,未改动模型或阈值。

新的家庭问题询问“多少证据算足够”,Jev随即从对13个开发问题的全否定转为肯定。随着全州扩展,我们进行了十余轮资格认定:每轮修正一个定义——什么是委员会、谁是申报人、两人同住一地址意味着什么。

如今,俄亥俄州203,317个案例均有标签说明答案依据及核查程度。这是我们针对该问题发现的层级结构,也是我们将决策模型融入管道时学到的所有经验(请截图保存)。以下是资金流向:整个全州任务在预设的800美元预算内完成。

核查成本约为执行成本的4倍:545美元用于获取第二意见、解决分歧及审计,而首次答案仅花费128美元。在Jev之前,我们预计此项工作需耗费约1万美元;如今管道已构建并验证完毕,下一州的审计预算预计接近零。

最令人惊叹的是:我们的Agent 4A(先在Astra上运行,后在Opus上)通过自行构建系统、运行调试并尝试新事物,逐步发现了大多数方法。它在10天内尝试了十余种架构,运行超过4,000次,伴随9万次Jev调用。

它几乎尝试了帕累托前沿上的所有模型,内部运行消耗约60亿token。完成后,我们将所学写回代理部件库:这项工作依赖现有组件,并新增如“核查信”等经过测试的新模块。

对我而言,将工作从人类和代理的主线程中剥离的价值在于:每次迭代都是版本控制的Hank。它们易于回退、理解、调试和批评。那么,模型现在能原生做到这一点吗?尚未完全实现:它们缺少四个要素——我们将逐一探讨。尽管随着模型变大变强,其中一点不会消失……

具备这种能力,是之前的先验。就像人类一样,模型也会带着它们自己的先验、对世界应有的认知的信念进入每一个任务。这是我之前提到的第四个模式,即模型自带的那个先验。有趣的是,更大的模型有时在这方面反而更差。它们紧紧抓住自己的信念,甚至更加激烈地为之辩护。我们遇到过几个例子:一个管道寻找的是拼写为带下划线的“in kind”(实物捐赠),而文件使用的是大写“I”和连字符。因此,模型将15,658笔实物捐赠计为普通资金,没有进行二次核对。贷款还款也以同样的方式消失了。另一个模型在文件使用第五种日期格式时,尝试了四种日期格式。结果99.4%的交易日期变为空白,且每一行的计数和金额都完全匹配,于是代理便继续执行。

几次运行注意到贷款金额为负数,认为符号是多余的,并存储了绝对值。最终,78.4万美元的净额变成了530万美元的债务,这一结果得到了多个模型的验证。随着模型接管数据工作,这正迅速成为我在各家公司看到的最主要的错误类别。有时你只需通过“不随波逐流”、检查结果并应用人类直觉来解决这个问题。当你这样做时,你实际上在做的事情很有趣:你将你的先验与模型进行交集。在第一个例子中,任何了解竞选财务或知道需要检查什么的人类都会发现缺失的实物捐赠。所以我们发现了它。但就这项特定任务而言,作为人类是昂贵的、缓慢的,他们会暂停时间线,甚至比模型更不确定,而且他们讨厌被打断。

事实证明,通过跨模型的先验交集也能取得很大进展。在我们保留的200个家庭样本中,Jev和Luna在194个案例上达成一致。而且这些共享的答案中没有一个是错误的。所有的错误都出现在它们意见不一致的那六个家庭中。来自不同家族、不同背景(pedigrees)的模型,倾向于比同一组内的模型表现出更多的分歧和不同的先验。例如,例外情况是我不会点名的那些由同一家公司外部蒸馏出来的模型。通过这种工作,你可以大大缩小表面范围以及随之而来的错误数量,将其缩减为一个更小但持久的问题类别,这些问题适用于LLM作为一个物种。

在一个基准测试中,四个不同的模型家族产生了相同的总数,直到最后一步,因为它们都共享了一个答案键所不具备的符号约定。一旦你走到这一步,唯一的出路就是列出它们、警惕它们并应用特定的解决方案。那么回到最初的问题:为了能够自我优化,我们缺少哪四样东西?第一是稳定的部署表面。为此我们使用Hank Weave,这是一个框架,它接管了像云代码和Pie这样的代理运行时快速变化的表面,然后暴露出一个一致、经过良好测试的日志和API接口,内置了检查点、回滚、预算执行等功能。这是一个你可以在此基础上构建的东西。当然还有其他东西符合这一描述。公平地说,对于无头数据工作而言,Hank Weave我认为仍然是最古老、最稳定且最开放的。如果你想尝试的话,我会留下技能链接(注:此处原文可能有误或指代特定资源)。

第二是某种限制你实验的方法。如果你不能控制成本、时间和访问等资源,你就无法进行测试。第三是诀窍和方法论。我们发现这一类新模型可以将我们过去两年部署中学到的一切——代理模式、调试技术、提示工程——应用于复杂问题。有了正确的抽象层,你可以非常高效地用Token表达它,而模型可以实现它。第四也是最重要的一点是失败表面(failure surface)。阿基米德说:“给我一个支点,我就能撬动地球。”而在我们的案例中,只要有一个稳定的构建栈和一个可迭代的失败表面去面对,我们还没有遇到无法通过迭代自行解决的问题。

最后这一点是最难用语言、工具和指令来描述的,而这些正是帮助模型到达那里的关键。目前的最佳模型在这方面仍然只是勉强合格,可以说是智慧的火花。然而整个过程涉及六个阶段。首先,我们检查任务并将其拆分。对于Jeff来说,这意味着将约80万行数据拆分为20万个更小、更专业的案例,并将每个案例转化为类型化的问题。例如:哪种类型的捐赠者?单个捐赠者?你知道的,不同的需要回答的问题。然后我们决定失败表面。在这种情况下,我们在少量数据上运行了良好的模型,其中部分经过人工检查以设定一个我们可以作为失败基准的基线。在其他情况下,我们设置了自动故障系统、模式检查(schema checks),还将行为作为可测量的对象进行覆盖,但在开始之前定义失败表面非常重要。

但现在到了有趣的部分:我们需要最小化的有界试点来测试架构。一旦某事开始起作用,我们就将这些标签移入“rigs”( rigs可理解为运行环境或配置集)。这是在称为codon的有界工作段之间运行的代码。这些codon随后被重用、独立循环验证并按顺序放置。最后,工作的管道部署到生产环境中,在那里它们可以慢慢成熟。而中间部分正是“冲浪”发生的地方:我们找到一个能给出稳固结果的架构,将其作为基线,然后交换模型和其他部分以获取更快、更便宜的选项,与已知的中间结果进行比较,收紧成功的要求,每次都在更接近理想状态的同时观察前沿的移动。

能够将复杂问题分解为片段意味着每个部分都能像亚当·斯密所说的那样,移动到其各自的最佳位置。在这样的系统中,本体论(ontologies)存在于智能和结果之间作为中介,这使得它们更容易被重用。这就是我所说的“即时本体论”的另一半含义:它在任务需要时构建,保留其凭证(receipts),并在下一个任务需要相同内容时被重用。一旦你拥有了这些,你就可以使这些东西更便宜。你可以跨数据集并行运行它们以进行扩展。最后我要道歉:答案是——没有本体论,至少没有一个通用的本体论。从来就没有过。好消息是,这使得每一个本体论和模式都是有效的,只要你能够标记并保留其周围的上下文。

如果我们可以利用这种廉价的智能开始渗透到我们周围的世界,我们正迅速接近这样一个未来:任何格式的任何信息都能变得尽可能有用。而在Outpace公司,我们正在尽最大努力使这一未来成为现实。谢谢。