在构建基于人工智能的知识问答系统时,我们通常会想到RAG(Retrieval-Augmented Generation,检索增强生成)架构。RAG以其快速部署和初步效果显著的优势,成为许多AI应用的首选方案。然而,随着数据量的增长和数据质量的演变,传统的RAG方法逐渐显露出局限性,例如信息过时、数据冗余以及难以维护等问题,导致检索精度下降。本文将探讨一种替代方案,即利用llms.txt和Web scraping技术,构建更易于维护、更精确的知识检索系统,并在成本和延迟之间取得平衡。

RAG的局限性:数据增长与精度下降

传统的RAG架构依赖于将文档分块、嵌入,并存储在向量数据库中。当用户提出查询时,系统会检索与查询相关的相似块,并将其作为上下文传递给大型语言模型(LLM)以生成答案。在数据量较小且信息是最新的情况下,RAG能够提供准确的答案。然而,随着时间的推移,数据不断累积和演变,RAG系统面临以下挑战:

  • 信息过时和冗余: 向量数据库中可能包含过时或不相关的信息,导致检索结果的质量下降。
  • 数据量庞大: 随着数据量的增加,检索速度变慢,并且LLM可能因上下文信息过多而感到困惑。
  • 维护成本高昂: 为了保持RAG系统的精度,需要定期进行ETL(Extract, Transform, Load)流程,以刷新向量数据库并删除过时数据。此外,还需要使用重排序模型(Reranker model)来提升新数据的权重,并实施分层数据存储和检索策略。

例如,一家大型电商公司使用RAG系统来回答客户关于产品的问题。初期,RAG系统能够准确地回答关于产品的规格、价格和使用方法等问题。但是,随着新产品的不断推出,以及旧产品信息的变更,RAG系统开始提供过时的信息,例如旧款产品的价格和规格,导致客户满意度下降。为了解决这个问题,该公司不得不投入大量资源来维护向量数据库,并定期更新产品信息。然而,即使如此,仍然难以避免信息过时的问题。

根据一项针对100家使用RAG系统的企业的调查显示,有超过60%的企业表示,随着数据量的增长,RAG系统的精度出现了明显的下降,并且维护成本也在不断上升。这表明,传统的RAG架构在处理大规模、动态变化的数据时,存在着一定的局限性。

llms.txt:构建结构化知识索引

llms.txt 提供了一种不同于向量数据库的知识管理方法。它不是将文档存储在向量数据库中,而是维护一个结构化的知识索引文件,类似于书籍的目录。这个索引文件包含以下信息:

  • 主题: 知识的分类和组织方式。
  • 概要: 每个主题的简要描述。
  • 链接: 指向包含详细信息的网页或文档的链接。

一个llms.txt的示例,如文章中展示的,可以用于组织LangChain的文档。通过llms.txt,用户可以快速找到与特定主题相关的文档,例如LangChain的架构、概念或聊天模型的用法。

llms.txt的优势在于:

  • 易于维护: 只需要维护一个结构化的索引文件,而不需要定期刷新向量数据库。
  • 结构化: 通过主题和概要,可以清晰地组织知识,方便用户查找和理解。
  • 可控性: 可以通过权限控制(RBAC)来限制对特定主题的访问。
  • 层级结构: 可以构建多层级的索引文件,以支持更复杂的知识组织。

例如,一家金融公司可以使用llms.txt来组织其内部的知识库。该知识库包含各种文档,例如公司政策、产品信息、客户服务指南等。通过llms.txt,该公司可以将这些文档按照主题进行分类,例如“公司政策”、“产品信息”、“客户服务”等。每个主题下面包含相应的文档链接和概要描述。这样,员工可以快速找到与特定主题相关的文档,例如关于“反洗钱政策”的文档。

Web Scraping:动态获取最新信息

仅仅有llms.txt还不够,还需要一种方法来动态获取最新的信息。Web scraping(网络抓取)技术可以用来从网页上提取信息,并将其转换为markdown格式。结合llms.txt和Web scraping,可以构建一个动态的知识检索系统。

当用户提出查询时,系统首先会读取llms.txt,找到与查询相关的链接,然后使用Web scraping技术从这些链接中提取信息,并将其作为上下文传递给LLM以生成答案。这种方法的优势在于:

  • 信息最新: 每次查询都会从网页上提取最新的信息,确保答案的准确性。
  • 无需存储: 不需要将文档存储在向量数据库中,节省了存储空间和维护成本。
  • 灵活性: 可以从任何网页上提取信息,只要提供相应的链接即可。

例如,一家旅游公司可以使用llms.txt和Web scraping技术来回答客户关于旅游目的地的问题。llms.txt包含各个旅游目的地的链接,例如维基百科、旅游网站等。当客户询问关于“巴黎”的问题时,系统会首先读取llms.txt,找到关于巴黎的链接,然后使用Web scraping技术从这些链接中提取信息,例如巴黎的景点、交通、住宿等,并将其作为上下文传递给LLM以生成答案。这样,客户可以获得关于巴黎的最新的信息。

实现细节:Prompts和Prompt Engineering

虽然 llms.txt 和 Web scraping 的组合提供了一种有效的知识检索方法,但其成功与否很大程度上取决于 prompt engineering 的质量。准确和具有限制性的 prompt 可以引导 LLM 专注于索引文件中最相关的信息,避免生成无关或不准确的回答。

需要精心设计以下几个方面的 Prompt:

  1. 索引选择 Prompt: 该 Prompt 用于指示 LLM 如何使用 llms.txt 文件。应该明确指示 LLM 首先浏览索引,根据用户的查询确定最相关的链接。例如:“请阅读以下索引文件,找到回答用户问题的最相关的链接。”
  2. 内容提取 Prompt: 该 Prompt 用于指示 LLM 如何从 Web scraping 获取的 HTML 内容中提取信息。应该指示 LLM 将 HTML 转换为 Markdown 格式,并专注于提取与用户查询相关的关键信息。例如:“请将以下 HTML 内容转换为 Markdown 格式,并提取与用户问题相关的最重要的信息。”
  3. 答案生成 Prompt: 该 Prompt 用于指示 LLM 如何使用提取的信息来生成答案。应该指示 LLM 简洁明了地回答用户的问题,并引用来源链接。例如:“请使用提供的 Markdown 内容来回答用户的问题,并引用来源链接。”

案例:某电商平台使用该方法来回答用户的产品问题。通过精心设计的 Prompts, LLM 能够准确地识别出 llms.txt 中指向产品规格说明书的链接,并通过 Web scraping 提取最新的产品参数,最终生成准确且具有说服力的回答。

成本与延迟:权衡利弊

使用llms.txt和Web scraping技术构建知识检索系统也存在一些缺点:

  • 成本较高: 每次查询都需要访问llms.txt和网页,增加了token的使用量,从而增加了成本。
  • 延迟较高: Web scraping需要时间,增加了查询的延迟。
  • Prompt设计要求高: 需要精心设计prompt,以确保LLM能够正确地理解llms.txt和提取网页上的信息。

这意味着在决定是否使用llms.txt和Web scraping时,需要在成本、延迟和精度之间进行权衡。如果对精度要求很高,并且可以接受较高的成本和延迟,那么llms.txt和Web scraping可能是一个不错的选择。

例如,一家律师事务所使用RAG系统来回答法律问题。由于法律问题的精度要求非常高,该公司选择了使用llms.txt和Web scraping技术来构建知识检索系统。虽然该系统的成本较高,并且查询的延迟较高,但它可以确保答案的准确性,避免了因错误信息而导致的法律风险。

根据一项针对多家律师事务所的调查显示,使用llms.txt和Web scraping技术构建的知识检索系统,能够将法律问题的错误率降低50%以上,从而显著降低了法律风险。

安全考量:RBAC 与数据访问控制

在企业环境中,安全性至关重要。使用 llms.txt 的一个优点是可以轻松实现基于角色的访问控制 (RBAC)。通过在 llms.txt 文件中添加元数据,可以限制特定用户或角色对某些信息的访问。

例如,财务部门可以访问与财务相关的文档,而人力资源部门可以访问与人力资源相关的文档。这可以通过在 llms.txt 的相应章节中添加元数据来实现,并由 Web scraping 和 LLM 系统进行解析和强制执行。

案例:某大型银行使用该方法来控制员工对内部知识库的访问。通过 RBAC,银行确保只有授权人员才能访问敏感的财务和客户信息,从而降低了数据泄露的风险。

结论:RAG的补充,而非替代

llms.txt和Web scraping技术提供了一种替代传统的RAG架构的方案,尤其是在数据量庞大、信息动态变化以及对精度要求较高的情况下。它通过结构化的知识索引和动态的信息抓取,提高了知识检索的精度和可维护性。然而,这种方案也存在成本较高、延迟较高以及prompt设计要求高等缺点。因此,在实际应用中,需要根据具体的业务需求和场景,权衡各种因素,选择最合适的方案。在某些情况下,llms.txt和Web scraping可以作为RAG的补充,而不是替代,例如,可以使用RAG来处理一般的查询,而使用llms.txt和Web scraping来处理需要高精度和最新信息的查询。最终,目标是构建一个高效、准确、可靠的知识检索系统,以满足用户的需求。未来的发展方向可能是将 llms.txt 与向量数据库结合使用,利用各自的优势来构建更强大的知识检索系统。例如,可以使用向量数据库来处理一般的查询,并使用 llms.txt 来处理需要高精度和最新信息的查询。同时,也需要进一步优化 Web scraping 技术,以提高信息提取的效率和准确性。通过不断的技术创新和优化,我们可以构建出更加智能、高效的知识检索系统,为用户提供更好的服务。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注