30 秒看懂
Kepler 首席执行官 Vinoo Ganesh 认为,金融领域不能依赖语言模型生成未经核实的数字:模型可能找到错误来源、误读数字的量级或所属期间,也可能算错。Kepler 的做法是将结构化事实和混合搜索,与确定性计算、引文登记表、租户级授权,以及删除无法核实数字的过滤器结合起来。 Ganesh 介绍了系统架构、搜索与安全层,并现场演示如何将 Apple 的营收和增长率追溯到申报文件及计算过程。他还分享了 Kepler 自己的评测结果,并谨慎界定了能力边界:平台可以阻止缺乏依据的数字以已验证结果的形式出现,但不能从根本上阻止模型幻觉,也无法取代分析师的所有工作流程。
- 1追溯每个金融数字Ganesh 的核心原则是,分析师绝不能向客户或投资组合经理展示无法核实的数字。语言模型可能检索到看似合理却错误的来源、混淆数值的单位或期间,也可能算得不可靠。
- 2让代码而非模型写出数字Kepler 的架构由检索层查找来源,确定性代码执行计算,后处理过滤器核验引文。模型可以规划并组织文字,但不能把缺少依据的数字加入已验证的输出。
- 3为每项事实保存上下文一个数字需要数值、单位、量级和期间;表格中的量级说明可能离数字本身很远。Ganesh 表示,XBRL 也可能出错,而且企业还依赖内部文档,因此系统必须同时处理公开申报材料和内部数据。
- 4广泛搜索,再重新排序Kepler 将近似最近邻向量搜索与 BM25 结合,融合搜索结果,再通过交叉编码器和来源可信度信号对候选项重新排序。该搜索层旨在同时处理结构化公开记录和企业私有文档。
- 5每次命中都重新检查租户权限每份检索到的文档都会在 Postgres 中重新授权,查询过滤条件也会在整个流程中逐层累积租户范围。这样即使搜索跨越共享基础设施,也能避免某个团队或公司看到其他人的研究。
- 6普通 RAG 没通过 Kepler 的数字核验Ganesh 称,Kepler 的过滤器在评测中拒绝了 10,981 条引文,其中包括 3,810 个数字不匹配。他认为,对于要求数值准确、可审计的工作,仅靠普通的检索增强生成并不够。
要点建议
- 在金融工作中,每个展示出来的数字都应能追溯到读者可以查阅的来源。
- 让语言模型负责规划和解释,让确定性工具负责检索事实和进行算术运算。
- 要理解一项金融事实,必须同时知道它的数值、单位、量级和报告期。
- 当信息也存在于非结构化文档中时,应结合结构化数据、关键词搜索和向量搜索。
- 向模型提供检索到的文档之前,要针对当前租户重新授权。
- 如果引文无法核实或可靠修复,就删除对应数字,不要把它当成事实呈现。
按章节阅读整理后的全文
金融数字为何需要依据
Ganesh 介绍 Kepler,以及塑造其设计的高准确性工作环境。他提出一条原则:向客户或投资组合经理展示的每个数字,都必须经过明确核实并且可以追溯。
感谢大家到场。我是 Vinoo Ganesh,Kepler 的首席执行官,很高兴和几位团队成员一起来到这里。本场接着此前关于 Kepler 的介绍,回应大家对技术实际运作方式的疑问。在创立 Kepler 之前,我从 Palantir 开始职业生涯,负责过计算层,创办过一家数据即服务公司,后来又在 Citadel 担任业务工程负责人。这些经历让我们明白,当系统支持高要求的工作时,准确性和忠实度至关重要。
语言模型如何丢失数字的准确含义
模型可能检索到可疑来源,也可能找到正确文档却取错数字、单位、量级、年份或页码。它还可能进行算术运算,却无法保证结果可靠。
金融领域的核心原则很简单:分析师绝不能向客户或投资组合经理展示无法明确核实、无法追溯的数字。比如营收增长 12.4%,达到 4,182 亿美元,这不是装饰性文字;每个数字都必须准确。问题在于,语言模型本质上是概率机器。让它们富有创造力的特性,也使它们在关键任务场景中难以令人信赖。
模型写完答案后再附上来源,并不能解决问题。模型阅读整份文档的方式不同于分析师:系统通常会把文档切成片段,运行语义搜索,再检索可能只有松散关联的内容。这样可能找到完全错误的来源,比如耸人听闻的博客文章,即使更权威的申报文件明明存在。
即使找到了正确的申报文件,模型也可能误解数字的含义。单独一个 17,可能表示百万或十亿、日元或美元、某一年的营收,甚至只是页码。2025 年的申报文件可能描述 2023 年的业绩,因此文档日期并不能说明事实所属期间。答案必须可核验时,这些区别全都重要。
还有算术问题:增长率、利润率和倍数都需要计算,而我们不能单靠语言模型来保证计算正确。有些模型会写代码来计算,但模型自身的输出仍无法保证忠实准确。Kepler 的解决方案是一种架构:模型引用数字,却不直接写出数字;检索负责找到来源,预先确定的确定性代码负责计算,后处理过滤器负责检查答案。
模型负责引用,确定性代码负责计算
Kepler 将检索、计算和核验分开:模型负责规划,工具查找事实,代码进行计算,过滤器检查引文。Ganesh 介绍了一个基于大量 SEC 材料建立的登记表,用于把数字关联到具体来源位置。
Kepler 预处理了 3,000 多万份 SEC 文件并登记引文,包括营收和资产负债表数据等财务事实,以及管理层讨论与分析中的陈述。Ganesh 介绍说,系统登记了约 20,000 项内容,并将申报事实作为可引用锚点提供。设置锚点是为了让用户点击数字后,能回到支持它的底层文档及其具体位置。
在生产环境中,Kepler 会拒绝无法核实的引文。如果数字没有有效引文,模型在结构上就无法把它放进已验证的输出。Ganesh 表示,他展示的数据中,过滤器正确提取了约 21,000 条引文。更广泛的设计原则是:语言模型负责规划,确定性软件处理每个数字,进一步说,也处理每项事实。
从问题到答案的处理流程
模型先规划需要哪些申报文件、更新和计算,再由工具检索并算出答案。类型化的引文登记表为每项事实提供元数据和来源链接,便于审计。
用户提出问题后,模型会根据可用工具、检索步骤、引文过滤器和来源位置制定计划。比如要回答 Google 调整后 EBITDA 的问题,系统可能需要查阅多份 10-K、投资者演示文稿、财报电话会内容或之后发布的重述文件。模型判断需要哪些信息;工具负责检索、计算、生成表格,并登记结果事实以便引用。
引文登记表会为事实补上量级、元数据和类型,确保事实能正确呈现。想象一份 2025 年的 Palantir 10-K 报告了 2023 年营收。数字属于 2023 年,尽管它出现在较晚的申报文件里。表格可能把数值写成“1”,而“十亿美元”却出现在页面别处;系统必须重新关联这些相隔较远的上下文,才能生成有意义且可追溯的答案。
模型往往会继续生成文字,连无法证明来自可信来源的数字也照样写出来。因此,Kepler 会在后处理中删除缺乏依据的数字,并努力让平台中的每个数字都可以点击。Ganesh 称这是一种颗粒度很细的可追溯性:读者应当能够检查证据,而不是只因为模型这么说就接受一个数字。
事实需要单位、量级和期间
申报文件中的裸数字并不能自我说明:量级可能写在表格的别处,数字所属年份也可能不同于申报日期。Kepler 还需要搜索备忘录、电子表格和共享云盘等内部文档。
金融事实不只有数值,还需要单位、量级和报告期间;像 416,000 这样的数字,如果没有这些标注就有歧义。Ganesh 指出,如果 XBRL 总是正确,它会很有帮助,但他称 XBRL 大约有 10% 的时候会出错。投资者也会使用内部信息,因此实用的系统必须同时覆盖公司自己的文档和公开申报文件。
私有研究可能包括投资备忘录、电子表格,以及 SharePoint、Box、OneDrive、Outlook 或 Egnyte 中的文件。Kepler 会对本身已有结构的数据保留结构,对非结构化数据则使用搜索。它把公开和私有材料放进可搜索的命名空间,通过混合检索查找内容,同时保留平台的引文与访问控制保证。
混合搜索与重新排序
Kepler 将向量搜索与 BM25 结合,融合结果列表,再对候选文档重新排序。系统还会评估来源可靠性,因为财报电话会和正式申报文件可能给出互相矛盾的信息。
Kepler 的搜索流程将嵌入向量上的近似最近邻检索与 BM25 关键词搜索结合起来。系统会在整个命名空间内同时运行两种方法,超额获取候选项,再用倒数排名融合合并排序结果。随后通过交叉编码器缩小候选范围,并利用可信度信号重新排序,因为不同来源可能会对看似相同的事实给出相互矛盾的版本。
财报电话会文字稿与 10-K 之间存在分歧,不一定是搜索错误;这可能是真实存在、需要系统识别的冲突。完成搜索和重新排序后,Kepler 会把筛选出的来源交给模型。Ganesh 还强调,信息变化时可以重新生成嵌入,同时也指出,高效运行嵌入模型可能成本不低。
检索时隔离租户数据
每个命中结果在送达模型之前,都会在 Postgres 中按租户和所有权权限进行检查。签名身份、受限令牌以及贯穿查询流程的过滤条件,帮助各公司的研究数据留在自己的环境中。
搜索还必须遵守租户隔离。Citadel 的一个团队看到另一个团队的研究是不可接受的,所以 Kepler 会在模型看到每份命中文档之前,先在 Postgres 中重新授权。构建查询时,各层都会加上租户过滤条件,避免后续检索步骤意外扩大访问范围,让公司内部数据暴露给不该看到的人。
Kepler 的授权服务负责创建受限令牌,用户和组织身份则来自签名设备。这些检查旨在让公司的研究数据留在自己的环境里。访问控制必须一致地应用于搜索和读取:如果一份文档在搜索中不可见,就不能通过另一条读取路径重新出现。
用引文登记表保存可复现事实
唯一标识符将实体和事实关联到来源元数据,展示值则允许用户选择单位或货币。每个数字都链接回来源和计算过程,使同一查询能够得到可复现的结果。
要在平台中展示数字,Kepler 会为每项事实分配唯一标识符,以便识别和解析实体。来源 ID 指向存储在确定性引擎中的元数据。另设的展示值允许同一项底层事实按用户偏好的单位或货币显示,同时保留指向来源和计算过程的链接。
Ganesh 描述了一条不变原则:用户可以点击每个数字和事实,查看它的出处。因此,结果应当可引用、确定且可复现。他称系统具有幂等性:重复运行相同查询应返回相同结果,而不是每次都悄悄改变数字。
Ganesh 表示,在他们的语料中,遇到的引文约有三分之一涉及模型没有完成的数学计算。模型可能从训练数据中记得一个历史数字,但这不能证明它从正确的年份、实体或报告范围中检索到了该数字。回答 2005 年营收问题时,模型对某个数字有印象,不能替代将它追溯到正确历史来源。
在答案生成时逐条核验引文
随着模型逐步生成回答,过滤器会将引文标记与登记表进行匹配。找不到匹配项时,Kepler 会删除数字;系统也能选择性修复引文,但 Ganesh 没有具体说明其原理。
回答逐步生成时,系统会把引文标记与登记表核对。模型将指针解析到已登记的来源,平台再使用该记录提供可追溯性。如果数字与可验证的来源不匹配,Kepler 就会从回答中删除它。这种做法有意保持谨慎:依赖助手猜测或编造数字的用户,可能会觉得产品不适合自己的任务。
同样的限制也决定了产品的使用场景。Ganesh 表示,Kepler 面向的是需要准确、可追溯信息的金融研究,而不是创意营销文案,也不是销售机会比数字准确性更重要的工作。系统会根据公开股票研究和公司的内部数据核对来源,力求为两类语料提供有依据的检索引擎。
删除所有未匹配的引文可能会让系统显得不够神奇,因此 Kepler 还加入了后处理步骤,尝试修复某些引文。Ganesh 表示,平台会在特定情况下这样做,但没有详细说明其原理,以保护公司的知识产权。其基本原则不变:只有系统能够可靠地将数字关联到证据时,才应保留它。
Kepler 的评测发现了什么
Ganesh 表示,Kepler 的过滤器在评测中拒绝了数千条引文,其中包括数千个数字不匹配。他的结论是,向量数据库或基础 RAG 配置本身并不能提供金融行业所需的可审计性。
Ganesh 分享了一项评测结果,用来回应“普通 RAG 就能让金融研究可靠”的说法。Kepler 的过滤器拒绝了 10,981 条引文;他说其中约 3,810 条是完全错误的数字。演示把被拒原因细分为:缺少引文、引用文本中找不到数字、来源未登记、数字与来源不符、标记格式错误,以及单位不正确。这些数据来自 Kepler 自己的评测,由其首席执行官在演示中公布。
单纯用于语义搜索时,基础检索仍然有用。但 Ganesh 认为,在要求数值准确性和可审计性的场景中,向量数据库或标准 RAG 连接还不够。他主张的架构将广泛检索与来源核查、确定性计算结合起来。模型仍可能产生幻觉,但无法引用的数字不会以已验证结果的形式呈现在用户面前。
追溯 Apple 营收的计算过程
产品演示展示了一个关于 Apple 2025 财年营收和增长率的问题。用户可以点击数字查看申报文件,并检查得出 6.4% 增长率的确定性计算过程。
产品演示提出的问题是:Apple 2025 财年的营收和增长率是多少?界面给出的答案是净销售额 4,161.61 亿美元,较 2024 财年的 3,910.35 亿美元增长 6.4%。点击数字就会打开相关 10-K,突出显示支持该数字的事实,并展示计算增长率的电子表格;每项输入也都链接到自己的来源。
Ganesh 预计,随着金融研究工具日渐成熟,这类架构会成为标准。如今,分析师仍要从 S-1 申报文件中提取数据,再把 PDF 内容搬进 Excel;Kepler 希望把这些重复工作自动化。在他看来,更大的机会是为人们提供更好的研究和分析工具,而不是让模型产出没有依据的想法。
保证能力的边界
这些保证针对的是可追溯研究和受控算术,并不意味着能完全取代对冲基金或分析师的所有工作。Ganesh 设想,未来可以把独特的检索能力与确定性计算结合起来,让 AI 处理常规的文档到电子表格工作,人们则专注于构思和创意。
这些保证也有边界。Kepler 表示,系统会让模型引用数字、核验引文、将算术计算交给计算层、隔离租户并衡量召回率;这些能力可以支持有独特价值、可追溯的研究,但并不等于一只可以取代所有人的完整对冲基金。Ganesh 最后的设想是建立一种更“quantamental”的工作流程,把独特检索与确定性计算结合起来,自动处理常规工作,让人们能把更多时间花在自己真正想做的构思上。
Ganesh 最后感谢了现场观众,并提到后面还有附录。
同频道的其他文章
19:43EN → 简体中文
20:55EN → 简体中文
18:27EN → 简体中文
17:56EN → 简体中文
35:19EN → 简体中文
18:31EN → 简体中文