查看原文
其他

【AI+知识库】商业化问答场景,让AI回复更准确,一篇专为所有“小白”讲透RAG的实例教程(下篇)

UU大王 Equity AI
2024-10-20


前言



本篇文章是【教小白看懂RAG】的续写,此处坑深,每每打开不知要从何给小白讲起

但经多次催更,深感厚爱。

本篇我会提供一些大家可实操学习的方式方法

索引一些好的RAG内容

并分享给大家一些我付费买的干货内容供大家学习


以下内容,如有错漏,欢迎留言补充、批评、指正。




回顾




上篇已经详细介绍了AI使用知识库进行时到底发生了什么


如果没有看过,移步:【AI+知识库】商业化问答场景,让AI回复更准确,一篇专为所有“小白”讲透RAG的实例教程(上篇)



现在再来看这四个阶段,

①、问题解析阶段

②、知识库检索阶段③、信息整合阶段

④、大模型生成回答


那么想要一个更加符合预期的生成结果,本质上是对这四个阶段的一步步优化。







一、数据预处理




1、数据预处理


和我们进行关键词检索类似(但是这里是向量检索,前文已有介绍,只是举例),当要检索的文档,标题整理的越丰富、关键词越精准,内容越丰富的时候。我们去搜索才更方便的查找。

如果一个将如何减肥的文章内容,标题写的却是《十年规划》,那么就算是人类自己也很难精准检索到。那么当进行向量检索时,系统执行路径也是通过索引来进行查找的,错误的信息标注,就会导致检索效率的下降,因此数据预处理的重要性不言而喻了。


2、如何操作


(一)、问答类型

可以直接使用“问答对”来录入知识库,是比较理想的方式。尽量使用此方式整理。

此方式适用于:无逻辑递进、无层级结构或者低层级(两层)结构的数据。


(二)、文档类型

常见的文档为word、doc类型。通常为较长的大段的叙述内容。

2.1 文档命名规范

文档命名规整: 文档名应控制在10-20字,使用简洁明了的词语或短语来命名文档,避免使用无意义的数字、符号或缩写。

1、240610-中央经济工作会议解读                √

2、240617-减肥方案           √

3、问答文档第一版              ×

4、20240610-英大证券-英大证券宏观评论(2024年第36期总第120期):2024年中央经济工作会议解读,基建投资大概率是2024年扩内需的主力,1-4季度GDP当季同比大概率总体上行              ×

2.2 文档内容标题规整:

一/二级标题规整:
  • 标题名应控制在5-8字左右,使用简洁明了的词语或短语来命名。

  • 文档避免使用无意义的数字、符号或缩写。


举例:

(正确的)

1 公司历史发展情况

1.1 业务概况

       1.1.1 平台介绍

    1.2 用户的全渠道接触点

2 生态合作伙伴开放平台


(错误的)

· 第一部分

  第3项【保留】

· 第二部分

  第1项:财务报表

  第2项:财务报表

· 第三部分


2.3、段落内容规则

1、段落的长度尽量在950字以内,同一个内容块内,不要超过此长度。

   2、使用“\\\n”作为自定义分割符,在某个内容块完整结束时,用“\\\n”标识。

   3、同一个内容块是指,这一大段中,他们表达的是一个主题/含义。


(三)、图片类型

落地领域,需要进行人工打标。

图片命名要能表示出当前图片含义,不能是无意义的图一、图二.


图片标注格式如下:

图片

[身份证摆放示例]

图片

[标准合同案例]



目前大模型不能直接使用图片输出和输入,其中要进过一道处理,但是作为小白可以先不管,此处了解。后续深入学习即可。


在文档的处理阶段还有诸多细节,我会将此在最后索引出来,供大家深入学习。




二、检索阶段


1、问题检索阶段:


在此阶段,是使用用户问题去向量库里进行检索,其中的可优化点非常多,而且都需要涉及一定的概念。当然,我知道这不是你想听的,或者,这不是本文面对的读者能够轻易接受的。

因此我会拿FastGPT的“问题优化”举例,教你来做一个文本优化的功能。而重排、语义等模式,大可直接开启或关闭自行体验谁的效果更好,其他的功能点大家可像以下方式一样进行探索。


什么是问题优化,举个例子,在某些业务场景下用户通常讲不出术语,而知识库中的资料多数都是行业知识。如果用户使用通俗的语言表述,但是知识库中多数是行业术语的表述,就会导致,用户问题在知识库中的召回准确率极低。

因此,我们需要对问题进行优化,在用户无感知的情况下,提高问题去检索的准确性。


2、如何进行问题优化:



在很多的LLMOps平台中都会内置,问题优化模块,在实际的业务场景里,我们通常会自己去写这个模块,以达到贴合业务的需求。但是在学习阶段,使用此模块足矣。


在对话背景描述中,描述当前的对话背景,AI会根据当前的对话背景把用户的问题优化一遍。


当我未填入任何背景信息时,我问:“鸡爪怎么做”

那么去检索时就是直接检索,鸡爪怎么做,而AI也会回复鸡爪的做法。


但是如果我在背景信息中填入对话背景,告诉他这是一个舞蹈动作。


那么你的问题就会被优化成:


那自然而然,知识库回去搜索这个舞蹈相关的内容,最终AI会告诉你,如何完成鸡爪这一舞蹈动作,甚至帮你找到演示鸡爪舞蹈动作的视频链接。


额......学会了




三、增强阶段


信息整合增强阶段


这里看似分类减少,但反而是另一个深坑。即使知识库中提取的信息充足和准确的,但想要最终整合的结果好,还有两点:

1、模型能力。

2、Prompt工程


Prompt工程有非常多的教学和案例了,相信大家都会见到过。如果是小白,我十分建议从结构化的提示词学起,而结构化的提示词,推荐你直接使用各个模型平台厂商提供的提示词模版用起。


我这里帮你整理了几个,学习仿写即可。

Coze官方文档推荐:


# Character <Bot 人设>

你是一位数据分析专家,擅长使用 analyze 工具进行数据分析,包括提取、处理、分析和解释数据,你还能以通俗易懂的语言解释数据特性和复杂的分析结果。

## Skills <Bot 的功能>

### Skill 1: 提取数据

1. 当用户提供一个数据源或者需要你从某个数据源提取数据时,使用 analyze 工具的 extract 数据功能。

2. 如果用户提供的数据源无法直接提取,需要使用特定的编程语言,如 Python 或 R,写脚本提取数据。

### Skill 2: 处理数据

1. 使用 analyze 工具的 data cleaning 功能进行数据清洗,包括处理缺失值、异常值和重复值等。

2. 通过数据转换、数据规范化等方式对数据进行预处理,使数据适合进一步的分析。

### Skill 3: 分析数据

1. 根据用户需要,使用 analyze 工具进行描述性统计分析、关联性分析或预测性分析等。

2. 通过数据可视化方法,如柱状图、散点图、箱线图等,辅助展示分析结果。

## Constraints <Bot 约束>

- 只讨论与数据分析有关的内容,拒绝回答与数据分析无关的话题。

- 所输出的内容必须按照给定的格式进行组织,不能偏离框架要求。

- 对于分析结果,需要详细解释其含义,不能仅仅给出数字或图表。

- 在使用特定编程语言提取数据时,必须解释所使用的逻辑和方法,不能仅仅给出代码。



文心一言官方文档推荐:


当然最好还是WaytoAGI知识库,我的推荐:



四、生成阶段


这一步要评估的是,你所选用模型,是否有足够的逻辑推理能力、指令遵循度等标准。如果模型本身的能力不足,前边的优化在此处也会导致输出较差。

而关于此处的评估细节更加专业和细化,通常小白玩家使用时,使用主流的大模型基本不会出错(不建议自己微调大模型)

如果能够使用到以上指标和相关方法时,相信大家已经有了自行搜索和学习的能力。


以下是过程中会涉及到的一些优化细节,文档我会分享出来,在需要时大家根据术语去检索关键资料即可:




五、推荐阅读


上边的内容如果你能掌握,恭喜你,已经有基础的认知和一些优化技巧了,但是这仅仅是基于LLMOps的优化操作,如果需要深入学习,需要看更多的资料,以下均来自于网友推荐:


RAG 高效应用指南:01

RAG 高效应用指南 02:Embedding 模型的选择和微调

RAG 高效应用指南 03:Query 理解

RAG 高效应用指南 04:语义路由

RAG 高效应用指南 05:再谈文档智能解析

RAG 高效应用指南 06:巧妇难为无米之炊

RAG在企业应用中落地的难点与创新(文字稿)

一文详谈20多种RAG优化方法



六、资料分享


文中的脑图和我学习RAG时购买的资料,更加深入的手把手的实操技巧有一百多页,此处不方便放。


有需要的可以留言,整理后分享给大家。



⚡  以上内容,如有错漏,欢迎留言补充、批评、指正。

⚡  以上如果对你有帮助,请转发、在看、点赞三连支持。


看到这里还不关注下嘛↑




继续滑动看下一个
Equity AI
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存