据MarkTechPost报道,Perplexity发布了用Rust编写的自研检索与排序引擎Photon,取代公司此前为AI原生搜索栈fork的开源引擎。Photon目前已承接全部生产流量,并支撑搜索API中的Fast Search模式。Perplexity公布的数据显示,检索与排序的p99延迟从约800毫秒降至约65毫秒。

Perplexity表示,替换旧引擎的原因是索引规模增长后出现三个瓶颈。生产环境p99延迟长期停在800毫秒附近,数据集超出内存容量,无法用mlock锁定,冷读触发大量缺页中断并阻塞查询。磁盘索引合并期间,p99会升至约1.2秒并持续10到15分钟。部署和同步一个额外集群可能需要一周以上,恢复过程还会提高部分响应的比例。团队最终认为,从头构建比维护这个fork更简单也更便宜。

Photon的请求路径是负载均衡器把请求路由到broker,broker向分片组扇出并监控超时;每个分片执行检索、初排和第二阶段排序,broker再合并候选并取回关键文档字段。索引结构上,自适应倒排列表把短列表内联在单页中,长列表按固定文档ID区间切块,稀疏块存排序偏移数组并用跳跃式查找,稠密块改用位图,成员判断只需一次位查询。预算化遍历采用类WAND算法,把列表分为驱动列表和探测列表,先用低成本的存在性检查为候选打分上界,只有候选能越过阈值时才读取精确词频。每个文档配有紧凑的docblob记录,包含词频、字段掩码和位置,词项用Elias-Fano编码,排序时只解码命中的词项,对一个候选排序只需查一次表。记录偏移提前可知,磁盘读取通过io_uring批量发出,缓存先检查整批;读线程不加锁,淘汰采用CLOCK而非共享LRU链表。构建与服务分离,索引器在专用节点上从YTsaurus表生成带版本的索引,控制器逐个轮转服务组,并用回放搜索日志查询预热缓存。Perplexity称,完整网页索引现在可在个位数小时内构建完成。

生产结果显示,Photon所用服务机器比旧内容节点少约20%,每文档存储的数据量约为原来的2.5倍,Perplexity用这些空间改善排序质量。若用mlock锁定同一数据集,估计需要Photon当前常驻内存的4.6倍。索引版本切换不再造成延迟尖峰。Photon并非开源,因此无法自行部署,只能通过托管API使用。

Fast Search把Photon与面向智能体工作流的轻量排序结合。在WideSearch、BrowseComp、DSQA、FRAMES、SEAL-0和SEAL-Hard六个基准、共3554项任务上,Fast得分64.3%,模型加搜索的估算成本为59.73美元;默认预设得分64.0%,成本187.60美元,Fast便宜约68%。代价体现在更广的搜索质量上:内部长尾基准的相关性DCG从2.45降至2.21,答案可得性从0.596降至0.567,下降2.9个百分点。Perplexity建议日常智能体循环使用Fast,困难或含义模糊的查询使用默认预设。开发者可在POST /search请求中设置search_type为fast,价格是每1000次请求1美元,每次返回1到20条结果;Python SDK 0.43.4和0.43.5需通过extra_body传入该参数。

与同类产品相比,Perplexity公布的Fast Search延迟为p50 160毫秒、p95 230毫秒,每千次请求1美元。Exa Instant文档给出的典型延迟约250毫秒,1000次请求4美元,最多10条结果,额外结果另行计费。Parallel Search Turbo文档标称约200毫秒,每千次请求1美元,仅支持英语和日语查询。Tavily的ultra-fast未公布延迟数字,按积分计价为每积分8美元(按量付费)或5至7.50美元(订阅方案)。上述延迟数据均由厂商自行公布。