小红书以生成式SID召回改进推荐链路
概述
小红书在搜索侧落地一路 LLM 生成式 SID 召回,用「生成」取代传统 ANN 双塔「匹配」:离线对笔记的文本表征做分层残差聚类,为每篇笔记生成多级 SID;在线由 LLM 根据用户 Query 与本次查询上下文、意图逐级生成目标笔记的 SID,再映射回候选集合。该自回归 GR 负载形态为长 Context(1k~5k Token)、短 Decode(3~5 步)、大 Beam(最终 900 条),通用 Serving 框架无法高效支持,因此改由小红书与 NVIDIA 联合开发的 GR-Inference 承载。引擎以 Request 为状态归属单位进行 KV 分配与调度,用 ContextKV(请求级共享长序列)+ BeamKV(Beam 私有 Decode KV)+ BeamPath(分叉拓扑与回溯索引)三级抽象分离逻辑 Beam 树与物理 KV 存储,配 GR-Decode-Attention(K1 Tensor-Core 密集上下文注意力 / K2 CUDA-Core 稀疏束注意力 / K3 在线 log-sum-exp 归并)、GPU CSR SID Trie 融合 Constrained Top-K Kernel、Bucket-based CUDA Graph 与元数据驱动 Replay。该通道最终在耗时达标条件下完成上线,带来点击率提升 0.03pt、有效点击率提升 0.2%、离线 Recall@1000 召回率提升 5.7%。 后续材料(2026-09-01):因业界主流框架(vLLM / SGLang / TRT-LLM)优先优化多用户、长 Decode、单 Beam 的对话形态,Beam Search 不是一等公民,直接搬到 GR 场景会踩一系列坑,两团队协作写了专用引擎 GR-Inference,把上下文共享、Beam 状态、动态宽度、受限生成表达成 Runtime 一等公民。Benchmark 以 SGLang 三套 Beam Search 社区实现(feature/beam_search commit af4e3f42a5a1、feature/beam_search_update_0801 commit 9380595f3392、lsyin/beam-search-dev commit 5203fab5eb97)为对比对象,测试用 Qwen3-0.6B,prefill 长度 100→1000、decode 长度固定 3,统计 E2E Latency ≤100ms 下的最大吞吐:三步固定 Beam 900 时 GR-Inference 为 Version 1 的 1.50~2.29 倍、Version 2 的 1.66~2.27 倍,输入 100~400 有效测点为 Version 3 的 2.04~2.53 倍(Version 3 更长输入无满足 SLA 点);叠加 Item-constrained 时相对唯一支持该能力的 SGLang Version 2 达 3.24~3.63 倍。功能侧 GR-Inference 同时支持动态 Beam、Item-constrained、topk_logprob 及动态 Beam 下的 Decode CUDA Graph,而三套 SGLang 实现均不支持动态 Beam、仅 Version 2 支持 Item-constrained。