vivo 互联网产品团队 – Wang xiao
跟着广告和内容等推荐场景的扩展,算法模型也在不断演进迭代中。事务的不断增长,模型的练习、产出迫切需求进行渠道化办理。vivo互联网机器学习渠道首要事务场景包含游戏分发、商店、商城、内容分发等。本文将从事务场景、渠道功用完成两个方面介绍vivo内部的机器学习渠道在建造与实践中的思考和优化思路。
一、写在前面
跟着互联网范畴的快速开展,数据体量的成倍增长以及算力的持续进步,行业内都在大力研制AI技能,完成事务赋能。算法事务往往专心于模型和调参,而工程范畴是相对单薄的一个环节。建造一个强壮的分布式渠道,整合各个资源池,供给统一的机器学习结构,将能大大加快练习速度,进步功率,带来更多的可能性,此外还有助于进步资源运用率。希望经过此文章,初学者能对机器学习渠道,以及出产环境的复杂性有一定的知道。
二、事务背景
截止2022年8月份,vivo在网用户2.8亿,运用商店日活跃用户数7000万+。AI运用场景丰厚,从语音识别、图画算法优化、以及互联网常见场景,环绕着运用商店、浏览器、游戏中心等事务场景的广告和推荐诉求持续上升。
怎么让推荐体系的模型迭代更高效,用户体会更好,让事务场景的作用更佳,是机器学习渠道的一大应战,怎么在成本、功率和体会上达到平衡。
从下图能够了解到,整个模型加工运用的场景是串行可闭环的,对于用户的反馈需求及时进行特征更新,不断进步模型的作用,依据这个链路关系的基础去做功率的优化,建造一个通用高效的渠道是要害。
三、vivo机器学习渠道的设计思路
3.1 功用模块
依据上图事务场景的链路关系,咱们能够对事务场景进行归类,依据功用不同,通用的算法渠道可区分为三进程:数据处理「对应通用的特征渠道,供给特征和样本的数据支撑」、模型练习「对应通用的机器学习渠道,用于供给模型的练习产出」、模型服务「对应通用的模型服务部署,用于供给在线模型预估」,三个进程都可自成体系,成为一个独立的渠道。
本文将要点阐述模型练习部分,在建造vivo机器学习渠道进程中遇到的应战以及优化思路。
1.数据处理,环绕数据相关的作业,包含收集、加工、符号和存储。
其间,收集、加工、存储与大数据渠道的场景相吻合,符号场景是算法渠道所独有的。
-
**数据收集,**即从外部体系获得数据,运用Bees{vivo数据收集渠道}来收集数据。
-
**数据加工,**即将数据在不同的数据源间导入导出,并对数据进行聚合、清洗等操作。
-
**数据符号,**是将人类的常识附加到数据上,发生样本数据,以便练习出模型能对新数据推理预测。
-
**数据存储,**依据存取的特点找到适宜的存储方法。
2. 模型练习,即创立模型的进程,包含特征工程、实验、练习及评估模型。
-
**特征工程,**即经过算法工程师的常识来挖掘出数据更多的特征,将数据进行相应的转换后,作为模型的输入。
-
**实验,**即测验各种算法、网络结构及超参,来找到能够处理当时问题的最好的模型。
-
**模型练习,**首要是渠道的核算进程,渠道能够有用运用核算资源,进步出产力并节约成本。
3.模型部署,是将模型部署到出产环境中进行推理运用,真正发挥模型的价值。
经过不断迭代演进,处理遇到的各种新问题,然后保持在较高的服务水平。
4. 对渠道的通用要求,如扩展才干,运维支撑,易用性,安全性等方面。
因为机器学习从研讨到出产运用处于快速开展变化的阶段,所以结构、硬件、事务上灵活的扩展才干显得十分重要。任何团队都需求或多或少的运维作业,出色的运维才干能帮助团队有用的办理服务质量,进步出产功率。
易用性对于小团队上手、大团队中新人学习都十分有价值,杰出的用户界面也有利于深入理解数据的含义。
安全性则是任何软件产品的重中之重,需求在开发进程中尽可能规避。
3.2 模型练习相关
模型练习包含了两个首要部分,一是算法工程师进行实验,找到对应场景的最佳模型及参数,称之为“模型实验”,二是核算机练习模型的进程,首要偏重渠道支撑的才干,称之为“练习模型”。
建模是算法工程师的核心作业之一。建模进程涉及到许多数据作业,称为特征工程,首要是调整、转换数据。首要使命是要让数据发挥出最大的价值,满意事务诉求。
3.2.1 模型实验
特征作业和超参调整是建模进程中的核心作业。特征作业首要对数据进行预处理,便于这部分输入模型的数据更好的表达信息,然后进步模型输出成果的质量。
数据和特征工程决议模型质量的上限,而算法和超参是无限逼近这个上限。
超参调整包含挑选算法、承认网络结构、初始参数,这些依靠于算法工程师丰厚的经历,一起需求渠道支撑实验来测验作用。
特征工程和超参调整是相辅相成的进程。加工完特征后,需求经过超参的组合来验证作用。作用不抱负时,需求从特征工程、超参两个方面进行思索、改善,反复迭代后,才干达到抱负的作用。
3.2.2 练习模型
可经过标准化数据接口来进步快速实验的速度,也能进行实验作用的比较。底层支撑docker操作体系级的虚拟化方案,部署速度快,一起能将模型直接部署上线。用户无需对练习模型进行更多定制化的操作,批量提交使命能节约运用者的时刻,渠道能够将一组参数组合的实验进行比较,供给更友爱的运用界面。
其次,因为练习的方向较多,需求算力办理主动规划使命和节点的分配,乃至能够依据负载状况,合理运用空闲资源。
四、vivo机器学习渠道实践
前面咱们介绍了机器学习渠道的背景和开展方向,现在咱们来介绍下,渠道在处理用户问题部分的困扰和处理思路。
4.1 渠道才干矩阵
机器学习渠道首要方针是环绕模型练习进行深耕,并辅佐用户进行模型决议计划,更快的进行模型部署。
以此为方针分为两个方向,练习结构的优化能够支撑大规划模型的分布式核算,调度才干优化能够支撑批次模型的履行。
**在调度才干上,**渠道由原生k8s调度,单个练习调度的功率较低,升级为kube-batch批量调度,到以混合云精细化编排为方针,当时首要处于灵活性调度策略的方式。
**在练习结构上,**从原生Tensorflow模型,跟着特征和样本规划的扩大,自研了超大规划的练习结构vlps,当时处于TensorFlow+vlps结合的新结构状况。
4.2 渠道才干介绍
渠道才干建造首要环绕模型实验和练习模型的运用,运用进程中遇到的痛点和难点怎么处理,是咱们在实践中的要害。一起,练习结构也是渠道要害才干的体会,依据事务的复杂度,持续对结构进行优化。
已覆盖公司内部算法工程师模型调试的作业,已达到亿级样本,百亿特征的规划。
4.2.1 资源办理
痛点:
机器学习渠道属于核算密集型的渠道。
-
事务场景不同,是否完全依照事务分组进行资源区分;
-
资源池区分过小,会导致资源运用率低且没办法满意事务激增的资源诉求;
-
资源不足以满意事务诉求时,会存在排队状况导致模型更新不及时;
-
怎么办理好算力,提效与降本的平衡,是渠道资源办理的一个核心问题。
处理思路:
资源办理的基本思路是将所有核算资源会集起来,按需分配,让资源运用率尽量接近100%。任何规划的资源都是有价值的。
比如,一个用户,只要一个核算节点,有多条核算使命时,资源办理经过队列可削减使命轮换间的空闲时刻,比手工发动每条核算使命要高效许多。多核算节点的状况,资源办理能主动规划使命和节点的分配,让核算节点尽量都在运用中,而不需求人为规划资源,并发动使命。多用户的状况下,资源办理能够依据负载状况,合理运用其它用户或组的空闲资源。跟着节点数量的增加,依据有限算力供给更多事务支撑是必经之路。
1.以配额限资源乱用:
新增配额组和个人配额,削减事务之间的相互搅扰,尽可能满意各组的资源需求,并且配额组支撑暂时扩容和共享,处理偶发性激增的资源诉求;限额后用户仅支撑在有限资源下运用,让用户自我调节高优先级练习。
2.以调度促资源优化:
新增出产环境,承认模型现已正常迭代,在合理运用率的状况下切换至高优环境,供给更高功用的资源池;一起供给调度打分机制,环绕资源颗粒度、装备合理性等维度,让合理的练习资源更快的拉起,削减调度卡住状况;
上线多维度调度打分机制后,渠道不合理练习使命有大幅度下降,资源功率进步。
环绕并不限于以下维度:最大运转时长、排队时长、cpu&内存&gpu颗粒度和总需求量等。
4.2.2 结构自研
痛点:
跟着样本和特征规划增加后,结构的功用瓶颈凸显,需求进步推理核算的功率。
开展途径:
每一次的开展途径首要依据事务量的开展,寻求最佳的练习结构,结构的每一次版别升级都打包为镜像,支撑更多模型练习。
当时作用:
4.2.3 练习办理
痛点:
怎么支撑多种分布式练习结构,满意算法工程师的事务诉求,让用户无需关心底层机器调度和运维;怎么让算法工程师快速新建练习,履行练习,可查看练习状况,是练习办理的要害。
处理思路:
上传代码至渠道的文件服务器和git都能够进行读取,一起在渠道填写适量的参数即可快速建议分布式练习使命。一起还支撑经过OpenAPI,便于开发者在脱离控制台的状况下也能完成机器学习事务。
环绕练习模型相关的装备信息,分为基础信息设置、资源信息设置、调度依靠设置、告警信息设置和高档设置。在实验超参的进程中,常常需求对一组参数组合进行实验。
批量提交使命能节约运用者时刻。渠道也能够将这组成果直接进行比较,供给更友爱的界面。练习读取文件服务器或git的脚本,即可快速履行练习。
1.可视化高效创立练习
2. 精确化快速修正脚本
3. 实时化监控练习变化
4.2.4 交互式开发
痛点:
算法工程师调试脚本成本较高,算法工程师和大数据工程师有在线调试脚本的诉求,可直接经过浏览器运转代码,一起在代码块下方展现运转成果。
处理思路:
在交互式工具中进行实验、开发,如:jupyter notebook,供给所见即所得的交互式体会,对调试代码的进程十分便利。
在交互实验的场景下,需求独占核算资源。机器学习渠道需求供给能为用户保存核算资源的功用。假如核算资源有限,可对每个用户请求的核算资源总量进行约束,并设定超时时刻。
例如,若一周内用户没有进行资源运用后, 就回收保存资源。在回收资源后,可持续保存用户的数据。重新请求资源后,能够复原上次的作业内容。在小团队中,虽然每人保存一台机器自己决议怎么运用更便利,但是用机器学习渠道来统一办理,资源的运用率能够更高。团队能够聚焦于处理事务问题,不用处理核算机的操作体系、硬件等出现的与事务无关的问题。
五、总结
现在vivo机器学习渠道支撑了互联网范畴的算法离线练习,使算法工程师更重视于模型策略的迭代优化,然后完成为事务赋能。未来咱们会在以下方面持续探究:
1.完成渠道才干的贯穿
-
当时特征、样本仍是模型的读取都是经过hdfs完成的,在渠道上的告警、日志信息都未关联上,后续能够进行渠道才干贯穿;
-
渠道的数据和模型还有标准化的空间,降低学习成本,进步模型开发的功率。
2. 加强结构层面的预研
-
研讨不同分布式练习结构对模型作用的影响,适配不同的事务场景;
-
供给预置的参数,完成算法、工程、渠道的解耦,降低用户的运用门槛。