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

什么是RAG(Retrieval-Augmented Generation)?一文读懂检索增强生成

什么是RAG?

RAG是一种结合文档检索(Retrieval)与语言模型生成(Generation)的技术,它的核心思想是:先查资料,再作答

RAG是“知识”和“大模型”的桥梁。

与传统LLM(Large language model,大型语言模型,如chartgpt)不同,RAG不完全依赖模型内部知识,而是将用户的问题与一个外部知识库结合,通过检索获取相关文档,再交由语言模型生成回答。

为什么会有RAG?

RAG的出现,是为了解决传统打语言模型(LLM)在真实应用中的三大痛点:

  1. 知识截止问题:LLM的知识固定在训练时的数据(如GPT-3.5截止到2021年),无法回答新的事实、最新的政策、技术文档更新等问题
  2. 幻觉(Hallucination):LLM可能编造事实,当模型遇到知识空白时,它会“自洽的胡说八道”,表面看似合理,实则错误
  3. 无法访问私有知识:无法访问公司内部知识、专属文档、个人数据等非公开内容

RAG的优势

功能说明
外部知识接入实时连接知识库,让模型不止靠记忆
提升问答可信度基于真实内容作答,减少幻觉
支持复杂问答多文档融合后,能支持长文档或跨文档问答
可快速迭代只需要更新知识库,无需重复训练模型
企业智能化支撑内部问答、助手、客服等应用场景

RAG的典型应用场景

  • 客户服务助手
  • 金融文档的自动文档
  • 企业文档助手,客服机器人
  • 医学指南、病例支持

RAG工作流程

在这里插入图片描述

如何搭建一个简单的RAG系统

工具选型(可用):

  • 文档向量化:OpenAI Embedding API
  • 向量数据库:FAISS
  • 生成模型(选择已有模型):OpenAI GPT
  • 框架推荐:LangChain、LlamIndex、Haystack

步骤概览:

  1. 文档预处理(切片、清洗)
  2. 文本向量化并存入数据库
  3. 接收用户问题 -> 转成向量 -> 检索相似片段
  4. 将检索内容 + 问题作为Prompt输出LLM生成回答

在这里插入图片描述

参考文章

  • Code a simple RAG from scratch:https://huggingface.co/blog/ngxson/make-your-own-rag

下一步计划

搭建一个软考相关RAG系统。

http://www.xdnf.cn/news/15304.html

相关文章:

  • websocket连接时发生未知错误
  • SAP顾问职位汇总(第28周)
  • 快速生成 Android 的 Splash 的 9 Patch 图片
  • phpMyAdmin:一款经典的MySQL在线管理工具又回来了
  • DNS解析过程和nmap端口扫描
  • 【STM32实践篇】:F407 时钟系统
  • MacOS使用Multipass快速搭建轻量级k3s集群
  • Spring Boot 安全登录系统:前后端分离实现
  • ERA5的UV合并成矢量并按时间维度转为nc或tif
  • 【版本控制】Perforce Helix Core (P4V) 完全入门指南(含虚幻引擎实战)
  • Spring Boot 集成 Spring Security 完整示例
  • C++ 单例模式实现
  • 牛客周赛 Round 100
  • AB实验评估指标体系之【实验评估指标体系】
  • 【Linux | 网络】应用层(HTTP)
  • RabbitMQ 之仲裁队列
  • 决策树的相关理论学习
  • 慢慢理解this
  • Dify离线安装包-集成全部插件、模板和依赖组件,方便安可内网使用
  • Matlab批量转换1km降水数据为tiff格式
  • 业务访问控制-ACL与包过滤
  • Qt窗口:QToolBar、QStatusBar、QDockWidget、QDialog
  • vue3 ref vs reactive值的修改
  • es里为什么node和shard不是一对一的关系
  • Git 使用笔记
  • 使用Starrocks替换Clickhouse的理由
  • SPSSPRO:数据分析市场SaaS挑战者的战略分析
  • 香港服务器Python自动化巡检脚本开发与邮件告警集成
  • 【Linux】线程机制深度实践:创建、等待、互斥与同步
  • 网络协议学习思维导图