详细介绍:RAG系列:ChunkSize 和 ChunkOverlap 怎么设置?通过动态评估法探索业务场景的优秀组合
能够设置合适的ChunkSize和ChunkOverlap对于提升RAG系统的表现至关重要。合理的选择不仅能够保证信息的完整性和连贯性,还能奏效地管理计算资源和成本,最终实现高质量的文本生成和精准的信息检索。
引言
在按特定字符对文档进行切分中,有两个比较重要的参数,那就是ChunkSize(块大小)和ChunkOverlap(块重叠)。ChunkSize是指将原始文档分割成块时每个块的长度(通常以token或字符为单位)。而ChunkOverlap则是相邻块之间重复内容的长度。
这两个参数的设置是否合理往往会比较大影响RAG环境的表现。
- 较大的ChunkSize:有利于保持上下文完整性和语义连贯,提高模型理解复杂内容的能力,减少块数量以降低重复处理开销,但是会增加内存和计算资源消耗,可能引入冗余信息影响检索效率和导致 LLM 产生幻觉;
- 容易造成上下文断裂,影响 LLM 对整体语义的理解,需依赖更大的 overlap 来弥补信息缺失,同时生成更多块增加总体计算负担;就是较小的Chunk Size:有利于提升处理速度和系统响应能力,适用于实时场景和内容变化较快的文档,更易聚焦局部信息,但
- 较大的ChunkOverlap:有利于增强上下文连贯性,降低对分块位置的敏感性,但会导致内容冗余,增加计算和存储成本,还可能引入不相关噪声干扰模型判断;
- 容易造成信息断层,查询关键词可能分布在不同块中导致召回失败,且对分块位置更为敏感,影响稳定性。就是较小的ChunkOverlap:有利于提升处理效率,减少重复内容带来的资源浪费,使每个块更独立,利于提高检索相关性,但
因此,能够设置合适的ChunkSize和ChunkOverlap对于提升RAG环境的表现至关重要。合理的选择不仅能够保证信息的完整性和连贯性,还能有效地管理计算资源和成本,最终实现高质量的文本生成和精准的信息检索。
代码实践
本文完整代码地址[1]:https://github.com/laixiangran/ai-learn-python/blob/main/RAG/examples/07\_chunkSize\_chunkOverlap.py
在按特定字符切分方法中,这两个值主要靠经验法和动态评估法来确定,因本人能接触到的行业文档有限,因此无法通过经验给出ChunkSize和ChunkOverlap的最佳组合,如果大家有各自行业文档特点的经验值,能够在留言区分享,一起交流和学习。
本文将通过预设多个ChunkSize和ChunkOverlap组合来动态评估,找到切分本系列文章的测试文档《2024少儿编程教育行业发展趋势报告》的最优的ChunkSize和ChunkOverlap组合。
数据分组
- ChunkSize取值: 128, 256, 384, 512, 640, 768, 896, 1024, 1536, 2048;
- ChunkOverlap(占ChunkSize的比例)取值:0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6;
- 因此,总共有70组不同的ChunkSize和ChunkOverlap配置。
指标分析
上下文召回率(Context Recall)
上下文召回率与Chunksize、ChunkOverlap热力图
- 趋势分析:
a.ChunkSize较小时,上下文召回率较低,随着ChunkSize增大,上下文召回率会有明显提升,在中等ChunkSize(如 512 - 896)时平均表现最好,ChunkSize再增大则上下文召回率有下降的趋势;
b.在ChunkSize相同情况下,ChunkOverlap增大通常会提升上下文召回率,尤其在中等ChunkSize(如 512 - 896)时更明显。
- 最佳表现:ChunkSize=768,ChunkOverlap=0.6 ,上下文召回率得分为 0.78。
上下文相关性(Context Relevance)
上下文相关性与ChunkSize、ChunkOverlap热力图
- 趋势分析:
a.ChunkSize较小时,上下文相关性也有较高的水平,随着ChunkSize增大,上下文相关性也有提升,在中等ChunkSize(如 512 - 896)时平均表现最好,ChunkSize再增大则上下文相关性有下降的趋势;
b.ChunkOverlap增大时上下文相关性有一定提升,但提升幅度不如上下文召回率明显。
- 最佳表现:ChunkSize=512,ChunkOverlap=0.5,上下文相关性得分为 0.8。
答案正确性(Answer Correctness)
答案正确性与ChunkSize、ChunkOverlap热力图
- 趋势分析:
a.ChunkSize较小时,答案正确性较低,随着ChunkSize增大,答案正确性会有明显提升,在中等ChunkSize(如 512 - 896)时平均表现最好,ChunkSize再增大则答案正确性有下降的趋势;
b.在ChunkSize相同情况下,ChunkOverlap增大通常会提升答案正确性,尤其在中等ChunkSize(如 512 - 896)时更明显。
- 最佳表现:ChunkSize=768,ChunkOverlap=0.6,答案正确性得分为 0.7。
最优组合
指标名称 | 最佳组合 | 指标得分 |
上下文召回率(Context Recall) | ChunkSize=768,ChunkOverlap=0.6 | 0.78 |
上下文相关性(Context Relevance) | ChunkSize=512,ChunkOverlap=0.5 | 0.8 |
答案正确性(Answer Correctness) | ChunkSize=768,ChunkOverlap=0.6 | 0.7 |
综合资源利用、检索和生成效率与质量等方面考虑,这里我将ChunkSize=768,ChunkOverlap=0.6作为最佳组合。
结语
最后,我们将该最佳组合版本(v7.0)分别与基本版本(v1.0)和基于句子相似距离的语义切分的版本(v6.x)进行比较:
不同优化方法评估结果汇总
从上表行发现,假如能设置合理的ChunkSize和ChunkOverlap,对RAG平台的整体效果是有比较明显的提升的,特别是上下文召回率和答案正确性,而且这种方法简单且经济,因此在RAG系统优化过程是得优先考虑去优化的参数。
AI大模型学习福利
作为一名热心肠的互联网老兵,我决定把宝贵的AI知识分享给大家。 至于能学习到多少就看你的学习毅力和能力了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
一、全套AGI大模型学习路线
AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!
因篇幅有限,仅展示部分资料,需要点击文章最下方名片即可前往获取
二、640套AI大模型报告合集
这套具备640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。
因篇幅有限,仅展示部分资料,需要点击文章最下方名片即可前往获
三、AI大模型经典PDF籍
随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。
因篇幅有限,仅展示部分资料,需要点击文章最下方名片即可前往获
四、AI大模型商业化落地方案
因篇幅有限,仅展示部分资料,需要点击文章最下方名片即可前往获
作为普通人,入局大模型时代需要持续学习和实践,不断提高自己的技能和认知水平,同时也需要有责任感和伦理意识,为人工智能的健康发展贡献力量
AI大模型学习福利
作为一名热心肠的互联网老兵,我决定把宝贵的AI知识分享给大家。 至于能学习到多少就看你的学习毅力和能力了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
一、全套AGI大模型学习路线
AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!
因篇幅有限,仅展示部分资料,需要点击文章最下方名片即可前往获取
二、640套AI大模型报告合集
这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您给出宝贵的信息和启示。
因篇幅有限,仅展示部分资料,需要点击文章最下方名片即可前往获
三、AI大模型经典PDF籍
随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。
因篇幅有限,仅展示部分资料,需要点击文章最下方名片即可前往获
四、AI大模型商业化落地方案
因篇幅有限,仅展示部分资料,需要点击文章最下方名片即可前往获
作为普通人,入局大模型时代需要持续学习和实践,不断提高自己的技能和认知水平,同时也需要有责任感和伦理意识,为人工智能的健康发展贡献力量