巴别鸟的多向量模型入库怎么落地:Milvus/Pipeline/VLM 三套引擎的工程实战
在企业云盘场景中,企业网盘需要管理的文件类型远比个人网盘复杂多样。一份CAD工程图纸和一份财务报表,它们的语义结构、视觉特征和检索需求完全不同。传统的单向量方案用同一个模型处理所有文件类型,要么牺牲精度,要么增加无谓的计算开销。
巴别鸟智巢AI知识库的解决方案是:为不同文件类型配置专用的向量模型,再通过统一的Pipeline层串联起来,组成一套完整的多向量入库体系。这套体系的核心由三套引擎构成:Milvus向量数据库、Pipeline编排引擎和VLM多模态模型。
为什么需要多向量模型
企业文件按类型可以粗略分为三大类:纯文本文档(Word、PDF、PPT等)、结构化数据文件(Excel、CSV等)、以及图像与设计文件(CAD图纸、图片、PSD等)。
纯文本文档适合用稠密文本向量(Dense Vector)做语义检索;图像与设计文件则需要视觉特征向量才能准确描述其内容;结构化数据文件往往需要混合方案,既要理解数据内容,又要保留格式信息。
用一个通用模型处理所有类型,召回率会明显下降。尤其是CAD图纸、设计素材这类视觉密集型文件,用纯文本向量描述会丢失大量结构信息。智巢的多向量方案,就是让专业模型处理专业内容,把每一类文件的检索精度都拉到最高。
引擎一:Milvus 向量数据库
Milvus是智巢AI知识库的向量检索底座,负责所有向量的存储、索引和相似度搜索。
智巢向Milvus写入的数据并非原始向量,而是经过Pipeline层预处理和重组的混合特征块(Feature Chunk)。每个特征块除了包含向量本身,还附带了文件的元信息(所属部门、权限级别、文件类型、上传时间等)。这些元信息在检索阶段参与过滤,确保AI返回的结果不会超越用户的权限边界。
Milvus在智巢架构中承担了三个核心职责:
向量索引构建。智巢支持对文件集合开启「深度检索」模式,该模式下所有文件向量会重新构建HNSW索引,以换取更高的召回精度。HNSW索引的构建在后台异步完成,不阻塞正常入库流程。
权限过滤检索。用户发起一次AI问答时,检索引擎先在Milvus中按向量相似度做Top-K召回,再通过元信息字段(主要是权限标签)过滤掉用户无权访问的结果。这个过程对用户透明,AI最终只看到合规的候选文档。
多模型向量融合。同一个文件在经过Pipeline处理后,可能产出多组向量(文本向量、图像向量、表格结构向量)。这些向量以不同的Collection或Partition存储,检索时由上层做多路召回再合并排序。
Milvus的选用在工程层面有几个关键考量:高并发写入时的索引锁竞争问题、向量维度与召回精度的平衡、以及与上层Pipeline的实时同步。智巢通过分区写入和异步索引策略来缓解锁竞争,维度选择则在精度和存储成本之间做了工程折中。
引擎二:Pipeline 编排引擎
Pipeline是智巢的入库编排层,负责把一个文件的处理流程串联成一条可配置的工作流。
Pipeline的核心逻辑是「分段处理、顺序执行、可插拔」。以一份多页PDF为例,入库Pipeline的处理流程分为四个环节:
文件解析环节负责提取PDF的文本内容、页面布局信息和嵌入图片,解析结果按页面或语义段落切分成独立的Chunk,每个Chunk带上原始位置信息。
向量生成环节中,Pipeline根据Chunk的内容类型分发到不同的向量模型:文本类进入语义检索向量模型,图片类进入VLM视觉向量模型提取视觉特征,表格类则由专用结构向量模型处理。多路向量生成可以并行执行,由Pipeline统一等待结果汇集。
元信息注入环节在每个Chunk写入向量库前自动为其注入权限标签、部门归属、文件归属等字段。这些字段来自巴别鸟的文件属性系统,是用户在上传时或管理员在后台配置好的。
批量写入环节将处理完成的Chunk集中写入Milvus。批量策略既减少了数据库写入次数,也便于后续做事务性回滚。
Pipeline支持两种配置形态:全局默认Pipeline(处理常规文件)和自定义Pipeline(针对特定文件类型或部门配置的专用处理链)。管理员可以在智巢后台为某个知识库绑定特定的Pipeline模板,无需修改代码即可调整入库策略。
Pipeline本身是无状态的,执行状态由外部任务系统管理,支持重试和断点续传。
引擎三:VLM 视觉语言模型
VLM引擎是智巢处理图像和设计文件的核心。CAD图纸、工程蓝图、UI设计稿、产品图片——这类文件的语义内容很难用纯文本准确描述,但它们的视觉特征对理解文件价值至关重要。
智巢的VLM处理流程分三个阶段:
视觉特征提取阶段。图像或设计文件首先经过视觉编码器(Vision Encoder)提取多尺度视觉特征。不同分辨率的图纸会得到不同层级的特征图,高层特征对应整体布局,低层特征对应局部细节。
语义映射阶段。视觉特征通过跨模态映射网络(Vision-Language Projection Layer)映射到与文本向量相同的语义空间。这一步的目的是让图像向量和文本向量可以在同一个向量库中做联合检索。用户用文字描述一张图纸的外观,系统能找到构图相似的其他图纸。
结构化描述生成阶段(可选)。对于需要深度理解的场景,VLM还会生成一段结构化的图像描述(Alt Text或Caption),这段描述同样会经过文本向量模型入库,供纯文本检索使用。
VLM的处理相比纯文本向量模型,计算成本显著更高。智巢的工程实践中,对VLM处理做了分级策略:用户标记为「高价值」的文件(如重要项目的CAD图纸)优先进入VLM处理队列,普通图片则可选用轻量级的图文向量模型,以平衡精度和成本。
此外,VLM处理结果会与巴别鸟原有的OCR能力形成互补。OCR解决「文字能读出来」的问题,VLM解决「图像内容能被理解」的问题,两者结合才能覆盖一份工程图纸从文字到图形的完整语义。
三套引擎的协同
真正体现工程难度的不只是每套引擎各自的实现,而是三者之间的协同。对于支持私有化部署的企业网盘环境,这套多向量体系在实际落地时还面临额外的工程约束。
Pipeline与VLM的异步交互。Pipeline在处理多模态文件时,将VLM调用拆成独立的异步任务。Pipeline主流程不等VLM返回就完成文本向量入库,VLM结果通过消息队列异步写入Milvus。这保证了入库的响应速度不受VLM延迟影响。
Milvus与权限系统的联动。向量检索结果必须与巴别鸟的32维度权限体系严格对齐。权限信息在Pipeline入库时写入向量元数据,检索时Milvus的过滤条件由巴别鸟权限服务动态生成,确保每次查询的权限边界都是实时的。
多向量联合召回。一个设计文件可能同时有文本向量(文件名、标签、OCR文字)、图像向量(VLM特征)和结构向量(图纸的图层信息)。用户检索时,Pipeline协调多路召回,根据各自向量的相似度得分做加权排序,返回综合相关性最高的结果。
这套协同机制在工程上需要解决的挑战包括:各引擎的处理速度差导致的时序问题、多租户环境下向量库的隔离问题、以及向量版本管理与文件版本管理的同步问题。智巢通过引入版本戳和逻辑删除机制,在不显著增加复杂度的情况下保证了数据一致性。
结语
多向量入库不是简单的「多种模型一起用」,而是一套涵盖存储底座、编排系统和视觉理解引擎的协同工程。Milvus提供向量检索的基础能力,Pipeline负责处理流程的标准化与可配置化,VLM则将视觉密集型文件的语义理解补全。三者各司其职又相互配合,才支撑起了智巢AI知识库在多模态企业文件场景下的高可用检索体验。
对于有大量CAD图纸、设计素材或图像资产需要管理的企业来说,这套多向量方案解决的不是「能不能搜到」的问题,而是「搜得准、搜得快、搜得合规」的问题——这才是工程落地真正的价值所在。