LLM · 检索和RAG

检索

检索:模型在回答前,先去外部资料或记忆库里找相关信息,再把找到的内容交给 LLM 生成答案。

检索最常见的系统叫 RAG,也就是 Retrieval-Augmented Generation,检索增强生成。

检索流程

最常见流程:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
用户问题
把问题转成向量 embedding
去向量数据库里找相似内容
取出最相关的几个文本片段
放进 LLM 的上下文
LLM 生成答案
  • 文档切块 Chunking

    大文档太长,不能整篇直接丢进去,所以会切成小段。每个 chunk 都可以被检索。

  • Embedding 向量

    把文字变成一串数字。

  • 向量数据库 Vector Database

    专门存这些 embedding 的地方。

    普通数据库按关键词找,向量数据库按语义找

    常见:FAISS,Chroma,Milvus,Pinecone,Weaviate,Qdrant

  • Top-k 检索

    系统不会把所有资料都拿出来,只会取最相关的几个。

    比如 top_k = 5 表示:找出最相关的 5 个片段。

  • Rerank 重排序

    第一次检索可能不够准,所以有时会再用一个模型重新排序,把真正最相关的内容排前面。

RAG

RAG = 检索 Retrieval + 生成 Generation

RAG流程

  1. 阶段一:构建知识库
1
2
3
4
5
6
7
8
9
原始文档
文本提取
切块 chunking
生成 embedding 向量
存入向量数据库
  1. 阶段二:用户提问时检索并回答
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
用户问题
把问题也变成 embedding
在向量数据库中找相似 chunk
取出最相关的资料
放进 prompt
LLM 根据资料生成答案

RAG组成

部分 作用
文档库 存放原始资料
Chunking 把长文档切成小块
Embedding 模型 把文字变成向量
向量数据库 存向量并支持相似度搜索
Retriever 检索相关内容
Reranker 对检索结果重新排序
Prompt 模板 告诉 LLM 如何使用资料
LLM 根据资料生成答案

RAG分类

  • Hybrid RAG

    结合关键词搜索和向量搜索。

  • Rerank RAG

    先粗略检索 20 条,再用 reranker 精排,选最好的 5 条给 LLM。

  • Multi-hop RAG

    需要多步检索。

  • Agentic RAG

    让 agent 自己决定:要不要检索,检索几次,用什么关键词,是否需要查另一个数据库

  • GraphRAG

    把资料组织成知识图谱,适合复杂关系推理。

RAG评估

  • 检索质量

    • 有没有找到真正相关的资料?
    • 相关资料排得够靠前吗?
    • 有没有漏掉关键资料?
  • 生成之类

    • 答案是否忠实于资料?
    • 有没有编造?
    • 是否回答了问题?
    • 是否引用来源?
  • 常见指标

    • Context Precision
    • Context Recall
    • Faithfulness
    • Answer Relevance
    • Citation Accuracy
Ting WeChat PayWeChat Pay
0%