加载中

检索增强生成(Retrieval Augmented Generation,RAG)是一种技术,可帮助您处理大型文档,方法是将其拆分成较小的片段,并仅向Claude提供与每个问题最相关的片段。RAG不会用整份800页的财务报告来让模型不堪重负,而是让您只提取与回答特定查询相关的部分。

大型文档带来的问题

当您拥有一份庞大的文档,并想就此向Claude提出具体问题时,您会面临一个根本性的挑战:如何在不触及限制或降低性能的情况下,将正确的信息提供给Claude?

假设您针对一份冗长的财务文档提出"这家公司有哪些风险因素?"这样的问题。文档中包含答案,但Claude需要访问相关内容才能帮助您。

方案一:将所有内容纳入提示

最直接的方法是从文档中提取所有文本,并将其塞入单个提示中:

这种方法存在严重的局限性:

  • 硬性的令牌限制意味着非常长的文档根本无法容纳
  • 对于极长的提示,Claude的效果会变差
  • 更大的提示会花费更多的费用,处理时间也更长
  • 当需要筛选的信息过多时,性能会下降

方案二:将文档拆分成片段

RAG采用了一种更智能的方法,即先将文档预处理成可管理的片段,然后仅针对每个问题检索相关的片段。

其工作原理如下:

  1. 将文档拆分成较小的片段(战略展望、风险因素、资产负债表等)
  2. 当用户提出问题时,分析他们想要查找的内容
  3. 找出与其问题最相关的片段
  4. 仅将这些相关片段纳入发送给Claude的提示中

对于关于公司风险的问题,系统会识别并检索"风险因素"片段,从而为Claude提供聚焦、相关的上下文,而不是整份文档。

RAG的优势

  • Claude可以只专注于最相关的内容
  • 可扩展到非常大的文档以及多份文档
  • 可跨文档集合使用,而不仅限于单个文件
  • 更小的提示意味着更快的处理速度和更低的成本

RAG的挑战

RAG引入了您需要管理的复杂性:

  • 需要一个预处理步骤来对文档进行分块
  • 需要一种搜索机制来找到相关片段
  • 检索到的片段可能不包含所有必要的上下文
  • 有许多不同的文本分块方式——哪种方法效果最好?

您可以按等份、按标题和章节、按语义含义或其他策略对文档进行分块。每种方法都有需要您针对特定用例进行评估的权衡取舍。

何时使用RAG

当您处理大型文档或文档集合,且用户提出的具体问题只需要部分内容即可回答时,RAG的优势就会显现出来。当您需要扩展到超出单个提示容量的规模、希望获得更快的响应速度,或需要在大量查询中管理成本时,预处理的复杂性就是值得的。

关键在于分析实现分块、搜索和检索所带来的技术开销,对于您的特定应用是否合理。有时,简单的"将所有内容塞入提示"的方法就足够了——而在其他情况下,RAG则成为使您的系统实用且高性能的关键所在。