返回顶部
热门问答 更多热门问答
技术文章 更多技术文章

Anthropic RAG: 上下文检索技术

[复制链接]
链载Ai 显示全部楼层 发表于 昨天 11:34 |阅读模式 打印 上一主题 下一主题

RAG 系统通常用于增强 AI 模型的特定领域知识。传统 RAG 方法在编码信息时会丢失上下文,导致检索失败率较高。

"上下文检索" (Contextual Retrieval) 用于改进 RAG 系统中的检索步骤,通过结合语义嵌入和精确匹配技术,显著提高了 RAG 系统的检索准确性,从而提升了 AI 模型在特定领域任务中的表现。

1

传统 RAG 系统工作流程

  1. 将知识库分割成小块文本
  2. 使用嵌入模型将文本块转换为向量
  3. 将向量存储在向量数据库中
  4. 运行时,根据用户查询检索相关文本块
  5. 将检索到的文本块添加到提示中

BM25

  1. BM25作为补充检索技术。BM25 基于词频-逆文档频率 (TF-IDF) 概念,能够进行精确的词语匹配,特别适用于包含唯一标识符或技术术语的查询。
  2. BM25通过考虑文档长度并将饱和函数应用于术语频率来改进这一点,这有助于防止常用词在结果中占主导地位。

结合嵌入和 BM25 的改进 RAG 系统:

  1. 分割知识库为小块文本
  2. 为文本块创建 TF-IDF 编码和语义嵌入
  3. 使用 BM25 查找基于精确匹配的顶级块
  4. 使用嵌入查找基于语义相似性的顶级块
  5. 合并并去重(c)和(d)的结果
  6. 将顶级 K 个块添加到提示中

2

上下文检索

上下文检索通过在嵌入之前为每个块预置特定于块的解释上下文(“上下文嵌入”)并创建 BM25 索引(“上下文 BM25”)来解决这个问题。

文章使用 Claude 3 Haiku 来获取特定于块的上下文,prompt如下:

<document>
{{WHOLE_DOCUMENT}}
</document>
Hereisthechunkwewanttosituatewithinthewholedocument
<chunk>
{{CHUNK_CONTENT}}
</chunk>
Pleasegiveashortsuccinctcontexttosituatethischunkwithintheoveralldocumentforthepurposesofimprovingsearchretrievalofthechunk.Answeronlywiththesuccinctcontextandnothingelse.

实验结果

  • 上下文嵌入将前 20 个块的检索失败率降低了 35%
  • 结合上下文嵌入和上下文 BM25 将前 20 个块的检索失败率降低了 49%

通过重排可以进一步提高性能。

Reranked 上下文嵌入和上下文 BM25 将前 20 个块的检索失败率降低了 67% (5.7% → 1.9%)。


回复

使用道具 举报

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

本版积分规则

链载AI是专业的生成式人工智能教程平台。提供Stable Diffusion、Midjourney AI绘画教程,Suno AI音乐生成指南,以及Runway、Pika等AI视频制作与动画生成实战案例。从提示词编写到参数调整,手把手助您从入门到精通。
  • 官方手机版

  • 微信公众号

  • 商务合作

  • Powered by Discuz! X3.5 | Copyright © 2025-2025. | 链载Ai
  • 桂ICP备2024021734号 | 营业执照 | |广西笔趣文化传媒有限公司|| QQ