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


4.1 平台能力矩阵机器学习平台主要目标是围绕模型训练进行深耕 , 并辅助用户进行模型决策 , 更快的进行模型部署 。
以此为目标分为两个方向 , 训练框架的优化能够支撑大规模模型的分布式计算 , 调度能力优化能够支持批次模型的执行 。
在调度能力上 , 平台由原生k8s调度 , 单个训练调度的效率较低 , 升级为kube-batch批量调度 , 到以混合云精细化编排为目标 , 当前主要处于灵活性调度策略的形式 。
在训练框架上 , 从原生Tensorflow模型 , 随着特征和样本规模的扩大 , 自研了超大规模的训练框架vlps , 当前处于TensorFlow+vlps结合的新框架状态 。

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

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

文章插图
2.以调度促资源优化:
新增生产环境 , 确认模型已经正常迭代 , 在合理利用率的情况下切换至高优环境 , 提供更高性能的资源池;同时提供调度打分机制 , 围绕资源颗粒度、配置合理性等维度 , 让合理的训练资源更快的拉起 , 减少调度卡住情况;
上线多维度调度打分机制后 , 平台不合理训练任务有大幅度下降 , 资源效率提升 。

经验总结扩展阅读