RAG检索增强生成(Retrieval Augmented Generation)

RAG解决什么问题

大模型知识的局限性。

RAG是什么:

RAG就是通过检索获取相关的知识并将其融入Prompt,让大模型能够参考相应的知识从而给出合理回答。

简易流程

索引: 搭建一个知识库,支撑后面的文档索引 核心:怎么切割知识,怎么选择合适的模型

检索: 找到合适的参考文档 ,核心:检索方式选择

生成: 整合提问和参考文档输入大模型,得到答案 核心:提示词构建 和大模型选择

切割器的奥义:

文档切分:核心语义连贯性

  • 应尽量保证划分后的同一段文本里面,语义是统一、完成的
  • 太长语义不统一,影响检索效果
  • 太短语义不完成,影响回答质量

切分方法:

最好的问题答案对 ,知识归

检索奥义技巧

检索用:小文本块 ,生成时:大文本块

语义检索 和关键字检索关系

多路召回

提问的奥义

提问改写 :

  • 提问不规范 ,语义模糊,歧义 语句不通顺
  • 多轮对话

用户:三国里战力最高的是谁

RAG系统:是吕布

用户:他是哪一年出生的?

  • 复杂提问

拆解成多个问题,分别提问RAG,然后组合成最终答案

生成奥义优化:

如何很好的利用参考文档

1、简单粗暴 ,都丢给 大模型

  • 上下文溢出 (直接切除)

葫芦娃救爷爷

文档块的葫芦娃救爷爷

总结树模式

合理利用元数据

  • 元数据 保鲜 。 我问房价多少 ,你说 2000年房价
  • 检索中评估相关性:重要的文档给与更高的权重 ,专家权重。
  • 检索后的排重复
  • 提供参考链接 增加可信度

评估:

准确率 : 用户视角 ,答案是否符合预期

忠诚度:生成的内容是否忠实于提供的上下文或背景信息

召回率,精确率 ,F1:评估找的资料质量

评估手段:

  • 人工
  • 自动化

JAPI的文档检索

知识库建立:对JAPI文档做摘要总结 入口

问题优化:问题改写拓展

文档检索:采用多路召回的方式 关键字+向量数据库检索

结果返回:文档去重后 ,大模型算相似度排序 + 总结回答

稠密向量 ,稀疏向量

余弦相似度 语义识别好

欧氏距离 具体+关键词

相关推荐
JaguarJack2 小时前
FrankenPHP 是否是 PHP 的未来?
后端·php
VX:Fegn08952 小时前
计算机毕业设计|基于springboot + vue手办商城系统(源码+数据库+文档)
数据库·vue.js·spring boot·后端·课程设计
爱吃烤鸡翅的酸菜鱼2 小时前
【RabbitMQ】发布订阅架构深度实践:构建高可用异步消息处理系统
java·spring boot·分布式·后端·websocket·架构·rabbitmq
回家路上绕了弯2 小时前
JVM 调参实战指南:从基础到落地,解决 GC 与内存难题
分布式·后端
陈逸轩*^_^*2 小时前
RabbitMQ 常见八股:包括组成部分、消息的相关处理、持久化和集群等。
后端·消息队列·rabbitmq
VX:Fegn08952 小时前
计算机毕业设计|基于springboot + vue房屋租赁管理系统(源码+数据库+文档)
数据库·vue.js·spring boot·后端·课程设计
A-程序设计2 小时前
基于Django短视频推荐系统设计与实现-(源码+LW+可部署)
后端·python·django
古城小栈2 小时前
Go中 巧妙解决 同主版本多子版本共存
后端·golang
心灵宝贝2 小时前
sw_64架构 docker-ce-cli rpm 安装方法(附安装包)
后端·spring·spring cloud
IT_陈寒2 小时前
Redis性能翻倍的5个冷门技巧:从缓存穿透到集群优化实战指南
前端·人工智能·后端