AIGC宇宙 AIGC宇宙

RAG 中文本分块全攻略,这个项目让效率狂飙

在构建 Retrieval-Augmented Generation(RAG)系统时,文本分块作为关键前置环节,其质量直接影响检索精度与生成内容的相关性。 今天给大家推荐一个自己近期整理的项目 ——Awesome-Chunker,一站式聚合并复现了当下主流的文本分块技术,从经典方法到前沿算法应有尽有,助你在 RAG 开发中少走弯路! 1、项目核心价值 让分块不再是难题在 RAG 任务的探索之路上,相信不少研究者都和我一样,为寻找一个能系统提升分块质量的项目而苦恼。

RAG 中文本分块全攻略,这个项目让效率狂飙

在构建 Retrieval-Augmented Generation(RAG)系统时,文本分块作为关键前置环节,其质量直接影响检索精度与生成内容的相关性。今天给大家推荐一个自己近期整理的项目 ——Awesome-Chunker,一站式聚合并复现了当下主流的文本分块技术,从经典方法到前沿算法应有尽有,助你在 RAG 开发中少走弯路!

1、项目核心价值 

让分块不再是难题

在 RAG 任务的探索之路上,相信不少研究者都和我一样,为寻找一个能系统提升分块质量的项目而苦恼。各种解决方案零散琐碎,难以满足从基础到前沿的全流程需求。于是,索性亲手复现并精心整理出 Awesome-Chunker 这个项目。

Awesome-Chunker 的目标十分明确:为 RAG 研究者打造一个全面的文本分块资源库。不管你是想了解基础的字符分块逻辑,还是探索基于大模型的语义分块技术,在这里都能找到对应的学术原理、算法解析和代码实现。项目不仅整合了多种分块方法,还贴心地提供了模型下载和环境配置指南,让小伙伴们能快速上手实践。

2、已实现的分块方案

经典分块:稳扎稳打的基础方案

经典分块方法就基于字符、文档类型等基础维度进行分块,简单高效且实用性强。

字符分割:支持手动设定固定字符长度分割,也集成了 LangChain 的 CharacterTextSplitter 和 Llama Index 的 SentenceSplitter,满足不同场景下的字符级分块需求,代码都在 classic_chunker/character_splitting.py 中。

文档特定分割:针对 Markdown、Python、JavaScript 等不同类型文档,有专门的分割策略,代码位于 classic_chunker/document_specific_splitting.py。

递归字符文本分割:利用 LangChain 的 RecursiveCharacterTextSplitter,基于不同分隔符层级进行递归分割,让分块更符合文本结构,代码在 classic_chunker/recursive_character_text_splitting.py。

基于Sentence Transformer语义分块

语义分块是提升 RAG 效果的关键一环,它基于语义相似度对文本块进行聚类和合并。核心代码在 semantic_chunker/core.py,其中 sentence_order.py 保持句子顺序不变,sentence_disorder.py 则通过语义聚类重新组织,

Dense X Retrieval:以命题为单位的检索革新

该方法提出以 “命题” 作为新的搜索单元,颠覆了传统分块粒度。基于 Dense X Retrieval 论文的分块方法,在 dense_x_retrieval/dense_x_retrieval.py 提供了简单运行示例。方法的详细说明可查看 dense_x_retrieval/doc 相关文档。

LumberChunker:大模型驱动的动态分块

LumberChunker 借助大语言模型的理解能力,通过迭代提示 LLM 来识别内容转换点,将文档动态分割为语义独立的块。示例代码在 LumberChunker/Code 文件夹下,算法详细解读在 LumberChunker/doc 中。

Meta-Chunking:介于句子与段落间的逻辑纽带

Meta-chunking 文本分块方法是一种通过句子之间的困惑度动态调整窗口大小并结合语义理解来实现更精准文本分段的技术,能有效处理不同长度文本的语义单元划分。

完整代码在Meta-Chunking文件夹,算法详细解读在Meta-Chunking/doc中。

3、邀你一起共建

文本分块技术仍在不断发展,Awesome-Chunker 期待更多开发者加入共建,分享更多优质的分块方法、优化思路或使用经验。如果你在 RAG 任务中遇到分块难题,不妨试试这个项目,或许能找到意想不到的解决方案。

现在就点击链接(https://github.com/jinbo0906/Awesome-Chunker)star 项目,让我们一起在 RAG 的世界里,用更智能的分块技术,解锁更强大的RAG能力!

相关资讯

企业实施RAG过程中:常见误解与澄清,内含项目升级预告

春节之后的一个月的时间内,微信和小红书上数了下大概有 150 多个过来咨询 RAG 在企业落地的网友,一路聊下来按照对方的诉求大概分为三类,第一种是最多的就是年后返工公司领导让落地 RAG,但是一时没有头绪的过来咨询的;第二种是看过我公众号上的相关案例后,想外包给我来做具体实施的;第三种有点出乎意料的是,相关的媒体来交流行业观察的。 第一种类型也是最开始比较多的,最初我也是问啥答啥,但是大概聊了五六个之后发现情况有点不对,大部分其实是比较基础的问题,或者我认为问大模型能比问我更快扫盲的,再加上后来确实肉眼可见的人在变多,我索性和每个人说如果是咨询的话 200 块每小时(现在涨到了 500),这样就大部分人就索性不问了,虽说前后也是有十几个人很干脆的问完问题后直接发了红包,不过不得不说收费确实是个很好的互相筛选。 以上是碎碎念,言归正传,这篇给大家介绍下我目前几个项目实践踩坑过程中总结出的些经验。
3/4/2025 10:53:59 AM
韦东东

三种RAG部署方案:自购GPU硬件 vs 大模型一体机 vs 云端GPU

春节以后这一个半月,算了下我前后也做了 20 的企业知识库落地咨询,其中无论是线上还是线下,被问到最多的一个问题是:要快速落地本地部署的知识库,应该购买什么硬件? 要回答这个问题,其实需要明确很多前置定语,自购 GPU 硬件、大模型一体机、以及选择云端 GPU 都有各自适用的情形。 这篇试图说清楚三种部署方式的主要特点对比,并在文末给些选择建议参考。
3/24/2025 1:17:11 PM
韦东东

RAG系列:问题优化 - 意图识别&同义改写&多视角分解&补充上下文

在实际业务场景中,知识库不会只有单一领域的知识,可能会存在多个领域的知识,如果对用户问题不提前做领域区分,在对基于距离的向量数据库进行检索时,可能会检索出很多与用户问题不属于同一个领域的文档片段,这样的上下文会存在较多的噪音或者不准确的信息,从而影响最终的回答效果。 另一方面知识库中涵盖的知识表达形式也是有限的,但用户的提问方式却是千人千面的,用户遣词造句的方式以及描述问题的角度可能会与向量数据库中存储的文档片段存在差异,这就可能导致用户问题和知识库之间不能很好匹配,从而降低检索效果。 为了解决此问题,我们可以对用户问题进行查询增强,比如对用户问题进行意图识别、同义改写、多视角分解以及补充上下文,通过这几个查询增强方式来更好地匹配知识库中的文档片段,提升检索效果和回答效果。
5/27/2025 12:40:00 AM
燃哥讲AI
  • 1