大模型相关知识记录

RAG(Retrieval-Augmented Generation)笔记


一、基本知识

  1. 定义
    RAG(检索增强生成)是一种结合信息检索文本生成的技术,通过从外部知识库中检索相关上下文,辅助大模型生成更准确、可靠的答案,尤其适用于私有数据或动态更新的知识场景。

  2. 核心组件

    • 检索器(Retriever):从外部知识库中快速定位与问题相关的文档片段(如 FAISS、BM25、ElasticSearch)。
    • 生成器(Generator):基于大语言模型(LLM),结合检索到的上下文生成最终答案(如 ChatGPT、Llama3)。
    • 知识库:预先构建的向量化文档库(如 800+ 制度文档的 FAISS 数据库)。
  3. 核心优势

    • 无需重新训练模型:直接利用外部知识,避免微调成本。
    • 动态知识更新:仅需更新知识库,即可反映最新数据。
    • 减少幻觉:通过明确的上下文约束生成结果,提高可信度。

二、典型流程

  1. 知识库构建阶段

    • 文档预处理:清洗、分块(如按段落或固定长度切分)、去重。
    • 向量化存储:使用 Embedding 模型(如 BERT、Sentence-BERT)将文档块编码为向量,并存入向量数据库(如 FAISS)。
  2. 检索阶段

    • 用户输入问题后,通过检索器(如 FAISS 向量检索 + BM25 关键词检索)从知识库中召回 Top-K 相关文档片段。
    • 可选:对检索结果进行重排序(如使用 Cross-Encoder 提升相关性排序)。
  3. 生成阶段

    • 将检索到的文档内容与用户问题拼接为提示词(Prompt),输入大模型生成答案。
    • 示例 Prompt 模板:
      请基于以下文档内容回答问题:  
      [检索到的文档内容]  
      问题:[用户输入]  
      
  4. 后处理阶段(可选)

    • 答案验证:检查生成内容是否符合检索文档中的事实。
    • 答案精简:去除冗余信息,提升可读性。

三、可优化方向

  1. 检索优化

    • 混合检索:结合语义检索(FAISS)与关键词检索(BM25),弥补单一方法的局限性。
    • 分块策略
      • 使用滑动窗口分块(如 500 token 块大小 + 50 token 重叠),避免上下文断裂。
      • 针对长文档,采用“段落级 + 章节级”多粒度检索。
    • 重排序(Re-ranking)
      • 使用 Cross-Encoder 模型(如 BERT-based 双塔模型)对 Top-K 结果二次排序。
  2. 生成优化

    • Prompt 工程
      • 明确指令约束(如“仅基于提供的文档内容回答,若无相关信息则说明”)。
      • 添加格式化模板(如 JSON、Markdown)。
    • 模型选择:针对领域知识选择适配的 LLM(如领域微调模型)。
  3. 知识库优化

    • 增量更新:设计自动化流程,实时/定期更新向量数据库。
    • 去重与过滤:清理低质量或冗余文档,提升检索效率。
  4. 评估与监控

    • 评估指标
      • 检索准确性:Recall@K、MRR(Mean Reciprocal Rank)。
      • 生成质量:BLEU、ROUGE、人工评分(相关性、正确性)。
    • 日志记录:跟踪用户问题、检索结果、生成答案,用于后续分析优化。

四、总结

RAG 是解决大模型知识边界限制和动态更新需求的关键方案,适用于企业知识库问答、政策解读、医疗咨询等场景。其核心价值在于通过“检索 + 增强生成”的流程,低成本实现个性化、可信的答案输出。优化时需关注检索精度、生成可控性、知识库维护三大方向,结合具体场景灵活调整技术细节。


示例场景

  • 输入问题:公司报销制度中,差旅费的审批流程是什么?
  • RAG 处理
    1. 从 FAISS 检索出制度文档中关于“差旅费审批”的段落。
    2. 将段落内容与问题输入 LLM,生成结构化流程描述。
    3. 输出答案:“根据《财务报销制度》第3.2条,差旅费需经部门主管审批后提交至财务部审核。”
posted @ 2025-05-24 20:39  Budcs  阅读(78)  评论(0)    收藏  举报