首页 > 其他分享 >京东广告生成式召回基于 NVIDIA TensorRT-LLM 的推理加速实践

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

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

标签:模型,生成式,TensorRT,LLM,召回,推理,推荐
From: https://www.cnblogs.com/Jcloud/p/18670828

相关文章

  • 初学者怎么入门大语言模型(LLM)?
    大语言模型(LLM)是一门博大精深的学科,涉及到高等数学、python编程、PyTorch/Tensorflow/Onnx等深度学习框架……然而奇妙的是,越是看上去难得要死、一辈子都学不完的技术,入门起来却越是容易。正如阿瑟·克拉克的名言:足够先进的科技看上去与魔法无异。大语言模型先进得如同魔法......
  • LLM大模型入门必读免费白皮书《从头训练大模型最佳实践》免费pdf分享
    本书介绍《CurrentBestPracticesforTrainingLLMsfromScratch》是由Weights&Biases(W&B)提供的一份关于从头开始训练大型语言模型(LLMs)的权威指南。这份白皮书深入剖析了LLMs训练的最佳实践,内容覆盖了从数据收集与处理、模型架构选择、训练技巧与优化策略,到模型评估......
  • ​​【LLM】为什么最新的 LLM 采用 MoE(专家混合)架构
    专业化必不可少医院里挤满了专家和医生,他们各有专长,解决着独特的问题。外科医生、心脏病专家、儿科医生——各种专家齐心协力提供护理,经常合作为患者提供所需的护理。我们可以通过人工智能做到同样的事情。人工智能中的混合专家(MoE)架构被定义为不同“专家”模型的混合或......
  • Python在生成式AI驱动的电影特效中的作用
    文章目录引言一、生成式AI在电影特效中的应用1.1生成式AI简介1.2生成式AI在电影特效中的角色二、Python的优势及其在生成式AI中的应用2.1Python的生态系统2.2Python在生成式AI中的应用三、虚拟角色生成3.1虚拟角色生成的挑战3.2利用GAN生成虚拟角色四、场景重建......
  • LLM大模型实践10-聊天机器人
    大型语言模型带给我们的激动人心的一种可能性是,我们可以通过它构建定制的聊天机器人(Chatbot),而且只需很少的工作量。在这一章节的探索中,我们将带你了解如何利用会话形式,与具有个性化特性(或专门为特定任务或行为设计)的聊天机器人进行深度对话。像ChatGPT这样的聊天模型实际......
  • Towards Better Multi-task Learning: A Framework for Optimizing Dataset Combinati
    本文是LLM系列文章,针对《TowardsBetterMulti-taskLearning:AFrameworkforOptimizingDatasetCombinationsinLargeLanguageModels》的翻译。迈向更好的多任务学习:一个优化大型语言模型中数据集组合的框架摘要1引言2相关工作3框架4实验设置5结果6......
  • letta-ai - 为 LLM 应用注入记忆能力的开发框架
    该项目是用于构建具有记忆功能的LLM应用的Python框架,支持创建拥有长期记忆和持久状态的智能体(Agent),并能够集成多种LLMAPI服务。13800Stars1500Forks28Issues118贡献者Apache-2.0LicensePython语言代码:GitHub-letta-ai/letta:Letta(formerlyMemGPT)......
  • VLLM - 快速且便宜的 LLM 服务
    这是一个高效易用的大型语言模型推理引擎,专为解决推理速度慢、资源利用率低等问题而设计。它基于PyTorch和CUDA,并结合内存优化算法(PagedAttention)、计算图优化和模型并行技术,大幅降低GPU内存占用,并充分利用多GPU资源提升推理性能。同时,vLLM与HF模型无缝兼容。支持在......
  • garak - 开源的 LLMs 漏洞扫描工具
    3300Stars288Forks306Issues29贡献者Apache-2.0LicensePython语言代码:https://github.com/NVIDIA/garak主页:https://discord.gg/uVch4puUCs更多AI开源软件:AI开源-小众AI​garak​检查是否可以以我们不希望的方式使LLM失败。探测幻觉、数据泄漏、及时......
  • 让 LLM 来评判 | 基础概念
    基础概念这是让LLM来评判系列文章的第一篇,敬请关注系列文章:基础概念选择LLM评估模型设计你自己的评估prompt评估你的评估结果奖励模型相关内容技巧与提示什么是评估模型?评估模型(Judgemodels)是一种用于评估其他神经网络的神经网络。大多数情况下它们用......