vivo互联网机器学习平台的建设与实践( 二 )


建模是算法工程师的核心工作之一 。建模过程涉及到很多数据工作 , 称为特征工程,主要是调整、转换数据 。主要任务是要让数据发挥出最大的价值 , 满足业务诉求 。
3.2.1 模型试验特征工作和超参调整是建模过程中的核心工作 。特征工作主要对数据进行预处理 , 便于这部分输入模型的数据更好的表达信息 , 从而提升模型输出结果的质量 。
数据和特征工程决定模型质量的上限,而算法和超参是无限逼近这个上限 。
超参调整包括选择算法、确认网络结构、初始参数,这些依赖于算法工程师丰富的经验,同时需要平台支持试验来测试效果 。
特征工程和超参调整是相辅相成的过程 。加工完特征后,需要通过超参的组合来验证效果 。效果不理想时,需要从特征工程、超参两个方面进行思索、改进,反复迭代后,才能达到理想的效果 。

vivo互联网机器学习平台的建设与实践

文章插图
3.2.2 训练模型可通过标准化数据接口来提高快速试验的速度,也能进行试验效果的比较 。底层支持docker操作系统级的虚拟化方案,部署速度快,同时能将模型直接部署上线 。用户无需对训练模型进行更多定制化的操作,批量提交任务能节约使用者的时间 , 平台可以将一组参数组合的试验进行比较 , 提供更友好的使用界面 。
其次 , 由于训练的方向较多,需要算力管理自动规划任务和节点的分配,甚至可以根据负载情况,合理利用空闲资源 。
四、vivo机器学习平台实践前面我们介绍了机器学习平台的背景和发展方向,现在我们来介绍下,平台在解决用户问题部分的困扰和解决思路 。
4.1 平台能力矩阵机器学习平台主要目标是围绕模型训练进行深耕 , 并辅助用户进行模型决策,更快的进行模型部署 。
以此为目标分为两个方向,训练框架的优化能够支撑大规模模型的分布式计算 , 调度能力优化能够支持批次模型的执行 。
在调度能力上,平台由原生k8s调度 , 单个训练调度的效率较低 , 升级为kube-batch批量调度,到以混合云精细化编排为目标,当前主要处于灵活性调度策略的形式 。
在训练框架上 , 从原生Tensorflow模型,随着特征和样本规模的扩大,自研了超大规模的训练框架vlps,当前处于TensorFlow+vlps结合的新框架状态 。
vivo互联网机器学习平台的建设与实践

文章插图
4.2 平台能力介绍平台能力建设主要围绕模型试验和训练模型的运用 , 运用过程中遇到的痛点和难点如何解决,是我们在实践中的关键 。同时 , 训练框架也是平台关键能力的体验 , 基于业务的复杂度,持续对框架进行优化 。
已覆盖公司内部算法工程师模型调试的工作,已达到亿级样本 , 百亿特征的规模 。
4.2.1 资源管理痛点:
机器学习平台属于计算密集型的平台 。
  • 业务场景不同,是否完全按照业务分组进行资源划分;
  • 资源池划分过小 , 会导致资源利用率低且没办法满足业务激增的资源诉求;
  • 资源不足以满足业务诉求时,会存在排队情况导致模型更新不及时;
  • 如何管理好算力 , 提效与降本的平衡,是平台资源管理的一个核心问题 。
解决思路:
资源管理的基本思路是将所有计算资源集中起来,按需分配,让资源使用率尽量接近100% 。任何规模的资源都是有价值的 。
比如 , 一个用户,只有一个计算节点,有多条计算任务时,资源管理通过队列可减少任务轮换间的空闲时间 , 比手工启动每条计算任务要高效很多 。多计算节点的情况 , 资源管理能自动规划任务和节点的分配 , 让计算节点尽量都在使用中,而不需要人为规划资源,并启动任务 。多用户的情况下,资源管理可以根据负载情况 , 合理利用其它用户或组的空闲资源 。随着节点数量的增加 , 基于有限算力提供更多业务支持是必经之路 。
1.以配额限资源滥用:
新增配额组和个人配额,减少业务之间的相互干扰,尽可能满足各组的资源需要,并且配额组支持临时扩容和共享 , 解决偶发性激增的资源诉求;限额后用户仅支持在有限资源下使用,让用户自我调节高优先级训练 。
vivo互联网机器学习平台的建设与实践

推荐阅读