多模态向量检索
业务场景
模型迭代训练需要持续从数据集中提取特定标签和特征的内容,媒体、智驾等业务通常涉及千亿向量规模的百万样例抽取,AI DataLake Aura支持极限规模下的向标混合检索、多向量检索等多重能力,实现海量多模态训练数据高效挖掘。
| 痛点类型 | 具体描述 |
|---|---|
| 常驻服务成本高 | 传统检索引擎/向量数据库依赖内存存储索引和数据,千亿规模依赖的资源成本过高。 |
| 大规模top-k性能差 | 传统的向量索引面向小top点查设计,大量无效索引扫描、距离计算、回表等操作,不适合大规模向量数据挖掘场景。 |
本节介绍AI DataLake Aura引擎在多模态向量检索场景的应用。
方案架构
AI DataLake基于Aura+Lance的方案,采用存算分离架构,依赖Aura的分布式计算能力,提供海量数据大top-k检索能力。通过计算资源的弹性伸缩与按需分配,支持流式加载数据,有效避免内存溢出。同时,结合多级缓存技术,显著降低数据加载延迟,提升查询效率。
- 存算分离:采用Lance原生存储格式,数据和索引常驻OBS,支持千亿规模数据的高效大top-k检索。
- 原生向量引擎:面向大规模混合检索深度优化查询路径,避免传统引擎无效索引扫描、距离计算、数据回表操作。
- 弹性资源:计算资源支持弹性伸缩与按需分配,空闲时自动释放,大幅降低资源使用成本。
- 缓存加速:引入近计算缓存机制,显著缩短查询延迟,提升响应速度。
- 索引优化:多bit无偏量化算法支撑大规模检索数据高精度剪枝,图索引+分布式缓存提升小top检索性能。 图1 解决方案架构图
| 对比维度 | 传统方案 | Aura+Lance方案 |
|---|---|---|
| 数据存储规模 | 依赖内存管理索引和数据,存储成本高。 | 索引和数据常驻OBS,按需拉取检索,成本低。 |
| 弹性计算资源 | 计算有状态,数据和节点绑定, 扩容需要重分布索引和数据,迁移耗时。 | 计算无状态,支持弹性伸缩与按需分配,空闲时自动释放,无需数据搬移。 |
| 大top-k性能 | 传统的向量索引面向小top点查设计,大top检索大量无效索引扫描、距离计算、回表等操作,性能差。 | 面向大top深度优化,多粒度索引剪枝,多级缓存,混合精度排序等技术大幅度提升查询效率。 |
方案流程
技术实现流程:
- 环境准备
a. 在AI DataLake管理控制台创建工作空间,用于提供独立的作业运行环境。
b. 在AI DataLake管理控制台创建计算资源池,为作业的运行提供计算资源。
c. 在AI DataLake管理控制台创建端点,配置Aura引擎与计算资源池的关联关系。
- 创表索引构建
a. 基于LakeFormation创建Lance表。
b. 使用Aura将原始数据向量化后写入Lance表。
c. 使用SQL命令为对应列创建索引。
- 数据挖掘
使用Aura提供的SQL能力,在Lance表上完成数据查询。
方案效果
- 超大规模存储:单表千亿千维向量规模,数据不出湖,湖内支持海量多模态向量检索。
- 索引高速构建:百亿级索引小时级构建,向量/标量/全文索引统一管理。
- 超大规模检索:面向大TopK检索场景深度优化,TopK=100万分钟级时延,TopK=1万秒级时延。
- 复杂混合检索:支持向量/标量/多向量/全文等多场景混合检索任务,复杂分析SQL统一表达。
- 按需弹性资源:计算资源按需拉起,闲时归零,对比常驻向量数据库服务大幅降低资源成本。
更多实践文档
- 基于用户自定义镜像的多模数据处理
使用自定义镜像在DataArts Studio中提交Shell作业至Aura端点,适合零基础用户首次体验AI DataLake全流程。
- 基于Aura DataFrame的多模数据处理
通过Aura DataFrame SDK在Notebook中交互式处理多模态数据,体验图片解码、向量化等流水线算子。
- 基于RayCluster Data的数据处理
创建RayCluster端点,通过API提交分布式数据处理作业,适合AI计算场景的数据探索与开发。
- 基于RayJob Data的数据处理
创建RayJob端点,通过API提交作业并查看结果,适合生产环境的批量AI数据处理任务。
- 基于PySpark的数据处理
创建Spark端点,通过API提交PySpark作业,适合传统大数据ETL和湖仓分析场景。