智能 AI 应用为什么需要知识库
上回我们讲到如何在 Dify 上搭建企业知识库,并引入大语言模型应用中,实现企业内部知识助手。 使用 Dify 快速搭建企业内部知识助手。
其中提到的企业知识库,正是 “检索增强生成(Retrieval-Augmented Generation)” 技术的一种具体实现方式。
在深入探讨 RAG 之前,我们先来了解一下大型语言模型 (LLM) 的一个特性,或者说局限性。
大语言模型 (LLM) 的局限性
大型语言模型 (LLM),是基于大量数据进行预训练的超大型深度学习模型。这些模型经过海量文本数据训练,能够理解和生成人类语言,执行各种自然语言处理(NLP)任务,如文本生成、翻译、问答和摘要等。
大型语言模型 (LLM) 有一个显著特点,对于训练数据之外的内容,它无法准确预测,因为它没有"学习"过这些知识。因此,AI 在面对这类问题时会回答"不知道"。
那么,我们该如何让 AI 模型掌握企业内部知识呢?难道只能重新训练一个大模型?对于大多数企业来说,这个方案的成本显然过高且没有必要。
尽管可以通过微调 (Fine-tuning) 大幅降低大模型训练成本,但相比 RAG,微调仍然具有较高的成本(高配置设备、微调技术、效果验证、时间成本等)。如果仅需要进行内容补充,而不要求模型具备特定的行为或输出模式,那么 RAG 是现阶段较为适合的解决方案。
RAG 检索增强生成
检索增强生成(RAG)是指对大型语言模型输出进行优化,使其能够在生成响应之前引用训练数据来源之外的权威知识库。在 LLM 本就强大的功能基础上,RAG 可将其扩展为能访问特定领域或组织的内部知识库,所有这些都无需重新训练模型。
让我们来看看 RAG 能实现什么效果,仍以上面的问题为例:“2024年欧冠冠军是谁?”
我们先关联一个简单的欧冠知识库:
然后再重新与 AI 对话:
可以发现 AI 通过知识库,“学习” 到了2024欧冠赛事的 “知识”。
RAG 是如何让 AI 完成 “学习” 的?
实际上很简单,通过上下文把知识告诉 AI。我们把两次对话记录列出来,大家就能明白了。
无 RAG (知识库)问答:
角色 | 对话内容 |
---|---|
用户 | 2024年欧冠冠军是谁? |
AI | 抱歉,我不清楚。 |
有 RAG (知识库)问答:
角色 | 对话内容 |
---|---|
上下文 | 2024年欧冠联赛,代表西班牙的皇家马德里队在欧冠决赛中以2比0击败德国队多特蒙德,夺得冠军。 |
用户 | 2024年欧冠冠军是谁? |
AI | 2024年欧冠冠军是皇家马德里队。他们在欧冠决赛中以2比0击败了德国队多特蒙德,从而夺得冠军。 |
有 RAG (知识库)的问答记录,相比无 RAG (知识库)的问答记录,多了一条隐藏的(使用者看不见)的上下文消息。 在使用者提问之前,与使用者问题相关的知识内容被提取出来,并作为上文一并发送给AI模型。 这使得 AI 模型"学习"到了相关知识,并作出正确的回答。
至于具体如何完成检索,我们暂时先不深入探讨细节。
如何搭建高质量的 RAG 知识库
要搭建高质量的 RAG 知识库,文档的质量对增强检索的效果起到最直接最重要的作用。
我们仍然使用 Dify Cloud 上的知识库作为案例,知识库的其他配置暂且不谈,这次我们只聚焦于文本分段与清洗。 文本分段有自动分段和自定义分段两种方式,不熟悉的使用者建议采用自动分段。
使用自动文本分段时,对文档要求较高,上传文档前可对文档做以下检查:
-
1. 确保文档格式统一,结构简单,易于处理;
-
2. 移除不必要的格式信息,保留关键结构,移除特殊编码(多媒体、url等无意义或非文本信息);
-
3. 避免相似内容多次重复出现;
-
4. 避免超长自然段,较长段落可以预先分割成更小的分段,同时注意避免信息切割;
-
5. 删除不相关的内容(如页眉页脚、企业信息、联系方式等);
-
6. 删除敏感信息;
-
7. 避免超大文档,可先切分为多个小文档,更方便调整、检查与测试。
关于文本分段的个人理解:
1. 尽可能切分得足够细: 文本切分得越细,AI 模型预测(回答)得就越准确。大段的上下文会影响 AI 的回答,特别是在参杂了其他无效信息的情况下。 大段的上下文也会增加使用成本(消耗更多prompt tokens)。
2. 避免完整的信息被切割: 同时不能切分得太细,完整的信息应该尽量避免被切割。例如上面的案例,如果将文本这样分段,则可能无法得到准确的回答。
# 1
2024年欧冠联赛,冠军得主是代表西班牙的
# 2
皇家马德里队在欧冠决赛中以2比0击败德国队多特蒙德
第二段文本分段可能会因为文本内容不匹配而无法被成功检索。
大段内容特别容易出现这种情况,编辑文档时,应尽可能避免同一句话、段落被换行、换页、特殊符号等切割开。
3. 进行召回测试 / RAG 评估: Dify 提供了知识库的召回测试工具,可以准备好常见问题,对知识库进行命中测试。可以测试对应问题检索(命中)的知识库文档分段,以此快速判断检索效果。 通过测试结果,可及时调整文本分段。
然而,手动逐个问题进行召回测试并不符合程序员的风格。在下一篇文章中,我将分享如何使用 “Dify workflow 应用 + ragas” 实现 Dify 知识库自动化评估。
总结
本文探讨了智能 AI 应用为什么需要知识库,主要围绕以下几点展开:
-
1. 大语言模型(LLM)的局限性:LLM 无法准确预测训练数据之外的内容。
-
2. RAG(检索增强生成)技术:通过引入外部知识库,使 AI 能够访问和利用特定领域或组织的内部知识,无需重新训练模型。
-
3. RAG 的工作原理:在用户提问前,将相关知识作为上下文提供给 AI 模型,使其能够"学习"并回答相关问题。
-
4. 高质量 RAG 知识库的搭建:强调了文档质量的重要性,并提供了文本分段与清洗的具体建议。
-
5. 文本分段的关键点:包括细致切分、避免信息切割、以及进行召回测试/RAG评估。
通过合理运用 RAG 技术和构建高质量知识库,可以显著提升 AI 应用的实用性,使其能够更好地服务于特定领域或企业的需求。
读者福利:如果大家对大模型感兴趣,这套大模型学习资料一定对你有用
对于0基础小白入门:
如果你是零基础小白,想快速入门大模型是可以考虑的。
一方面是学习时间相对较短,学习内容更全面更集中。
二方面是可以根据这些资料规划好学习计划和方向。
包括:大模型学习线路汇总、学习阶段,大模型实战案例,大模型学习视频,人工智能、机器学习、大模型书籍PDF。带你从零基础系统性的学好大模型!
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费
】🆓
👉AI大模型学习路线汇总👈
大模型学习路线图,整体分为7个大的阶段:(全套教程文末领取哈)
第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;
第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;
第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;
第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;
第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;
第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;
第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。
👉大模型实战案例👈
光学理论是没用的,要学会跟着一起做,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
👉大模型视频和PDF合集👈
观看零基础学习书籍和视频,看书籍和视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
👉学会后的收获:👈
• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;
• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;
• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;
• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。
👉获取方式:
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费
】🆓