Dify知识库优化实战:分段与数据清洗,提升LLM检索效率与回答精准性

将内容上传至知识库后,要对内容进行分段与数据清洗。该阶段是内容的预处理与数据结构化过程,长文本将会被划分为多个内容分段。

1 分段

由于LLM的上下文窗口有限,无法一次性处理和传输整个知识库的内容,因此需对文档 中的长文本分段为内容块。即便部分大模型已支持上传完整的文档文件,但实验表明,检索效率依然弱于检索单个内容分段。

LLM能否精准回答出知识库中内容,关键在知识库对内容块的检索与召回效果。类似在手册中查找关键章节即可快速得到答案,而无需逐字逐句分析整个文档。

经分段后,知识库能基于用户问题,采用分段 TopK 召回模式,召回与问题高度相关的内容块,补全关键信息从而提高回答精准性。

进行问题与内容块的语义匹配时,合理分段大小很关键,能帮助模型准确找到与问题最相关内容,减少噪音信息。

Dify 提供 “通用分段”“父子分段” 两种分段模式,分别适应不同类型的文档结构和应用场景,满足不同的知识库检索和召回的效率与准确性要求。

2 清洗

为保证文本召回效果,通常需在将数据录入知识库之前便对其进行清理。如文本内容中存在无意义字符或空行,可能影响问题回复质量,需清洗。

LLM收到用户问题后,能否精准回答知识库中内容,取决知识库对内容块的检索和召回效果。匹配与问题相关度高的文本分段对 AI 应用生成准确且全面的回应至关重要。

好比智能客服,仅需帮助 LLM 定位至工具手册的关键章节内容块即可快速得到用户问题的答案,而无需重复分析整个文档。在节省分析过程中所耗费的 Tokens 的同时,提高 AI 应用的问答质量。

3 分段模式

知识库支持两种分段模式:通用模式父子模式。首次创建知识库,推荐父子模式。

选定分段模式并完成知识库的创建后,后续无法变更。

知识库内新增的文档也将遵循同样的分段模式。

3.1 通用模式

系统按用户自定义规则将内容拆分为独立的分段。当用户输入问题后,系统自动分析问题中的关键词,并计算关键词与知识库中各内容分段的相关度。根据相关度排序,选取最相关的内容分段并发送给 LLM,辅助其处理与更有效地回答。

该模式下,需根据不同的文档格式或场景要求,参考以下设置项,手动设置文本的分段规则

① 分段标识符

默认 \n,即按文章段落分块。可遵循正则表达式自定义分块规则,系统将在文本出现分段标识符时自动执行分段。例如 的含义是按照句子进行分段。

不同语法的文本分段效果:

② 分段最大长度

指定分段内的文本字符数最大上限,超出该长度时将强制分段。默认值为 500 Tokens,分段长度的最大上限为 4000 Tokens。

③ 分段重叠长度

对数据进行分段时,段与段之间存在一定重叠部分。这种重叠可帮助提高信息的保留和分析的准确性,提升召回效果。建议设置为分段长度 Tokens 数的 10-25%。

④ 文本预处理规则

过滤知识库内部分无意义的内容。提供以下选项:

  • 替换连续的空格、换行符和制表符
  • 删除所有 URL 和邮件地址

配置完成后,点击“预览区块”即可查看分段后的效果。可直观看到每个区块的字符数。如重新修改分段规则,需重新点击按钮以查看新的内容分段。

若同时批量上传多个文档,轻点顶部的文档标题,快速切换并查看其它文档的分段效果。

img

分段规则设置完成后,接下来需指定索引方式。支持“高质量索引”和“经济索引”,详细说明请参考设定索引方法

3.2 父子模式

父子模式采用双层分段结构来平衡检索的精确度和上下文信息,兼得:

  • 精准匹配
  • 全面的上下文信息

父区块(Parent-chunk)保持较大的文本单位(如段落),提供丰富上下文信息

子区块(Child-chunk)是较小的文本单位(如句子),用于精确检索。系统先通过子区块进行精确检索以确保相关性,然后获取对应的父区块来补充上下文信息,从而在生成响应时既保证准确性又能提供完整的背景信息。你可以通过设置分隔符和最大长度来自定义父子区块的分段方式。

如AI智能客服场景,用户输入的问题将定位至解决方案文档内某具体句子,再将该句子所在的段落或章节,联同发送至 LLM,补全该问题的完整背景信息,给出更精准回答。

3.2.0 实现原理
① 子分段匹配查询
  • 将文档拆分为较小、集中的信息单元(如一句话),更精准匹配用户所输入的问题
  • 子分段快速提供与用户需求最相关的初步结果
② 父分段提供上下文
  • 将包含匹配子分段的更大部分(如段落、章节甚至整个文档)视作父分段并提供给LLM
  • 父分段为LLM提供完整背景信息,避免遗漏重要细节,助 LLM 输出更贴合知识库内容的回答

该模式下,需根据不同文档格式或场景要求,手动分别设置父子分段的分段规则。

3.2.1 父分段

分段选项:

段落

根据预设的分隔符规则和最大块长度将文本拆分为段落。每个段落视为父分段,适用于文本量较大,内容清晰且段落相对独立的文档。支持以下设置项:

  • 分段标识符,默认值为 \n,即按照文本段落分段。可遵循正则表达式自定义分块规则,系统将在文本出现分段标识符时自动执行分段。
  • 分段最大长度,指定分段内的文本字符数最大上限,超出该长度时将强制分段。默认值为 500 Tokens,分段长度的最大上限为 4000 Tokens;
全文

不进行段落分段,而直接将全文视为单一父分段。出于性能原因,仅保留文本内的前 10000 Tokens 字符,适用于文本量较小,但段落间互有关联,需完整检索全文的场景。

父子模式下的段落和全文预览:

3.2.2 子分段

子分段文本在父文本分段基础上,由分隔符规则切分而成,用于查找和匹配与问题关键词最相关和直接的信息。如果使用默认的子分段规则,呈现的分段效果:

  • 当父分段为段落时,子分段对应各段落中的单个句子
  • 父分段为全文时,子分段对应全文中各单独的句子

在子分段内填写以下分段设置:

  • 分段标识符,默认值为 ,即按照句子进行分段。可遵循正则表达式自定义分块规则,系统将在文本出现分段标识符时自动执行分段。
  • 分段最大长度,指定分段内的文本字符数最大上限,超出该长度时将强制分段。默认值为 200 Tokens,分段长度的最大上限为 4000 Tokens;

还可用文本预处理规则过滤知识库内部分无意义的内容:

  • 替换连续的空格、换行符和制表符
  • 删除所有 URL 和电子邮件地址

配置完成后,点击“预览区块”即可查看分段后的效果。你可以查看父分段的整体字符数。背景标蓝的字符为子分块,同时显示当前子段的字符数。

如果重新修改了分段规则,需要重新点击“预览区块”按钮以查看新的内容分段。若同时批量上传了多个文档,轻点顶部的文档标题,快速切换至其它文档并预览内容的分段效果。

父子分段模式:

为确保内容检索的准确性,父子分段模式仅支持使用“高质量索引”

3.3 模式区别

内容区块的分段形式:

  • 通用模式的分段结果为多个独立的内容分段
  • 父子模式采用双层结构进行内容分段,即单个父分段的内容(文档全文或段落)内包含多个子分段内容(句子)

不同分段方式影响 LLM 对知识库内容的检索效果。相同文档中,采用父子检索提供的上下文信息更全面,且精准度方面也保持较高水平,远优于传统的单层通用检索方式。

通用模式与父子模式的内容检索效果对比。

AI大模型学习福利

作为一名热心肠的互联网老兵,我决定把宝贵的AI知识分享给大家。 至于能学习到多少就看你的学习毅力和能力了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

在这里插入图片描述

大模型&AI产品经理如何学习

求大家的点赞和收藏,我花2万买的大模型学习资料免费共享给你们,来看看有哪些东西。

1.学习路线图

在这里插入图片描述

第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;

第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;

第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;

第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;

第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;

第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;

第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。

2.视频教程

网上虽然也有很多的学习资源,但基本上都残缺不全的,这是我自己整理的大模型视频教程,上面路线图的每一个知识点,我都有配套的视频讲解。

在这里插入图片描述

在这里插入图片描述

(都打包成一块的了,不能一一展开,总共300多集)

因篇幅有限,仅展示部分资料,需要点击下方图片前往获取

3.技术文档和电子书

这里主要整理了大模型相关PDF书籍、行业报告、文档,有几百本,都是目前行业最新的。
在这里插入图片描述

4.LLM面试题和面经合集

这里主要整理了行业目前最新的大模型面试题和各种大厂offer面经合集。
在这里插入图片描述

👉学会后的收获:👈
• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。
在这里插入图片描述

1.AI大模型学习路线图
2.100套AI大模型商业化落地方案
3.100集大模型视频教程
4.200本大模型PDF书籍
5.LLM面试题合集
6.AI产品经理资源合集

👉获取方式:
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值