xGR: Efficient Generative Recommendation Serving at Scale
本文提出了 xGR,一种专门用于优化生成式推荐工作负载的推理服务系统,通过统一的分阶段计算、早期排序终止以及多级流水线并行技术,在严格的低延迟约束下实现了显著更高的吞吐量。
原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
想象一下,你正在经营着一家规模宏大、高速运转的数字图书馆(一个推荐系统),它正同时为数百万人在向其推荐下一本书、电影或产品。多年来,这家图书馆一直使用一种“过滤”方法:它会观察一大堆书,分阶段丢弃掉不好的,最后呈现出一份短名单。
最近,一种被称为生成式推荐 (Generative Recommendation, GR) 的新方法问世了。它不再是进行过滤,而是像一位富有创造力的作家,阅读你完整的人生故事(你点击和观看的历史),然后为你从零开始“写出”完美的推荐。
问题在于,当成千上万的人在同一秒钟向这位“作家”索要书籍时,这位作家速度太慢了。这篇论文介绍了一种名为 xGR 的新系统,旨在让这位作家足够快,能够应对高峰时期的冲击而毫不费力。
以下是 xGR 如何通过简单的类比解决三个难题的:
1. “共享故事”问题(解决内存浪费)
问题所在: 想象有 128 个不同的人(称为“束搜索/beams”)都在请求作家继续编写同一个故事。在旧系统中,作家会为每一个人都单独阅读一遍故事的前 1,000 页。这就像一名图书管理员为了拿同一本书,要为 128 个人分别跑 128 趟书架,导致走廊拥堵。
xGR 的解决方案: xGR 意识到每个人读的都是故事的同一个开头。它创建了一个**“共享阅览室”**,让那部分开头只被加载一次。然后,它为每个人独特的结尾设置了独立的、小巧的办公桌。
- 结果: 图书管理员不再来回奔波。系统节省了大量的内存和时间,使其能够同时处理更多的人。
2. “排序混乱”问题(解决搜索缓慢)
问题所在: 为了找到最好的推荐,作家会生成许多可能的结尾,并必须从中进行排序以挑选出最优秀的。在旧方法中,作家会生成所有可能的结尾,甚至包括那些并不存在的结尾(比如一本名为“12345”的并不存在的真实产品)。这就像一位厨师做了 1,000 顿饭,最后才发现其中 500 顿是用塑料做的,然后还要花时间去清理这些塑料。
xGR 的解决方案:
- “有效路径”过滤器: 在作家开始烹饪之前,xGR 会先给他们一份仅包含真实食材(真实产品)的清单。他们不会意外地做出“塑料餐”。
- “提前停止”规则: 作家开始对餐点进行排序。一旦他们发现某个餐点明显比他们已经找到的最佳餐点还要差,他们就会立即停止检查该特定选项。他们不会浪费时间去完成那些糟糕选项的后续排序。
- 结果: 厨师不再浪费时间在假食材上,也不再在排序过程中途检查那些差劲的菜肴。
3. “流水线”问题(解决调度延迟)
问题所在: 在旧系统中,经理(调度器)准备好食材,交给厨师,等待厨师完成,然后再准备下一批。所有人都在原地等待。此外,厨房非常狭小,即使有很多厨师可用,一次也只能有一位厨师工作。
xGR 的解决方案: xGR 将厨房变成了一条高速流水线。
- 工作重叠: 当厨师正在烹饪当前的菜肴时,经理已经在为下一道菜准备食材了。它们是同时进行的。
- 多流烹饪: xGR 不再是一个厨师负责一个大订单,而是将工作拆分,使得多位厨师可以同时烹饪不同部分的订单,而不会互相碰撞。
- 结果: 厨房从未停歇。订单之间没有等待时间。
总结
论文在来自一个大型电子商务平台的真实数据上测试了 xGR。研究发现,在严格的时间限制下(即系统必须在 200 毫秒内做出响应),xGR 比现有最优秀的系统至少快了 2.89 倍。
它实现这一目标并非通过提高计算机芯片的速度,而是通过重新组织工作的方式:分享故事的共同部分,及早过滤掉不可能的选项,并确保厨房工作人员永不停歇。这使得系统即使在最繁忙的购物时段,也能流畅地为数亿用户提供服务。
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。