2026-04-27

Question

什么是 RAG(Retrieval-Augmented Generation)?它解决了 LLM 的什么问题?请说说你的理解,以及在实际应用中它有哪些常见的挑战。

Your Answer

RAG 就是在调用大模型之前,先使用外部工具进行检索,获取一些信息,然后将获取到的信息和提示词一起传给大模型,大模型可以基于获取到的信息,输出更加可靠的内容。它很好地解决了大模型没有实时信息的问题,以及模型本身训练时数据受限的问题。在实际的应用过程当中,还是会存在外部数据质量低,或者外部数据过多上下文爆炸的情况。

Review

优点:

  • RAG 基本流程说清楚了:先检索、再组装 Prompt、再生成
  • 点出了两个真实动机:实时信息缺失 + 训练数据局限
  • 提到了实际挑战,体现工程意识

不足:

  • 没有说清楚"检索"的本质是向量相似度检索,而非普通关键词搜索
  • 漏掉了 RAG 最重要的动机之一:减少幻觉(Hallucination)
  • 挑战部分可以更具体,如 Chunk 策略对召回质量的影响

Improved Answer

RAG 是一种在调用 LLM 之前,先从外部知识库检索相关内容、再将其注入 Prompt 的技术范式。它主要解决三个问题:一是 LLM 知识截止日期导致的时效性不足;二是私有/垂直领域数据 LLM 没见过的知识盲区;三是模型在没有依据时容易产生幻觉,RAG 让模型"有据可答"。

检索环节通常基于向量相似度:把文档切片后 Embedding 存入向量数据库,Query 来了同样 Embedding,找最相似的若干片段拼入上下文。

实际落地挑战主要有:检索召回质量差(Chunk 切得太碎或太大、语义不匹配);检索到的内容过多导致 Context 膨胀,成本高且注意力分散;以及源数据本身质量低,噪声直接污染生成结果。