微信扫码
与创始人交个朋友
我要投稿
上回我们讲到如何在 Dify 上搭建企业知识库,并引入大语言模型应用中,实现企业内部知识助手。 使用 Dify 快速搭建企业内部知识助手。
其中提到的企业知识库,正是 "检索增强生成(Retrieval-Augmented Generation)" 技术的一种具体实现方式。
在深入探讨 RAG 之前,我们先来了解一下大型语言模型 (LLM) 的一个特性,或者说局限性。
大型语言模型 (LLM),是基于大量数据进行预训练的超大型深度学习模型。这些模型经过海量文本数据训练,能够理解和生成人类语言,执行各种自然语言处理(NLP)任务,如文本生成、翻译、问答和摘要等。
大型语言模型 (LLM) 有一个显著特点,对于训练数据之外的内容,它无法准确预测,因为它没有"学习"过这些知识。因此,AI 在面对这类问题时会回答"不知道"。
那么,我们该如何让 AI 模型掌握企业内部知识呢?难道只能重新训练一个大模型?对于大多数企业来说,这个方案的成本显然过高且没有必要。
尽管可以通过微调 (Fine-tuning) 大幅降低大模型训练成本,但相比 RAG,微调仍然具有较高的成本(高配置设备、微调技术、效果验证、时间成本等)。如果仅需要进行内容补充,而不要求模型具备特定的行为或输出模式,那么 RAG 是现阶段较为适合的解决方案。
检索增强生成(RAG)是指对大型语言模型输出进行优化,使其能够在生成响应之前引用训练数据来源之外的权威知识库。在 LLM 本就强大的功能基础上,RAG 可将其扩展为能访问特定领域或组织的内部知识库,所有这些都无需重新训练模型。
让我们来看看 RAG 能实现什么效果,仍以上面的问题为例:"2024年欧冠冠军是谁?"
我们先关联一个简单的欧冠知识库:
然后再重新与 AI 对话:
可以发现 AI 通过知识库,"学习" 到了2024欧冠赛事的 "知识"。
实际上很简单,通过上下文把知识告诉 AI。我们把两次对话记录列出来,大家就能明白了。
角色 | 对话内容 |
用户 | 2024年欧冠冠军是谁? |
AI | 抱歉,我不清楚。 |
角色 | 对话内容 |
上下文 | 2024年欧冠联赛,代表西班牙的皇家马德里队在欧冠决赛中以2比0击败德国队多特蒙德,夺得冠军。 |
用户 | 2024年欧冠冠军是谁? |
AI | 2024年欧冠冠军是皇家马德里队。他们在欧冠决赛中以2比0击败了德国队多特蒙德,从而夺得冠军。 |
有 RAG (知识库)的问答记录,相比无 RAG (知识库)的问答记录,多了一条隐藏的(使用者看不见)的上下文消息。 在使用者提问之前,与使用者问题相关的知识内容被提取出来,并作为上文一并发送给AI模型。 这使得 AI 模型"学习"到了相关知识,并作出正确的回答。
至于具体如何完成检索,我们暂时先不深入探讨细节。
要搭建高质量的 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 应用的实用性,使其能够更好地服务于特定领域或企业的需求。
53AI,企业落地应用大模型首选服务商
产品:大模型应用平台+智能体定制开发+落地咨询服务
承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2024-07-18
2024-09-04
2024-05-05
2024-06-20
2024-05-19
2024-07-09
2024-07-09
2024-06-13
2024-07-07
2024-07-07
2025-01-06
2025-01-04
2024-12-30
2024-12-27
2024-12-26
2024-12-24
2024-12-21
2024-12-14