tugraph-analytics
tugraph-analytics copied to clipboard
[Graph + AI] Support for vector indexing in streaming graph computing engine
Support for vector indexing in streaming graph computing engine.
技术架构设计
1. 状态管理层扩展
GeaFlow采用分层的状态管理架构,包括State API、State执行层、Store层和持久化层。向量索引功能需要在以下层次进行扩展:
State API层扩展:
- 新增
VectorState接口,提供向量存储和检索操作 - 扩展图状态API,支持向量属性的存储和查询
- 添加向量相似度查询接口(cosine、dot product、euclidean)
Store层扩展:
- 实现向量专用存储引擎插件
- 扩展现有存储后端(RocksDB、Memory等)以支持向量操作
2. 存储引擎插件开发
基于GeaFlow的可插拔存储架构,开发专门的向量索引存储引擎:
向量存储接口设计:
- 继承
IStaticGraphStore接口,扩展向量索引功能 - 实现向量CRUD操作和相似度检索
- 支持批量向量插入和更新
存储实现选项:
- 方案1: 基于现有RocksDB扩展,集成向量索引库(如FAISS、Annoy)
- 方案2: 开发独立的向量存储插件,集成专业向量数据库(如Milvus、Pinecone)
- 方案3: 内存向量存储实现,用于小规模高性能场景
3. 图模式扩展
扩展GeaFlow的图模式定义,支持向量属性:
属性类型扩展:
- 在属性类型中新增
VECTOR类型 - 支持向量维度配置和索引类型选择
- 扩展索引配置,支持向量索引算法参数
4. DSL和API功能扩展
DSL扩展(SQL+GQL):
- 新增向量相似度函数:
VECTOR_SIMILARITY(),COSINE_SIMILARITY(),DOT_PRODUCT() - 支持向量KNN查询:
SELECT * FROM vertices WHERE VECTOR_KNN(embedding, target_vector, k) - 向量范围查询和聚合操作
API扩展:
- 扩展GraphState API,支持向量属性操作
- 新增向量计算函数和UDF支持
- 提供向量批量处理接口
5. AI集成增强
基于GeaFlow现有的AI推理能力进行扩展:
向量化支持:
- 扩展UDF框架,支持embedding生成
- 集成主流embedding模型(如Sentence-BERT、OpenAI embeddings)
- 支持实时向量生成和索引更新
推理优化:
- 向量相似度计算的GPU加速支持
- 批量向量处理优化
- 分布式向量检索
具体实现方案
阶段一:核心向量存储实现(2-3个月)
-
向量存储接口设计
- 定义
IVectorStore接口 - 实现基于RocksDB的向量存储
- 集成FAISS库进行ANN搜索
- 定义
-
状态管理扩展
- 实现
VectorState类 - 扩展状态序列化/反序列化
- 向量状态的持久化和恢复
- 实现
-
基础向量操作
- 向量CRUD操作
- 基本相似度计算
- 简单的KNN查询
阶段二:查询语言和API扩展(1-2个月)
-
DSL扩展
- 向量函数集成到SQL解析器
- 查询优化器扩展
- 执行计划生成
-
API增强
- Graph API向量操作扩展
- 向量批处理接口
- 异步向量查询支持
阶段三:性能优化和高级功能(2-3个月)
-
性能优化
- 向量索引的并行构建
- 分布式向量检索
- 内存管理优化
-
高级功能
- 多种向量索引算法支持
- 向量聚合和统计功能
- 增量向量索引更新
-
AI集成深化
- 流式向量生成
- 在线学习支持
- 向量质量监控