跳到主要内容
返回时间线
arXiv来源发表:

HyperPage 用上一轮智能体搜索日志重排磁盘索引页:同等缓存下比 MARGO 少读 5.2% 到 21.2% 的页

核心概要

磁盘驻留图向量索引的页布局决定一次搜索要读多少 SSD 页,而 Starling、MARGO 这类现有布局只从图和向量计算,不用查询日志。HyperPage 把一次已完成的 Search-R1 智能体运行中记录的扩展节点集合当作工作负载,在声明的内存预算下先为未被缓存命中的记录构造布局,再用验证步骤回放选出布局与热记录/页缓存之间的预算切分。在 1M 与 21M 段落索引、七个缓存预算上,它比 MARGO 少读 5.2% 到 21.2% 的页,缓存越小时优势越大。

Source-provided article image: HyperPage: Learned Page Layouts for Disk-Resident Graph Vector Indexes
arXiv

深度剖析

磁盘上的图向量索引把每个向量和它的邻接表存成一条记录,一次搜索要展开哪些节点,就要读这些节点所在的整页,因此哪些记录同页会改变页读取次数,却不改变返回的答案。 Starling 和 MARGO 这类现有布局只根据图和向量计算共置分数,不使用任何查询日志,MARGO 的权重还假定查询服从被索引向量的分布。 在 1M 与 21M 段落两个索引、1% 到 25% 的七个缓存预算上,HyperPage 比 MARGO 少读 5.2% 到 21.2% 的页,且没有参与比较的布局读得更少;在 1% 预算下,MARGO 需要 1.5 到 3.0 倍的预算才能读到同样少的页。

做法是把一次运行留下的遍历记录变成对任意布局都成立的页读取计价,再据此为声明的预算挑布局。 关键前提是 DiskANN 式搜索只依据内存中的乘积量化码和已展开记录的邻接表来路由,从不看同页的其他记录,所以日志里的扩展集合在任何布局下都有效,被缓存住的记录无论放在哪一页都不产生页读取。 训练用一次 Search-R1 智能体运行的第 241 到 400 步,测试用另一次奖励不同的运行的第 71 到 200 步共 16,640 个 rollout 组,测试提示不出现在训练中;在 12 线程的 DiskANN 改造引擎上,全量语料每步搜索时间中位数最多降低 10.38%。

启示与展望

演示范围是固定的 Vamana 图与 8 KB 页、384 维 int8 记录,工作负载来自 Search-R1 智能体在 1M 与 21M 段落索引上的检索,缓存预算为索引的 1% 到 25%;图本身固定,插入和删除不在研究范围内。

在共享页 LRU 下,窗口下界比 HyperPage 的读取低 11 到 48 倍,主指标的最优值仍未确定;读一次作用域下,拉格朗日下界把 1M 测试最优值夹在每组 543.2 到 974.4 次读取之间,小缓存时下界偏松。缓存无关布局在缓存承担大部分访问时会输给 MARGO,因此预算必须进入精化;缓存感知布局也与自己的预算绑定。