Skip to content

Embeddings 与 RAG

这一块是很多 AI 应用从“聊天”走向“可用”的关键。

Embedding 是什么

Embedding 可以理解成一种把文本压缩成向量表示的方式。语义相近的内容,在向量空间里通常距离也更近。

它适合做的事情包括:

  • 语义搜索
  • 相似内容召回
  • 聚类
  • 去重
  • 推荐

RAG 的核心流程

一个最基础的 RAG 系统通常包含这几步:

  1. 准备知识源,例如文档、FAQ、代码片段。
  2. 切分文本块。
  3. 为文本块生成 embedding 并建立索引。
  4. 用户提问后,把问题也转成 embedding。
  5. 从索引里检索最相关的文本块。
  6. 把检索结果和原问题一起交给生成模型。

为什么 RAG 常常比“全塞进上下文”更稳

  • 知识源可以持续更新
  • 只取相关片段,噪音更少
  • 更容易做引用和溯源
  • 上下文成本可控

RAG 最容易做坏的地方

切分策略

切得太碎,语义上下文断裂。切得太大,召回不精准,成本也上升。

检索质量

如果召回结果本身就错了,后面的生成通常只是在“认真地胡说八道”。

没有评估

很多 RAG 项目只看“能不能跑”,不看:

  • 召回率
  • 命中相关性
  • 回答是否真正引用了检索内容
  • 哪些问题类型失败最多

一个判断标准

如果你的知识:

  • 来自外部文档
  • 会频繁更新
  • 需要引用依据
  • 内容总量大于一次上下文能稳定处理的范围

那就很可能该考虑 RAG,而不只是靠长上下文。

你后续可以继续补

  • chunking 策略
  • reranking
  • hybrid search
  • query rewrite
  • citation 与 grounded answer

Built with VitePress and deployed via GitHub Actions.