title: “参考答案:RAG Systems”
参考答案:RAG Systems
对应题目:
这不是标准唯一答案,而是“合格答案长什么样”。
1.
RAG 可以理解成:
- 先去外部知识里找相关材料
- 再把找到的材料一起给模型
- 让模型基于这些材料回答
它和直接问大模型的区别是:
- 直接问更依赖模型参数里原本记住的知识
- RAG 更依赖当前检索到的上下文
- 所以 RAG 更适合接私有知识、最新知识、特定文档
2.
最小 RAG 主链路通常是:
- 准备文档
- 把文档切块
- 为每个 chunk 建 embedding / index
- 用户提问
- 用 query 去检索相关 chunk
- 把检索结果拼进 prompt
- 让模型基于这些上下文回答
3.
因为生成阶段依赖检索阶段给的材料。
如果检索错了、漏了、噪声太大:
- 模型就可能缺少关键事实
- 或被无关内容干扰
- 最后即使语言流畅,答案也可能不准
4.
chunk 太大:
- 一次塞入的信息太杂
- 检索粒度太粗
- 容易检到包含目标但噪声很多的内容
chunk 太小:
- 上下文被切碎
- 检索到的片段可能缺少完整语义
- 需要更多拼接才能回答
5.
retrieval 负责:
- 找相关材料
generation 负责:
- 基于材料组织成自然语言回答
6.
优先检查三层:
- 数据和 chunk 层
- retrieval 层
- prompt / answer synthesis 层
如果这三层都没问题,再去看模型选择和更复杂增强。
7.
当用户问题本身不够适合检索时,query rewriting 有帮助。
比如:
- 问题太模糊
- 关键词不完整
- 用户表达方式和文档表达方式不一致
8.
因为初始检索经常会带来噪声。
filtering / reranking 的价值是:
- 留下更相关内容
- 去掉明显无关的 chunk
- 提高最终上下文质量
9.
因为复杂问题不一定一次检索就能回答。
planner / executor 结构适合:
- 先拆问题
- 再按步骤查
- 中间根据结果调整下一步
这更像多步搜索,而不是一次性问答。
10.
source attribution 的意义包括:
- 方便人工核验
- 增强用户信任
- 帮助定位错误来源
- 让系统更适合知识工作流
11.
rag-from-scratch 最适合帮你学:
- 最小 RAG 主链路
- notebook 式实验
- 检索和生成是如何连起来的
12.
complex-RAG-guide 相比基础 RAG,多补了这些关键层:
- cleaning
- filtering
- query rewriting
- planner / re-planner
- evaluation
13.
正确学法不是全看,而是:
- 按 technique 分类
- 每次只挑少量技术点
- 问“它在优化哪一层”
- 最后做对照实验
14.
deep-searcher 更像系统:
- 支持更多 provider 组合
- 有更完整配置层
- 有数据加载、查询、CLI、服务化思路
而 notebook demo 更偏教学和原型验证。
15.
合格答案应该能画出:
- 文档
- chunk / index
- query
- retrieval
- context assembly
- generation
- answer
16.
一个合格实验应该包含:
- 固定问题集
- 只改
top-k - 比较回答准确性、相关性、噪声
- 最好记录 source 质量变化
17.
合理答案示例:
- 文档切块
- 检索
- 带来源的回答生成
理由:
- 这是最小可用系统
- 先把主链路做稳,比一开始上 planner 更重要
18.
合理删法示例:
- 先删 planner
- 先删复杂 evaluation
原因:
- v1 最重要的是跑通主链路
- 复杂模块应该在问题真实存在后再引入