Transcript
00:00:00嗨,大家能听到我说话吗?太好了。我们这里只有短短的 20 分钟,所以我想直接切入
00:00:20正题。我叫 Deet,是 Reducto 的联合创始人兼 CEO。今天我们想聊聊
00:00:25构建能真正应用于现实世界的 Agent 时,非常实用、但可能没那么夺人眼球的一个环节:数据。相信大家今天已经听过很多关于数据的演讲了。我们主要专注于为那些处理最棘手数据源的人构建基础设施,也就是非结构化的图像、PDF、表格等人类日常习惯使用的各种文件。现场有人用过 Reducto 或者试用过吗?太棒了。
00:00:55首先提供一点背景信息可能会有所帮助,我们是一个 Agent 化的文档处理平台。我们帮助许多全球领先的 AI 团队构建 AI 应用以及工作流,具体取决于他们的需求。
00:01:08这包括大家今天可能见过的许多原生 AI 初创公司,比如 Harvey、Ligor、Rogo,但也包括一些全球最大的企业。我认为这是我们接下来要讨论内容的重要背景。
00:01:19我们与最大的科技公司、全球金融机构、保险机构合作,这些机构拥有数十年历史的数据,而在过去,这些数据很难在 Demo 之外的实际场景中派上用场。
00:01:34在所有这些公司中,截至目前,我们已经为客户处理了数十亿份文档。末尾那个加号我都有点懒得更新了,因为数字一直在变,所以就让它留在那里吧。
00:01:46但我们在这些经验中学到的核心要点,也是我今天想重点分享的,其实并不是 Reducto 产品本身。
00:01:51而是我们积累的那些细节经验,希望大家能带回去并应用到自己的工作当中。
00:01:58我认为我们所做的许多工作和获得的经验,都契合了一个更广泛的大背景:AI 应用的范畴最近发生了巨大的变化。
00:02:07已经从单纯的信息综合产品,演变为真正替人类干活的 Agent。
00:02:13伴随着这种转变,我们发现有几个关键点非常值得深入探讨。
00:02:16第一是明确问题本身,即大家面临的瓶颈,以及为什么 PDF 极其难处理——哪怕你可能已经在 Twitter 上看过几十个发布 PDF 处理工具的推文。
00:02:26我们在不同的工具中看到了各自的优缺点。
00:02:31我们认为传统 CV 和 VLM 都有其适用的时机和场景。
00:02:35更令人兴奋的是,本次演讲的后半部分将聚焦于下一代前沿。
00:02:40探讨引入 Agent 闭环后,我们所看到的各种可能性。
00:02:43以及针对不同任务类型使用测试 Harness 所带来的发现。
00:02:47还有从单纯搭建 RAG 到开发 Agent 产品过程中,我们在评估方面得出的经验总结。
00:02:53不过我先从第一点讲起,这一点我想大家应该已经被反复强调过了。
00:02:58如果你几年前参加 AI Engineer 大会,每场演讲里高频出现的词绝对是 RAG。
00:03:04当时所有人都在构建某种形式的 RAG 应用。
00:03:07在很长一段时间里,所有的应用本质上都是某种形式的信息综合,对吧?
00:03:12你会从某个上下文提取信息,不管是一个完美的提示词,还是用户上传的文件。
00:03:19然后做一个类似搜索的产品。
00:03:22比如企业级搜索。
00:03:23或者一个能在文档内容上做简单问答的聊天机器人。
00:03:27仅此而已。
00:03:28但到了今天,你可能听过无无数次的流行词变成了 Agent。
00:03:34对于在座的工程师来说,你们可能已经让 Claude Code 或类似工具全权负责了许多端到端任务。
00:03:41而同样的转变也开始发生在各种白领工作领域。
00:03:46无论是在金融、保险还是医疗领域,人们都开始让 AI 做出自主决策。
00:03:51他们试图打造端到端的工作成果,不仅仅是解答 PDF 中的问题,还要直接生成和修改 PDF。
00:03:58这是一个完全不同的视角。
00:04:00相比于单纯构建一个检索平台,你所需的工具和面临的挑战都会发生巨大变化。
00:04:06而这一切共同的核心在于,当你开始使用这种多步骤管道时,数据处理实际上变成了一个更为关键的待解难题。
00:04:18如果你只是做问答,单纯回答问题本身固然存在风险。
00:04:24但当 Agent 根据一堆文件做出多个决策并不断叠加,或者引入多个数据源时,糟糕的输入所带来的风险就会在你的管线中迅速蔓延。
00:04:36而这正是我们所关注的焦点。
00:04:38因为归根结底,语言模型工具在现实世界中的大部分价值,只有在你应用该智能的具体上下文里才能体现出来。
00:04:48因此对许多企业而言,数据是非结构化的、分散的,且多模态的。
00:04:53它并不是那种整理得非常干净整洁的数据库。
00:04:56你会看到各个部门和团队随手把文件扔进 Google Drive、Box 以及其他任何地方。
00:05:04你的数据格式默认就是非结构化的。
00:05:07你甚至不一定清楚自己的语料库里究竟包含些什么。
00:05:11由此就会引发各种各样的下游问题。
00:05:14其中一部分问题是解析提取的准确性,这固然非常重要。
00:05:18但同时也关乎诸如“你是否检索到了正确的上下文”这类问题。
00:05:22它还涉及你如何真正与该上下文进行交互,并对其应用修改。
00:05:27而大家可能经常听 Reducto 和其他同类公司强调的一点是:PDF 令人惊讶地依然是一个非常棘手的问题。
00:05:36不知道大家有没有关注 Surge,它是一家与许多基座模型公司合作的数据实验室。
00:05:42他们做了一个非常棒的基准测试叫 GDP PDF,在这个测试中,即便是像当下最顶尖的模型,准确率也只有 30% 左右。
00:05:52而这完全建立在一个核心问题上:我们能否让模型去浏览并真正根据 PDF 等文档中的内容做出断定?
00:06:01之所以困难,我稍后会讲回那个基准测试,根本原因在于 PDF 作为一种文件格式既非常古老,又是基于完全不同的背景设计出来的。
00:06:11我真的遇到过研究 PDF 处理时间比我活得还久的人。
00:06:16我遇到过在 90 年代初为打印机编写打印 PDF 驱动程序的人。
00:06:21当年它的定位就是那样。
00:06:22你希望能够忠实地还原最初创建文档时的样子,并确保它最后能被打印出来。
00:06:30但如今的许多考量点早已与此无关。
00:06:33最终我们需要的是像 Markdown 这样的表征,一种 Agent 能够高效推理的形式。
00:06:39而在现实世界中,人类在视觉上编码了太多的上下文信息。
00:06:44比如在投行刚毕业的普通金融分析师,在做 PPT 时根本不会去考虑“Agent 能不能理解这套幻灯片”。
00:06:54他们会制作这些极具创意的页面。
00:06:57相信大家一定见过软银那些画着“下金蛋的母鸡”的幻灯片。
00:07:01这些细节至关重要。
00:07:02对吧?
00:07:03比如你需要推理的许多数据都是表格结构,但它们可能没有清晰的网格线,还会拆分合并单元格。
00:07:10你会遇到折线图和各种图表。
00:07:12还会遇到潦草的手写字,甚至连我作为一个人类看一眼都很难认出来。
00:07:17如果你要解决长尾问题,就必须应对这些状况。
00:07:22我们在 2023 年创立了这家公司,因为我们感到该领域的技术突破点已经到来。
00:07:29在很长一段时间里,人们思考任何 PDF 处理问题时,用的都是某种改版的 NLP 管道。
00:07:37先做一次简单的 OCR 识别,然后尝试对提取出的文本做后处理。
00:07:41当你的版面非常固定时,这种方法是有效的。
00:07:44对吧?
00:07:45比如如果你知道 W2 报税表永远长那个样子,这就是一个受限的问题空间,你可以直接用模板搞定。
00:07:51但 VLM 的有趣之处在于,它们本质上是通用的。
00:07:56我们第一次拥有了“像人类一样去阅读文档”的前提能力。
00:08:01你可以立足于“我们想要解决长尾问题”这一前提。
00:08:04因此我们发现,在处理各类手写文本方面,VLM 的表现极其出色,这是传统 OCR 根本做不到的。
00:08:12但另一面是,我们并不认为它们是万能的通用方案。
00:08:16如果你需要在大规模场景下解决这个问题,如果你是一家需要处理数亿份文档的公司,
00:08:21还需要考虑各种次要因素,比如确定性。
00:08:25你会非常关心处理效率。
00:08:27因此我们发现,在某些特定环节上,传统计算机视觉(CV)其实依然非常强劲。
00:08:33这一点随着自动驾驶研究的进步常常被严重低估。
00:08:37像目标检测这样的技术,比十年前精密复杂得多。
00:08:42所以我们发现,小于 1 亿参数的模型在检测文档版面等任务上非常有效。
00:08:48甚至不需要大型基座模型,就能做得非常深入。
00:08:52而且这些模型实际上可以直接在 CPU 上运行。
00:08:54你可以大规模部署它们。
00:08:55确保能从区域层面上清晰了解哪些部分是处理难点。
00:09:00而 VLM 则引入了语义概念。
00:09:03你可以深入流程,找出并纠正数据管线中可能存在的各种错误。
00:09:09基于这种语义概念,当你拆解问题并明确掌握哪些地方更为复杂时,
00:09:18如果你已经对页面上的文本进行了分割,并搞清了手写内容的位置,
00:09:21就可以引入这种“Agent 在环”(Agent in the loop)的概念。
00:09:25过去通常需要一个人工审核团队去标注和纠错,
00:09:29而现在 VLM 可以呈现出一种我们称之为“Agent 化 OCR”的理念。
00:09:33对我们来说,它就像是你用 Cursor 这样的工具在 IDE 里快速编辑代码一样,
00:09:41存在一种“投机解码”(Speculative Decoding)的概念,即对输出内容进行 Token 级别的修改。
00:09:45你可以在这里应用类似的原理,而不是单纯把 OCR 结果发给 Gemini,
00:09:51写一个非常漂亮的 Prompt,礼貌地请它不要偏离原文太多。
00:09:56因为我们发现,当你做那种下一个 Token 预测时,
00:09:58会引入全新的失真情况,那些非常智能的模型
00:10:02会开始擅自修改内容,导致结果无法忠实于文档原貌。
00:10:05它们看到“Total”(总计)这个词,如果人类原本在表格里算错了,
00:10:08模型有时甚至会自己重新把表格里的数值相加并填进去。
00:10:13而你真正需要的是精确定向地纠正 Token 级别的错误。
00:10:16比如分号和逗号搞混了,数字 0 和字母 O 搞混了,
00:10:19这类细节极其重要。
00:10:21这就牵涉到一个关键问题:我们该如何真实还原人类亲自阅读该文档时
00:10:25所能看到的内容。
00:10:27所以我们是这样看待它的:Agent 化 OCR 就像是“人机协同”(Human in the loop)模式的类比,
00:10:34第一步输入先通过“CV + VLM”进行解析,
00:10:39随后再经过一层验证与纠错机制,最终产出高置信度的结果。
00:10:44但我前面提到过,我们并不认为这一系列问题仅仅是单纯的解析和提取。
00:10:50这里的很多内容,我认为仔细推敲管线的细节至关重要,
00:10:56即便你已经拥有了一个极棒的“文档转 Markdown”管线。
00:10:59一个绝佳的例子是,如果你曾经搭建过任何形式的 RAG 平台,
00:11:04可能都曾针对表格处理做过专门的考量。
00:11:07有许多内容可以在 Markdown 等格式中编码得很好。
00:11:13但对于像这样的表格,其中的合并单元格实际上蕴含了大量信息,
00:11:18保留这种结构就显得至关重要。
00:11:20这并不是模型的局限性。
00:11:22LLM 在推导同一表格的 HTML 结构方面表现极其出色,
00:11:26但你也会浪费大量 Token,这很快就会变得非常昂贵。
00:11:29显然,在另一个极极端,
00:11:31你大概也不想用 HTML 去编码那些简单的表格,
00:11:35因为那样会导致大量冗余的 HTML 标签。
00:11:38因此,我们最终将此视为一个动态问题,
00:11:42即遇到简单表格时,太好了,我们可以直接在 Markdown 中拟合这些数据。
00:11:47当遇到更复杂的表格时,你可能需要使用像 HTML 这样的格式,
00:11:50但语言模型绝不是你在处理流水线中唯一需要考量的因素。
00:11:55如果你在做任何与嵌入(Embedding)相关的操作,
00:11:57你还会面临上下文检索的次生难题。
00:12:01我刚才展示给你们看的那个表格,
00:12:03如果去看它的 HTML 表达方式,会发现极其杂乱。
00:12:08其中绝大部分片段全都是 HTML 标签。
00:12:11它只是在定义文档的结构。
00:12:14令人遗憾的是,尽管在某些通用基准评估中,
00:12:17内容可能会极力去替模型分担工作,
00:12:22直接写明你正在寻找的内容;
00:12:24但现实中的人类不会去穷举表格里的数据。
00:12:28他们只会问“营收随时间是如何变化的?”
00:12:30并假设你在需要时会自动检索出正确的表格。
00:12:34虽然语言模型可以高效地推理这些文本,
00:12:37但如果是从海量语料库中检索,
00:12:39我们发现嵌入模型很难将人类的自然语言提示词
00:12:44与这一大堆混杂着数字的 HTML 标签关联起来。
00:12:47因此,有一项费力极少却成效显著的工作,
00:12:51就是构建一种专为嵌入模型本身设计的表达形式。
00:12:55同样针对这个表格,
00:12:56你生成一个该表格的自然语言表述,
00:12:58这样就能兼顾两者的优势。
00:13:00当你要将其传入模型进行逻辑推理时,
00:13:02使用的是 HTML 表格格式;
00:13:04而当你要确保能检索到正确的文本片段时,
00:13:07使用的则是那个自然语言文本块。
00:13:12除此之外,还有一点理念是,除了单纯的解析和提取,还有很多事情可以做。
00:13:18我认为历史上整个行业的焦点一直都集中在解析和提取上,
00:13:22因为我们确实认为那里的提升空间非常巨大。
00:13:25我前面提到了 GDP PDF 基准测试,
00:13:30我认为它是个极佳的例证,展示了
00:13:34改善数据流水线所带来的实际成果。
00:13:37我们发现,如果使用我之前提到的完全相同的基准测试,
00:13:40可惜我们无法在 Fable 上进行测试,
00:13:43因为我们的访问权限被切断了。
00:13:46但如果你在其他模型上测试,同时为它们提供原始 PDF
00:13:50以及 PDF 的结构化表述,
00:13:52比如这里的解析结果,横向对比各个模型,
00:13:55无论是 Gemini、Anthropic 还是 OpenAI,
00:13:58你会发现仅仅依靠更好的输入,就能提升下游 LLM 的最终性能。
00:14:04这种提升甚至达到了极致:像 GPT-4.5 和 Opus 这样的模型,
00:14:09开箱性能表现实际上超越了像 Fable 这样的模型,
00:14:12不仅体现在准确率上,更因为提供了更好的输入,
00:14:17模型最终所需的推理 Token 也随之减少了。
00:14:20它们减少了在数据结构表达上的精力分散,能更专注于实际输出。
00:14:24结果就是,它们最终降低了延迟,
00:14:27并能更迅速地得出正确答案。
00:14:30但即便你已经建立了这样的流水线,
00:14:33并且已经对解析层中的
00:14:37一切进行了细致检查,很多人工工作仍然需要
00:14:41真正理解语料库中所包含的范围,
00:14:44将其路由到合适的流水线并进行问题拆解,
00:14:48甚至在最后对文档进行编辑和修改。
00:14:51因此,我们尝试将这个问题看作是:
00:14:54如何确保语言模型与文档的每一次交互,
00:14:57都能像人类亲自操作一样高效。
00:15:00如果你在填写表单,如何确保你在填入字段时
00:15:03保持精准?
00:15:05在编排层面,有一个非常好的例子,
00:15:08我认为分类与拆分是一种极易被低估的方法,
00:15:12它能让 LLM 发挥出最佳水平。
00:15:14显然,你大可以直接塞入尽可能多的上下文。
00:15:17如果你只是在做某种大海捞针式的测试,
00:15:19那或许没什么问题。
00:15:20但实际上,除了 Token 成本之外,
00:15:24传入过多内容还会导致输出质量出现下滑。
00:15:28相反,我们发现通过深入思考一些问题,能获得巨大的提升空间,
00:15:33比如如何将正确的文档分类
00:15:36到合适的流水线中?
00:15:38甚至是对于长文档,如何确保你传入的
00:15:41恰恰是真正相关的片段?
00:15:43我们看到有些应用场景中,人们会收到纸质邮件等材料,
00:15:47这些纸质邮件包可能长达几百页。
00:15:50你并不一定知道里面具体会包含什么。
00:15:53你可能会遇到诸如人工装订交错内容之类的问题,
00:15:57如果让模型去处理这类繁杂琐事,几乎是在干扰
00:16:01分散了你真正想要完成的工作的注意力,
00:16:03比如从纸质邮件中提取数据、
00:16:05对其进行推理,或是做出决策。
00:16:10同样,我刚才提到,我认为后半部分
00:16:13是一个更有趣的切入点,即一旦你拥有了
00:16:16初始的分类和拆分层,
00:16:20并且搞定了排序工作。
00:16:22我认为最让我们团队感到兴奋的是,
00:16:26智能体框架(Agent Harnesses)已经成为一个极其有趣的全新前沿,
00:16:29可以用它来突破过去经典未解的难题。
00:16:34我稍后会讲到的一个极佳示例
00:16:37就是折线图这类数据。
00:16:39我们与许多全球顶尖的对冲基金合作,
00:16:41历史上像折线图这样的东西一直都极其
00:16:43难处理,原因之一是它们是图像格式。
00:16:46原因之二是其中包含大量像素级的细粒度信息,
00:16:49如果你使用传统的视觉编码器去处理,
00:16:52大概率会丢失这些细节。
00:16:53你可能会得到营收趋势的大致图像,
00:16:55但却无法提取出具体的数据点。
00:16:57因此我们一直在思考,如何赋予智能体适当的工具,
00:17:00使其能够针对你所面对的特定类型问题
00:17:04提供解决方案。
00:17:05在图表提取的案例中,左侧的图表编码了
00:17:09一个极其庞大的数据表。
00:17:11如果让你去尝试绘制每一个像素,
00:17:14那将会非常非常困难。
00:17:16同时,模型甚至也很难去逼近
00:17:19中间线条的复杂细节。
00:17:22目前没有任何模型能够开箱即用地
00:17:24一次性解决这个问题。
00:17:25你在右侧看到的是我们根据初始折线图
00:17:28成功重构出的 Markdown 表格。
00:17:30基于初始折线图生成的。
00:17:32而能做到这一点的唯一方法,
00:17:34就是使用配有各种工具的智能体。
00:17:36它自带代码解释器,
00:17:37它能够将生成的图表进行可视化展示。
00:17:40并且它在不断地进行迭代改进。
00:17:41它一次又一次地找出折线图中的错误,
00:17:45直到最终得出正确的输出结果。
00:17:47这同样适用于像结构化提取这样的问题,
00:17:51虽然我们早已具备将文档
00:17:53转化为结构化输出的功能,
00:17:55但你完全可以更进一步,
00:17:57为此类任务构建一个智能体框架。
00:18:00你可以让父智能体去设定验证标准,
00:18:03供子智能体遵循。
00:18:05这意味着如果你遇到像 CBP 表格这样
00:18:09包含数万个字段的文档,
00:18:11在这类问题中,你最终会发现
00:18:13很多隐蔽的问题。
00:18:15比如漏掉内容,或是漏掉表格行。
00:18:17MicroOne 今天早上发布了一个非常出色的
00:18:20行业基准测试,其中揭示了市场上的
00:18:23这种分化现象。
00:18:24具备最高推理能力的前沿模型非常精准。
00:18:28只要它们提取出了一行,
00:18:30大概率就不是凭空幻觉出来的,
00:18:31而是准确无误的。
00:18:33但在整个测试中,它们悄悄漏掉了大量内容。
00:18:37召回率表现非常差。
00:18:39另一方面,许多专门的文档处理服务
00:18:42在准确率方面其实落后于前沿模型,
00:18:46但缩小了在召回率上的差距。
00:18:48因此一直存在着这种权衡平衡。
00:18:51只有通过智能体框架,我们才能在此类任务中
00:18:54找到兼顾高准确率与高召回率的
00:18:57局部最优解。
00:19:00最后一点,也是本次演讲中最关键的一点,
00:19:04我认为归根结底,评估(evals)应该支撑起
00:19:09你的所有决策。
00:19:10这也是我们思考产品时的重要核心。
00:19:12这不仅适用于用来做基准测试的现成数据集,
00:19:16同样也适用于生产环境的实时监控。
00:19:19因为你的实际生产数据
00:19:21势必会与你在人工构建的数据集中所拥有的不同。
00:19:25我真心认为很重要的一点是,不要把评估
00:19:28仅仅看作是一种宏观层面的概览;
00:19:30与我们合作的优秀团队
00:19:33还会深入到流水线的每一个步骤,进行细粒度的评估。
00:19:36首先,你可能希望确保
00:19:38确保管道的输入质量足够优秀。
00:19:40当然,你应当评估像解析管道这样的环节。
00:19:43但如果搭配了一个糟糕的检索管道,即便解析再完美
00:19:47只要未能传入正确的上下文,也是无济于事的。
00:19:50因此,深入思考这些细节非常重要,
00:19:52比如你的检索管道、
00:19:54管道末端的格式化处理,
00:19:56以及归根结底最关键的一点——
00:19:58你是否能够提升终端智能体的表现。
00:20:03最后,我想展望一下我们未来的方向
00:20:06以及我们所看到的行业发展趋势。
00:20:08我认为最核心的是,随着智能体变得越来越强大,
00:20:12你可以摆脱几年前那种
00:20:15确定性的流水线模式。
00:20:17我们的许多客户实际上会为他们的智能体构建一个类似文件系统的结构
00:20:20供其浏览和导航,
00:20:22并让智能体自主决定想要使用何种工具。
00:20:25因此我们提供了一个 CLI 工具,大家不必再构建那种文档只能走单一固定流程的
00:20:28端到端管道,
00:20:32智能体会自行判断是否需要读取某种特定类型的文档,
00:20:35并将其拆分为两套数据集。
00:20:38一是内容字段,智能体可以根据需要随时读取;
00:20:41二是所有你可能需要的元数据。
00:20:44如果你在做引用生成,可能就会需要边界框(bounding box)
00:20:47等等信息。
00:20:50关于编辑的部分我就跳过了。
00:20:52我认为这个领域有很多非常有趣的工作正在开展。
00:20:54我们已经发布了一部分功能,但在接下来的几个月里,
00:20:57你会看到我们越来越侧重于文档生成等方面。
00:21:01总结一下今天的分享,再次非常感谢大家的抽出时间:
00:21:04第一,我强烈建议将解析问题进行拆解。
00:21:08尽可能做到因任务选工具,
00:21:11从而在准确度、成本和延迟之间找到最佳的前沿平衡点。
00:21:16第二,我认为基于智能体的验证(agentic verification)是近期行业内最大的技术飞跃,
00:21:21这是确保你所构建的管道能在生产环境中稳定运行绝佳契机。
00:21:26第三,只需投入极少的精力,就能从细节中获得巨大的提升,
00:21:31比如根据消费端需求来格式化数据。
00:21:34第四,同理,我认为非常关键的一点是不仅要考虑数据处理,
00:21:39更要关注数据编排(data orchestration)。
00:21:41因此应当始终考虑将分类(classify)和拆分(splits)等工具
00:21:44作为增强管道的一种手段。
00:21:46第五,确保在每个阶段都进行评估(eval)。
00:21:49第六,思考属于你的下一个前沿突破是什么,
00:21:52因为当下绝大多数成功的企业都大幅偏离了
00:21:56与两三年前的做法大不相同。
00:21:59但如果您有任何问题,随时欢迎与我联系。
00:22:03我的邮箱是 名字@reducto.ai。
00:22:06如果我们在您的应用场景中能有所帮助,也欢迎访问我们的网站联系我们。
00:22:10谢谢大家。
Community Posts
No posts yet. Be the first to write about this video!
Write about this video