链载Ai

标题: 『深度长文』Anthropic推出全新“上下文检索”:大幅增加RAG检索准确性! [打印本页]

作者: 链载Ai    时间: 昨天 11:29
标题: 『深度长文』Anthropic推出全新“上下文检索”:大幅增加RAG检索准确性!

在很多特定使用场景中,AI模型如果想真正发挥作用,通常需要具备相应的背景知识。举个例子,提供客户支持的聊天机器人需要了解它所服务的具体业务,而法律分析类的AI机器人则必须熟悉大量的历史案件。

为了提升AI模型的背景知识,开发者们通常采用一种叫做检索增强生成RAG)的方法。简单来说,RAG会从知识库中检索相关信息,并将其附加到用户的输入提示中,从而大幅增强模型的回答能力。然而,传统的RAG方案在编码信息时,常常会丢失上下文,这导致系统无法从知识库中检索到最相关的信息。

Anthropic(推出Claude的公司)提出了一种可以显著改善RAG检索质量的方法,称为“上下文检索(Contextual Retrieval)”。这一方法结合了两个子技术:上下文嵌入(Contextual Embeddings)上下文BM25(Contextual BM25)。通过这些技术,系统的检索失败率可以减少49%,而如果再结合重新排序(reranking),失败率可以进一步降低至67%。这些改进大大提升了检索的准确性,直接促进了后续任务的整体表现。

关于简单地使用更长提示词的一些建议

有时候,最简单的解决方案往往是最好的。如果你的知识库规模较小(少于20万个tokens,约相当于500页的内容),其实你可以直接将整个知识库包含在提示词中,无需使用RAG或类似的方法。这样做反而更加直接、有效。Anthropic这里以20万tokens为例是因为当前Claude模型的上下文窗口均为20万个tokens。

几周前,Anthropic推出了提示缓存prompt caching)功能,专门为Claude模型优化了这种方法,使其速度更快、成本更低。开发者现在可以在API调用之间缓存经常使用的提示词,延迟减少超过2倍,成本节约高达90%。

但随着知识库规模的增长,简单地使用长提示词就不再适用了,这时你就需要一个更具扩展性的方案,这就到了上下文检索Contextual Retrieval)的用武之地了。

RAG简介:扩展到更大规模的知识库

当知识库的规模过大,无法完全放入模型的上下文窗口时,检索增强生成RAG)通常是最合适的解决方案。RAG通过对知识库进行预处理,按照以下步骤来工作:

  1. 将知识库(即文档集合)分解成较小的文本块,每个块通常不超过几百个token;
  2. 使用嵌入模型将这些文本块转换为向量嵌入,从而编码这些文本块的语义;
  3. 将这些嵌入存储在支持语义相似性搜索的向量数据库中

在实际使用中,当用户输入查询时,系统会通过向量数据库找到与查询语义最相似的文本块。随后,系统会将这些最相关的块添加到生成模型的提示中,来生成最终的回答。

虽然嵌入模型在捕捉语义关系上表现出色,但有时会错过一些关键的精确匹配。幸运的是,针对这种情况,有一个传统技术可以帮助我们:BM25BM25Best Matching 25)是一种排名函数,依靠词汇匹配来找到精确的词或短语匹配。它对于那些包含唯一标识符或技术术语的查询特别有效。

BM25的原理是基于TF-IDF词频-逆文档频率)这一概念的。TF-IDF衡量某个词在文档集合中的重要性,而BM25在此基础上进一步优化,考虑了文档的长度,并对词频进行了饱和处理,防止常见词汇主导结果。

举个例子,假设用户在技术支持数据库中查询“错误代码TS-999”,嵌入模型可能会找到一些关于错误代码的内容,但可能会错过“TS-999”这个精确匹配。BM25则会查找该具体的字符串,确保找到最相关的文档。

为了提升检索的准确性,RAG系统通常结合嵌入模型和BM25技术,步骤如下:

  1. 将知识库分解成较小的文本块,每个块不超过几百个token;
  2. 为这些块创建TF-IDF编码语义嵌入
  3. 使用BM25根据精确匹配查找最相关的块;
  4. 使用嵌入模型根据语义相似性查找最相关的块;
  5. 通过排名融合技术将第3步和第4步的结果结合并去重;
  6. 将最相关的前K个块添加到提示中,以生成最终响应。

通过同时利用BM25嵌入模型,传统的RAG系统能够提供更全面、准确的检索结果,在精确术语匹配和广泛语义理解之间取得平衡

以上这张图展示了标准的RAG(检索增强生成)系统,该系统结合了嵌入模型BM25Best Match 25)来进行信息检索。具体流程如下:

  1. 预处理阶段:将知识库(Corpus)拆分为小的文本块(chunks),并通过两种途径进行处理:






欢迎光临 链载Ai (https://www.lianzai.com/) Powered by Discuz! X3.5