rag 向量检索的基础

内容纲要

RAG(Retrieval-Augmented Generation,检索增强生成)是当前构建强大问答系统和知识对齐模型的核心范式。它结合了「信息检索」和「生成式模型」的优点,极大提升了 LLM(大语言模型)在处理开放域问答、多轮对话、知识问答等任务的能力。


🧠 向量检索的基础知识(RAG 的第一块基石)

1. 什么是向量检索(Vector Retrieval)?

向量检索是一种通过“相似度”而不是“关键词”来找信息的方法。它的核心逻辑是:

把所有数据(文本、图片等)都转成向量,然后用户查询时也转成向量,在向量空间中寻找“最近”的内容返回。

比喻一下
就像你脑海中记得一个人长相,当看到一个相似的人你会觉得“这是不是他?”——这就是向量相似的感觉。


2. 为什么向量检索是 RAG 的基石?

RAG 的核心流程如下:

用户输入问题 → 编码为向量 → 去向量库检索相关文档 → 把文档+问题一起送给大模型 → 大模型生成答案

所以,向量检索的质量,直接决定了 RAG 的知识获取能力!


🔍 向量检索基础流程(4步走)

Step 1:文本向量化(Embedding)

  • 将文本(如一段说明、一篇文档)通过 Embedding 模型转换为向量,比如一个 768 维的数组。
  • 常见模型有:
    • OpenAI Ada 模型
    • Sentence-BERT
    • BGE、E5 等中文开源 Embedding 模型

Step 2:向量存储(向量数据库)

  • 把所有文档的向量存到向量数据库中,支持快速近似搜索。
  • 常见数据库:
    • Faiss(轻量、可本地部署)
    • Milvus(国产开源,支持亿级数据)
    • Weaviate、Qdrant、Pinecone(SaaS 友好)

Step 3:相似度搜索

  • 用户问题 → 嵌入向量 → 和数据库中所有向量比较(通常是余弦相似度
  • 找出前K个最相关的文档返回(Top-K)

Step 4:结果返回给大模型

  • 将这 Top-K 段文档 + 原始问题拼接成 Prompt,送入 LLM 生成答案。

🧮 小例子:向量检索过程

假设我们有以下三条文本:

  1. “苹果是一种水果。”
  2. “乔布斯创办了苹果公司。”
  3. “香蕉是黄色的。”

当你提问「苹果是谁创办的?」:

  • 你的问题嵌入成向量后,在向量空间中更接近第二条。
  • 所以,系统会返回第二条文本给大模型,它就能生成:“乔布斯创办了苹果公司。”

🚧 常见挑战

  • 召回不准:Embedding 模型不好,无法抓住语义。
  • 冗余文档:返回太多无关内容,增加干扰。
  • Chunk 粒度问题:分段粒度不对,影响检索效果。
  • 语境缺失:检索到的内容没法直接回答问题。

✅ 向量检索实战 tips

  • 用高质量的多语言或中文 Embedding 模型(如 bge-base-zhtext2vec
  • 文档预处理时,注意:
    • 分段要自然(句子完整)
    • 可用 sliding window 增强语境
  • 记得做Embedding 向量归一化(对余弦相似度有帮助)
  • Top-K 选太多或太少都会影响最终结果,推荐 K=3~5 起步

📦 结语

RAG 的强大,在于它用 LLM 做生成、用向量检索做记忆,就像给大模型加了“外脑”。

而这个“外脑”的质量,就建立在向量检索的质量之上

如果你掌握了向量检索,就等于掌握了 RAG 的一半功力!

Leave a Comment

您的电子邮箱地址不会被公开。 必填项已用*标注

close
arrow_upward