ChatGPT 人工智能 GPT4 伦理 生成式 医疗 监管 安全 机器学习 深度学习 神经网络 计算机视觉 强化学习 模型 算法 应用 开发 研究 工具 平台 框架 数据集 训练 部署 安全 合规 培训 投资 LLM,llm AI,ai,Ai 大模型 大语言模型 制图 生图 绘图 文生图 文生视频 生成式AI AGI 世界模型 sora chatGPT,chatgpt,ChatGpt claude openai Llama deepseek midjourney 红熊猫模型 Red panda,panda Stable Diffusion,StableDiffusion,stable DALL- E 3 DALL E DALL Flux,flux 扩散模型 混元大模型 文心一言 通义千问 可灵 Pika PixelDance 豆包 月之暗面 零一万物 阶跃星辰 搜索增强 MiniMax Talkie Agent prompt fastai LangChain TTS 微调 提示词 知识库 智能体
# 热门搜索 #
搜索
【AI+知识库】商业化问答场景,让AI回复更准确,一篇专为所有“小白”讲透RAG的实例教程(下篇)
8922点击    2024-09-10 21:34

回顾


上篇已经详细介绍了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优化方法


文章来源于“WayToAGI Agent探索”,作者“UU大王 ”


关键词: AI , 知识库 , RAG , 人工智能
AITNT资源拓展
根据文章内容,系统为您匹配了更有价值的资源信息。内容由AI生成,仅供参考
1
智能体

【开源免费】AutoGPT是一个允许用户创建和运行智能体的(AI Agents)项目。用户创建的智能体能够自动执行各种任务,从而让AI有步骤的去解决实际问题。

项目地址:https://github.com/Significant-Gravitas/AutoGPT


【开源免费】MetaGPT是一个“软件开发公司”的智能体项目,只需要输入一句话的老板需求,MetaGPT即可输出用户故事 / 竞品分析 / 需求 / 数据结构 / APIs / 文件等软件开发的相关内容。MetaGPT内置了各种AI角色,包括产品经理 / 架构师 / 项目经理 / 工程师,MetaGPT提供了一个精心调配的软件公司研发全过程的SOP。

项目地址:https://github.com/geekan/MetaGPT/blob/main/docs/README_CN.md

2
知识库

【开源免费】FASTGPT是基于LLM的知识库开源项目,提供开箱即用的数据处理、模型调用等能力。整体功能和“Dify”“RAGFlow”项目类似。很多接入微信,飞书的AI项目都基于该项目二次开发。

项目地址:https://github.com/labring/FastGPT

3
RAG

【开源免费】graphrag是微软推出的RAG项目,与传统的通过 RAG 方法使用向量相似性作为搜索技术不同,GraphRAG是使用知识图谱在推理复杂信息时大幅提高问答性能。

项目地址:https://github.com/microsoft/graphrag

【开源免费】Dify是最早一批实现RAG,Agent,模型管理等一站式AI开发的工具平台,并且项目方一直持续维护。其中在任务编排方面相对领先对手,可以帮助研发实现像字节扣子那样的功能。

项目地址:https://github.com/langgenius/dify


【开源免费】RAGFlow是和Dify类似的开源项目,该项目在大文件解析方面做的更出色,拓展编排方面相对弱一些。

项目地址:https://github.com/infiniflow/ragflow/tree/main


【开源免费】phidata是一个可以实现将数据转化成向量存储,并通过AI实现RAG功能的项目

项目地址:https://github.com/phidatahq/phidata


【开源免费】TaskingAI 是一个提供RAG,Agent,大模型管理等AI项目开发的工具平台,比LangChain更强大的中间件AI平台工具。

项目地址:https://github.com/TaskingAI/TaskingAI

4
微调

【开源免费】XTuner 是一个高效、灵活、全能的轻量化大模型微调工具库。它帮助开发者提供一个简单易用的平台,可以对大语言模型(LLM)和多模态图文模型(VLM)进行预训练和轻量级微调。XTuner 支持多种微调算法,如 QLoRA、LoRA 和全量参数微调。

项目地址:https://github.com/InternLM/xtuner

5
prompt

【开源免费】LangGPT 是一个通过结构化和模板化的方法,编写高质量的AI提示词的开源项目。它可以让任何非专业的用户轻松创建高水平的提示词,进而高质量的帮助用户通过AI解决问题。

项目地址:https://github.com/langgptai/LangGPT/blob/main/README_zh.md

在线使用:https://kimi.moonshot.cn/kimiplus/conpg00t7lagbbsfqkq0