资讯动态

Superlinked 在线更新流程全解:事件效应如何驱动 Online DAG 实时评估

发布时间:2026/9/18 18:44:47 来源:尧图企业网站定制
Superlinked 在线更新流程全解事件效应如何驱动 Online DAG 实时评估【免费下载链接】sieOpen-source inference server and production cluster for all the models your agent needs.项目地址: https://gitcode.com/GitHub_Trending/su/sieSuperlinked 是一款开源的向量数据库框架除了批量建索引它还内置了一条在线更新流水线当新的事件如用户阅读了某篇文章发生时系统会实时重算受影响的实体向量让检索结果始终反映最新的数据状态。本文将带你完整走一遍这条由**事件效应Event Effect**驱动的 Online DAG 评估路径——从事件定义、效应分组到向量聚合落库每一步在源码中的位置都为你标好 。为什么需要在线更新传统做法是数据入库 → 计算向量 → 检索。一旦数据变化用户行为、内容更新要么全量重建索引要么向量越来越过期。Superlinked 的思路是把**变化建模为事件Event**用EventSchema描述事件本身谁、对什么、做了什么用Effect声明这条事件会如何影响其他实体的向量在线模式下事件一到达框架就沿 DAG 实时重算并更新存储的向量。官方示例 event_effects.ipynb 中定义了一个Event包含用户引用、段落引用、事件类型和时间戳随后用一行声明效应当event_type read时用户向量向所读段落靠拢。![Superlinked 事件效应 Event Effects 概念示意图](https://raw.gitcode.com/GitHub_Trending/su/sie/raw/681c2ff62853bddd5ad5440da58a945435cb5c43/docs/images/concept-thumbnails/Event Effects.png?utm_sourcegitcode_repo_files)核心数据结构DagEffect 与效应分组在 index.py 中Index接收effects参数并转换为DagEffect集合。每个 DagEffect 三元组包含组成含义受影响方affected向量将被更新的实体如 User影响方affecting提供内容的实体如 Paragraph事件 Schema触发该效应的EventSchema⚠️ 一个巧妙的设计在 DagEffectGroup除乘数multiplier外完全相同的效应会被group_similar_effects归入同一组。这样并发处理事件时同一组效应只会走一条事件 DAG避免多个节点同时写同一份存储结果造成竞态条件。Online DAG 评估事件到达后的全路径整个流程的核心入口是 OnlineDagEvaluator它在初始化时构建了两套映射实体 DAG每个实体 Schema 投影出一张OnlineSchemaDag见 online_schema_dag.py负责常规实体的向量化入库事件 DAG每个DagEffectGroup编译出一张独立的事件子图叶子节点是OnlineIndexNode。当事件批量到达时evaluate_by_dag_effect_group 执行三步第 1 步 · 收集实体数据请求— 解析事件中的 SchemaReference向存储层发起合并后的批量读取请求_build_event_entity_data_requests第 2 步 · 预热缓存— 通过 StorageManager 一次性读回历史节点结果灌入 OnlineEntityCache后续节点评估直接命中缓存避免重复 IO第 3 步 · 评估事件 DAG— 逐组调用OnlineSchemaDag.evaluate从叶子节点自底向上计算产出新向量并持久化。事件聚合节点向量是怎么混出来的事件 DAG 的收尾节点是 OnlineEventAggregationNode下称 OEAN它的 evaluate_self 完成四件事读取旧向量从缓存取出受影响实体当前存储的向量计算影响向量与权重沿input_to_aggregate父节点计算影响方向量从过滤父节点收集条件权重_calculate_affecting_weights过滤无效事件EventEffectHandler 的_should_process_event会跳过空权重或空向量事件——这在多个效应作用于不同空间时尤为关键聚合并回写EventAggregator按temperature决定旧聚合向量与新事件向量的融合比例再按event_influence与基础向量混合同时用EventMetadataHandler更新影响计数与时间戳元数据。 空向量结果会直接返回None而不落库保证数据库里不会出现无意义记录。两个关键调参旋钮参数取值效果event_influence0.0 ~ 1.0事件聚合结果 vs 实体原始向量的话语权0 表示只信原始数据1 表示只信事件temperature0.0 ~ 1.0新旧事件聚合的融合比例0.5 偏向最新事件0.5 保持历史稳定在 index.py 中它们与max_age、max_count、time_decay_floor时间衰减一起封装进EffectModifier。调参实验可参考 event_effects.ipynb它用 5 个不同配置的索引对比了同一份数据的检索差异。部署形态从 InMemory 到在线服务同一套 DAG 评估逻辑可挂在不同执行器上本地开发InMemoryExecutorInMemoryApp生产在线framework/src/framework/dsl/app/online/下的 Online App配合 REST/队列消费事件流Storage 层可选 Redis、MongoDB、Qdrant、TopK 等见 framework/src/framework/storage/。延伸阅读在线评估器online_dag_evaluator.py效应分组dag_effect_group.py事件效应处理器event_effect_handler.py索引 DSL 参考docs/reference/dsl/index/一句话总结Superlinked 把数据变化抽象为事件、把影响规则抽象为效应再用一组预编译的 Online 子图 实体缓存 温度/影响力聚合器让向量库在事件驱动下完成低延迟、无竞态的实时更新 【免费下载链接】sieOpen-source inference server and production cluster for all the models your agent needs.项目地址: https://gitcode.com/GitHub_Trending/su/sie创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价