详细内容或原文请订阅后点击阅览
分层检索的循环工程:通过目录读取长文档
企业文档智能 [Vol.1 #7quater] - 492 页的文档有 358 个条目的目录。你无法阅读全部内容,而且每一页的 top-k 都会将答案与相邻的答案混合在一起。相反,通过 TOC 进行路由:检索中的有界循环可以节省标记并提高精度分层检索的后循环工程:按目录读取长文档首先出现在《走向数据科学》上。
来源:走向数据科学,该系列从四个部分构建企业 RAG 系统:文档解析、问题解析、检索和生成。检索砖是三部曲:
这个同伴(7quater)处理了砖块在生产中遇到的情况:文档太长而无法阅读,目录太长而无法转储。
📓可运行的配套笔记本位于 GitHub 上:doc-intel/notebooks-vol1。
我们根据 NIST SP 800-53 Rev. 5(信息系统和组织的安全和隐私控制、美国政府工作、美国公共领域)和 NIST 网络安全框架 2.0 来解决这一问题。可运行的代码路径调用受 OpenAI 使用条款约束的 OpenAI 服务。
1.问题:目录太长,无法移交
NIST SP 800-53 共 492 页。它定义了美国联邦系统必须满足的安全控制措施,一次一项控制,二十个系列。用户问一个简单的问题:
“账户管理控制需要什么?”
答案是五页,控制 AC-2,在第 46 到 50 页上。幼稚的 RAG 移动嵌入每个页面并获取与问题最相似的前 k 个。它在这里以一种特定的方式失败:帐户、管理、控制和访问这些词占据了数百页,因为整个文档都是关于控制的。 Top-k 返回 AC-2 与 AC-3、AC-17、一些审计控制和术语表混合在一起,生成模型必须猜测其中的含义。账单被支付了两次:你嵌入了 492 个页面,但答案仍然模糊。
2. 目录,三层深
这是文档的实际内容页面,位于解析器从其本机大纲读取的 toc_df 旁边。
3. 循环:一次一层
4.路由步骤,代码中
该步骤是一个函数,reason_on_toc,每个级别调用一次。它将级别读取为文本,而不是表格,因此二十个条目的级别是二十个短行,而不是每个关键字增长一列的网格。
