引言
在检索增强生成(RAG)系统中,分块策略是决定系统性能的基石。本文基于 2023 - 2025 年最新研究成果,深度剖析 12 种分块方法的实现原理,并通过 Python 代码演示其应用场景。
一、为什么需要分块?
1.1 上下文窗口限制
RAG 模型中的检索部分会从文档库中检索与用户查询相关的文本块,这些文本块将作为上下文输入到生成模型中。然而,生成模型(如大型语言模型,LLM)的上下文窗口是有限的,这意味着它能够处理的输入文本长度是有限制的。例如,许多 LLM 的上下文窗口最多只能容纳 2048 个令牌(tokens)。如果检索到的文本块过大,超出了这个限制,就无法完整地输入到生成模型中,从而可能导致生成的响应不准确或不完整。通过将文档分块,可以确保每个块的大小都在生成模型的上下文窗口范围内,从而使模型能够有效地处理和生成高质量的响应。
大型语言模型(LLM)存在严格的 Token 限制&