15 种高级 RAG 技术大比拼,值得收藏!

部署运行你感兴趣的模型镜像

检索增强生成(Retrieval-Augmented Generation,简称RAG)的效果在很大程度上取决于我们对数据的分块方式。若想让大语言模型(LLM)检索到真正有意义的上下文,就必须精心设计数据分块策略

以下是15种核心的分块策略,每种策略均配有详细解析、真实案例和可落地的分块方案。

1. 逐行分块法(Line-by-Line Chunking)

原理

以每一行作为分块边界,每行独立成为一个分块

适用场景

  • 聊天记录、文字转录稿等每行代表一个完整想法的数据

  • 典型用途:客服聊天记录、访谈问答、即时通讯内容

示例输入

Alice: Hey Bob, are you free for a call at 3 PM today?
Bob: Sure, Alice. Do you want to discuss the project updates?
Alice: Yes, and we need to talk about the client meeting.
Bob: Sounds good! See you at 3.

分块输出

分块1: Alice: Hey Bob, are you free for a call at 3 PM today?

分块2: Bob: Sure, Alice. Do you want to discuss the project updates?

分块3: Alice: Yes, and we need to talk about the client meeting.

分块4: Bob: Sounds good! See you at 3.

优势与注意事项

  • 每条信息都是独立的上下文,逻辑清晰。

  • 支持精细化检索——LLM可精准获取对应的问答对。

  • 提升:若单行内容过短,LLM可能因上下文不足而产生幻觉(输出虚假信息)。

2. 定长分块法(Fixed-Size Chunking)

原理

将文本按固定的字数或字符数拆分,不考虑内容的语义逻辑。

适用场景

  • 结构混乱的非结构化文本。

  • 典型用途:OCR识别结果、网页爬取的原始文本、老旧扫描文档。

示例输入

Python is a high-level, interpreted programming language. Its simple syntax and dynamic typing make it popular for rapid application development and scripting. Python supports multiple programming paradigms, including structured, object-oriented, and functional programming. It is widely used for web development, data analysis, AI, scientific computing, and more.

假设固定大小 = 20个单词/字

分块输出

分块1: Python is a high-level, interpreted programming language. Its simple syntax and dynamic typing make it popular for rapid application development

分块2: and scripting. Python supports multiple programming paradigms, including structured, object-oriented, and functional programming. It is widely used

分块3: for web development, data analysis, AI, scientific computing, and more.

优势与注意事项

  • 确保分块大小统一,便于批量处理。

  • 可能割裂完整句子或语义单元,影响LLM对内容的理解。

  • 提示:仅适用于无结构文本,且需根据LLM的token限制调整分块大小。

3. 滑动窗口分块法(Sliding Window Chunking)

原理

通过设定固定字数/token重叠区域来拆分文本,以保留上下文连贯性。

适用场景

  • 语义逻辑跨文本边界的内容(如长句、连续论述)。

  • 典型用途:叙事类文本、法律文件、技术文档。

示例输入

Machine learning models require large datasets for training. The quality and quantity of data significantly affect model performance. Data preprocessing involves cleaning and transforming raw data into usable input.Machine learning models require large datasets for training. The quality and quantity of data significantly affect model performance. Data preprocessing involves cleaning and transforming raw data into usable input.

假设窗口大小 = 15词,重叠 = 5词

分块输出

分块1: Machine learning models require large datasets for training. The quality and quantity of data

分块2: quantity of data significantly affect model performance. Data preprocessing involves cleaning and transforming

分块3: transforming raw data into usable input.

优势与注意事项

  • 保持内容连贯性,避免检索时丢失边界处的上下文信息。

  • 分块间存在重叠,会产生一定冗余(增加存储成本,但为保留上下文值得投入)。

4. 句子分块法(Sentence-Based Chunking)

原理

以句子为单位拆分,每个句子独立成为一个分块。

适用场景

  • 格式规范、结构清晰的书面文本。

  • 典型用途:文章、技术文档、教科书。

示例输入

Deep learning has transformed many fields of technology. Neural networks can now outperform humans in image recognition. Training these models requires substantial computational resources.

分块输出

分块1: Deep learning has transformed many fields of technology.

分块2: Neural networks can now outperform humans in image recognition.

分块3: Training these models requires substantial computational resources.

优势与注意事项

  • 每个分块聚焦一个核心观点,语义明确。

  • 便于LLM重新组合上下文信息。

  • 风险:部分句子可能过短或上下文不足,此时可将2-3个句子合并为一个分块。

5. 段落分块法(Paragraph Chunking)

原理

以段落为单位拆分,每个段落独立成为一个分块。

适用场景

  • 格式规范的文档、博客文章、散文。

  • 每个段落围绕单一主题或观点展开的文本。

示例输入

Data science combines domain expertise, programming skills, and knowledge of mathematics and statistics to extract meaningful insights from data.
It's an interdisciplinary field that uses techniques from computer science, statistics, machine learning, and data visualization to solve complex problems.
Data scientists work with large datasets to identify trends, make predictions, and drive strategic decisions.

分块输出

分块1: Data science combines domain expertise, programming skills, and knowledge of mathematics and statistics to extract meaningful insights from data.

分块2: It's an interdisciplinary field that uses techniques from computer science, statistics, machine learning, and data visualization to solve complex problems.

分块3: Data scientists work with large datasets to identify trends, make predictions, and drive strategic decisions.

优势

  • 保持逻辑连贯与上下文衔接

  • 适合检索“完整思想单元”(如段落级别的观点阐述)

6. 页面分块法(Page-Based Chunking)

原理

以分页文档的“页”为单位拆分,每一页独立成为一个分块。

适用场景

  • PDF文件、书籍、扫描文档、法律合同。

  • 需要按页码引用内容的场景。

示例输入

第1页

第1节:RAG简介
检索增强生成(RAG)系统将大语言模型(LLM)与信息检索技术相结合。RAG能提升事实准确性,并扩展模型的知识范围,突破训练数据的限制。

第2页

第2节:RAG架构
RAG的核心组件包括检索器(用于获取相关文档)和生成器(基于检索到的上下文合成答案)。

分块输出

分块1(第1页):第1节:RAG简介
检索增强生成(RAG)系统将大语言模型(LLM)与信息检索技术相结合。RAG能提升事实准确性,并扩展模型的知识范围,突破训练数据的限制。

分块2(第2页):第2节:RAG架构
RAG的核心组件包括检索器(用于获取相关文档)和生成器(基于检索到的上下文合成答案)。

优势

  • 当页面结构具有重要意义时(如法律证据、合同条款、教科书引用),此方法必不可少。

7. 基于章节或标题的分块(Section or Heading-Based Chunking)

原理

以标题/章节为边界拆分(如H1/H2层级标题,或“## 章节标题”格式),每个章节独立成为一个分块。

适用场景

  • 具有清晰逻辑章节结构的文档。

  • 典型用途:技术文档、书籍、白皮书。

示例输入

# 引言
检索增强生成(RAG)允许语言模型利用外部信息提升答案质量。
# RAG的工作原理
RAG首先检索相关文档,然后结合用户查询和上下文生成响应。
# RAG的优势
RAG能提升事实准确性,并支持使用私有或实时更新的数据。

分块输出

分块1:# 引言
检索增强生成(RAG)允许语言模型利用外部信息提升答案质量。

分块2:# RAG的工作原理
RAG首先检索相关文档,然后结合用户查询和上下文生成响应。

分块3:# RAG的优势
RAG能提升事实准确性,并支持使用私有或实时更新的数据。

优势

  • 分块与文本的自然主题边界完全匹配,提升检索准确性。

  • 用户检索时可获取完整的主题/章节内容。

8. 基于关键词的分块(Keyword-Based Chunking)

原理

以特定关键词(如“步骤”“诊断”“备注”)为触发点拆分文本。

适用场景

  • 表单、日志、包含重复关键词的技术说明。

  • 典型用途:医疗记录、分步指南。

示例输入

诊断:急性支气管炎。
症状:持续咳嗽、轻微发热、胸部不适。
处方:阿莫西林500毫克,每日三次,连续服用7天。
备注:建议患者休息并补充水分。

关键词:“备注:”

分块输出

分块1:诊断:急性支气管炎。
症状:持续咳嗽、轻微发热、胸部不适。
处方:阿莫西林500毫克,每日三次,连续服用7天。

分块2:备注:建议患者休息并补充水分。

优势

  • 将相关信息聚合(如“备注:”之前的内容均为医疗核心信息)。

  • 完美适配结构化记录的分块需求。

9. 基于实体的分块(Entity-Based Chunking)

原理

利用命名实体识别(Named Entity Recognition,简称NER)技术,将包含同一实体(如人物、组织、产品)的句子/段落归为一个分块。

适用场景

  • 新闻、法律文档、产品评论(需重点关注实体相关信息的场景)。

示例输入

苹果公司在年度活动上发布了新款iPhone。库克展示了多项新功能,重点包括相机升级和续航提升。与此同时,三星据传将于下月推出一款竞争产品。

NER识别出的实体:“苹果公司”“库克”“三星”

分块输出

分块1:苹果公司在年度活动上发布了新款iPhone。库克展示了多项新功能,重点包括相机升级和续航提升。

分块2:与此同时,三星据传将于下月推出一款竞争产品。

优势

  • 支持“基于实体的检索”——例如,若用户提问“苹果公司发布了什么?”,LLM可直接调取所有包含“苹果公司”的分块。

10. 基于Token的分块(Token-Based Chunking)

原理

按Token数量(LLM的处理单元,非单纯单词)拆分文本。

适用场景

  • LLM上下文窗口有限的情况(如上下文长度限制为1024、2048个Token)。

示例输入

The rapid growth of generative AI has created a surge in applications for chatbots, document summarization, and data extraction. As models get larger, they require more memory and computation, but also open up new possibilities for automation across industries. Organizations are exploring hybrid systems that combine classic algorithms with large language models for improved performance and cost efficiency.

假设每个分块 = 25个Token(模拟说明:约10个单词对应10个Token,此处为避免拆分句子,按句子边界调整分块)

分块输出

分块1: The rapid growth of generative AI has created a surge in applications for chatbots, document summarization, and data extraction.

分块2: As models get larger, they require more memory and computation, but also open up new possibilities for automation across industries.

分块3: Organizations are exploring hybrid systems that combine classic algorithms with large language models for improved performance and cost efficiency.

优势

  • 精准控制模型输入大小,避免因Token超限导致的截断错误。

  • 适用于API驱动的应用场景(多数LLM API有明确的Token限制)。

11. 表格分块(Table Chunking)

原理

将每个表格单独提取为一个分块(可选择按行拆分或保留完整表格)。

适用场景

  • 包含表格的文档,如发票、财务报告、学术论文。

示例输入

表1:季度收入
| 季度   | 收入(美元) |
|--------|--------------|
| 2024年Q1 | 100万美元    |
| 2024年Q2 | 120万美元    |

该公司实现了稳定增长,Q2季度增长尤为明显。

分块输出

分块1:表1:季度收入
| 季度   | 收入(美元) |
|--------|--------------|
| 2024年Q1 | 100万美元    |
| 2024年Q2 | 120万美元    |

分块2:该公司实现了稳定增长,Q2季度增长尤为明显。

优势

  • 表格可作为结构化数据单独处理,便于后续解析。

  • 检索时可精准响应特定问题,例如“2024年Q2的收入是多少?”(直接调取表格分块)。

12. 递归分块(Recursive Chunking)

原理

从大粒度(如段落或章节)开始拆分,若分块超出预设大小,则进一步按更小粒度(如句子、单词)拆分,直至所有分块符合大小要求。

适用场景

  • 冗长且结构松散的文本,如转录稿、访谈记录、段落长度不均的文档。

示例输入

访谈转录稿:
最开始,我们主要关注用户体验。我们做了多次调研、收集反馈,并快速迭代优化。

后来,随着产品成熟,我们开始解决可扩展性和基础设施问题。这个阶段难度更大,因为我们需要在扩展的同时保证系统可用性。

假设分块大小上限 = 20个字

分块步骤

  1. 第一步:按段落拆分

  • 段落1:“最开始,我们主要关注用户体验。我们做了多次调研、收集反馈,并快速迭代优化。”

  • 段落2:“后来,随着产品成熟,我们开始解决可扩展性和基础设施问题。这个阶段难度更大,因为我们需要在扩展的同时保证系统可用性。”

  • 第二步:段落仍超出大小限制 → 按句子拆分

  • 分块输出

    分块1:最开始,我们主要关注用户体验。
    
    分块2:我们做了多次调研、收集反馈,并快速迭代优化。
    
    分块3:后来,随着产品成熟,我们开始解决可扩展性和基础设施问题。
    
    分块4:这个阶段难度更大,因为我们需要在扩展的同时保证系统可用性。

    优势

    • 确保所有分块均符合系统的大小限制,避免超限问题。

    13. 语义分块(Semantic Chunking)

    原理

    利用嵌入(embedding)技术或AI模型,将讨论同一主题的句子/段落归为一个分块。

    适用场景

    • 包含多个主题的混合数据,如客服工单、问答文档、常见问题(FAQ)。

    示例输入

    问:如何重置密码?
    答:进入登录页面,点击“忘记密码”即可。
    问:如何修改邮箱地址?
    答:访问个人资料设置,输入新邮箱即可。
    问:退款政策是什么?
    答:购买后30天内可申请退款。

    假设语义模型识别出“账户管理”和“支付相关”两个主题。

    分块输出

    分块1:问:如何重置密码?
    答:进入登录页面,点击“忘记密码”即可。
    问:如何修改邮箱地址?
    答:访问个人资料设置,输入新邮箱即可。
    
    分块2:问:退款政策是什么?
    答:购买后30天内可申请退款。

    优势

    • 支持“基于用户意图的检索”,可获取所有相关答案。

    • 减少检索时的上下文缺失和幻觉问题。

    14. 层级分块(Hierarchical Chunking)

    原理:多级分块,先按章节拆分,再按小节拆分,之后按段落拆分,以此类推。

    适用场景

    • 篇幅较长且结构完整的文本(如书籍、技术文档、法律法规)。

    示例输入

    第1章:引言  
    
    1.1节:什么是RAG?  
    检索增强生成(Retrieval-Augmented Generation,简称RAG)将大语言模型(LLMs)与外部数据源相结合,以提供最新的答案。
    
    1.2节:为何使用RAG?  
    RAG能扩展模型能力、提升事实准确性,并支持处理私有或动态信息。

    分块输出

    分块1:第1章:引言
    
    分块2:1.1节:什么是RAG?  
    检索增强生成(Retrieval-Augmented Generation,简称RAG)将大语言模型(LLMs)与外部数据源相结合,以提供最新的答案。
    
    分块3:1.2节:为何使用RAG?  
    RAG能扩展模型能力、提升事实准确性,并支持处理私有或动态信息。

    优势

    • 可让RAG系统灵活检索不同粒度的信息,既支持获取宽泛的(章节级)内容,也能精准调取详细的(小节级)信息。

    15. 内容类型感知分块(Content-Type Aware Chunking)

    原理:针对表格、列表、图片和纯文本等不同内容类型,采用差异化的分块策略。

    适用场景

    • 包含混合内容的文档(如PDF文件、研究论文、报告)。

    示例输入

    摘要:  
    本研究探讨了适用于RAG流程的分块策略。结果表明,分块方法会对答案质量产生影响。
    
    表1:测试结果
    | 分块方法       | 准确率 |
    |----------------|--------------------|
    | 基于句子(Sentence-based) | 85%                |
    | 滑动窗口(Sliding window) | 90%                |
    
    图1:流程示意图

    分块输出

    分块1:摘要:  
    本研究探讨了适用于RAG流程的分块策略。结果表明,分块方法会对答案质量产生影响。
    
    分块2:表1:测试结果
    | 分块方法       | 准确率 |
    |----------------|--------------------|
    | 基于句子(Sentence-based) | 85%                |
    | 滑动窗口(Sliding window) | 90%                |
    
    分块3:图1:流程示意图

    优势

    • 确保检索时不会混淆表格、文本和图片等不同类型的内容。

    • 支持针对性检索,例如可精准响应“显示结果表格”或“调取摘要”等需求。

    总结

    • 不存在适用于所有数据的“万能分块策略”

    • 根据文档格式、使用场景和用户提问方式选择分块方法

    • 用真实数据测试,务必检查大模型输出是否存在上下文偏移和幻觉

    作者:Tarun Singh

    翻译:Muyiy

    来源:https:/medium.com/towards-artificial-intelligence/15-rag-chunking-techniques-every-ai-engineer-should-know-adc48fee9389

    -END -

    如果您关注前端+AI 相关领域可以扫码进群交流

    添加小编微信进群😊

    关于奇舞团

    奇舞团是 360 集团最大的大前端团队,非常重视人才培养,有工程师、讲师、翻译官、业务接口人、团队 Leader 等多种发展方向供员工选择,并辅以提供相应的技术力、专业力、通用力、领导力等培训课程。奇舞团以开放和求贤的心态欢迎各种优秀人才关注和加入奇舞团。

您可能感兴趣的与本文相关的镜像

Stable-Diffusion-3.5

Stable-Diffusion-3.5

图片生成
Stable-Diffusion

Stable Diffusion 3.5 (SD 3.5) 是由 Stability AI 推出的新一代文本到图像生成模型,相比 3.0 版本,它提升了图像质量、运行速度和硬件效率

内容概要:本文围绕“基于数据驱动的 Koopman 算子的递归神经网络模型线性化,用于纳米定位系统的预测控制研究”展开,提出了一种结合Koopman算子理论与递归神经网络(RNN)的数据驱动建模方法,旨在对非线性纳米定位系统进行有效线性化建模,并实现高精度的模型预测控制(MPC)。该方法利用Koopman算子将非线性系统映射到高维线性空间,通过递归神经网络学习系统的动态演化规律,构建可解释性强、计算效率高的线性化模型,进而提升预测控制在复杂不确定性环境下的鲁棒性与跟踪精度。文中给出了完整的Matlab代码实现,涵盖数据预处理、网络训练、模型验证与MPC控制器设计等环节,具有较强的基于数据驱动的 Koopman 算子的递归神经网络模型线性化,用于纳米定位系统的预测控制研究(Matlab代码实现)可复现性和工程应用价值。; 适合人群:具备一定控制理论基础和Matlab编程能力的研究生、科研人员及自动化、精密仪器、机器人等方向的工程技术人员。; 使用场景及目标:①解决高精度纳米定位系统中非线性动态响应带来的控制难题;②实现复杂机电系统的数据驱动建模与预测控制一体化设计;③为非线性系统控制提供一种可替代传统机理建模的有效工具。; 阅读建议:建议结合提供的Matlab代码逐模块分析实现流程,重点关注Koopman观测矩阵构造、RNN网络结构设计与MPC控制器耦合机制,同时可通过替换实际系统数据进行迁移验证,深化对数据驱动控制方法的理解与应用能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值