官宣!Mobvista发布一站式全链路机器学习平台MindAlpha
背景:
MindAlpha 机器学习平台是汇量科技(Mobvista)推出的全流程一站式机器学习平台。Mobvista是全球领先的移动营销平台,目前已建立起海外覆盖FB/Google之外超3万个独立媒体的流量矩阵,广告+统计SDK覆盖3.3亿日独立设备;涉及从移动应用安装前到安装后全生命周期用户行为的海量数据覆盖。目前变现收入55%以上来自海外超过60个国家,海外广告主资源丰富,已规模化盈利。
MindAlpha平台功能覆盖了广告、搜索、推荐等互联网核心业务对机器学习平台的各方面需求,包括大规模实时数据流和高效特征工程框架,百亿特征、千亿样本的大规模复杂模型训练框架,以及海量请求的高性能低延迟的在线预测框架。
平台简介
MindAlpha平台构建于超大规模分布式计算平台之上,包含了与开源生态兼容的云端部署的分布式集群,通过自主研发的多种计算、服务框架,构建了大数据计算服务、分布式机器学习服务以及在线实时预测、评估以及实时数据服务。整体的计算平台架构如下图所示:
其中MindAlpha提供的一站式机器学习服务是整个计算平台最为核心的功能,MindAlpha具体的架构如下图所示:
MindAlpha平台提供的一站式机器学习服务完整覆盖了:数据流接入、特征生成、模型训练、线上预测、在线评估、在线学习的全周期流程。MindAlpha集成了多个大规模离散特征在线学习算法,经历了每天百亿PV、十亿UV量级的实际业务考验,开箱即用。同时也能够支持快速算法原型的开发验证,以及模型生产部署的无缝对接。
MindAlpha平台采用了Cloud Native设计,通过强大的资源弹性伸缩功能保证了大规模的计算能力和成本的平衡,能够方便企业进行公、私有云的快速弹性部署,充分体现了AI as a Service的强大服务能力。下面分别介绍MindAlpha一站式机器学习平台的核心重点模块。
一、大规模高效的数据流和特征工程框架
数据流和特征工程是算法训练的基础。高效的数据回流能力保证了模型训练样本生成的时效性,百亿规模的特征工程生成能力保证了样本对真实问题空间的匹配程度,从而进一步保证模型的准确度。
MindAlpha平台的数据流特征工程主要有以下技术特点:
1)在线回流特征和离线特征相结合。MindAlpha平台支持大量不同类型的在线特征,包括用户的各类实时行为统计特征等。这部分特征在离线没有对应数据,通过排序服务将这批特征回流到离线平台。而另一部分是离线特征表,包括DMP平台提供的大量设备维度特征等。
2)大维度表抽取优化。在线上数据回流后,进行多个维度表特征抽取时,往往容易遇到的问题是离线维度表很大,而回流数据只需要取很小一部分。但是传统的MapReduce方法仍然需要扫描大维度表,导致Shuffle和Join过程非常耗时。我们通过创新地综合运用In Memory Hash和小表Broadcast等方式,使得特征抽取的流程大幅加快,能够在10分钟内完成十亿量级的日志表与百亿量级的特征表的join操作。
3)原始特征列式存储。算法模型的调优通常需要频繁实验不同的(原始)特征,但是不同的实验往往只有小部分特征不同。为每组实验都重新生成一份样本,会造成较大的空间浪费,同时生成多份样本也会带来较大的资源开销。我们设计了全新的列式存储方案,使得原始特征分为不同的列来存储,在训练时可以指定所需的特征列。这样所有不同的实验都可以共享同一份样本存储,只需要选择不同的特征列即可。通过这样的优化,使得小时级的样本生成只需要一份,同时回溯多天的历史数据补充特征也只需要增加相关的列即可。
二、超大规模分布式训练框架
通过数据流和特征工程之后,接下来进入到模型训练的环节。对于在线广告领域,特征规模、样本规模是算法效果提升的重要基础,对于近期比较领先的Entire Space Multitask Model (ESMM)的学习范式等,模型空间还会大幅膨胀。因此,一个能够支持超大规模特征和样本的分布式机器学习训练框架是AI平台的核心组成部分。我们的分布式机器学习训练框架采用了底层分布式框架和上层算法框架分离的架构,主要原因是不同的算法在优化迭代的模式上有很多区别,同时算法与业务、特征等也有一定的耦合。单纯引入TensorFlow等DL框架并不能满足多样化的算法开发需求。具体来说整体架构可以分为两层:
1)第一层是一个大规模的Parameter Server框架。从架构上看和经典的PS架构类似。不同点是我们提供了通用的批量KV存取功能,并能够方便上层灵活定制Server端的存储对象格式。PS架构的横向扩展性使得我们能够高效地支撑百亿特征规模和千亿样本规模。
2)第二层是算法框架和算法组件。在这一层,我们有针对广告业务专门设计的若干个大规模稀疏特征在线算法,也能够无缝对接MXNet、PyTorch等深度学习框架。通过这样的层次切分,不同算法实验也可以共享特征组合、离散化等公共模块,同时又能够深度定制自身的算法逻辑,提高了算法开发迭代的效率。
三、高效在线预测平台
在线预测平台提供基于超大规模复杂模型的实时预估服务。在线预测服务对响应延迟、稳定性和模型加载时效性等都有极高的要求。对于在线广告、搜索推荐等场景来说,通常要求每个请求的预测时间控制在10~100毫秒之间。除了极低的延迟要求,在线预测服务还需要能够动态加载模型,并能够根据实验流量的自动感知并调整不同模型的负载能力。总体架构图如下图所示:
预测框架封装了通信、预测请求的序列化及线程调度等底层细节,并与离线的特征表达、模型描述无缝对接。以便应用算法同学专注于算法开发,避免重复代码引起在线、离线不一致的问题。预测框架和算法分层独立,方便两部分独立迭代演化。下面是MindAlpha的在线预测平台的一些重要特性:
1)基于协程的异步编程API。通过使用Sharded Stackless Coroutine的设计,预测服务能够充分利用多CPU核心进行线性扩展。预测过程需要从实时模型服务、实时特征服务等多个数据源获取数据,支持异步调用使得我们可以并发地发出请求,减少等待。
2)横向、纵向自动扩展的模型服务。模型服务是预测平台的一个组件,它也是一个参数服务器(Parameter Server),将每一份模型拆分成多个分片,使得模型规模不会受到单机内存容量的限制。预测算法根据输入样本从模型服务拉取需要的参数取值。通过拆出独立的模型服务,我们降低了单机的内存消耗,并可通过增加机器数量支持更大的模型规模。由于预测框架具有独立的通信和计算线程,并支持异步调用,拆出独立的模型服务并未导致预测请求的处理效率降低。同时,每一份模型还可以进一步同时提供多个replica,通过增加资源的方式线性增加服务能力。模型预测服务充分利用了云端资源动态扩展的功能,通过对各个模型调用频率负载的动态感知进行实时扩缩容,在保证线上预测高性能、低延迟的同时也有效控制了成本。
3)创新的模型文件格式。模型服务中的参数服务器是只读的,我们设计了高效的模型磁盘数据文件格式,支持矩阵、向量和更复杂的哈希表的编码,并支持用内存映射文件的方式高效地加载模型。使用时,我们先在线下对表和文本格式的模型进行预处理,将其编码为我们自定义的磁盘数据文件格式,在此过程中哈希表中字符串 key 被转为其 uint64 哈希码,数值也从文本格式转为二进制,减小了磁盘空间需求。
4)基于磁盘映射文件的模型加载机制。加载模型时,我们使用磁盘映射文件,模型可瞬间切换,无须一次性执行全部磁盘 IO,也无数据格式转换的过程,使得模型切换延迟极短。模型中实际用到的部分会根据需要由操作系统负责再实时加载需要的内存页,负载是均摊的,且模型中的低频部分可由系统自动换出物理内存。通过这种技术,我们实现了模型线下预处理、线上一键加载切换,减少了模型加载时间,降低了内存和磁盘空间消耗。
四、算法模型组件
MindAlpha平台提供了成熟的算法组件,包括经典的FTRL、XNN、RL算法模型等;同时针对搜索、推荐、广告的领域的超大规模离散特征和数据的特点做了针对性优化,做到了开箱即用,直接服务于线上业务。在广告业务领域,MindAlpha能够支持CPM、CPC、CPE、CPI等多种类型的广告业务的个性化排序。以常用FTRL模型为例,MindAlpha平台提供了直接支持特征组合后样本进行训练的功能,对CTR、CVR、IVR等指标进行建模,并与在线预测服务无缝打通,省去特征编码、解码的步骤,直接将特征规模提升到百亿级。
MindAlpha平台在服务于集团发展的过程中,贴合不同业务场景的特点,借助自身的强大数据处理能力、大规模分布式训练框架和高性能在线预测平台,分阶段自研了多个行业领先的算法模型组件,包括ESSM、DF-ESMM、DF-ESMM-DNN、DRL等。平台总的算法模型组件框架如下图示意:
下面对几个特色的算法组件进行展开介绍:
1)ESMM
即Entire Space Multi-task Model,针对广告业务的CVR预估模型中存在的样本采样偏差和数据稀疏性,对CTR和CVR联合建模训练求解,在原有IVR预估的基础上借鉴Multi-task Learning思想,引入Click Event信息量:
2)DF-ESMM
Online Learning的求解框架,首先假设在特征空间内,Label分布随时间变化平稳;但在移动展示广告的场景中,经常存在转化数据的滞后性,引起Label在特征空间分布的剧烈波动,严重影响模型效果。应对这个问题,引入转化延迟(DF: Delay Feedback)模型。
3)DF-ESMM-DNN
在CTR模型和CVR模型未考虑延迟反馈的部分,分别使用DNN建模,共享Embedding层参数。
4)DRL
除了传统的深度学习和在线学习体系,我们还尝试使用最新的深度强化学习体系对我们的程序化广告投放引擎进行建模。具体来讲,我们将广告投放引擎看作智能体(Agent),把设备用户看作环境(Environment),则广告的投放问题可以被视为典型的顺序决策问题。Agent每一次排序策略的选择可以看成一次试错(Trial-and-Error),把用户的反馈:点击/安装等作为从环境获得的奖赏。在这种反复不断地试错过程中,Agent将逐步学习到最优的排序策略,最大化累计奖赏。而这种在与环境交互的过程中进行试错的学习,正是强化学习(Reinforcement Learning,RL)的根本思想。通过这种方式,我们的广告投放引擎能逐步进化,实现平台广告收益的累积最大化。类似的方式也可以无缝对接到其他互联网业务如个性化推荐、搜索等的建模优化。
总结及展望
MindAlpha平台构建了面向大规模互联网核心业务的人工智能一站式服务平台,奠定了企业级AI应用的基础。通过多种云端部署方案快速搭建,开箱即用,高效服务于在线业务。目前基于MindAlpha平台的一站式服务体系,已支持了Mobvista多个在线业务的服务体系,包括:海量中部媒体的程序化投放,头部大媒体的智能化投放,以及传统网盟业务的反作弊算法体系等。
事实上,我们能清晰地看到各个行业各个维度对AI的诉求都是非常之大的。MindAlpha后续也会考虑对外直接提供AI服务,在科技巨头之外,为行业的中小公司提供一种新的AI服务选择。Mobvista集团算法科学家陈绪(前阿里XPS机器学习平台负责人)表示,MindAlpha是为大规模互联网业务而生,全流程一站式的企业级人工智能平台,其技术架构已经达到甚至领先于一线大型互联网公司,代表着业内领先的一流水准。
高速发展中的汇量科技,未来会遇到更多挑战性的业务问题,MindAlpha平台也会在伴随上层业务的发展过程中不断地推进和演化。AI as a Service会是平台持续发展过程中的坚定理念。
MindAlpha.号外!
10月20日(本周六),Mobvista 集团副总裁朱亚东先生将受邀出席全球软件大会(QCON),并做企业级AI应用的专题报告,届时他将对 MindAlpha 平台进行深度详解,欢迎前往现场参与分享交流/关注我们的后续报道。
EDITOR'S PICK
阅读推荐
Mobvista蔡超:因为All in Cloud,所以探索云端俭省之道