EdgeRAG索引过程
数据预处理与聚类:文本语料库被分割成较小的数据块,为每个数据块生成嵌入向量,然后进行聚类。聚类中心被存储在第一级索引中.
嵌入向量的存储决策:对于每个聚类中的数据块,计算生成嵌入向量的成本。如果成本超过预定义的服务级别目标(SLO),则存储整个数据块的嵌入向量;否则,丢弃嵌入向量以优化存储.
EdgeRAG检索过程
查找最相似的聚类中心:首先识别与查询嵌入向量最相似的聚类中心.
嵌入向量的获取:检查是否已预计算并存储了该聚类的嵌入向量。如果存在,则加载这些嵌入向量;如果不存在,则查找嵌入缓存。如果缓存命中,则加载缓存中的嵌入向量;如果缓存未命中,则重新生成嵌入向量并更新缓存.
数据块的检索:查找最接近的匹配嵌入向量,并检索相关的数据块.
EdgeRAG插入与删除
插入过程:新添加的数据块会被分配到最近的聚类中心,并更新相应的索引。如果更新后的聚类嵌入向量的生成成本超过SLO,则重新生成并存储嵌入向量.
删除过程:首先定位相应的聚类,然后移除相关嵌入向量,并更新聚类索引。如果生成嵌入向量的成本低于SLO,则可以删除整个聚类的嵌入向量.
https://arxiv.org/pdf/2412.21023
EdgeRAG: Online-Indexed RAG for Edge Devices
来源 | PaperAgent