当前位置: 首页 > news >正文

RAG:生成与检索的完美结合

什么是 RAG

RAG(Retrieval-augmented generation,检索增强生成) 是一种使 大语言模型(LLM, Large Language Models) 能够检索并整合外部新信息的技术。

与依赖静态训练数据的传统大语言模型不同,RAG 在生成响应前通过集成 信息检索 机制,从数据库、网页等来源中提取相关文本,从而提升模型生成内容的准确性与时效性。

RAG 有效帮助大语言模型坚持事实、减少 人工智能幻觉 的发生。此外,RAG 还降低了因引入新数据而重新训练大语言模型的需求,节省了大量计算资源和财务成本。

更重要的是,RAG 允许大语言模型在生成的回答中附带 引用来源 ,使用户能够验证信息出处,这提升了生成内容的透明度,让用户可以交叉核对检索内容,确保信息的准确性与相关性。


RAG 的工作原理

基本流程

  1. 输入查询 :用户提出问题或查询(例如自然语言问题)。
  2. Retriever 检索相关文档 :检索系统从外部数据库、上传的文档或其他来源中查找与查询相关的文本。
  3. Generator 生成回答 :生成模型基于检索到的文档内容生成最终的回答。

关键组件

Retriever :通常基于向量化模型(Vector-based Models),从外部数据库中找出与问题相关的文档。

  1. 文档编码 :数据库中的每个文档也会被编码为向量,通常在 离线阶段 完成,并存储这些向量以便在查询时快速检索。
  2. 查询编码 :当用户提交问题或提示时,编码器将其转化为向量,表示查询在高维空间中的语义含义。
  3. 检索 :系统收到查询后,使用查询向量与数据库中存储的文档向量进行比对,从中检索出最相关的文档。

Generator :如 GPT(Generative Pre-trained Transformer) 等生成式模型,结合检索到的文档生成最终的答案。

  1. LLM 生成 :大语言模型(LLM)结合查询与检索到的上下文信息生成响应,结合其内部知识和新获得的数据,产生语义准确、连贯的答案。
  2. 最终响应 :最终生成的响应融合了模型的固有知识与检索到的最新信息,确保答案不仅准确,而且详细。

RAG 的应用场景

  1. 问答系统 :通过 RAG 构建的智能问答系统能够从大量文档中提取相关信息,并生成精准的答案,提升用户查询的准确性和实时性。
  2. 知识库查询 :在企业的内部文档中,RAG 可以高效检索并生成相关文档的摘要或直接回答用户的查询,帮助员工快速找到所需的信息。
  3. 对话系统 :在复杂对话或需要访问外部数据库的场景中,RAG 可以增强聊天机器人能力,使其能够提供更加精确和多样化的回答,提升用户体验。
  4. 内容生成 :RAG 可用于自动生成报告或文章,通过结合外部资源,使生成的内容更加丰富、准确,并提高文档的质量和相关性。

RAG 的实践

Ollama 工具

Ollama 是一款支持 本地部署的大语言模型工具 ,帮助开发者和企业在本地环境中高效地处理对话、文本生成和情感分析等任务,同时确保数据隐私。

官网: https://ollama.com/

Retriever & Generator 模型

Retriever 采用 Chroma

Chroma 是一个开源的高性能向量数据库,旨在帮助用户将数据转化为向量表示,并支持基于向量的快速查询,以便找到与给定输入最相似的项。

Generator 采用 deepseek-r1:1.5b

deepseek-r1:1.5b 是一个强大的自然语言处理模型,拥有1.5亿个参数,能够进行文本生成、问题解答、情感分析等任务。它在理解语言和生成内容方面表现优秀,适用于智能客服、语音助手等应用。

效果对比

可以看出,通过将数据库中最新的内容提供给大模型,大模型能够给出更精确的回答。



总结

RAG 的优势

  1. 提升生成质量 通过接入外部知识库,RAG 能够生成更准确、内容更贴合上下文的回答,显著降低语言模型产生“幻觉”的风险。
  2. 降低训练成本 无需频繁对大语言模型进行再训练,只需更新知识库即可获取新信息,节省了大量计算资源和人力成本。
  3. 支持大规模知识接入 结合检索机制,模型不再局限于固定的训练数据,可以动态访问并利用海量的外部信息资源,具备更强的知识扩展能力。

RAG 的挑战

  1. 检索与生成的协同优化 如何确保检索到的内容与生成模型的理解和输出高度一致,是影响生成质量的关键技术难点。
  2. 系统性能与效率问题 同时执行信息检索和文本生成,对计算资源和响应时间提出了较高要求,尤其在面对大规模文档库时尤为明显。
  3. 知识更新与一致性 外部知识库的更新频率若与生成模型脱节,可能导致生成内容不准确或过时。因此,需要建立稳定、实时的知识更新机制,以确保信息时效性与可靠性。

参考

  1. https://en.wikipedia.org/wiki/Retrieval-augmented_generation
  2. https://aws.amazon.com/what-is/retrieval-augmented-generation
  3. https://www.geeksforgeeks.org/nlp/rag-architecture
  4. https://arxiv.org/abs/2005.11401
http://www.dtcms.com/a/464961.html

相关文章:

  • 一款由网易出品的免费、低延迟、专业的远程控制软件,支持手机、平板、Mac 、PC、TV 与掌机等多设备远控电脑!
  • [C# starter-kit] Blazor EntityTable 组件 | 预构建
  • 深入浅出 AI Agent:从概念本质到技术基石
  • 宁波网站制作服务wordpress搭建淘客网站
  • 第五章:Go的“面向对象”编程
  • 【实用工具】mac电脑计算文件的md5、sha1、sha256
  • 数据结构算法学习:LeetCode热题100-矩阵篇(矩阵置零、螺旋矩阵、旋转图像、搜索二维矩阵 II)
  • CAD文件处理控件Aspose.CAD教程:在 Python 中将 SVG 转换为 PDF
  • Go语言游戏后端开发9:Go语言中的结构体
  • 网页网站作业制作郑州企业网站排名
  • C4D域的应用之鞋底生长动画制作详解
  • C语言自学--文件操作
  • 免费小程序网站网站建设优劣的评价标准
  • Kubernetes(K8S)全面解析:核心概念、架构与实践指南
  • 软件测试分类指南(上):从目标、执行到方法,系统拆解测试核心维度
  • 李宏毅机器学习笔记18
  • 深圳做网站优化工资多少长沙官网seo分析
  • 深入理解SELinux:从核心概念到实战应用
  • W5500接收丢数据
  • 【深度学习新浪潮】大模型推理实战:模型切分核心技术(下)—— 流水线并行+混合并行+工程指南
  • 烟台建站价格推荐门户网站建设公司
  • Node.js/Python 实战:编写一个淘宝商品数据采集器​
  • 网站html模板贵州网站开发流程
  • 【分布式训练】分布式训练中的资源管理分类
  • 重生归来,我要成功 Python 高手--day24 Pandas介绍,属性,方法,数据类型,基本数据操作,排序,算术和逻辑运算,自定义运算
  • 如何在关闭浏览器标签前,可靠地发送 HTTP 请求?
  • http cookie 与 session
  • Asp.net core appsettings.json` 和 `appsettings.Development.json`文件区别
  • ICRA-2025 | 机器人具身探索导航新策略!CTSAC:基于课程学习Transformer SAC算法的目标导向机器人探索
  • ManipulationNet:开启真实世界机器人操作基准测试新时代