引言
在检索增强生成(RAG)系统中,分块策略是决定系统性能的基石。本文基于 2023 - 2025 年最新研究成果,深度剖析 12 种分块方法的实现原理,并通过 Python 代码演示其应用场景。
大家好,我是大 F,深耕AI算法十余年,互联网大厂技术岗。
知行合一,不写水文,喜欢可关注,分享AI算法干货、技术心得。
欢迎关注《大模型理论和实战》、《DeepSeek技术解析和实战》,一起探索技术的无限可能!【大模型篇】更多阅读:
【大模型篇】万字长文从OpenAI到DeepSeek:大模型发展趋势及原理解读
【大模型篇】目前主流 AI 大模型体系全解析:架构、特点与应用
【大模型篇 】 Grok-3 与 DeepSeek 的技术架构与性能分析
【大模型篇】速读版DeepSeek核心技术解密:与 GPT-4、Claude、LLaMA 技术路线差异对比分析
一、为什么需要分块?
1.1 上下文窗口限制
RAG 模型中的检索部分会从文档库中检索与用户查询相关的文本块,这些文本块将作为上下文输入到生成模型中。然而,生成模型(如大型语言模型,LLM)的上下文窗口是有限的,这意味着它能够处理的输入文本长度是有限制的。例如,许多 LLM 的上下文窗口最多只能容纳 2048 个令牌(tokens)。如果检索到的文本块过大,超出了这个限制,就无法完整地输入到生成模型中,从而可能导致生成的响应不准确或不完整。通过将文档分块,可以确保每个块的大小都在生成模型的上下文窗口范围内,从而使模型能够有效地处理和生成高质量的响应。
大型语言模型(LLM)存在严格的 Token 限制:
- GPT - 4:32K Token
- Claude 3:200K Token
- Gemini 1.5:1M Token
尽管上下文窗口持续扩大,但处理 100 页以上的文档仍需要分块机制。以 1M Token 的 Gemini 1.5 为例:
- 单 Token ≈ 0.75 个英文单词
- 1M Token ≈ 75 万单词 ≈ 750 页 A4 纸
实际业