近似最近邻 (ANN) 搜索设置直接影响 RAG 系统中文档检索的速度和准确性,进而影响端到端延迟和答案质量。HNSW、FAISS 或 Annoy 等 ANN 方法使用诸如搜索探针数、图连接数或树深度等参数来平衡搜索精度和速度。例如,增加 HNSW 中的探针数可以通过探索图中更多路径来提高召回率,但会减慢检索速度。相反,减少探针数会加快检索速度,但可能错过相关文档。这些权衡决定了系统为生成器检索上下文的速度,以及该上下文与查询的匹配程度。
ANN 参数的选择直接影响 RAG 的端到端延迟。高准确性的 ANN 配置(例如,使用较大的 nprobe
值的 FAISS)需要更多的计算步骤,从而增加检索时间。如果生成器等待检索器,这可能会成为瓶颈,特别是对于聊天机器人等实时应用。例如,使用 nprobe=256
的 FAISS 系统可能需要 50 毫秒来检索文档,而 nprobe=32
则将其缩短至 10 毫秒。然而,更快的检索速度可能导致召回率降低,这意味着更少的相关文档被传递给生成器。这使得生成器不得不使用不完整或嘈杂的上下文,可能导致答案准确性降低。开发者必须根据用例需求决定是优先考虑延迟(例如,对于高吞吐量 API)还是准确性(例如,对于研究工具)。
RAG 中的答案质量在很大程度上取决于检索文档的相关性。如果 ANN 设置优先考虑速度而非准确性,生成器可能会接收到不相关的上下文,导致不正确或无意义的答案。例如,如果 ANN 在 HNSW 中跳过更深的图层,关于“细菌感染的治疗方法”的查询可能会检索到关于病毒的文章。相反,精确检索可确保生成器获得正确的参考,从而提高答案可靠性。然而,过于严格的 ANN 设置(例如,穷举搜索)可能会引入不切实际的延迟。平衡的方法包括测试召回率@k 和查询吞吐量等指标:例如,调整 HNSW 的 efSearch
参数,以在 20 毫秒预算内实现 90% 的召回率。开发者应使用实际查询验证配置,以找到针对其特定数据和工作负载的速度与准确性的最佳平衡。