从数据工程视角看数据摄取、分块和索引
很多有前途的AI原型推出后失败,问题常出在数据层。团队常认为数据层问题可稍后解决,花数周微调提示词等,然后匆忙搭建检索管道推进项目。起初演示完美,但数月后系统答案过时,嵌入向量与源文档不匹配,原型变得难以信任。避免此情况的团队意识到,嵌入管道本质是数据工程问题,核心是ETL,目的地是嵌入向量和向量存储,而非数据仓库。从这个角度看,版本控制等问题就不再是“AI专属”,而是数据基础设施问题。
为什么需要嵌入管道?
大型语言模型训练结束后知识被封存,对组织相关具体信息一无所知,且有上下文窗口限制。行业普遍采用检索增强生成(RAG),构建检索层,在用户提问时提取最相关信息片段传递给模型。这个检索层由向量数据库驱动,将原始文档转换为可搜索语义表示并填充到数据库的过程就是嵌入管道。构建相关系统的团队都需要这样的管道,问题在于当作原型还是基础设施构建。
嵌入管道的工作原理
嵌入管道有摄取、分块和索引三个阶段,下面分别介绍并与典型ETL过程关联。
摄取即提取
将原始内容从所在地方提取出来放入管道,这类似ETL中的提取阶段。团队常在此环节偷工减料,导致生产系统故障,如文档更新未捕捉、文件删除但分块仍在索引中。解决方案是变更数据捕获(CDC),维护已摄取文档清单,比较数据源与清单,重新摄取有变化文档,删除不存在文档。
分块即转换
文档进入管道后不能直接嵌入,需拆分成更小片段,这是ETL中的转换阶段。常见错误是把分块大小当作默认配置选项,合适的分块大小取决于内容和查询性质。建议将分块配置作为版本化管道参数,更改时以可控、可观察方式重新分块,比较检索质量,质量下降则回滚。
索引即加载
最后阶段是将分块后文本转换为向量并存储在向量数据库中,通过语义相似性搜索。嵌入操作由专门训练的模型完成,不同词汇表达相同意思的分块在数学空间中向量相近,不同主题分块相距远。用户提问时,系统对问题嵌入,找到最接近分块提供给模型推理。索引规范强调版本控制,索引中的分块应标记嵌入模型名称和版本,嵌入模型升级需明确规划、全面执行并验证检索质量。
管道可观测性不可或缺
嵌入管道投入生产后,问题从“是否运行”变为“是否正确运行”。故障往往不明显,系统会悄悄给出错误答案。可观测性规范直接适用,如每个文档的分块数量是健康检查指标,需有“黄金查询集”,跟踪数据血缘和数据新鲜度,测量、跟踪和负责检索质量。
总结
嵌入管道带来新术语、工具和语义层能力,但使其在生产环境可靠运行的原则并不新鲜,如版本控制等。真正的工作是将数据工程规范应用到输出向量的管道中。从这个角度看,能让围绕AI系统的混乱更易理解,这也是构建AI演示和可靠系统的区别,前者是原型,后者是基础设施。