读《微博深度学习平台架构和实践》有感
上一周我阅读了《亿级用户下的新浪微博平台架构》之后,对新浪微博的架构更加好奇,所有就去读了今天这篇文章。
深度学习和人工智能早已经不是陌生的词语,随着神经网络算法的成熟和GPU计算能力额提高,我们在很多方面,都开始利用深度学习,而对于有那么多用户的微博,深度学习必然也是不可缺少的。微博深度学习平台极大地提升了深度学习开发效率和业务迭代速度,提高了深度学习模型效果和业务效果。
在说微博之前,我们先了解一下,其他大型互联网企业的深度学习平台。
腾讯深度学习平台DI-X:腾讯深度学习平台DI-X于2017年3月发布。DI-X基于腾讯云的大数据存储与处理能力来提供一站式的机器学习和深度学习服务。DI-X支持TensorFlow、Caffe以及Torch等三大深度学习框架,主要基于腾讯云的GPU计算平台。DI-X的设计理念是打造一个一站式的机器学习平台,集开发、调试、训练、预测、部署于一体, 让算法科学家和数据科学家,无须关注机器学习(尤其是深度学习)的底层工程繁琐的细节和资源,专注于模型和算法调优。
DI-X在腾讯内部使用了一年,其主要用于游戏流失率预测、用户标签传播以及广告点击行为预测等。
阿里机器学习平台PAI:阿里机器学习平台PAI1.0于2015年发布,包括数据处理以及基础的回归、分类、聚类算法。阿里机器学习平台PAI2.0于2017年3月发布,配备了更丰富的算法库、更大规模的数据训练和全面兼容开源的平台化产品。深度学习是阿里机器学习平台PAI2.0的重要功能,支持TensorFlow、Caffe、MXNet框架,这些框架与开源接口兼容。在数据源方面,PAI2.0支持非结构化、结构化等各种数据源;在计算资源方面,支持CPU、GPU、FPGA等异构计算资源;在工作流方面,支持模型训练和预测一体化。
PAI已经在阿里巴巴内部使用了2年。基于该平台,在淘宝搜索中,搜索结果会基于商品和用户的特征进行排序。
百度深度学习平台:百度深度学习平台是一个面向海量数据的深度学习平台,基于PaddlePaddle和TensorFlow开源计算框架,支持GPU运算,为深度学习技术的研发和应用提供可靠性高、扩展灵活的云端托管服务。通过百度深度学习平台,不仅可以轻松训练神经网络,实现情感分析、机器翻译、图像识别,也可以利用百度云的存储和虚拟化产品直接将模型部署至应用环境。
而微博的深度学习平台与上面介绍的几种都有较大的不同。
微博在Feed CTR、反垃圾、图片分类、明星识别、视频推荐、广告等业务上广泛使用深度学习技术,同时广泛使用TensorFlow、Caffe、Keras、MXNet等深度学习框架。为了融合各个深度学习框架,有效利用CPU和GPU资源,充分利用大数据、分布式存储、分布式计算服务,微博设计开发了微博深度学习平台。
微博深度学习平台支持如下特性:
- 方便易用:支持数据输入、数据处理、模型训练、模型预测等工作流,可以通过简单配置就能完成复杂机器学习和深度学习任务。特别是针对深度学习,仅需选择框架类型和计算资源规模,就能模型训练。
- 灵活扩展:支持通用的机器学习算法和模型,以及用户自定义的算法和模型。
- 多种深度学习框架:目前支持TensorFlow、Caffe等多种主流深度学习框架,并进行了针对性优化。
- 异构计算:支持GPU和CPU进行模型训练,提高模型训练的效率。
- 资源管理:支持用户管理、资源共享、作业调度、故障恢复等功能。
- 模型预测:支持一键部署深度学习模型在线预测服务。
由此可知,微博深度学习平台是微博机器学习平台的重要组成部分,除继承微博机器学习平台的特性和功能以外,支持TensorFlow、Caffe等多种主流深度学习框架,支持GPU等高性能计算集群。
本文参考文献:黄波,何沧平《微博深度学习平台架构和实践》