同样是做 RAG,有些人效果显著,有些人却表现不佳,这很可能与所采用的分块策略有关。
所谓分块策略,是指将一个大文本切割为“小块”的策略。这些“小块”可以是段落、句子、词组或受token限制的片段。好的分块策略具有极强的内聚性和语义上下文完整性,能够在很大程度上优化索引增强生成(RAG)的性能。
既然分块策略如此重要,那么我们有必要了解一下常见的分块策略。
1.固定大小分块策略
图1
根据预先定义的字符数或token数将文本进行切分,在切分中为了保留各块间关系,快之间会保留一些重叠部分。
图2
这种切分方法的优势包括实现简单,处理速度快,不依赖复杂模型;缺点包括可能破坏语义完整性。
2.语义分块策略
图3
根据文本的语义相似度进行切分,确保每个切分块内主题高度相关。例如一句一句地进行Embedding后,然后逐句计算当前句子与下一句的Emdedding相似度,相似度低于某个阈值时进行切分。
这种切分方法的优点是每个切分块内的语句在逻辑上都很连贯,相关性强,特别适合处理主题跳跃较多的文档;缺点是计算成本高,处理速度较慢。
3.基于递归分块策略
图4
从大到小拆分,满足限制条件停止。例如先按照段落拆分,如果段落长度大于token限制,再将该段落按照句子拆分,如果句子长度依然大于token限制,直接以token限制为固定长度,拆分句子。
这种拆分方式的优点包括尽可能保留高级别的语义结构(段落->句子->片段),适应性强;缺点是实现较复杂,性能开销高于纯固定大小分块。
4.基于文档的分块策略
图5
利用文档本身的元数据和结构信息(如标题层级、表格、图片说明等)进行切分。例如,将一个一级标题下的所有内容作为一个拆分块,或者将每个表格作为一个拆分块。
这种拆分方式的优点包括完美贴合特定类型文档(如法律合同、学术论文、报告)的逻辑结构,信息组织性强;缺点包括高度依赖文档的结构性,也就是说对于普通文档适用性不强。
5.智能体分块策略
图6
根据Agent将要执行的具体任务来决定如何分块。Agent会先理解自己要执行的任务,然后自适应地从文档中提取和组织最相关的信息块。例如,任务是“总结”,那么可能提取关键论点;任务是“回答特定问题”,则可能精准定位相关证据。
这种切分方式的优点包括灵活性和针对性极高,能最大化任务效果;缺点包括实现复杂,通常需要强大的规划和推理能力,目前还不普及。
6.基于句子的分块策略(类似2)
图7
将文本切分成完整的句子,确保每个切分块都包含一个或多个完整的上下文。例如使用NLP工具(如NLTK,SpaCy)识别句子边界,然后将几个连续的句子组合成一个切分块。
这种切分方式的优点包括保证了基本的语义单元完整,避免了“半句话”问题;缺点包括句子长度差异可能导致切分块大小不均匀,多个句子组合时,仍需要确定最佳组合策略,这个组合策略确定起来不容易。
7.基于段落的分块策略
图8
通过提示符截取,将整个文本划分成多个段落,比较适合结构清晰的文档,例如保险条款、法律、论文等。
这种切分方式的优点包括自然分段,语义完整;缺点包括段落长度不一,可能超过token长度限制。
上面介绍了这么多切分方式,那么选择哪个呢?推荐段落分块->句子分块->递归分块->语义分块。
分块(阈值)如何确定?经验值大小为5121024,块之间的重叠率为10%15%。
最后,多使用递归分块和句子分块,语义分块还不太靠谱。
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
- 大模型 AI 能干什么?
- 大模型是怎样获得「智能」的?
- 用好 AI 的核心心法
- 大模型应用业务架构
- 大模型应用技术架构
- 代码示例:向 GPT-3.5 灌入新知识
- 提示工程的意义和核心思想
- Prompt 典型构成
- 指令调优方法论
- 思维链和思维树
- Prompt 攻击和防范
- …
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
- 为什么要做 RAG
- 搭建一个简单的 ChatPDF
- 检索的基础概念
- 什么是向量表示(Embeddings)
- 向量数据库与向量检索
- 基于向量检索的 RAG
- 搭建 RAG 系统的扩展知识
- 混合检索与 RAG-Fusion 简介
- 向量模型本地部署
- …
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
- 为什么要做 RAG
- 什么是模型
- 什么是模型训练
- 求解器 & 损失函数简介
- 小实验2:手写一个简单的神经网络并训练它
- 什么是训练/预训练/微调/轻量化微调
- Transformer结构简介
- 轻量化微调
- 实验数据集的构建
- …
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
- 硬件选型
- 带你了解全球大模型
- 使用国产大模型服务
- 搭建 OpenAI 代理
- 热身:基于阿里云 PAI 部署 Stable Diffusion
- 在本地计算机运行大模型
- 大模型的私有化部署
- 基于 vLLM 部署大模型
- 案例:如何优雅地在阿里云私有部署开源大模型
- 部署一套开源 LLM 项目
- 内容安全
- 互联网信息服务算法备案
- …
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。