作者:京东零售 陈航

0000 生成式推荐系统优势介绍

推荐系统的主要任务是根据用户的历史行为预测其兴趣点,并向其推荐相应的商品。传统的推荐系统在处理用户请求时,会触发多个召回模块(包括热门商品召回、个性化召回、深度召回等),以召回大量候选商品。随后,系统通过相对简单的粗排模型对候选集进行初步筛选,缩小候选范围,最后通过精排和重排模型,确定最终返回给用户的推荐结果。

随着大语言模型(LLM)在推荐系统中的应用,生成式推荐系统相比传统推荐系统展现出以下优势:

1)简化推荐流程:生成式推荐系统实现了从多级过滤的判别式(discriminative-based)架构向单级过滤的生成式(generative-based)架构的转变。通过直接生成推荐结果,简化了推荐流程,降低了系统复杂度。

2)知识融合:LLM 具有更强的泛化能力和稳定性。利用 LLM 所包含的世界知识和推理能力,可以突破传统电子商务平台在商品和用户建模中存在的数据局限性。在新用户和新商品的冷启动以及新领域的推荐场景中,生成式推荐系统能够提供更优的推荐效果和更好的迁移性能。

3)规模定律 (Scaling Law):传统的点击率(CTR)稀疏模型在模型规模扩大时,边际收益递减现象明显。而 LLM 所表现出的规模定律属性,为模型的有效扩展提供了一种新模式,即模型性能随着规模的增加而持续提升。这意味着通过扩大模型规模,可以获得更好的推荐效果,突破传统模型的性能瓶颈。

在这里插入图片描述



图 1: 传统推荐系统与基于 LLM 的生成式推荐系统对比(图片来源于 https://arxiv.org/pdf/2309.01157)

下面以京东广告场景落地生成式召回为例,介绍大语言模型在推荐系统的应用。



0001 生成式召回方案介绍

1、生成式召回算法与实现简介

生成式推荐涉及两个接地(grounding)过程:一是建立商品与自然语言的连接。二是建立用户行为与目标商品之间的连接。为实现这两个过程,我们需要以下几步:

1)商品表示:在实际操作中,直接生成文档或商品描述几乎是不可行的。因此,我们采用短文本序列,即语义 ID,来表征商品。选取高点击商品的标题、类目等语义信息,经由编码器模型获得向量表示,再利用 RQ-VAE 对向量进行残差量化,从而获得商品的语义 ID。例如,商品:“XXX品牌 14+ 2024 14.5 英寸轻薄本 AI 全能本高性能独显商务办公笔记本电脑” 可表示为:\<a\_99>\<b\_225>\<c\_67>\<d\_242>。

2)用户画像&行为建模:通过构建提示词来定义任务,并将用户相关信息(例如用户画像和用户历史行为数据)转化为文本序列。例如:“用户按时间顺序点击过这些商品:\<a\_112>\<b\_160>\<c\_67>\<d\_138>,\<a\_71>\<b\_30>\<c\_228>\<d\_128>, \<a\_20>\<b\_251>\<c\_30>\<d\_178> 你预测用户下一个可能点击的商品是? ”。

3)模型训练:确定了生成模型的输入(用户表示)和输出(商品物料标识符),即可基于生成式 Next Token Prediction 任务进行模型训练。

4)模型推理:经过训练后,生成模型能够接收用户信息并预测相应的商品语义 ID,这些语义标识可以对应数据集中的实际商品 ID。

(了解详细算法方案请参考: 生成式推荐系统与京东联盟广告-综述与应用 )

2、LLM 模型部署的工程适配

传统基于深度学习的召回模型,其参数量通常在几十万到几千万之间,且模型结构以Embedding层为主。而采用大语言模型(LLM)实现的生成式召回模型,其参数规模大幅提升至0.5B至7B之间,模型结构主要由Dense网络构成。由于参数量的急剧增加,LLM在推理过程中所需的计算资源相比传统模型显著提升,通常高出数十倍甚至上百倍。这使得LLM在处理复杂任务时具备更强的表现力,但同时也对计算能力有了更高的要求。

将如此庞大的算力模型部署至线上环境,并确保其满足毫秒级实时响应的需求,同时在严格控制资源成本的前提下实现工业化应用,这无疑是对工程能力的巨大考验。因此,我们必须对在线推理架构进行极致的性能优化。

在这里插入图片描述

图 2: 在线推理架构

**

3、基于 TensorRT-LLM 的 LLM 构建优化及其系统部署

· 在建模封装层,通过 TensorRT-LLM 实现 LLM 模型的构建与优化。然后将 LLM 无缝整合至现有生态系统,利用 Python 与 TensorFlow API 实现端到端推理图的构建。基于 TensorFlow 原生算子及现有业务的自定义 TensorFlow 算子库(例如用户行为特征处理算子),实现算法的灵活建模。

· 在推理优化层,通过应用 Inflight Batching、Constrained Sampling、Flash Attention 及 Paged Attention 等加速方案,最大限度地提升单卡吞吐量并降低推理延迟。

· 在系统部署方面,为了最大化利用时间资源,生成式召回的部署采用了与传统多分支召回模块并行的方式。由于生成式召回简化了推理流程,相较于传统召回方式,其资源消耗更少,运行时间更短,并且取得了优异的召回效果。


在这里插入图片描述

图 3:生成式召回与传统多路召回并行

4、生成式召回在推荐及搜索场景应用效果

目前,生成式召回已在京东广告推荐场景及搜索场景等业务线成功实施。在推荐场景,借助生成式模型的参数规模及语义理解优势,AB 实验结果显示商品点击率与消费带来了显著的提升。在搜索场景,通过 LLM 所具备的语义理解能力,显著提升了对查询与商品的认知能力,特别是在处理搜索中的长尾查询时,填充率有明显提升,AB 实验同样取得了点击率与消费几个点的收益增长。

0010 推理优化加速: 实现降低延迟、提升吞吐

在线推理基于Nvidia TensorRT-LLM, 通过使用 TensorRT-LLM 中的多种优化特性,并针对广告生成式召回业务场景进行深度定制优化后, 不仅模型推理延迟达到线上业务要求, 同时吞吐也有着显著提升。

在 NVIDIA GPU 上进行的测试中,通过对比 TensorRT-LLM 与基线,发现在限制 100 毫秒推理耗时的广告场景下,采用 TensorRT-LLM 进行推理,叠加针对业务的定制优化后,其吞吐量相较于 baseline提升了五倍以上。这相当于将部署成本降至原来的五分之一。

在这里插入图片描述



图 4:TensorRT-LLM 和基线的对比 (Qwen2-1.5B | beam 5 | vocab size 15W | input 150 | output 4)

对于这个特定的应用场景,beam width 的合理配置对检索结果有着重要影响。一般来说,较高的 beam width 能够增加候选商品的数量,从而提高检索的准确性。以返回 300 个商品为例,若 beam width 设置较低,每个 code 就需要对应更多的商品 id,这无疑会降低检索的精度。

针对这个情况,一方面我们与NVIDIA DevTech 技术团队合作进行了有针对性的二次开发和优化工作,另一方面,结合生成式召回的业务场景,研发定制高性能GPU算子,大幅提升推理效率,最终让 TensorRT-LLM 支持更大范围的 beam width, 从而及时满足了线上的业务需求。



0011 持续优化以实现模型效率效果提升

未来, 我们将持续在生成式推荐领域深入探索, 重点聚焦以下几个方面

1)提升模型规模,满足实时推理需求

当前,受制于算力、时间消耗和成本等客观条件,生成式推荐系统在实时推理中的可部署模型规模相对较小(约 0.5B 至 6B 参数)。然而,离线实验数据表明,扩大模型规模能够显著提升线上推荐效果。这对在线性能优化提出了更高要求。为了在不显著增加成本的前提下支持更大规模的模型在线部署,需要进一步优化模型结构和推理效率。例如,采用模型剪枝、量化等模型压缩技术,优化采样检索算法效率,以及高效的分布式推理架构。

2)扩展用户行为输入,提高模型效果

实验证明,输入更长的用户历史行为序列可以提升模型的推荐效果。然而,更长的序列输入会导致计算资源消耗的增加和推理时间的延长。为此,需要寻求在效果提升和性能开销之间的平衡。对应的优化方案包括:

a. Token 序列压缩:通过对输入序列进行压缩,如去除冗余信息、合并相似行为等,减少序列长度的同时保留关键信息。

b. 用户行为 KV 缓存复用:在推理过程中,针对用户行为特征有序递增的特点,对长期行为进行离线计算并进行缓存,在线部分负责计算实时行为,避免重复计算的同时最大化利用算力,提高推理效率。

3)融合稀疏与稠密模型,实现联合推理

随着模型参数量的增大,可以考虑将稀疏的传统 CTR 模型与稠密的 LLM 模型进行联合推理。稀疏模型擅长处理高维度的稀疏特征,具有计算效率高的优势;而稠密模型能够捕获复杂的非线性特征和深层次的语义信息。通过融合两者的优势,构建一个兼具高效性和精确性的推荐系统。


京东云开发者
3.4k 声望5.4k 粉丝

京东云开发者(Developer of JD Technology)是京东云旗下为AI、云计算、IoT等相关领域开发者提供技术分享交流的平台。