大模型 19 RAG多样使用方法

RAG多样使用方法

一、回顾 Function Call & RAG

Function Call

是LLM的一种能力:LLM 理解所有的用户对话内容,评估自己是否有能力直接回答,不然就应该决策使用工具,再通过输出固定格式的文字,表达自己决定使用某个工具(有哪些可用工具,需要提前告知 LLM)`

RAG

  1. RAG:通过检索到的知识片段,塞到prompt里,辅助 LLM 回答用户问题
  2. LLM 无法看你的知识库,也无法真正学习你知识库里的知识
  3. 将你的知识切片,变成向量的,是Embedding模型
  4. 也是Embedding模型,把用户的问题变成了向量
  5. 拿用户的问题向量,去检索知识库的,是程序员写的代码
  6. coze平台只是提前做好了这些功能,企业也可以自己开发
  7. 检索到的知识,最终会被塞到prompt中,作为一种参考资料
  8. 网络信息搜索、数据库检索,也是 RAG 的一种

PS: Embedding 模型和大语言模型,不是一个模型

总之

Prompt 是我们唯一可以和LLM 打交道的方式,在应用技术层,无论我们做了多么炫酷的设计,最终都是为了找到合适传递给LLM 的Prompt

二、几个必须清楚的重点

2.1 想象中的RAG
  • 1、收集一下企业文件资料,就想做 RAG 了,是不现实的,效果不会好的

  • 2、真正想做好 RAG 项目,处理知识切片的时间占整个项目的70%以上

  • 3、知识切片到底怎么切,这个问题没有办法直接回答

  • 4、知识切片到底怎么切,不只是知识库构建过程中的一个小步骤,而是一系列复杂工作之后的一个结果

2.2 真实的RAG

1、列举要覆盖的场景,哪些类型的用户问题,是我们打算用RAG解决的

2、测试每个典型问题,在prompt里塞什么样的参考资料、样例,是可以有好的回答的

3、我应该如何从大量文件资料中,通过大量的处理工作,得到我需要的知识切片

4、faq(常见问题答案)格式的问答对,往往是效果更好的选择

5、能用问答对,去覆盖的用户问题,尽量用问答对,不能收集到问答对的,再准备普通文件切片

6、要点总结:是从用户会问什么问题出发,测试出需要什么样的知识切片,不是从手里的大堆文件资料出发,考虑到底应该怎么切片

三、用Excel做知识库(改造知识库)

1、区分用户的需求涉及到的文件,是跟这一次的需求有关,还是某一类需求都要涉及到某个文件

  • 引导通过对话窗口上传文件,并提出问题,使用插件解析文件,并将文件内容塞入prompt

  • 整理一个excel文件,明确指定出希望被检索的知识片段,以及相关元数据

2、提升准确率的重要方法 1:改造知识库,被检索的是用户问题,塞到prompt的是知识片段

  • 根据文章内容生成的用户提问:文章内容

3、严格来说,word、pdf、ppt、网页,都应该整理成 excel 格式

  • word/pdf/PPT/网页内容: word、pdf、ppt、网页原始文件

4、图片文件,使用多模态模型撰写文字描述后,再把文字描述和原图,也整理成 excel 格式

  • 文字描述图片内容 : 图片
  • 多模态模型,例如通义千问大模型

5、word、pdf、ppt 中的表格,有限处理成Markdown、Json,实在不行就也截成图片

例如:创建一个教用户怎么使用coze的问答Excel知识库

1 创建excel

  • coze官网上有使用说明文档,首先我们将每一篇说明文档内容抓出来,然后根据每一篇文章内容,用大模型生成n条(10/20条)用户可能问的问题,最后就得到了一个问题及内容的对照文档, `10/20条问题(索引) -> 文章内容(内容 )

四、查询query((改造用户问题 ))

1、默认是用户提出的问题

2、但多轮对话会让整个状况崩溃

3、用户多样的表达方式也会增加很多困难

4、提升准确率的重要方法 :知识库不改造,改造检索词

案例: 打造一个 打车计算价格的agent


改造前的agent设计

  • coze配置
    • 百度地图: 规划路线
    • 文本:打车计费知识库,
css 复制代码
7月28日,交通鸟发布了《关于深化改革推进出租汽车行业健康发展的指导意见》,即所谓的"要车縣政",宣布互联同约车(网约车)会法。滴滴出行你为中国市场占有率最高的打车软件,极大方便了民众的出行,滴滴出行有快车,出租车、顺风车,专车等能务。滴滴快车与液滴专车的收授标准不司,快车价格相对便宜,西专车收费较世,使用的车型更豪华,针对不同的消费人群。不同的核市,快车的收费标准也不同。
流满快车的计价规则包括起步费、时长费、里程费、远途费、夜同费,最低消费及动态加价。快车的起步费为0,夜间费收取时同为23点配次日5点,动态加价只会在交通高峰、司机校少或铰远等特殊情况才会收取。安车高收超步费。时长费和里程费都收费比快车高。不同的城节,时长费,里程费,最低消费等计价规則都不同。下面罗列保建9地市(摄州、厦门、没州、漳州、第田、宁德、龙岩、南罕、三明】及广州。深圳、重庆等12个城市的湾测快车的收费标准(计价规划,单位见备注1)。

福州 时长贵为0.39元/分钟,原程贵2元/公里,近途费为10公里后每公里加1元,农同费 Q.7 元公里,最饭请费为9元。

厦门 时长费为0.49元分钟,单程费1.79广公单,总途费乃8公单后何公单加收12元,秋问费0.88冠公里最低消 为9元。

泉州 时长費为0.38 元/分钟,里程费 1.79元/公里,冠治費为10公里后每公里却收1元,夜间费0.7元/公里最低消费为8元

漳州 时长费为0.35元/分钟,里星费1.99 元/公里,远途费为8公里后每公里加收0.98元,夜问费0.88元公里。 最低消费为6元。

莆田:时长费为0.35 元分钟。期雅费1.99元公州,远途费为8公州后每公別红收099元,表间费口88元公里,最低消费为8元。

宁波 时长费为0.49元分钟,坚联费1.99元公坚,远治费为8公里后每公里加收0.99元,衣问费0.339元公坚,堆低游費为7元。

龙岩 时长费为0.3元/分钟,里程费1.79元/公里,运途费为日公型后每公里紅收0.3日元,夜间费0.肥8元公里 最低消费为7元。
  • 结果:总是没有召回相关切片,大模型出现幻觉,瞎编一个结果
  • 原因分析: 1 关键词不准确,江北到沙坪坝匹配知识库中的城市名称 2 改造知识库也无法穷举一个城市所有的起始地名

改造后的agent设计

  • coze配置
    • 去掉之前的百度,知识库插件
    • 新增工作流插件

工作流配置

  • 开始:提取四个参数,1所在城市,2开始地点,3结束地点,4出发时间

  • 知识库检索:通过城市去知识库中检索,所在城市的打车信息

  • 配置导航插件:计算起始地点的行车路线的里程数,乘车时间(百度导航/other)

  • 文本处理:1 开始位置 2 结束位置 3 城市所在的打车规则 4 里程数 5 乘车时间 6 发车时间,将上述拼接

  • 最终输出打车费用

  • 工作流步骤3

  • 工作流步骤4


PS:不管我们在应用技术层,做了什么花哨炫酷的操作, 最后的目的就是把有用的信息塞进提示词

五、Embedding & Rerank (改造模型)

提升准确率的重要方法3:合适的 Embedding模型 & Rerank模型

5.1 Embedding模型

两个作用 1知识库切分成片段(切片)2 片段中匹配提示词相似度高的片段(检索)

Embedding 模型是怎么训练出来的 ?

1、Embedding一般也都是 Transformer架构

2、理解语义信息的原理其实和GPT类似

3、但Embedding 模型的训练目标比较简单,所以能力不如GPT 强

4、模型目标:让具有相似语义的文字序列,对应尽可能高相似度的向量;让不同语义的文字序列,对应尽可能低相似度的向量

5、训练数据:数亿条数据,每一条都是一个3元组数据

  • Anchor(锚点): 秦始皇统一六国后,推行了中央集权的政治体制。 (目标

  • Positive(正例): 秦朝实行了法家思想,中央政府的权力得到了加强。(与锚点向量相似度高)

  • Negative(负例): 宋朝的科举制度对中国古代的教育体系产生了深远影响(与锚点向量相似度低)

上传知识库文件 -> 切分成词向量(片段)embdding大模型 userprompt -> 提示词向量 匹配 知识库向量 = 片段1(embdding模型处理)-> 检索片段1 + userprompt(大模型处理)

5.2 Rerank模型
  • 给知识库中的向量片段打分的模型
5.3 Embedding模型 与 Rerank模型 协作

Embedding 模型需要效率高、速度快,随便给一段文字,就可以在千万量级知识库中秒回结果 Reranker 模型需要严谨仔细,深度分析语义到底哪个知识切片最合适

  • 1 问题转向量(embdding): 用户query模型转为向量
  • 2 检索(embdding): 在向量数据库中检索出,k个与用户问题向量,相似度高的知识片段向量
  • 3 拼接(Reranker): 用户问题 + 片段(分别拼接K个)
  • 4 获取相关性得分(Reranker):分别给这个K个拼接打分,从K个获得一个相关性得分最高的片段
5.4 常用 Embedding基座模型 及 Reranker模型

1、智源人工智能研究院:BGE(BAAI General Embedding)

2、网易:BCE(BilingualandCrosslingualEmbedding)

3、阿里:Qwen GTE

4、腾讯:Conan-embedding

ps: 在coze上只能用字节的 embdding 和rerank 模型,如果公司开发可以自由选择这两个模型

5.5 难负例挖掘

加了 Reranker模型 之后效果有提升,但还是不够理解,还希望继续提升

1、简单负例

Anchor(锚点): 秦始皇统一六国后,推行了中央集权的政治体制。 Positive(正例): 秦始皇统一六国后,创立了一种全新的国家管理体系,强化了中央政府的权力,减少了地方自治权。这种体制确保 了皇帝对全国拥有绝对的控制权

Negative(简单负例): 宋朝的科举制度对中国古代的教育体系产生了深远影响。

2、难负例

Negative(难负例): 秦始皇统一六国后,建立了一个从中央到地方的官僚体系,各级官员通过考试选拔,依据才能晋升,而非世袭继承。

5.6 垂直领域的Embedding 微调

1、教育、医疗、金融、法律是常用领域

2、微调数据的核心要点是关联性:题目-解析(或题目-题目),症状-诊断方法,案情-法院判决,投资方向-风险评估

3、Embedding 的微调 比 对话式模型的微调有更高的安全性(可能破坏其聊天功能)

六 大模型 functioncalling mcp关系

总结

RAG 流程包含三个部分,检索、增强、生成

举例:

- 用户提问:公司未签劳动合同,员工可以索赔吗?(法律问题)

1检索

  • 通过embdding模型,将用户问题转为向量
  • 通过embdding模型,在数据库中筛选出N个相似度高的向量
  • 通过Rerank模型,在n个相似度高的向量中选出一个最高的。

2增强:根据《劳动合同法》第82条,案例某某,+ 用户问题 = 新的关键词

ini 复制代码
prompt = """
根据以下法律文档和用户问题生成回答,需包含关键词:第82条、双倍工资。
文档1: 《劳动合同法》第82条...
文档2: 案例XX...
用户问题: 公司未签劳动合同,员工可以索赔吗?
"""

3生成:新的关键词通过大语言模型提问,获取最后答案

相关推荐
找方案4 小时前
AI+人力资源:AI招聘面试的兴起与争议
人工智能·面试·职场和发展
CC数分11 小时前
2026年HRBP岗位硬性要求和加分项
面试·职场和发展·数据分析
2601_9626802211 小时前
数据分析面试常考的SQL题和业务题分别是哪几类?
sql·面试·数据分析
黄敬峰11 小时前
一文搞懂 Agentic RAG:用 LangGraph 打造会思考的智能检索架构
面试
晚安日记wanna12 小时前
SSR 为什么不适合登录态从水合冲突到缓存串号
前端·react.js·面试
晚安日记wanna12 小时前
压测 TPS 卡在 800CPU 只跑四成六步定位法
运维·面试·测试
晚安日记wanna12 小时前
批量请求失败只弹一个 Toast面试官想听五层
前端·面试·架构
晚安日记wanna12 小时前
TS const 类型参数一道面试题的四层追问
前端·面试·typescript
晚安日记wanna12 小时前
大表 DDL 面试翻车现场Online DDL 为什么还会锁死业务
数据库·面试·架构
晚安日记wanna12 小时前
MySQL 主从延迟别只答并行复制
数据库·面试·架构