书店网站策划书,太原seo推广优化,网站建设w亿玛酷1流量订制,专业建设思路与措施本文根据美团配送资深技术专家郑艳伟在2019 SACC#xff08;中国系统架构师大会#xff09;上的演讲内容整理而成#xff0c;主要介绍了美团配送技术团队在建设一站式机器学习平台过程中的经验总结和探索#xff0c;希望对从事此领域的同学有所帮助。 0. 写在前面 AI是目前… 本文根据美团配送资深技术专家郑艳伟在2019 SACC中国系统架构师大会上的演讲内容整理而成主要介绍了美团配送技术团队在建设一站式机器学习平台过程中的经验总结和探索希望对从事此领域的同学有所帮助。 0. 写在前面 AI是目前互联网行业炙手可热的“明星”无论是老牌巨头还是流量新贵都在大力研发AI技术为自家的业务赋能。配送作为外卖平台闭环链条上重要的一环配送效率和用户体验是配送业务的核心竞争力。随着单量上涨、骑手增多、配送场景复杂化配送场景的各种算法在更快算法需要快速迭代、快速上线、更好业务越来越依赖机器学习算法产生正向的效果、更准算法的各种预测如预计送达时间等需要准确逼近真实值的目标下也面临日益增大的挑战。算法从调研到最终上线发挥作用需要有一系列的工程开发和对接由此引发了新的问题如何界定算法和工程的边界各司其职各善其长如何提升算法迭代上线的速度和效率如何快速准确评估算法的效果本文将为大家分享美团配送技术团队在建设一站式机器学习平台过程中的一些经验和探索希望对大家能有所帮助或者启发。 1. 业务背景 2019年7月份美团外卖的日订单量已经突破3000万单占有了相对领先的市场份额。围绕着用户、商户、骑手美团配送构建了全球领先的即时配送网络建设了行业领先的美团智能配送系统形成了全球规模最大的外卖配送平台。 如何让配送网络运行效率更高用户体验更好是一项非常有难度的挑战。我们需要解决大量复杂的机器学习和运筹优化等问题包括ETA预测、智能调度、地图优化、动态定价、情景感知、智能运营等多个领域。同时我们还需要在体验、效率和成本之间达到平衡。 2. 美团配送机器学习平台演进过程 2.1 为什么建设一站式机器学习平台 如果要解决上述的机器学习问题就需要有一个功能强大且易用的机器学习平台来辅助算法研发人员帮助大家脱离繁琐的工程化开发把有限的精力聚焦于算法策略的迭代上面。 目前业界比较优秀的机器学习平台有很多既有大公司研发的商用产品如微软的Azure、亚马逊的SageMaker、阿里的PAI平台、百度的PaddlePaddle以及腾讯的TI平台也有很多开源的产品如加州大学伯克利分校的Caffe、Google的TensorFlow、Facebook的PyTorch以及Apache的Spark MLlib等。而开源平台大都是机器学习或者深度学习基础计算框架聚焦于训练机器学习或深度学习模型公司的商用产品则是基于基础的机器学习和深度学习计算框架进行二次开发提供一站式的生态化的服务为用户提供从数据预处理、模型训练、模型评估、模型在线预测的全流程开发和部署支持以期降低算法同学的使用门槛。 公司级的一站式机器学习平台的目标和定位与我们对机器学习平台的需求不谋而合为用户提供端到端的一站式的服务帮助他们脱离繁琐的工程化开发把有限的精力聚焦于算法策略的迭代上面。鉴于此美团配送的一站式机器学习平台应运而生。 美团配送机器学习平台的演进过程可以分为两个阶段 MVP阶段灵活快速试错具备快速迭代能力。平台化阶段业务成指数级增长需要机器学习算法的场景越来越多如何既保证业务发展又能解决系统可用性、扩展性、研发效率等问题。2.2 MVP阶段 初始阶段大家对机器学习平台要发展成什么样子并不明确很多事情也想不清楚。但是为了支撑业务的发展必须快速上线、快速试错。因此在此阶段各个业务线独自建设自己的机器学习工具集按照各自业务的特殊需求进行各自迭代快速支持机器学习算法上线落地应用到具体的业务场景也就是我们所熟知的“烟囱模式”。此种模式各自为战非常灵活能够快速支持业务的个性化需求为业务抢占市场赢得了先机。但随着业务规模的逐渐扩大这种“烟囱模式”的缺点就凸显了出来主要表现在以下两个方面 重复造轮子特征工程、模型训练、模型在线预测都是各自研发从零做起算法的迭代效率低下。特征口径混乱各个业务方重复开发特征相同特征的统计口径也不一致导致算法之间难以协同工作。 2.3 平台化阶段 为了避免各部门重复造轮子提升研发的效率同时统一业务指标和特征的计算口径标准化配送侧的数据体系美团配送的研发团队组建了一个算法工程小组专门规整各业务线的机器学习工具集希望建设一个统一的机器学习平台其需求主要包括以下几个方面 该平台底层依托于Hadoop/Yarn进行资源调度管理集成了Spark ML、XGBoost、TensorFlow三种机器学习框架并保留了扩展性方便接入其它机器学习框架如美团自研的MLX超大规模机器学习平台专为搜索、推荐、广告等排序问题定制支持百亿级特征和流式更新。通过对Spark ML、XGBoost、TensorFlow机器学习框架的封装我们实现了可视化离线训练平台通过拖拉拽的方式生成DAG图屏蔽多个训练框架的差异统一模型训练和资源分配降低了算法RD的接入门槛。模型管理平台提供统一的模型注册、发现、部署、切换、降级等解决方案并为机器学习和深度学习模型实时计算提供高可用在线预测服务。离线特征平台收集分拣线下日志计算提炼成算法所需要的特征并将线下的特征应用到线上。实时特征平台实时收集线上数据计算提炼成算法所需要的特征并实时推送应用到线上。版本管理平台管理算法的版本以及算法版本所用的模型、特征和参数。AB实验平台通过科学的分流和评估方法更快更好地验证算法的效果。3. 图灵平台 平台化阶段我们对美团配送机器学习平台的目标定位是一站式机器学习平台给算法同学提供一站式服务覆盖算法同学调研、开发、上线、评估算法效果的全流程包括数据处理、特征生产、样本生成、模型训练、模型评估、模型发布、在线预测和效果评估。为了响应这个目标大家还给平台取了个大胆的名字——Turing中文名称为图灵平台虽然有点“胆大包天”但是也算是对我们团队的一种鞭策。 1首先在获取数据阶段支持在线和离线两个层面的处理分别通过采样、过滤、归一化、标准化等手段生产实时和离线特征并推送到在线的特征库供线上服务使用。 2模型训练阶段支持分类、回归、聚类、深度学习等多种模型并支持自定义Loss损失函数。 3模型评估阶段支持多种评估指标如AUC、MSE、MAE、F1等。 4模型发布阶段提供一键部署功能支持本地和远程两种模式分别对应将模型部署在业务服务本地和部署在专用的在线预测集群。 5在线预测阶段支持AB实验灵活的灰度发布放量并通过统一埋点日志实现AB实验效果评估。 3.1 离线训练平台 离线训练平台的目标是搭建可视化训练平台屏蔽多个训练框架的差异降低算法RD的接入门槛。 为了降低算法RD进入机器学习领域的门槛我们开发了带有可视化界面的离线训练平台通过各种组件的拖拉拽组合成DAG图从而生成一个完整的机器学习训练任务。 目前支持的组件大致分为输入、输出、特征预处理、数据集加工、机器学习模型、深度学习模型等几大类每种类别都开发了多个不同的组件分别支持不同的应用场景。同时为了不失去灵活性我们也花费了一番心思提供了多种诸如自定义参数、自动调参、自定义Loss函数等功能尽量满足各个不同业务方向算法同学各种灵活性的需求。 我们的离线训练平台在产出模型时除了产出模型文件之外还产出了一个MLDLMachine Learning Definition Language文件将各模型的所有预处理模块信息写入MLDL文件中与模型保存在同一目录中。当模型发布时模型文件连带MLDL文件作为一个整体共同发布到线上。在线计算时先自动执行MLDL中的预处理逻辑然后再执行模型计算逻辑。通过MLDL打通了离线训练和在线预测贯穿整个机器学习平台使得线下和线上使用同一套特征预处理框架代码保证了线下和线上处理的一致性。 在发布模型时我们还提供了模型绑定特征功能支持用户把特征和模型的入参关联起来方便在线预测时模型自动获取特征极大地简化了算法RD构造模型输入时获取特征的工作量。 3.2 模型管理平台 前面介绍了我们的图灵平台集成了Spark ML、XGBoost、TensorFlow三种底层训练框架基于此我们的训练平台产出的机器学习模型种类也非常多简单的有LR、SVM树模型有GBDT、RF、XGB等深度学习模型有RNN、DNN、LSTM、DeepFM等等。而我们的模型管理平台的目标就是提供统一的模型注册、发现、部署、切换、降级等解决方案并为机器学习和深度学习模型提供高可用的线上预测服务。 模型管理平台支持本地和远程两种部署模式 本地模型和MLDL统一推送到业务方服务节点上同时图灵平台提供一个Java的Lib包嵌入到业务方应用中业务方通过本地接口的方式调用模型计算。远程图灵平台维护了一个专用的在线计算集群模型和MLDL统一部署到在线计算集群中业务方应用通过RPC接口调用在线计算服务进行模型计算。 对于超大规模模型单机无法装载需要对模型进行Sharding。鉴于美团配送的业务特性可以按照配送城市/区域进行分区训练每个城市或区域产出一个小模型多个分区模型分散部署到多个节点上解决单节点无法装载大模型的问题。分区模型要求我们必须提供模型的路由功能以便业务方精准地找到部署相应分区模型的节点。 同时模型管理平台还收集各个服务节点的心跳上报信息维护模型的状态和版本切换确保所有节点上模型版本一致。 3.3 离线特征平台 配送线上业务每天会记录许多骑手、商家、用户等维度的数据这些数据经过ETL处理得到所谓的离线特征算法同学利用这些离线特征训练模型并在线上利用这些特征进行模型在线预测。离线特征平台就是将存放在Hive表中的离线特征数据生产到线上对外提供在线获取离线特征的服务能力支撑配送各个业务高并发及算法快速迭代。 最简单的方案直接把离线特征存储到DB中线上服务直接读取DB获取特征Value。读取DB是个很重的操作这种方案明显不能满足互联网大并发的场景直接被Pass掉。 第二种方案把各个离线特征作为K-V结构存储到Redis中线上服务直接根据特征Key读取Redis获取特征Value。此方案利用了Redis内存K-V数据库的高性能乍一看去好像可以满足业务的需求但实际使用时也存在着严重的性能问题。 典型的业务场景比如我们要预测20个商家的配送时长假设每个商家需要100个特征则我们就需要20*1002000个特征进行模型计算2000个KV。如果直接单个获取满足不了业务方的性能需求如果使用Redis提供的批量接口Mget如果每次获取100个KV则需要20次Mget。缓存mget的耗时TP99约5ms20次MgetTP99接近100ms也无法满足业务方的性能需求上游服务超时时间约50ms。 因此我们需要对离线特征从存储和获取进行优化。我们提出了特征组的概念同一维度的特征按照特征组的结构进行聚合成一个KV大大减少了Key的数目并且提供了相对完善的管理功能支持对特征组的动态调整组装、拆分等。 3.4 实时特征平台 相比于传统配送即时配送无论是在位置信息、骑手负载还是在当前路网情况以及商家出餐情况等方面都是瞬息变化的实时性要求非常高。为了让机器学习算法能够即时的在线上生效我们需要实时地收集线上各种业务数据进行计算提炼成算法所需要的特征并实时更新。 3.5 AB实验平台 AB实验并不是个新兴的概念自2000年谷歌工程师将这一方法应用在互联网产品以来AB实验在国内外越来越普及已成为互联网产品运营精细度的重要体现。简单来说AB实验在产品优化中的应用方法是在产品正式迭代发版之前为同一个目标制定两个或以上方案将用户流量对应分成几组在保证每组用户特征相同的前提下让用户分别看到不同的方案设计根据几组用户的真实数据反馈科学的帮助产品进行决策。 互联网领域常见的AB实验大多是面向C端用户进行流量选择比如基于注册用户的UID或者用户的设备标识移动用户IMEI号/PC用户Cookie进行随机或者哈希计算后分流。此类方案广泛应用于搜索、推荐、广告等领域体现出千人千面个性化的特点。此类方案的特点是实现简单假设请求独立同分布流量之间独立决策互不干扰。此类AB实验之所以能够这样做是因为C端流量比较大样本足够多而且不同用户之间没有相互干扰只要分流时足够随机即基本可以保证请求独立同分布。 即时配送领域的AB实验是围绕用户、商户、骑手三者进行用户/商户/骑手之间不再是相互独立的而是相互影响相互制约的。针对此类场景现有的分流方案会造成不同策略的互相干扰无法有效地评估各个流量各个策略的优劣。 鉴于上述的问题我们将配送侧的AB实验分为三个阶段事前的AA分组事中的AB分流事后的效果评估。 AA分组将候选流量按照既定的规则预先分为对照组和实验组基于数理统计的理论确保对照组和实验组在所关注的业务指标上没有显著差异。AB分流将线上请求实时分到对照或者实验版本。效果评估根据对照组和实验组的数据对比评估AB实验的效果。 由于即时配送的场景较为特殊比如按照配送区域或城市进行AB实验时由于样本空间有限很难找到没有差异的对照组和实验组因此我们设计了一种分时间片AB对照的分流方法支持按天、小时、分钟进行分片多个时间片进行轮转切换在不同区域、不同时间片之间对不同的策略进行交替切换进行AB分流最大限度减少线下因素的影响确保实验科学公正。 4 总结与展望 目前图灵平台支撑了美团配送、小象、LBS平台等BU的算法离线训练、在线预测、AB实验等使算法RD更加关注算法策略本身的迭代优化显著提高了算法RD的效率。未来我们会在以下方面继续深入探索 1加强深度学习的建设。 加强深度学习的建设全面支持深度学习实现深度学习相关组件与机器学习组件一样在可视化界面可以和任意组件组合使用。离线训练支持更多常用深度学习模型。支持直接写Python代码自定义深度学习模型。2在线预测平台化进一步解耦算法和工程。 简化图灵平台SDK剥离主体计算逻辑建设在线预测平台。在线预测平台动态加载算法包实现算法、业务工程方、图灵平台的解耦。作者简介 艳伟美团配送技术团队资深技术专家。 招聘信息 如果你想近距离感受一下图灵平台的魅力欢迎加入我们。美团配送技术团队诚招调度履约方向、LBS方向、机器学习平台、算法工程方向的技术专家和架构师共建全行业最大的单一即时配送网络和平台共同面对复杂业务和高并发流量的挑战迎接配送业务全面智能化的时代。感兴趣同学可投递简历至techmeituan.com邮件标题注明美团配送技术团队。