Perplexity发布Rust检索引擎Photon:p99延迟从800ms降至65ms
Perplexity公司推出自研Rust检索与排序引擎Photon,全面替代原有开源分叉引擎。其生产环境p99延迟由约800毫秒降至65毫秒,服务节点减少20%,单位文档存储容量提升2.5倍。Photon作为托管API提供,支持Search API的'fast'模式,定价1美元/千次调用。
全栈自研:Photon取代旧有检索引擎
Perplexity正式发布Photon——一款完全自研、用Rust编写的检索与排序引擎。它已全面接管Perplexity AI原生搜索栈的全部生产流量,并驱动新上线的Fast Search模式。该引擎不开放源代码,仅以托管API形式对外提供:用户在调用`POST /search`时设置`search_type: "fast"`即可启用,按1美元/1000次请求计费。
此前,Perplexity长期依赖一个自行fork的开源检索引擎。随着索引规模持续扩大,该引擎暴露出三大瓶颈:一是尾部延迟严重,p99达800毫秒;二是内存受限,数据集超出RAM容量,无法使用`mlock`锁定内存,冷读触发大量缺页中断并阻塞查询;三是磁盘索引融合期间出现明显性能抖动,p99飙升至约1.2秒,持续10–15分钟;四是集群扩容与同步耗时超一周,且易导致部分响应率上升。团队最终判定,从零构建比持续维护fork更简单、更具成本效益。
架构设计:面向低延迟与高吞吐的系统级优化
Photon采用分层协同架构:负载均衡器将请求路由至Photon Broker,Broker再扇出至分片组(shard group),并监控超时。每个分片独立执行检索、初筛排序及二阶段排序;Broker汇总候选结果后,异步拉取关键文档字段。
其核心技术创新包括:
- 自适应倒排列表:短列表内联于单页;长列表按文档ID范围切分为稀疏块(使用跳跃搜索+排序偏移数组)与稠密块(采用位图,成员判断仅需一次位查找);
- 预算化遍历算法(WAND-like):区分“驱动列表”与“探测列表”,先快速估算候选文档最高可能得分,仅当有望突破阈值时才读取精确词频;
- 紧凑文档记录(Docblob):每篇文档以高频压缩格式(Elias-Fano编码)存储词频、字段掩码与位置信息,排序时仅解码匹配项,单文档评分仅需1次查表;
- 批量化异步I/O:预知记录偏移量,通过`io_uring`批量发起磁盘读取;缓存层对整批请求统一检查;读取线程无锁,淘汰策略采用CLOCK而非共享LRU链表;
- 构建与服务分离:专用节点基于YTsaurus表构建带版本号的分片索引;控制器逐组轮换服务集群,并用真实搜索日志回放预热缓存。全量网页索引构建时间已压缩至个位数小时。
生产实测:性能跃升与成本优化
Photon上线后,检索与排序环节的p99延迟从约800毫秒大幅降至约65毫秒(仅统计Photon内部阶段)。运行所需服务节点数量比旧内容节点减少约20%;单位文档存储数据量提升2.5倍,被用于增强排序质量;若对相同数据集启用`mlock`,预计需当前Photon常驻内存的4.6倍。索引版本切换不再引发延迟尖峰。
Fast Search:面向AI智能体的轻量模式
Fast Search是Photon与精简排序逻辑结合的产物,专为AI智能体工作流优化。Perplexity在6个基准测试(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建议日常Agent循环使用Fast,复杂模糊查询则选用默认模式。
对标竞品:性价比优势显著
在公开参数与报价层面,Perplexity Fast Search相较Exa Instant、Tavily Ultra-Fast等竞品,在p50/p95延迟(160ms/230ms)、单价(1美元/千次)和结果灵活性(支持1–20条)上具备综合优势,尤其适合高频、低成本调用场景。
本文为企业智脑(优秘智能)编译整理自公开资讯,信息与观点以原文为准,仅供参考。阅读原文(MarkTechPost) →