传统 RAG 的缺点及 RAG 优化方向

传统RAG的架构

传统RAG的整体架构如下图所示:

 

核心链路分为三个阶段:

  • 索引(向量嵌入):通过Embedding模型服务实现文档的向量编码,写入向量数据库。
  • 检索(相似查询):通过Embedding模型服务实现查询的向量编码,使用相似性查询(ANN)实现topK结果搜索。
  • 生成(文档上下文):Retriver检索的结果文档作为上下文和问题一起提交给大模型处理

传统RAG的缺点

在《Seven Failure Points When Engineering a Retrieval Augmented Generation System》这篇论文中总结了在构建检索增强生成(RAG)系统时开发者常遇到的七个失败点,并针对每个问题提出了改进建议。

 

### RAG架构的问题与局限性 #### 数据实时性和一致性挑战 在RAG(Retrieval-Augmented Generation)框架下,检索模块依赖于预先构建的知识库或语料库来获取信息。当这些数据源更新频率较低或者存在延迟时,可能导致生成的内容基于过期的信息[^1]。此外,在多用户并发访问场景中保持索引同步也是一大难题。 #### 复杂度增加维护成本高 引入外部资源虽然增强了模型能力但也使得整个系统的复杂程度显著上升。这仅增加了开发难度还带来了更高的运维开销。特别是对于大规模应用而言,如何高效管理同版本之间的兼容性以及确保各个组件稳定协作成为亟待解决的问题之一[^2]。 #### 安全隐私风险加剧 由于涉及到从第三方平台抓取公开网页作为补充材料的一部分输入给生成器使用, 这种做法可能会无意间泄露敏感个人信息甚至是商业机密。因此,在设计之初就必须充分考虑并采取有效措施防止此类事件发生[^3]。 ```python # Python伪代码展示可能的安全隐患处理方式 def fetch_external_data(url): try: response = requests.get(url) # 对返回的数据进行清洗和过滤以去除潜在危险内容 cleaned_content = sanitize(response.text) return cleaned_content except Exception as e: logging.error(f"Failed to retrieve data from {url}: {e}") raise ``` #### 泛化性能受限 尽管通过融合检索机制可以在特定领域内取得错的效果,但对于那些未曾见过的新颖问题或是跨多个学科交叉的任务来说,其表现往往如预期那样理想。这是因为预训练阶段所积累的经验难以完全覆盖所有可能出现的情况[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

塞大花

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值