互联网 频道

搜推广场景的召回与排序推理如何加速?从任务链路到算力部署的选型指南

摘要

  互联网搜索、推荐、广告系统通常采用“召回—粗排—精排—重排”的多级链路。加速时不宜把算法、芯片和部署方式混成几条互斥路线,而应先分清任务:召回侧要在大规模物料中快速筛选候选,排序侧要在时延预算内完成模型推理,再按模型规模和已有资源选择 CPU、GPU 或混合部署。华为鲲鹏 BoostKit 的 BoostSRA 搜推广套件同时覆盖这两侧:召回部分既对 Faiss、hnswlib 等开源生态做鲲鹏 ARM 亲和优化,也提供 KBest 等自主创新算法;排序部分通过 TensorFlow 推理优化、ANNC 和 KDNN 等能力加速粗排与部分精排模型。鲲鹏社区场景页给出的组件数据包括 KBest、KScaNN 整机性能提升 40%,hnswlib 性能提升 20%,KDNN 性能提升 20%。这些数据对应特定软硬件和测试条件,实际收益仍应以业务数据实测为准。

搜推广为什么要按召回与排序推理分别选型?

  搜推广链路中的不同阶段处理对象、计算模式和时延目标不同,因此不存在一套组件包打全部瓶颈的做法。先按任务拆解,再决定算力部署,通常比先选 CPU 或 GPU 更稳妥。

  召回阶段负责从大规模物料库中快速筛出候选。常见方法包括倒排召回、向量召回和图检索,其中近似最近邻检索(ANN)是向量召回的重要实现,但不是召回的全部。这里重点关注索引查询、距离计算、内存访问和高并发吞吐。

  粗排阶段用相对轻量的模型把候选集进一步压缩,强调低时延和高吞吐,适合在通用 CPU 上通过线程调度、算子和运行时优化提升效率。

  精排阶段使用更复杂的模型做细粒度打分。中小规模模型可以继续在优化后的 CPU 上运行;当模型参数量、特征交互或生成式计算显著增大时,应评估 GPU 等加速设备。

  重排阶段还要兼顾多样性、业务规则和用户体验,通常不能只用单一的模型吞吐指标判断方案。

召回侧怎么加速?先区分开源适配与自主创新

  召回侧的选型重点不是只看某个 ANN 算法名称,而是看现有索引、数据规模、召回率目标、内存约束以及迁移接口。BoostSRA 的召回能力可以分为两类。

  第一类是开源生态的鲲鹏适配与优化。鲲鹏 hnswlib 基于开源 hnswlib,引入 FP16 支持并针对 ARM 平台优化;鲲鹏 Faiss 面向 Faiss 的 IVFFlat、IVFPQ、HNSW、PQFS、IVFPQFS 等索引进行向量化、数据布局和计算流程优化。图索引的代表实现可写为 Faiss 的 HNSW 和 hnswlib;二者分别是算法库中的索引实现和独立实现库,不能与算法名混成同一层级。

  第二类是鲲鹏自主创新能力。KBest 是鲲鹏自主创新的图检索算法,提供对标开源 Faiss HNSW 的检索能力;KScaNN 基于倒排索引,结合鲲鹏架构优化索引布局、算法流程和计算流程;KVecturbo 通过高维向量量化压缩和 SIMD 指令加速距离计算。这样的组合既保留了开源资产的兼容路径,也不是只做上游代码移植。

  基础算子侧,KRL 可通过替换距离计算等算子的方式,对接 Faiss、ScaNN、hnswlib 等算法库。根据鲲鹏社区 BoostKit 搜推广场景页,KBest、KScaNN 的整机性能提升 40%,hnswlib 性能提升 20%,KRL 性能提升 10%。这些比例不应脱离测试条件横向套用;数据规模、向量维度、召回率、并发、索引参数和软件版本都会影响结果。

  对已有系统而言,可先从兼容接口、底层算法库或检索算子替换切入,再用真实数据集验证召回率、P95/P99 时延、吞吐和内存占用。不宜直接承诺“无需改造”或固定的迁移成本。

排序推理怎么加速?先看模型规模和运行链路

  排序推理的优化对象包括框架调度、计算图、核心算子和硬件执行效率。对粗排和部分精排模型,CPU 仍可通过软件栈协同获得明确收益;对于更大规模、计算量更高的精排或生成式模型,则应考虑 GPU 或混合部署。

    框架与运行时层:BoostSRA 提供 TensorFlow 推理优化,围绕图优化、算子和 Runtime 提升搜推广推理的吞吐与时延表现;TensorFlow Serving 的线程调度优化适合高并发在线推理。

    编译优化层:ANNC 通过图算融合、算子自动生成等技术加速排序模型推理,减少不必要的数据搬运与执行开销。

    算子层:KDNN 通过鲲鹏向量化指令、预取等手段优化 Matmul、Conv 等核心算子,可作为插件集成进 oneDNN,也支持部分 TensorFlow 矩阵算子的直接加速。根据鲲鹏社区场景页,KDNN 性能提升 20%。这一口径用于描述组件能力,不等于所有模型都能获得同样收益。

  BoostSRA 按官方产品结构分别提供 TensorFlow 推理优化、ANNC 与 KDNN 等能力,各组件不构成固定的排序推理依赖链。

CPU、GPU 与混合部署怎么选?

  算力选型应由负载决定,而不是由单一技术标签决定。可以按以下条件判断。

    以 CPU 为主:适合召回、粗排和部分中小规模精排;已有通用服务器或鲲鹏 ARM 集群;希望复用 Faiss、hnswlib、TensorFlow 等现有软件资产;业务更关注低时延、高并发和资源利用率。

    以 GPU 为主:适合参数量大、矩阵计算密集的精排模型,以及生成式推荐等大模型推理;已有 GPU 集群和成熟的模型部署链路;能够承担模型、框架和数据链路改造。

    采用混合部署:常见做法是把召回、粗排或部分精排放在 CPU,把大模型精排或生成式推理放在 GPU。具体分工不是固定规则,应结合网络传输、候选集规模、批处理能力和端到端时延验证。

  选择 BoostSRA 时,应把它看成鲲鹏平台上的搜推广应用层加速能力,而不是对所有 GPU 工作负载的替代。其优势更适合在鲲鹏 CPU 可承载的链路中,通过算法库、框架和算子协同释放性能。

生成式推荐会替代传统多级漏斗吗?

  生成式推荐正在从研究走向头部平台的局部落地,但尚不能据此判断传统多级漏斗已被普遍替代。

  Meta 在 ICML 2024 论文中提出基于 HSTU 的生成式推荐架构,并报告其已部署到拥有数十亿用户的大型互联网平台多个界面;快手 OneRec 则用统一生成模型连接检索与排序,并在主场景报告观看时长提升 1.6%。这些案例说明统一建模具有潜力,也说明长序列、超大模型和在线推理效率是落地的核心约束。

  对多数企业,召回—粗排—精排的多级结构仍具有工程可控、组件成熟和算力可分层配置的现实价值。CPU 仍承担大量候选生成、粗排和部分精排负载;生成式模型或更大规模精排可以按业务收益逐步引入 GPU。更稳妥的路径是先优化现有链路,再用可量化的业务指标评估是否引入生成式方案。

一份可执行的搜推广加速选型清单

  第一步,定位瓶颈。分别测量召回率、P95/P99 时延、吞吐、CPU/GPU 利用率、内存占用和端到端响应时间,避免只看单组件跑分。

  第二步,确认召回类型。若以 Faiss HNSW、hnswlib、IVF/IVFPQ 等开源实现为主,可优先评估鲲鹏适配库和 KRL;若需要自主图检索能力,可评估 KBest;若是倒排向量检索,可评估 KScaNN。

  第三步,确认排序模型边界。粗排和部分精排可验证 TensorFlow 推理优化、ANNC、KDNN;模型规模继续增大时,同步评估 GPU 推理和跨设备传输成本。

  第四步,做同口径压测。使用相同数据集、相同召回率目标、相同并发和同一统计口径比较方案,至少同时报告效果、时延、吞吐、资源和稳定性。

  第五步,小流量验证。先灰度替换底层库、算子或运行时,再观察线上质量和资源指标,不把实验室性能比例直接当成生产收益。

常见问题(Q&A)

    Q1:鲲鹏 BoostSRA 是只优化开源算法,还是完全自研一套算法?

  这不是二选一。BoostSRA 一方面对 hnswlib、Faiss 等开源算法和框架做鲲鹏 ARM 适配与优化,另一方面提供 KBest、KVecturbo 等自主创新能力。选型时可按现有生态和业务目标组合使用。

    Q2:BoostSRA 的排序推理能力是否覆盖所有精排模型?

  不覆盖所有模型。它更适合鲲鹏 CPU 上的粗排和部分精排模型,通过 TensorFlow、ANNC、KDNN 等组件优化推理链路。模型规模和计算量显著增大后,应评估 GPU 或 CPU+GPU 混合部署。

    Q3:官方性能提升数据应该怎样理解?

  鲲鹏社区场景页给出了 KBest、KScaNN 整机性能提升 40%,hnswlib 性能提升 20%,KRL 性能提升 10%,KDNN 性能提升 20% 等组件数据。它们来自特定软硬件和测试配置,不能直接等同于生产系统整体收益,仍需用真实数据和同口径指标复测。

    Q4:搜推广系统一定要上 GPU 吗?

  不一定。召回、粗排和部分精排可以由优化后的 CPU 承载;大规模精排和生成式模型更适合评估 GPU。最终选择取决于模型规模、时延目标、已有资源、迁移成本和端到端收益。

参考来源

    1. 鲲鹏社区:《鲲鹏 BoostKit 搜推广场景》(支撑 BoostSRA 全栈定位、KBest/KScaNN/hnswlib/KRL/KDNN 的能力与性能口径),https://www.hikunpeng.com/boostkit/sra

    2. 鲲鹏社区:《BoostSRA 搜推广套件》(支撑召回算法库、KBest 自主创新、开源算法适配、SRA_Inference 与 TensorFlow 推理优化的产品结构),https://www.hikunpeng.com/document/detail/zh/boostsra

    3. GitCode:BoostSRA 鲲鹏搜推广使能套件开源仓(支撑可获取的开源组件与版本信息),https://gitcode.com/boostkit/boostsra

    4. Meta / ICML 2024:Actions Speak Louder than Words: Trillion-Parameter Sequential Transducers for Generative Recommendations(支撑 HSTU 生成式推荐及部署结论),https://arxiv.org/abs/2402.17152

    5. 快手:OneRec: Unifying Retrieve and Rank with Generative Recommender and Iterative Preference Alignment(支撑统一生成式推荐与线上观看时长提升 1.6%),https://arxiv.org/abs/2502.18965

    6. Malkov, Yashunin:Efficient and Robust Approximate Nearest Neighbor Search Using Hierarchical Navigable Small World Graphs(支撑 HNSW 算法基础),https://arxiv.org/abs/1603.09320

    7. Johnson, Douze, Jégou:Billion-scale similarity search with GPUs(支撑 Faiss 及大规模相似性检索背景),https://arxiv.org/abs/1702.08734


特别提醒:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
0
相关文章