RAG(检索增强生成)应用程序的最佳块大小取决于平衡上下文保留、检索准确性和计算效率。 没有通用的值,但常见的做法是建议块大小在 128-512 个 token 之间。 较小的块(例如,128-256 个 token)适用于基于事实的查询,其中精确的关键字匹配很重要,而较大的块(256-512 个 token)更适合需要更广泛上下文的任务,例如总结概念。 选择取决于您的数据类型、模型约束和查询复杂性。 例如,基于 BERT 的检索器最多可以处理 512 个 token,因此块大小必须在此限制范围内,同时保留有意义的上下文。
应用程序需求会严重影响块大小。 对于技术文档,较大的块(400-500 个 token)可能会捕获复杂的细节,例如完整的 API 方法描述,包括参数和示例。 相反,客户支持日志可能会使用较小的块(150-250 个 token)来隔离特定问题,例如用户的错误消息和已解决的解决方案。 诸如滑动窗口(重叠块)或分层拆分(将相关段落分组)之类的预处理策略可以缓解碎片化。 例如,将一篇研究论文分成 300 个 token 的章节,并有 50 个 token 的重叠,可以确保方法论和结果相关的块之间的连续性。 始终将分块与检索器处理文本的方式对齐 - 密集向量嵌入偏爱连贯的段落,而稀疏检索器可能容忍更短、富含关键字的片段。
测试至关重要。 从基线(例如,256 个 token)开始,并使用诸如命中率(检索到正确块的频率)或生成器的答案质量之类的指标来评估检索性能。 例如,如果有关“框架 Y 中的错误 X”的查询返回不完整的块,请将大小增加到 384 个 token,以包括故障排除步骤。 诸如 LangChain 的文本拆分器或基于自定义 regex 的分块器之类的工具使您可以试验大小和重叠。 如果较大的块导致延迟峰值,请考虑混合方法:首先检索较小的块,然后动态扩展上下文。 根据特定领域的需求进行迭代 - 法律 RAG 应用程序可能会优先考虑较大的块以获取合同条款上下文,而聊天机器人可以使用较小的块以获得更快的回复。 目标是在不丢失基本信息的情况下最大程度地减少噪声。