让LLM开卷答题(RAG)的理解与实现

RAG

产生

  • 知识密集型任务 指如果不依靠外部知识,即使是人类也不能取得很好的表现的任务

    ① 模型容量再大,也记不住所有知识。

    ② 难以方便地扩展或修改全部知识

检索增强生成 (Retrieval Augmented Generation)

  • 思路:根据收到的问题从外挂的知识库检索相关上下文背景提供准确和最新的知识。

    • 阶段① 合了序列到序列(Seq2Seq)模型和生成对抗网络(GAN)的思想,利用向量数据库的高效存储和检索能力,在检索阶段召回目标知识
    • 阶段② 利用大模型/提示词工程实现增强,将召回的知识合理利用,生成目标答案
  • 目的:

    • ①提高质量(允许对新增数据使用相同的模型处理无需调整和微调模型,拓展可用性)

    • ②减少错误(降低幻觉的可能)

    • ③保证私域数据安全(本地知识库) 实现 "开卷"答题

      相当于为参数化的seq2seq模型赋予了检索式的非参数记忆,实现拿到问题后先查资料再答题的效果

模型工作流程

以LangChain架构图为例:

    1. 文档加载与处理 加载文档(Local Documents):从本地文档中获取原始数据。

文档预处理(Unstructured Loader):解析文档并转换为文本格式。

文本处理(Text):存储解析后的文本。

文本分块(Text Splitter):将大文本分割为小的文本片段(Chunks)。

    1. 索引构建 文本嵌入(Embedding):使用嵌入模型将文本块转换为向量表示。

存储向量(VectorStore):存储文本块的向量表示,以便快速检索。

    1. 查询处理 用户查询(Query):用户输入查询。

查询嵌入(Embedding):将查询转换为向量表示。

生成查询向量(Query Vector)。

    1. 检索相关文本 计算相似度(Vector Similarity):计算查询向量与存储向量的相似度。

检索相关文本(Related Text Chunks):根据相似度找到最相关的文本片段。

    1. 生成回答 填充提示模板(Prompt Template):将检索到的文本填充到提示模板中。

构造最终Prompt(Prompt)。

输入LLM(LLM):将最终Prompt输入大语言模型。

生成答案(Answer):大语言模型基于检索的文本和用户查询生成最终答案。

实现

主要组成部分

  • 检索器(Retriever):检索器从大规模语料库中检索与给定目标文本相关的上下文,并使用这些上下文来增强生成器的输入。检索器通常使用预训练的语言模型进行查询和匹配操作。
  • 生成器(Generator):生成器使用检索器检索到的上下文和目标文本作为输入,并生成与目标文本相关的响应或文本。生成器通常采用Seq2Seq模型结构,将上下文和目标文本拼接在一起作为输入,并输出生成的响应文本。
  • 判别器(Discriminator):判别器的目的是区分生成的文本和真实的语料库文本。它使用深度学习技术,如卷积神经网络(CNN)或循环神经网络(RNN),来对生成的文本进行分类和打分,以评估其真实性和质量。

各模块的思路与实现方法

  • 文本结构化前处理
  • 文本分割方法
  • 向量嵌入
  • 索引构建与检索
  • 增强与生成
相关推荐
Q同学3 小时前
阿里WebDancer:自主信息搜索Agent
人工智能·llm·agent
mortimer4 小时前
Python 启动太慢?可能是config模块需要优化了
python·llm·ipython
win4r18 小时前
🚀OpenAI重磅开源gpt-oss系列模型!本地部署+客观深度测评!开源模型中的王者gpt-oss-120B和gpt-oss-20B!从幻觉测试到代码生成,
llm·aigc·openai
YBCarry_段松啓19 小时前
DeerFlow:深度研究的多智能体框架
人工智能·开源·llm
聚客AI1 天前
✅掌握ReAct=掌控AI代理灵魂:从工具调用、循环架构到生产级优化
人工智能·llm·掘金·日新计划
AI大模型1 天前
《大模型技术30讲》——从原理到实战的终极指南
程序员·llm·deepseek
蓝屏的钙1 天前
从 FastGPT 中浅析 RAG 技术
人工智能·llm
Junki1 天前
解放AI远程服务器操作:ssh-mcp-server 让MCP协议与SSH无缝对接
llm·mcp
Baihai_IDP1 天前
为何说「新数据源」是推动 AI 发展的核心动力?
人工智能·面试·llm
YBCarry_段松啓1 天前
n8n:连接AI与自动化的超级桥梁
人工智能·llm