CTR模型在互联网的搜索、推荐、广告等场景有着广泛的应用。近年来,随着深度神经网络的引入,CTR模型的推理对硬件算力的要求逐渐增加。本文介绍了美团在CTR模型优化的实践。通过分析模型结构特点,结合GPU硬件架构,我们设计了一系列流程对模型进行定制优化,达到了降低延迟、提高吞吐、节省成本的目标。

  • 1 背景

  • 2 CTR模型GPU推理的挑战

    • 2.1 应用层的挑战

    • 2.2 框架层的挑战

    • 2.3 硬件层的挑战

  • 3 优化手段

    • 3.1 算子融合

    • 3.2 CPU-GPU数据传输优化

    • 3.3 高频子图手工优化

    • 3.4 CPU-GPU分流

  • 4 压测性能分析

  • 5 整体架构

  • 6 不足之处与未来规划

1 背景

CTR(Click-Through-Rate)即点击通过率,是指网络广告的点击到达率,即该广告的实际点击次数除以广告的展现量。为CTR指标服务的打分模型,一般称为CTR模型。我们可以将此概念进一步扩展到互联网应用中各种预估转化率的模型。CTR模型在推荐、搜索、广告等场景被广泛应用。相对于CV(计算机视觉)、NLP(自然语音处理)场景的模型,CTR模型的历史结构比较简单,计算量较小。美团的CTR模型一直沿用CPU推理的方式。随着近几年深度神经网络的引入,CTR模型结构逐渐趋于复杂,计算量也越来越大,CPU开始不能满足模型对于算力的需求。

而GPU拥有几千个计算核心,可以在单机内提供密集的并行计算能力,在CV、NLP等领域展示了强大的能力。通过CUDA[1]及相关API,英伟达建立了完整的GPU生态。基于此,美团基础研发平台通过一套方案将CTR模型部署到GPU上。单从模型预测阶段看,我们提供的基于英伟达T4的GPU深度优化方案,在相同成本约束下,对比CPU,提升了10倍的吞吐能力。同时,在典型的搜索精排场景中,从端到端的维度来看,整体吞吐能力提升了一倍以上。

除了提高吞吐、降低成本外,GPU方案还为CTR模型的应用带来了额外的可能。例如,在某搜索框自动补全的场景,由于天然的交互属性,时延要求非常苛刻,一般来说无法使用复杂的模型。而在GPU能力的加持下,某复杂模型的平均响应时间从15毫秒降低至6~7毫秒,已经达到了上线要求。

接下来,本文将与大家探讨美团机器学习平台提供的新一代CTR预测服务的GPU优化思路、效果、优势与不足,希望对从事相关工作的同学有所帮助或者启发。

2 CTR模型GPU推理的挑战

2.1 应用层的挑战

  1. CTR模型结构多变,包含大量业务相关的结构,同时新的SOTA模型也层出不穷,硬件供应商由于人力受限,会重点优化常用的经典结构,如ResNet。对于没有收敛的结构,官方没有端到端的优化工具可以支持。

  2. CTR模型中通常包含较大的Embedding表结构,要考虑到Embedding表存在显存放不下的情况。

  3. 在典型的推荐场景中,为了达到更快的POI曝光的目的,模型的时效性要求很高,在线模型服务需要提供增量更新模型的能力。

2.2 框架层的挑战

  1. 算子层面:目前主流的深度学习框架,如TensorFlow和PyTorch,可以说是深度学习第二代框架,它们首先要解决第一代框架Caffe的问题,Caffe有一个明显问题就是Layer的粒度过粗,导致那个时代的算法开发者都必须有“自己写自定义层”的能力。TensorFlow和PyTorch都把模型表达能力放在较高的优先级,导致算子粒度比较小,无论是对CPU还是GPU架构,都会带来很大的额外开销。

  2. 框架层面:TensorFlow和PyTorch本质都是训练框架,对算法开发者比较友好,但非部署友好。其中隐含了很多为了方便分布式训练做的设计,比如TensorFlow为了方便将Variable拆到不同的PS上,内置了Partitioned_Variable的设计。在基于GPU单机预测的场景下,这些结构也会带来额外的开销。

2.3 硬件层的挑战

第一,TensorFlow的算子粒度划分较细,导致一个模型通常由几千个算子构成,这些算子在GPU上的执行转变为对应的GPU kernel的执行。kernel是GPU上并行执行的函数。

GPU kernel大体上可以划分为传输数据、kernel启动、kernel计算等几个阶段,其中每个kernel的启动需要约10

新一代CTR预测服务的GPU优化实践相关推荐

  1. 最新CTR预测服务的GPU优化实践

    CTR模型在互联网的搜索.推荐.广告等场景有着广泛的应用.近年来,随着深度神经网络的引入,CTR模型的推理对硬件算力的要求逐渐增加.本文介绍了美团在CTR模型优化的实践.通过分析模型结构特点,结合GP ...

  2. 【线上分享】云原生时代,华为云音视频质量监控与优化实践

    云时代,视频直播.实时音视频通信等在线音视频服务面临各种复杂的网络环境和流量爆发式的增长,对音视频质量监控和成本优化提出新的严峻挑战. 12月3日 19:30,我们邀请到了华为云音视频大数据研发负责人 ...

  3. 广告点击率(CTR)预测经典模型 GBDT + LR 理解与实践(附数据 + 代码)

    CTR 系列文章: 广告点击率(CTR)预测经典模型 GBDT + LR 理解与实践(附数据 + 代码) CTR经典模型串讲:FM / FFM / 双线性 FFM 相关推导与理解 CTR深度学习模型之 ...

  4. C++服务编译耗时优化原理及实践

    大型C++工程项目,都会面临编译耗时较长的问题.不管是开发调试迭代.准入测试,亦或是持续集成阶段,编译行为无处不在,降低编译时间对提高研发效率来说具有非常重要意义. 一.背景 美团搜索与NLP部为公司 ...

  5. 搜狐服务架构优化实践

    内容来源:2017 年 08 月 10 日,搜狐研发中心架构师陈伟在"第二届APMCon中国应用性能管理大会"进行<搜狐服务架构优化实践>演讲分享.IT 大咖说(微信I ...

  6. 解密阿里云大规模深度学习性能优化实践

    云栖号资讯:[点击查看更多行业资讯] 在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 作者 | 阿里云异构计算AI加速负责人 游亮 近日,斯坦福大学公布了最新的 DAWNBench 深 ...

  7. 在线公开课 | 5G时代的视频云服务关键技术与实践

    课程概要 5G时代来临在即,视频技术将会如何发展呢?基于视频云服务的技术开发又有怎样的变化呢?为此,京东云视频云产品研发部高级总监魏伟为大家做出了详细解读. 魏伟拥有10多年视频行业研发经验,先后从事 ...

  8. 鹏城实验室开源技术总师余跃:新一代人工智能开源生态的探索与实践

    人工智能自诞生以来,理论和技术日益成熟,应用领域也不断扩大,可以设想,未来人工智能带来的科技产品,将会是人类智慧的"容器".现如今,人工智能技术已经深入到我们生活的方方面面,为我们 ...

  9. CSDN开发者周刊第28期:今日头条 ANR 优化实践;C/C++类应用迁移理论基础;Elastic 7.12 版重磅发布

    开发者周刊将甄选Top100技术社区/团队博客的每周优质内容,集中推荐给CSDN开发者,内容以优质技术文章/视频.精选活动分享为主,每周五推送一期.欢迎关注订阅. [本周Top优质内容推荐] 干货|C ...

最新文章

  1. Oracle note 基礎入門篇1
  2. PowerDesigner 15 进行 数据库反转到 数据库模型
  3. Quickly Find/ Open a file in Visual Studio
  4. oracle之单行函数之课后练习
  5. php字符串原地反转,php反转字符串方法
  6. [120120]fzyz机房聚会
  7. 常用类 (一) ----- Arrays数组工具类
  8. 用GO语言开发editplus编辑器插件(附源码)
  9. 喜大普奔,Google 的一小步!
  10. 基金教父约翰博格的创业史
  11. matlab绘三维椭球面_MATLAB绘制三维图形
  12. 《美国职业橄榄球大联盟》:NFL·王牌四分卫
  13. Prince打造英语播音员1-3
  14. Unity URP贴花系统的简单使用
  15. 魔镜连接本地mysql_打造属于你的树莓派“魔镜”—硬件篇
  16. linux虚拟机 Ubuntu 安装方法
  17. 小程序篇1-1:搜索框输入关键字、词检索;点击取消恢复默认状态
  18. 伯努利朴素贝叶斯【机器学习算法一朴素贝叶斯2】
  19. 推荐学java——Spring之AOP
  20. 微信公众号推广一些常用方法和Dd_g自己使用的一些偏门的方法

热门文章

  1. SAP License:中国集团管控存在的主要问题-已加入点评
  2. 资产组合管理中有哪些基础概念?
  3. 欺诈与反欺诈的旷世攻防之战
  4. 解读制造业数字化转型的现状及发展趋势
  5. MySQL遇到的知识点
  6. iOS开发实用技术之推送-应用间跳转-社交分享
  7. Bioconductor Workflows
  8. 微信公众平台体验(二)(单词翻译)
  9. 支付宝小程序封装请求
  10. 如何高效学习Oracle