京东到家机器学习平台建设

文|巩学超/戴枫/魏铮

编辑|刘慧卿/闫文广

目录

  1. 前言

  2. 机器学习平台总体架构

  3. 模型训练平台

  4. 特征模型管理平台

  5. 在线模型预测服务

  6. 算法应用实践

  7. 总结和展望

1. 前言

京东到家作为行业领先的即时零售平台,一直把为消费者提供快捷便利高效高质量的即时零售服务作为自己的责任。到家算法团队作为支持京东到家各个业务场景的算法力量,一直以使用算法能力赋能整个到家业务作为团队目标,不断思考怎样提升算法能力和效率,以便更好的服务于到家业务,更好的助力业务发展。

随着京东到家业务的发展和壮大,原有基于线性模型和树模型的基本算法能力已经逐渐无法满足到家业务发展的需求。更多的搜索、推荐以及用户增长等业务场景的算法需求,需要算法团队提供更强大的算法能力,更好的感知用户瞬息万变的意图需求。当前业界先进的算法应用大多都基于深度学习建设完成,深度学习模型能更好地挖掘文本、图片、声音、序列、图结构中的深层次数据信息。依托深度学习模型丰富的模型结构可以更好地抽象提取数据中的高阶特征信息,并且通过结合专家网络等多目标学习任务的方式增强了对用户长短期多样性意图兴趣感知能力,为用户提供更极致服务体验的同时也更有利于业务发展。

所以我们从当前京东到家的业务特点出发,结合算法团队的真实算法迭代需求,融合了原有的算法迭代工具和脚本,进行系统化地沉淀和升级。同时引入了业界先进的kubernetes分布式资源管理框架,以tensorflow2.0作为深度模型训练预测框架。建设完成了从模型离线训练,模型特征管理到在线预测服务的一整套训练预测流程。整个系统采用开闭模式进行设计,将复杂的分布式训练和模型上线过程进行封装,对用户黑盒处理。将算法核心的模型定义和特征生产过程开放出来,实现了处理过程的自定义。总体来说,我们的最终目标就是让算法开发专注于核心工作:特征工程和算法模型。

到家机器学习平台建设以来,承接了京东到家多个业务场景的深度学习模型算法需求,在到家首页feeds推荐、频道feeds推荐以及全局搜索等业务场景均取得了显著的效果,其中首页feeds推荐场景点击率ctr指标累计提升30+%,为到家业务发展提供了高效的算法能力支持。

本文将对到家机器学习平台实现原理和功能进行全面介绍,并分享系统建设过程中遇到的问题和反思。

2. 机器学习平台总体架构

机器学习平台总体框架

随着以AlphaGo为代表的深度学习应用的成功,第三次人工智能热潮到来,算法在各大互联网公司业务中都发挥着重要的作用。如何提升算法研发的效率,成为各大互联网公司思考的重要工作。像业界比较知名的京东九数算法平台、阿里PAI机器学习平台、百度PaddlePaddle算法平台以及美团Poker算法平台,都通过友好的可视化交互方式提供了大规模数据的深度模型训练任务支持,为整个公司算法发展提供了基础能力。毫无疑问,算法平台可以帮助算法研发将精力聚焦在核心算法工作中去,大幅提升整体算法迭代效率。

到家机器学习平台,参照业界主流机器学习平台的功能划分,将整个平台分为了三个子系统:模型离线训练系统,模型特征配置系统和在线模型预测服务,三个平台各司其职相辅相成,共同组成到家机器学习平台。

我们将模型训练、管理和上线过程进行抽象解释,并将各个功能部分对应到三个系统平台,指出三个系统平台要解决的核心问题:

  1. 模型训练平台:模型训练过程抽象为,生成一个包含几百维输入的函数(模型),寻找函数最优输出的函数定义就是模型训练的目标。因为现实中需要定义的这个模型参数量非常大,并且用来训练该函数的数据量通常是百亿级别,所以一般单机训练过程,无法满足实际业务对大模型大数据量的需求,如何解决训练数据量巨大,并且模型参数量大的问题,是系统设计的核心问题。

  2. 模型特征配置平台:模型特征配置平台负责保存训练平台生产出的最优解函数模型,并且管理不同业务场景需要的模型路由信息。同时函数需要的输入参数由平台统一负责管理,并且定义管理每个输入的算子转换。平台解决核心问题:一方面是多业务线多业务场景模型管理问题,另一方面是提供复杂而灵活的模型输入算子转换。

  3. 在线模型预测服务:负责根据模型特征配置平台管理的模型配置信息,将模型函数路由部署到对应业务线业务场景中,并提供可靠稳定的在线服务。如何提供高效而稳定的在线服务,并且支持多业务多场景多模型在线路由是系统的核心问题。

除了三个平台要解决技术上的核心痛点外,整个到家机器学习平台参考业界先进机器学习平台的设计方案,将模型定义过程和模型训练、上线和部署过程分离开,为用户提供可视化交互方式,并简化了模型训练整体流程,减少上线部署出错概率,从而提高算法迭代质量。模型训练平台基于tensorflow2.0深度模型训练框架,支持图片、序列文本、声音等多模态模型输入,有效增加了算法可利用的输入资源。同时深度模型可以更好的探索迁移学习、负反馈学习、序列化注意力机制、图学习和强化学习等技术领域,让到家算法进入了加速迭代的阶段。

3. 模型训练平台

本章节主要对平台功能进行一个深度剖析。首先对模型实验功能部分进行了详细介绍。其次对平台训练实现原理进行说明,重点阐述了如何通过分布式资源管理和模型分布式训练,解决大模型大数据量级的模型训练问题。最后对未来平台还可以继续优化和改进的部分进行了总结与思考。

3.1 训练平台功能介绍

模型训练平台功能介绍

离线训练平台涵盖了算法平台通用的功能,其中包括:样本实验、模型实验、资源管理、模型debug工具以及实时ab实验工具。这些功能都是在算法开发调试上线过程中,总结发现对算法效率提升最有效的功能部分。

  • 样本实验:主要功能是将离线准备好的实验样本,进行业务相关的转换处理,临时储存在训练系统中,工后续的模型实验使用。

  • 模型实验:主要是为用户提供一个可视化创建模型训练实验功能入口,将底层创建分布式训练任务的脚本,进行抽象并组件话呈现,简化创建分布式训练实验的成本。

  • 资源管理:对使用者来说,可以通过该功能观察系统训练资源的使用情况,并且实时展示全局消耗资源较大的训练任务。

  • debug工具:主要是为分析线上模型效果好坏提供系统工具支持,未来会进一步开发并完善。

  • 实时ab实验数据:结合系统后端实时流数据,通过flink处理,将系统的实时曝光,实时用户行为和订单数据,进行归因分析,提供实时级别的实验ab数据,有助于发现线上实验问题。

3.2 模型训练过程

模型训练实验创建 & 模型训练参数设置

模型训练过程也是整个平台主要的功能部分,其中包括了模型实验创建,实验运行,已有实验的列表,以及训练生成模型的保存管理。

实验创建主要为开发人员提供了七个主要功能组件,其中最主要的有:

  • 样本输入(包括训练样本输入和预测样本输入):主要功能是将前面生成的实验样本引入到我们实验中,供模型训练和预测使用。

  • 模型训练:将用户定义好的模型文件,通过git方式拉取并引入到模型训练任务中,同时需要配置训练任务中各种类型的训练节点使用资源情况,训练任务生成式基于kubernetes分布式框架。

3.3 实现原理

模型训练平台基于kubernetes作为分布式资源管理框架,使用tensorflow作为机器学习框架。其中kubernetes是Google开源的容器编排引擎,是一个很好的分布式任务生成管理工具,kubernetes支持自动化部署,大规模可伸缩可扩展,应用容器化管理等功能,目前很多云存储云服务都是基于该开源软件设计开发。tensorflow

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值