AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


【深入浅出RAG】结合LlamaCloud优化Chunksize
发布日期:2024-09-07 07:28:30 浏览次数: 1664 来源:AI模数师





在检索增强生成(RAG)系统中,分块大小的选择可以显著影响检索的准确性和系统的整体性能。然而,传统上尝试不同的分块大小一直是一个耗时的过程。本文探讨了分块大小优化相关的挑战,并介绍了LlamaCloud的功能,这些功能有助于简化这一过程。

Chunksize实验

许多开发者已经找到了在RAG流水线中试验检索参数和提示的方法——调整top-k和问答提示是相对直接的任务,当然对性能有影响。

在索引阶段试验参数,如分块,同样重要,但更难实现。索引实验提出了几个技术挑战:

  1. 重新索引开销:更改分块大小通常需要重新索引整个数据集,这在计算上昂贵且耗时,特别是对于大型数据集。

  2. 存储效率低下:维护具有不同分块大小的多个索引数据版本可能导致显著的存储开销。

  3. 可见性有限:没有适当的工具,很难可视化文档是如何被分块的,以及这如何影响检索质量。

这些因素使得在Jupyter笔记本中的即席流水线设置中尝试分块变得令人烦恼。大多数实验和可见性工具主要关注查询时的跟踪,而不是数据可见性。因此,我们注意到开发者尽管知道它对最终性能的影响,但仍然不愿意尝试分块。

LlamaCloud的分块大小优化方法

LlamaCloud是一个为开发者提供易于设置和迭代非结构化数据上RAG流水线的企业级平台。它提供了一系列功能,旨在简化分块大小实验的过程:

  • 索引克隆:快速创建具有不同分块配置的索引副本。

  • 分块可视化:允许直接检查文档是如何分块的,以及它如何影响检索。

  • 高效迭代:在不需要手动数据存储管理或复杂的重新索引过程的情况下,测试不同的分块大小。

以下部分详细说明了如何使用这些功能来优化RAG流水线中的分块大小。

工作流程:使用LlamaCloud优化分块大小

下面我们详细说明一个示例用例,我们利用LlamaCloud的设置和实验功能,以即席的方式找到一个更好的分块配置来回答问题。这反映了用户行为,用户希望在运行更系统的评估之前,对他们知道完整答案的一些问题上进行RAG流水线的合理性检查。

  • 初始RAG流水线设置

首先,在LlamaCloud中创建初始索引。通过UI创建一个新的LlamaCloud索引并上传您的文档集(例如,三篇ICLR 2024的研究论文)。在“转换设置”中,选择“自动”并将分块大小设置为512个token作为基线。

  • 定义“黄金”问答对

找到一个您想要在这个数据上测试的示例问题。在这个例子中,我们想要尝试问的问题是:“描述SWE-bench的核心特性。”

您应该心中有一个黄金上下文。这里的答案直接在SWE-bench论文的第2.3节中找到,该节直接描述了SWE-bench的特性。

  • 基线配置测试通过Playground

现在您可以使用LlamaCloud playground来评估初始设置。导航到索引页面的“Playground”部分并点击“聊天”标签。这为您提供了一个完整的聊天UI,覆盖您的索引,具有中间步骤+响应流和引用。

输入上述问题。您会得到一个乍一看似乎合理的响应!响应描述了SWE-Bench代表现实世界软件工程任务,可以持续更新等。

但是您会注意到最后两节缺失了——“跨上下文代码编辑”和“广泛的可能解决方案范围”。

  • 分块检查

由于答案部分正确,我们可能会假设分块导致相关上下文被拆分。访问检索UI以查看检索到的分块及其来源。使用“在文件中查看”功能来检查源文档是如何被解析和分块的。您可能会观察到相关信息被分割成多个分块,可能影响检索质量。

  • 分块大小迭代

要测试另一种分块策略,请使用索引页面上的“复制”按钮来复制您的索引。在新索引中,选择“编辑”以修改分块参数。切换到“手动”模式,将“分割配置”设置为“页面”,并将“分块配置”模式设置为“无”。应用这些更改以启动具有更新设置的新索引运行。

  • 结果比较

在新索引上执行相同的查询并比较结果。您应该观察到一个更全面的反应,更好地捕捉到SWE-bench特性的完整上下文。

尽管本文描述的即席实验过程提供了一种快速迭代分块大小的方法,但重要的是要认识到这只是优化您的RAG流水线的开始。以下是一些建议的下一步,以进一步完善您的系统:

1. 系统评估:开发一个更结构化的评估框架。这可能涉及创建一组具有已知正确答案的测试查询,并系统地比较不同分块大小在相关性、连贯性和事实准确性等各种指标上的性能。我们有一组出色的可见性和评估合作伙伴可以帮助您开始,包括LlamaTrace(由Arize)、Traceloop和Langfuse。

2. 自动化测试:实施可以每次更改分块策略时运行的自动化测试。这可以帮助您快速确定新配置是否提高了或降低了性能。

3. 微调检索参数:一旦找到了一个有效的分块策略,尝试其他检索参数,如检索到的分块数量、重新排名策略或混合搜索方法。

4. 特定领域的优化:考虑您的特定文档和用例的性质如何影响最佳分块大小。技术文档、叙述文本和结构化数据可能都受益于不同的分块策略。

5. 监控和持续改进:为您的生产RAG系统设置监控,以跟踪关键性能指标随时间的变化。使用这些数据来指导持续的优化工作。

通过结合LlamaCloud的快速迭代能力以及这些更系统的方法,您可以创建一个强大、高性能的RAG流水线,满足您的特定需求。


53AI,企业落地应用大模型首选服务商

产品:大模型应用平台+智能体定制开发+落地咨询服务

承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

与创始人交个朋友

回到顶部

 
扫码咨询