字节笔记本
2026年5月30日
RAG 90% 的问题出在文档处理,不在检索和生成
RAG 系统 90% 的问题出在文档处理环节,而不是检索或生成环节。
最常见的情况是,团队花大量精力调 Embedding 模型、换向量数据库、接 Reranker,效果提升有限。回过头来一看,原始文档的清洗和分段完全没做。
文档处理的核心要点有三条。第一,格式统一。PDF、Word、HTML 混在一起时,先统一转成 Markdown,保证后续处理的一致性。第二,段落分割。不是说按固定字符数切就行,而是要根据文档的语义结构(标题、段落、列表)做智能分割。第三,元数据提取。文档的标题、作者、日期、章节结构都要保留为元数据,检索时可以用来做过滤和排序。
这三条做好了,RAG 的效果至少提升 30%。如果这三条没做,换什么模型都没用。
RAG 系统的性能优化是一个系统工程。从文档处理到检索策略到生成融合,每个环节都可能成为瓶颈。文档切分是 RAG 的基础,切得太细检索精度高但上下文不完整,切得太粗上下文完整但检索精度低。实践中常用的策略是语义切分,根据文档的段落和标题结构来切分。检索策略的选择同样关键,纯向量检索无法处理精确匹配需求,全文关键词检索无法理解语义,混合检索可以兼顾两者。RRF 融合算法是目前最实用的混合检索结合方式,它不需要对两种检索的分数做归一化,直接基于排名位置做融合。Embedding 模型的选择直接影响检索质量,bge-m3 和 gte-qwen2 等中文优化模型可以让中文 RAG 系统的检索质量有明显提升。Reranker 可以在检索结果的 TOP-K 中做精排,尽管增加了系统复杂度和延迟,但对于需要高精度的场景来说,带来的提升是值得的。
开源社区的生态正在快速发展。Hugging Face 上的模型数量已经超过百万,GitHub 上每天都有新的 AI 项目诞生。在这个信息爆炸的时代,保持高效的学习方法比学习本身更重要。建议遵循 80/20 法则,用 20% 的时间学习 80% 最常用的知识和技能,剩下 20% 的知识在需要时再去深入学习。建立自己的学习系统也很重要。使用工具来管理和组织所学知识,定期整理和回顾。当遇到技术问题时,知道去哪里找答案比记得答案本身更有价值。实践是学习 AI 技术最有效的方式。理论学习只能帮你建立认知框架,真正的理解来自动手实践。在实践过程中遇到的问题和挑战,是学习最有价值的部分。解决问题的过程让你突破了认知的边界,建立了对技术更深层次的理解。
在软件开发领域,有一条经验法则:任何在开发阶段看起来很聪明但让调试变得困难的做法,最终都不是好主意。这条法则在 AI 应用开发中尤其适用。AI 应用的不确定性比传统软件高得多,这意味着调试和排查问题的难度也大得多。因此 AI 应用的设计应该追求简单、透明、可追踪。简单意味着每个组件的职责清晰,组件之间的依赖关系明确。透明意味着系统的每个决策过程都可以被追溯和理解。可追踪意味着每次模型调用、每步推理过程都被记录在案。只有做到了这三条,你才能在系统出现问题时快速定位根因。
AI 项目的技术栈选择决定了开发效率和后期维护的成本。Python 是目前 AI 开发的主流语言,拥有最丰富的生态。TypeScript 在 AI 应用开发中也越来越流行,特别是在需要前后端一体化的场景中。选择技术栈时的核心原则是优先考虑团队熟悉的技术,减少学习成本。框架选择同理,LangChain 功能丰富但复杂度也高,直接调用 API 可能更可控。建议从最简单的方案开始,随着需求复杂度的增加逐步引入框架。过早的框架选择会让系统复杂度不必要地增加。
持续迭代是 AI 项目成功的关键。没有一次成型的产品,持续收集反馈、分析数据、优化系统,才能让 AI 应用的价值不断提升。