图片由AI生成
在一些基于大模型和RAG结合的智能客服项目中,构建知识库是最重要的一环。
而知识库文档的文本解析和分割往往是限制智能客服回答用户问题精准度的关键技术要素。
通常,我们会采取“先粗颗粒按章节切分,再细颗粒按文本类型切分,图表类以‘标题+图片+上下文’为整体切割”的方向。
粗颗粒切分保障检索时快速定位大主题,细颗粒处理提升答案精准度,图表整体切割更避免关键信息碎片化。
但要想进一步提升问答精准性,我们还需要做更多关于分层切割与树形索引(类似Llama Index的Tree Index) ,来满足在这个业务场景下的更精细化的落地实现。
一、文档切分粗细颗粒度的不同处理方法
粗颗粒按章节切分时,需优先处理PDF结构化信息:不同文档常存在章节格式不统一问题,建议用PyPDF2、pdfplumber结合大纲提取功能,先梳理文档层级结构,再给每个粗颗粒块打“章节ID+主题关键词”标签(如“第3章-产品参数-粗块1”)。这一步能避免跨章节内容误切,让后续检索快速锁定目标章节范围,大幅提升定位效率。
还有个小技巧:结合文档本身的“标题结构”分块,比如先按“第X章”“## 小标题”这类标题把文档拆成大章节,再在每个章节里分表格和正文块。比如用Python的正则表达式(re库)匹配“## (.*?)”,就能找出所有二级标题,然后以标题为界,把每个标题下的内容归为一个大模块,再在模块里用前面说的分隔符分小块。
这样分出来的块会自带“上下文标签”,比如“第三章 销售数据 - 表格1:月度销量”,后续向量化时,这些标签能帮你更好地关联内容,检索时也更精准。如果在验证时发现第二种“信息关联性”比较差时,可以加上章节标签看看有没有帮助。
细颗粒按文本类型切分时,需先明确分类标准,推荐划分为正文段落、表格说明、公式注释、图表关联文本四类。切分核心原则是“保证同一语义单元不拆分”:若技术参数说明段落中穿插小图标,无需硬拆,将二者归为同一细颗粒块;仅当遇到独立表格或大图表时,再单独按类型切分。此举能避免颗粒过碎导致语义断裂,让LLM生成答案时更连贯。
图片处理是该场景的关键难点,一是图片无法直接文本检索,需用图像识别工具生成“文本描述”并加入块中,确保用户提问能匹配到图表块;二是明确上下文范围,建议取图片前后1-2段直接关联文本(如数据来源、结论说明),避免无关内容导致块内信息冗余,影响检索速度。
二、表格处理及校正方法
首先,针对问文档中的“大量表格”问题,可先做一步表格结构化提取,比如用pdfplumber(处理PDF)或python-docx(处理Word)这类轻量库,把文档里的表格单独拎出来,转成Markdown表格格式(用|分隔列、—分隔表头和内容)或者简单的CSV格式,这样表格的行列结构就固定了,后续分块不会把表格拆得七零八落。比如pdfplumber的代码只要几行,处理完表格后,再把表格和正文内容分开存放,避免混在一起分块导致表格信息破碎。
还有个容易被忽略的点:
表格和文本分开存储后,还需要处理“表格与正文的关联性”。比如表格后面跟着解释表格的正文,但分块后两者成了独立段落,平台不知道它们是配套的,检索时就容易脱节。
你可以在代码里加一步“表格-正文绑定”:比如提取完一个表格后,检查表格后面是否有正文(比如用代码判断表格结束后,下一段是不是以“如图所示”“由表可知”开头),如果有,就把“表格块+紧跟的1-2个正文块”合并成一个“组合块”,再加上统一标签(比如“【组合块:表格2-1 + 成本分析说明】”)。
这样既没破坏表格完整性,又把关联内容绑在一起,检索时能一次性返回配套信息,比分开的零散块实用多了。
然后,在代码处理阶段主动埋好精准分隔符,能刚好切在有意义的节点上。比如处理文档时,每处理完一个表格,就手动加一段固定标记,比如“=表格结束标识=”;每处理完一个完整的小节,就加“=小节结束标识=”,这样你在平台设置分隔符时,直接填这些你自己定义的标识,分块就会精准切在表格之间、小节之间,而不是把一个表格拆成两半,或者把一个完整段落拦腰截断。
在实践中,我们处理有表格内容的文档切片,还可能会遇到这样的问题:
“表格和文本没有分开储存,用代码进行的递归分块、表格分块、文档结构效果都不是很好,不知道是因为代码不好还是只能分块只能做到这了,因为其他分块策略比如父子分块,光靠代码实现不了,上传到平台后根本无法管理,就只能看到分块段落。”
要解决这个问题,可以先通过“导块自检”找到具体是“表格碎了”“章节不关联”还是“检索有干扰”,再针对性修改。
比如定位到是表格碎了,就加表格免拆分判断;定位到是章节不关联,就加双标签;定位到检索不准,就清冗余信息。
最后再拿一个小片段(比如1个碎掉的表格+对应章节正文)测试调整后的效果,不用每次都处理全部文档,这样既省资源,也能快速看到优化变化,可能会比盲目试策略更高效。
三、分块问题与批量文档的高效验证方法
做完上面说的这些工作后,可以通过一些方式进行效果验证,便于判断当前核心问题在哪里。
比如先把分好的块导出来(用Python写个小功能存成TXT),逐块看两个点:
一是“信息完整性”:表格是不是整的?正文是不是一个完整的观点/段落?如果不是,就先调代码里的“分块触发条件”(比如递归分块的“最小字数阈值”调大,比如从100字调到150字,避免把短表格/短段落拆了);
二是“信息关联性”:同一个章节的表格和正文,是不是能通过内容或标记对应上?如果对应不上,就考虑在切块时加上“章节标记”。
如果你在验证的过程中发现,分块中总有一些无效信息的干扰,预处理降噪也是个低成本提效的关键,花几分钟清理文档,分块质量会明显提升。你可以在代码里加几步简单操作:比如用字符串替换删掉重复的页眉页脚、空白行、无关的注释文字,这些内容会稀释分块的“有效信息密度”,清理后剩下的都是核心内容,哪怕分块方式简单,检索时也更容易命中关键信息。
此外,大量文档的处理需注重批量效率与落地验证:先批量解析PDF并清洗(去除空白页、重复内容),再批量执行分割策略,同时给每个块加“来源手册ID+页码”标签,方便用户追问“内容来源”时快速定位;落地前先用多个文档做小范围测试,根据常见问题匹配精度微调切割粒度(如表格片段漏上下文则扩大范围),让方案更贴合业务实际。
如何学习大模型 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 的正确特征了。