京东广告生成式召回基于 NVIDIA TensorRT-LLM 的推理加速实践

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 模型进行联合推理。稀疏模型擅长处理高维度的稀疏特征,具有计算效率高的优势;而稠密模型能够捕获复杂的非线性特征和深层次的语义信息。通过融合两者的优势,构建一个兼具高效性和精确性的推荐系统。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/16316.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

3.React 组件化开发

react&#xff1a;版本 18.2.0node&#xff1a; 版本18.19.1脚手架&#xff1a;版本 5.0.1 一、类组件 (一) 一个干净的脚手架 【1】使用已经被废弃的 CRA (create-react-app) create-react-app 已经被废弃&#xff0c;且目前使用会报错&#xff0c;官方已经不推荐使用&…

51单片机(国信长天)矩阵键盘的基本操作

在CT107D单片机综合训练平台上&#xff0c;首先将J5处的跳帽接到1~2引脚&#xff0c;使按键S4~S19按键组成4X4的矩阵键盘。在扫描按键的过程中&#xff0c;发现有按键触发信号后(不做去抖动)&#xff0c;待按键松开后&#xff0c;在数码管的第一位显示相应的数字:从左至右&…

【AI赋能】蓝耘智算平台实战指南:3步构建企业级DeepSeek智能助手

蓝耘智算平台实战指南&#xff1a;3步构建企业级DeepSeek智能助手 引言&#xff1a;AI大模型时代的算力革命 在2025年全球AI技术峰会上&#xff0c;DeepSeek-R1凭借其开源架构与实时推理能力&#xff0c;成为首个通过图灵测试的中文大模型。该模型在语言理解、跨模态交互等维…

机器学习 - 词袋模型(Bag of Words)实现文本情感分类的详细示例

为了简单直观的理解模型训练&#xff0c;我这里搜集了两个简单的实现文本情感分类的例子&#xff0c;第一个例子基于朴素贝叶斯分类器&#xff0c;第二个例子基于逻辑回归&#xff0c;通过这两个例子&#xff0c;掌握词袋模型&#xff08;Bag of Words&#xff09;实现文本情感…

没有服务器和显卡电脑如何本地化使用deepseek|如何通过API使用满血版deepseek

目录 一、前言二、使用siliconflow硅基流动 API密钥1、注册硅基流动2、创建API密钥3、下载AI客户端4、使用API密钥5、效果演示 三、使用deepseek官方API密钥1、创建API密钥2、使用API密钥3、效果演示 四、总结 一、前言 上篇文章我介绍了如何通过云服务器或者显卡电脑来本地化…

算法学习笔记之贪心算法

导引&#xff08;硕鼠的交易&#xff09; 硕鼠准备了M磅猫粮与看守仓库的猫交易奶酪。 仓库有N个房间&#xff0c;第i个房间有 J[i] 磅奶酪并需要 F[i] 磅猫粮交换&#xff0c;硕鼠可以按比例来交换&#xff0c;不必交换所有的奶酪 计算硕鼠最多能得到多少磅奶酪。 输入M和…

oracle执行grant授权sql被阻塞问题处理

一 问题描述 执行普通的grant授权sql(grant select,update on 表名 to 用户名)好几分钟都没反应&#xff0c;跟被阻塞了似的。 二 问题排查 #排查是否有阻塞 用OEM可以看到阻塞信息&#xff1a; 点‘性能’-‘阻塞会话’&#xff1a; 下面那个会话2958是我执行grant sql的…

SSM仓库物品管理系统 附带详细运行指导视频

文章目录 一、项目演示二、项目介绍三、运行截图四、主要代码1.用户登录代码&#xff1a;2.保存物品信息代码&#xff1a;3.删除仓库信息代码&#xff1a; 一、项目演示 项目演示地址&#xff1a; 视频地址 二、项目介绍 项目描述&#xff1a;这是一个基于SSM框架开发的仓库…

Deepseek 接入Word处理对话框(隐藏密钥)

硅基流动邀请码&#xff1a;1zNe93Cp 邀请链接&#xff1a;网页链接 亲测deepseek接入word&#xff0c;自由调用对话&#xff0c;看截图有兴趣的复用代码&#xff08;当然也可以自己向deepseek提问&#xff0c;帮助你完成接入&#xff0c;但是提问逻辑不一样给出的答案是千差万…

Docker Compose介绍及安装使用MongoDB数据库详解

在现代容器化应用部署中&#xff0c;Docker Compose是一种非常实用的工具&#xff0c;它允许我们通过一个docker-compose.yml文件来定义和运行多容器应用程序。然而&#xff0c;除了Docker之外&#xff0c;Podman也提供了类似的工具——Podman Compose&#xff0c;它允许我们在…

IntelliJ IDEA Console控制台输出成json的配置方式

【IntelliJ IDEA Console控制台输出成json的配置方式】 1.帮助->查找操作 2.搜索注册表 3.ctrlf 搜索pty 控制台右键 结果

基础入门-HTTP数据包红蓝队研判自定义构造请求方法请求头修改状态码判断

知识点&#xff1a; 1、请求头&返回包-方法&头修改&状态码等 2、数据包分析-红队攻击工具&蓝队流量研判 3、数据包构造-Reqable自定义添加修改请求 一、演示案例-请求头&返回包-方法&头修改&状态码等 数据包 客户端请求Request 请求方法 …

react redux用法学习

参考资料&#xff1a; https://www.bilibili.com/video/BV1ZB4y1Z7o8 https://cn.redux.js.org/tutorials/essentials/part-5-async-logic AI工具&#xff1a;deepseek&#xff0c;通义灵码 第一天 安装相关依赖&#xff1a; 使用redux的中间件&#xff1a; npm i react-redu…

机器学习 - 线性回归(最大后验估计)

最大似然估计的一个缺点是当训练数据比较少时会发生过拟合&#xff0c;估计的参数可能不准确.为了避免过拟合&#xff0c;我们可以给参数加上一些先验知识. 一、先从最大似然估计的一个缺点入手 最大似然估计&#xff08;MLE&#xff09;在处理小样本数据时&#xff0c;容易发…

2025.2.8——二、Confusion1 SSTI模板注入|Jinja2模板

题目来源&#xff1a;攻防世界 Confusion1 目录 一、打开靶机&#xff0c;整理信息 二、解题思路 step 1&#xff1a;查看网页源码信息 step 2&#xff1a;模板注入 step 3&#xff1a;构造payload&#xff0c;验证漏洞 step 4&#xff1a;已确认为SSTI漏洞中的Jinjia2…

Moretl 增量文件采集工具

永久免费: <下载> <使用说明> 用途 定时全量或增量采集工控机,电脑文件或日志. 优势 开箱即用: 解压直接运行.不需额外下载.管理设备: 后台统一管理客户端.无人值守: 客户端自启动,自更新.稳定安全: 架构简单,兼容性好,通过授权控制访问. 架构 技术架构: Asp…

基于STM32的ADS1230驱动例程

自己在练手项目中用到了ADS1230&#xff0c;根据芯片手册自写的驱动代码&#xff0c;已测可用&#xff0c;希望对将要用到ADS1230芯片的人有所帮助。 芯片&#xff1a;STM32系列任意芯片、ADS1230 环境&#xff1a;使用STM32CubeMX配置引脚、KEIL 部分电路&#xff1a; 代码…

HarmonyOS 5.0应用开发——NodeContainer自定义占位节点

【高心星出品】 文章目录 NodeContainer自定义占位节点案例开发步骤全部代码 NodeContainer自定义占位节点 NodeContainer是用来占位的系统组件&#xff0c;主要用于自定义节点以及自定义节点树的显示&#xff0c;支持组件的通用属性&#xff0c;对通用属性的处理请参考默认左…

26~31.ppt

目录 26.北京主要的景点 题目 解析 27.创新产品展示及说明会 题目​ 解析 28.《小企业会计准则》 题目​ 解析 29.学习型社会的学习理念 题目​ 解析 30.小王-产品展示信息 题目​ 解析 31.小王-办公理念-信息工作者的每一天 题目​ 解析 26.北京主要的景点…

单张照片可生成写实3D头部模型!Adobe提出FaceLift,从单一的人脸图像中重建出360度的头部模型。

FaceLift是Adobe和加州大学默塞德分校推出的单图像到3D头部模型的转换技术,能从单一的人脸图像中重建出360度的头部模型。FaceLift基于两阶段的流程实现:基于扩散的多视图生成模型从单张人脸图像生成一致的侧面和背面视图;生成的视图被输入到GS-LRM重建器中,产出详细的3D高斯表…