网络是RAG系统中使用的主要外部知识来源,许多商业系统,如ChatGPT和Perplexity,都使用网络搜索引擎作为他们的主要检索系统。传统的RAG系统将网页的HTML内容转换为纯文本后输入LLM,这会导致结构和语义信息的丢失。
HTML转换为纯文本时的信息丢失
为此,提出了HtmlRAG,它使用HTML而不是纯文本作为RAG系统中外部知识的格式。为了应对HTML带来的长上下文,提出了无损HTML清理和基于两步块树的HTML修剪(Two-Step Block-Tree-Based)。
HtmlRAG总体概述
-
无损HTML清理:这个清理过程仅移除完全不相关的内容,并压缩冗余结构,保留原始HTML中的所有语义信息。无损HTML清理压缩后的HTML适用于具有长上下文LLMs的RAG系统,并且不愿意在生成之前丢失任何信息。
-
基于两步块树的HTML修剪:基于块树的HTML修剪包括两个步骤,这两个步骤都在块树结构上进行。第一步修剪使用嵌入模型为块计算分数,而第二步使用路径生成模型。第一步处理无损HTML清理的结果,而第二步处理第一步修剪的结果。
块分数计算。块树通过分词器转换为令牌树,相应的HTML标签和令牌用相同颜色标记。令牌生成概率在右上角显示,虚线框中的令牌不需要推理。在块树的右上角,显示了块概率,概率可以从相应的令牌概率中推导出来
生成模型Prompt
在六个不同的问答数据集上进行了实验,包括模糊问答、自然问答、多跳问答和长形式问答,HtmlRAG在所有数据集上的表现均优于或等于现有的基于纯文本的后检索处理方法:BM25、BGE、E5-Mistral、LongLLMLingua、JinaAI Reader