HtmlRAG:RAG体系中,HTML比纯文本效果更好

打印 上一主题 下一主题

主题 862|帖子 862|积分 2586

HtmlRAG 方法通过使用 HTML 而不是纯文本来加强 RAG 体系中的知识表示本领。通过 HTML 洗濯和两步块树修剪方法,在保持关键信息的同时紧缩了 HTML 文档的长度。这种方法优于现有基于纯文本的RAG的性能。
方法

实在主要看下围绕html提纯思路,将提纯后的Html内容送入LLM举行加强问答。

1. HTML 洗濯

由于原始 HTML 文档过长(每个超过 80K),而且不需要考虑用户查询的语义特性,因此在这个步调中使用基于规则的方法举行预处理。这个洗濯过程移除无关内容并压缩冗余布局,保留原始 HTML 中的所有语义信息。洗濯后的 HTML 得当于配备长上下文 LLM 的 RAG 体系,而且不希望在生成前丢失任何信息。洗濯后的 HTML 照旧后续 HTML 修剪的基础。
1.1 HTML 内容洗濯

从网络上检索到的 HTML 文档包罗大量对人类用户不可见的额外内容,如 HTML 标签、CSS 和 JavaScript。大多数 HTML 标签提供丰富的布局信息,资助 LLM 理解 HTML,而 CSS 和 JavaScript 内容提供的资助有限。具体的洗濯步调几乎是无损的:

  • 移除 CSS 样式、解释和 JavaScript。
  • 清理冗长的 HTML 标签属性。
1.2 无损布局压缩

在大多数 HTML 文档中,原始 HTML 布局包罗冗余。对 HTML 布局举行以下压缩而不丢失语义信息:

  • 归并多层单嵌套标签。例如,将 <div<div><p>some text</p></div></div> 简化为 <p>some text</p>。
  • 移除空标签,如 <p></p>。
2. 块树构建

为了整体修剪所有检索到的 HTML 文档,我们首先将所有检索到的 HTML 文档毗连在一起,并使用 Beautiful Soup 分析为单个 DOM 树。使用 DOM 树修剪 HTML 是最天然的方式,但 DOM 树过于细粒度,导致大量的节点和深树布局带来巨大的计算本钱。
考虑到上述问题,我们提出了一种优化的树布局来建模 HTML,这种布局不是那么细粒度。理想情况下,树布局的粒度可以根据不同的修剪需求举行调解。我们称之为“块树”,并设置每个块的最大单词数                                    m                         a                         x                         W                         o                         r                         d                         s                              maxWords                  maxWords 来控制块树的粒度。在构建块树时,我们从 DOM 树开始,归并碎片化的子节点到它们的父节点,并将其视为一个块。我们可以递归地归并块或子节点到它们的父节点,以形成更大的块,条件是块的单词数不超过                                    m                         a                         x                         W                         o                         r                         d                         s                              maxWords                  maxWords。归并后,无法归并的原始叶节点也被视为块。
3. 基于块树的 HTML 修剪

块树基础的 HTML 修剪包括两个步调,这两个步调都在块树布局上举行。第一个修剪步调使用嵌入模子来修剪 HTML 洗濯模块输出的结果,而第二个步调使用生成模子来修剪第一个修剪步调输出的结果。
3.1 基于文本嵌入的块修剪

该步调的目标是在保持关键信息的同时,紧缩检索结果的 HTML 文档长度。通过删除与用户查询相关性较低的块,可以减少输入到LLM中的冗余信息,从而提高生成效率和质量。
步调


  • 从每个块中提取纯文本内容。使用文本嵌入模子计算这些文本内容与用户查询的相似性得分。通常,嵌入模子会将文本转换为向量表示,并计算这些向量之间的相似性。
  • 贪心算法修剪:使用贪心算法来选择要删除的块。算法会从相似性得分最低的块开始删除,直到 HTML 文档的总长度满意设定的上下文窗口要求。删除块时,可能会重新出现冗余的 HTML 布局(如多层嵌套标签或空标签),因此需要重新调解 HTML 布局,以确保其轻便性和正确性。
  • 重新调解 HTML 布局:在删除块后,检查并归并多层单嵌套标签(例如,将 <div<div><p>...</p></div></div> 简化为 <p>...</p>)。移除空标签(如 <p></p>),以进一步简化 HTML 布局。
3.2 生成模子的细粒度块修剪


如下图,为了进一步细粒度地修剪块,扩展了修剪后块树的叶节点,构建了一个更细粒度的块树。由于生成模子具有较长的上下文窗口,可以全局建模块树。生成模子计算每个块的得分,得分由唯一序列的生成概率给出,序列由从根标签到块标签和文本的HTML标签路径表示。末了,根据块得分,应用类似的贪心算法获得最终的修剪HTML。

实验效果





  • HtmlRAG的溶解研究及块树粒度影响的实验结果


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

用户国营

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表