百度飞桨与OPPO的“AI故事”:当深度学习遇见智
随着技术的完善与门槛的降低,深度学习正在加大往各行业渗透落地的力度。5月20日,由深度学习技术及应用国家工程实验室与百度联合主办的“WAVE SUMMIT”2020深度学习开发者峰会召开。百度飞桨开源深度学习平台公布了7项新产品和23项重磅升级,瞄准工业大生产持续发力,会上展示的与OPPO的合作,成为飞桨在消费类电子领域智能推荐服务落地的典型案例。
根据峰会现场介绍,在飞桨大规模分布式训练的助力下,OPPO推荐系统业务模型训练速度提升了8倍,模型扩大了20倍,推荐场景效果提升了4%-5%,并节省了90%的内存,为OPPO在全球3.5亿用户带来更精准快速的移动互联网服务。
飞桨与OPPO,是如何结下这场“不懈之缘”?
缘起OPPO大举进军互联网业务,个性化推荐效率成“硬骨头”
提起OPPO,人们总是会想到造型时尚、性能强大的手机产品线,经过十一年的积累发展,OPPO已经成为中国智能手机市场的头部品牌,根据IDC数据报告,OPPO稳居2020年Q1中国智能手机市场出货量前三。OPPO还在2018年起开始大举进军互联网业务,创立了信息流、信息流广告、应用商店、游戏中心、商业中心等诸多业务线。
伴随业务规模扩张而来的,是指数级增长的用户和数据,这大大增加了单机终端进行模型训练的压力。“为了保证效率,旧式的深度学习解决方案是对训练样本做负采样,或者干脆直接减少训练数据集的规模,这样速度是快了,但会影响模型效果,用户可能就觉得个性化推荐给自己的内容不是那么精准。”OPPO的算法工程师表示。
在当时,深度学习已经被大量用于应用商店、内容推荐、负一屏、广告等推荐场景,已有的框架进行单机训练会受限于单机算力和内存等资源,这影响了模型上线的效率,会拖累产品优化的速度。对OPPO的算法工程师而言,能否寻找到一套更好的深度学习框架,实现高效处理海量数据集、提供高频率迭代模型,成为推荐系统是否成功的核心关键。
OPPO算法工程师使用了包括Tensorflow在内的深度学习框架,在速度上或者效果上都有一些不能令人满意。直到2019年4月,百度飞桨正式对外开源了基于自身多年产业实践的大规模分布式深度学习系统,这引起了OPPO方面的注意。
实际上,飞桨这套系统早已用于百度搜索推荐等相关场景,是百度搜索领先业界的技术护城河之一,非常契合OPPO互联网推荐系统的需求。经过多年业务实践,该系统已经达到相当完善的地步,百度也决定将其开源分享,尤其配合易用的FleetAPI,让这一系统可以方便快速地为外部企业所部署应用。于是,OPPO向百度飞桨的团队抛出了合作意愿。
攻关飞桨深度学习平台如何改造移动互联网服务?
百度飞桨团队对于OPPO这个来自于消费类电子领域的头部用户相当重视,进行初步接触之后,了解到OPPO旗下需要应用机器学习、深度学习等技术的产品和业务主要在于商店、信息流、信息流广告、游戏中心、商业广告,它们后端都需要结合用户行为等数据进行训练以及预测,并推送符合用户需求的内容。
一开始,OPPO从自身业务出发对飞桨提出了四点述求能够支持先进的训练模型,以及推荐系统领域内的新模型新方法;能够支持分布式大规模深度学习训练能力,包括增量训练等多种训练机制和亿级别以上的稀疏参数训练;性能速度要超越同业竞品,在指定时间内训练完成全部所需的数据;有完善的训练和预测的能力,支持分布式训练到高性能模型部署。
其实,这些同样也是深度学习技术要在产业实现落地的前提。
接触之后,百度飞桨团队很快根据内部使用经验和对OPPO业务场景的了解,给出了大量应用建议,包括在数据读取方面使用高性能数据读取接口Dataset、在分布式训练方面采用基于全异步大规模稀疏参数服务器的训练方式、在预测方面采用飞桨的预测库自行构建预测服务等。
经过验证,OPPO发现相比其他框架,飞桨的参数服务器训练方法有非常高的性价比,采用十台以内CPU服务器就可以有效地解决超大规模推荐系统、超大规模数据、自膨胀的海量特征及高频率模型迭代的问题,并拥有超大吞吐量及高效率。这非常贴合OPPO的实际需求。目前,OPPO已经构建了数百台服务器的集群用于训练飞桨的分布式任务,为产品线的策略调研提供了很大的便利。
OPPO的研发人员发现,飞桨可以在大幅度降低内存使用的情况下,将训练速度大幅提升,是原有训练工具速度的8倍。,飞桨能够支撑的稀疏参数规模也让OPPO策略研发人员将模型的参数数量提升了20倍。飞桨提供的全局分布式数据打乱、多通道数据数据预处理等功能也极大的提高了训练的吞吐效率和易用性。
双方一拍即合,立刻开始着手将飞桨应用落地到OPPO的具体业务场景中,但要先从哪一块“硬骨头”啃起?OPPO与飞桨的研发人员将目光放在了应用商店,这是OPPO互联网服务中最重要、流量非常大的业务,其中有三个需要训练的板块商店首页、应用商店业和应用商店热搜。
最终,OPPO和飞桨研发人员决定采用Wide&Deep模型进行训练,增加DNN网络作为深度部分参与训练,以提高模型的泛化能力,并基于Kuberes集群,快速完成了飞桨分布式训练集群的适配工作。,飞桨还提供了基于C++语言的服务器端部署功能,帮助OPPO研发人员快速实现线上业务预测。
“我们和飞桨团队的同学进行了长期的接触合作,并且对方一直在及时响应和支持我们在应用部署中遇到的各类问题。”OPPO的算法工程师回忆“从去年开始,双方每周都会组织沟通会议,高效同步进展和问题,训练效率的提升最终为OPPO的线上业务带来了实打实的收益。”
成果OPPO业务线的AI应用场景训练更“快”,收益更“多”
网络推广
- 5g网络有多快:5g网络网速有多快
- dota2无法连接至steam网络 为什么无法连接dota2网络
- 无线网络信号接收器 无线网络信号接收器怎么用
- 网络延时是什么意思 网络延时是什么原因
- 无线网络不可用:无线网络不可用是什么原因
- 网络广告销售技巧 网络广告销售技巧有哪些
- 智能手机网络设置 智能手机网络设置在哪里
- 为什么找不到无线网络 为什么找不到无线网络信
- 网络这么赚钱:网络怎么能赚到钱
- 为什么无线网络连接不上 为什么无线网连不起来
- 网络上的人际交往 网络上人际交往的优势
- 支付宝网络系统异常 支付宝显示网络异常什么时
- 营销软件:营销软件有哪些
- 无法访问您要使用的功能所在的网络位置
- 网络安全基本知识 网络安全基本知识有哪些
- 什么网络电话最好用 什么网络电话最好用最便宜