在OpenSearch向量检索版中,为避免重复向量化计算带来的资源消耗和成本增加,向量缓存功能通过引入缓存表机制,在数据写入时自动比对字段内容是否变化,仅对变化的数据调用模型重新计算向量,从而有效降低模型调用量。
工作原理
每次写入数据时,系统按以下流程处理向量字段:
根据当前记录的向量标识字段值,在缓存表中查找匹配记录。
命中缓存:直接读取缓存表中已有的向量值,写入当前表的向量字段。
未命中缓存:实时调用向量模型计算向量值,写入当前表的向量字段。
向量标识字段通常由业务信息(如字段内容、向量模型名称、向量维度等)生成的唯一 ID,用于判断需要向量化的字段内容以及向量化模型信息是否发生变化。
使用限制
处理流程限制
单步处理:仅支持包含单个处理步骤的向量字段。
不支持多步链式处理:例如OCR 识别 + 向量化等多步骤处理链暂不支持缓存。
支持的模板与模型
适用模板:仅限“文本稠密向量化”、“图片向量化”及“融合向量”。
模型要求:内置向量化模型不支持缓存。如需使用缓存,请切换至AI 搜索开放平台或百炼平台提供的模型。
字段与表结构要求
字段类型:向量标识字段与缓存表关联字段必须为 String 类型。
实例一致性:缓存表必须与当前数据表位于同一实例中。
资源影响评估
流量增加:开启缓存后,系统需查询在线集群以获取向量,这将导致在线集群流量上升(增幅取决于数据更新量)。
建议:请务必根据预期的数据更新频率,合理评估并扩容查询节点与数据节点的资源。
配置向量缓存
在添加表或修改表的字段配置阶段,完成向量字段的数据处理配置后,即可启用向量缓存。
在字段配置页面,为需要向量化的字段完成数据处理配置(如选择文本稠密向量化模板和对应模型)。
在数据处理配置面板的服务列表中,单击生成字段旁边的向量缓存,打开向量缓存配置对话框。
配置当前表参数:
参数
说明
向量字段
缓存命中时直接写入、未命中时由模型实时计算后写入的目标字段。为当前表选中的向量字段。
向量标识字段
用于在缓存表中匹配记录的唯一标识。通常由字段内容、向量模型、向量维度等业务信息生成。只能选择 String 类型字段。
配置缓存表参数:
参数
说明
表名
选择同一实例下的表作为缓存表。
向量标识字段
缓存表中与当前表向量标识字段对应的关联字段。只能选择 String 类型字段。
向量字段
缓存表中存储向量值的字段。命中缓存时,该字段的值将被读取并写入当前表的向量字段。
单击确定,完成向量缓存配置。
缓存表设计建议
缓存表应包含以下字段:
一个 String 类型的标识字段,存储与当前表向量标识字段相同格式的值。
一个多值 Float 类型的向量字段,存储已计算的向量值。
缓存表的数据来源通常是历史已完成向量化的数据。当某张表的数据经过向量模型计算后,可将向量标识和对应的向量值写入缓存表,供后续更新时复用。