Embeddings 与 RAG
这一块是很多 AI 应用从“聊天”走向“可用”的关键。
Embedding 是什么
Embedding 可以理解成一种把文本压缩成向量表示的方式。语义相近的内容,在向量空间里通常距离也更近。
它适合做的事情包括:
- 语义搜索
- 相似内容召回
- 聚类
- 去重
- 推荐
RAG 的核心流程
一个最基础的 RAG 系统通常包含这几步:
- 准备知识源,例如文档、FAQ、代码片段。
- 切分文本块。
- 为文本块生成 embedding 并建立索引。
- 用户提问后,把问题也转成 embedding。
- 从索引里检索最相关的文本块。
- 把检索结果和原问题一起交给生成模型。
为什么 RAG 常常比“全塞进上下文”更稳
- 知识源可以持续更新
- 只取相关片段,噪音更少
- 更容易做引用和溯源
- 上下文成本可控
RAG 最容易做坏的地方
切分策略
切得太碎,语义上下文断裂。切得太大,召回不精准,成本也上升。
检索质量
如果召回结果本身就错了,后面的生成通常只是在“认真地胡说八道”。
没有评估
很多 RAG 项目只看“能不能跑”,不看:
- 召回率
- 命中相关性
- 回答是否真正引用了检索内容
- 哪些问题类型失败最多
一个判断标准
如果你的知识:
- 来自外部文档
- 会频繁更新
- 需要引用依据
- 内容总量大于一次上下文能稳定处理的范围
那就很可能该考虑 RAG,而不只是靠长上下文。
你后续可以继续补
- chunking 策略
- reranking
- hybrid search
- query rewrite
- citation 与 grounded answer