Post

Rag Essentials You Need to Know

Rag Essentials You Need to Know

1. RAG 基础知识概览

根据索引结构的不同,当前企业落地的 RAG(Retrieval-Augmented Generation)方案大致可分为以下两类:

1.1 基于向量索引的语义检索(Semantic Chunking + Vector Retrieval)

以语义切块和向量检索为核心的 RAG 架构是目前最主流的形式,主要代表有:

  • Naive RAG:将原始语料切分为语义片段,生成向量嵌入后存入向量数据库,支持通过语义相似度进行检索和生成。该方法结构简单,易于实现,适合大多数通用知识问答场景。
  • Advanced RAG:在 Naive RAG 的基础上引入更丰富的语义增强机制,例如多粒度切块、复杂的上下文窗口策略等,以提升上下文理解能力和生成准确性。

image-20250820191223887

1.2 基于图结构的知识建模(Entity/Relation Graph + Graph-based Retrieval)

另一类先进架构是通过实体抽取、关系构图等方式构建知识图谱,结合图检索机制进行增强生成:

  • GraphRAG:融合实体/关系图谱与图检索,支持基于知识图谱的上下文推理和更强的全局语义关联能力,尤其适用于需要高精度关系建模的企业级应用场景。

image-20250820191235237

2. RAG 技术路线与常用工具

2.1 Naive RAG 架构

基于语料切块、向量嵌入与检索构建知识库的标准流程:

  • 常用工具:LangChainLlamaIndex
  • 流程:文档预处理 → 分块 → Embedding → 存入向量数据库 → 检索与生成

2.2 GraphRAG 架构

基于知识图谱的 RAG 路线,主要强调实体识别、关系抽取与图检索:

  • 常用工具:Microsoft GraphRAGLightRAG
  • 特点:适合领域知识复杂、实体关系密集的场景,如金融、医疗等

2.3 一站式 RAG 平台工具

无需从零构建,可直接上手的产品化工具:

  • Dify:提供可视化工作流和多模型支持
  • RagFlow:支持从数据接入到评估的一体化流水线构建

3. 核心知识点详解

3.1 索引优化策略

  • 文档解析与格式支持:支持 PDF、HTML、Markdown、PPT、Excel 等多格式解析能力是构建通用知识库的前提。
  • 切块策略设计
    • 按语义 vs 按结构
    • 固定长度 vs 滑动窗口
  • Embedding 模型选型
    • 选择适合文本类型(代码、通用语言、专业术语)的模型
    • OpenAI, Cohere, BGE(中文)等主流模型均应根据实际效果评估
  • 向量数据库选型
    • 考量维度支持、检索速度、混合检索能力,如 FAISS、Milvus、Weaviate、Qdrant 等

3.2 检索优化策略

  • ReRank 引入时机:当初始检索结果包含语义偏差或排序不符合语义预期时,可使用 CrossEncoder 进行重排序。
  • 混合检索策略(Hybrid Search)
    • 结合语义检索(向量)与关键词检索(BM25)提升覆盖率
  • 延迟优化
    • 索引预热、并行检索、向量量化压缩等手段
  • 效果评估
    • 使用 Precision@k、Recall@k、MMR、BLEU/ROUGE 等指标
    • 可视化工具如 LlamaIndex Dashboard、Weaviate Studio 辅助分析

3.3 知识图谱融合策略

  • 何时需要知识图谱
    • 当需要显式建模实体之间的复杂关系或增强上下文推理能力时
  • 结合方式
    • 图谱实体作为索引项参与检索
    • 向量检索作为召回,图谱用于重排序与生成增强
  • 海量图谱管理
    • 建议使用图数据库(如 Neo4j)管理实体关系
    • 引入图压缩与聚类方法提升可扩展性

3.4 增量更新与评估指标体系

  • 版本控制机制
    • 支持多版本索引与模型对比
  • 增量更新策略
    • 基于时间戳/变更记录进行局部更新,避免全量重建
  • 评估指标工具
    • RAGAS:标准评估指标集合,适用于 pipeline 各环节性能评估
    • TruLens:针对生成模型的偏好与一致性分析
    • 自定义指标:例如领域覆盖率、召回-生成一致性评分等

References

1.Naive rag https://arxiv.org/abs/2312.10997

2.graph rag https://arxiv.org/abs/2404.16130

我需要你帮我写一段代码. 我的情况如下:

我在’D:\GitBlog_posts'文件夹里有很多md文件, 命名格式为’2025-03-20-Rag-Essentials-You-Need-to-Know.md’, ‘2025-03-21-Fundamentals-of-Agent-Theory.md’

我需要这段代码每次执行的时候, 在最新的三篇里检索并改正两个内容: 一个是存放的图片, 一个是时间

This post is licensed under CC BY 4.0 by the author.

© cryanskl. Some rights reserved.

本页浏览 2476 次 | 总访问量 13481

Using the Chirpy theme for Jekyll.