连通系统与机器学习的 MLOps 挑战在哪?这篇文章讲清楚了( 二 )


引用 TensorFlow 数据验证(TFDV)相关论文《 Data Validation for Machine Learning 》中的表述:数据验证既不是一个新问题 , 也不是机器学习独有的 , 所以我们可以借鉴数据库系统等相关领域中的解决方案 。但是 , 我们认为数据验证在机器学习场景中面临着独特的挑战 , 因而需要重新思考现有解决方案 。
再一次 , 通过确认机器学习系统和传统计算机系统之间的并行挑战 , 我们可以通过一些机器学习导向的修改来重新利用现有解决方案 。
TFDV 的解决方案使用了数据管理系统中久经验证的解决方案——schemas 。一个数据库强制执行属性以确保数据输入和更新遵循指定的格式 。同样地 , TFDV 的数据模式系统也对输入至模型的数据强制执行一些规则 。
连通系统与机器学习的 MLOps 挑战在哪?这篇文章讲清楚了
文章图片

文章图片
TFDV 的用于 ML 数据验证的模式系统使用户可以避免生成系统中数据馈送的异常现象 。图源:https://mlsys.org/Conferences/2019/doc/2019/167.pdf
当然会有一些不同的地方 , 反映出了机器学习系统与传统范式的区别 。ML 模式不仅需要与时俱进和实时调整以适应分布变化 , 而且需要考虑系统生命周期中模型自身可能出现的变化 。
模型训练
ML 从业者可能感到惊讶的是将模型训练作为系统优化的一个领域 。毕竟 , 如果机器学习应用中有一个领域真正依赖 ML 技术 , 那就是训练 。但即使这样 , 系统研究依然可以发挥作用 。
以模型并行化为例 , 随着 Transformer 崛起 , 各种应用 ML 领域在模型尺寸方面都出现了显著增加 。几年前 , BERT-Large 模型的参数达到了 3.45 亿 , 现在 Megatron-LM 增加到了 1 万亿以上 。
这些模型的内存成本已经达到了数百 GB , 没有一个 GPU 可以 hold 它们 。传统解决方案——模型并行化采用了一种相对简单的方法 , 即在不同的设备上对模型进行划分以分配相应的内存成本 。
连通系统与机器学习的 MLOps 挑战在哪?这篇文章讲清楚了
文章图片

文章图片
传统模型并行化受到神经网络架构序列性的影响 。高效的并行化计算机会是有限的 。
但是 , 这种技术也存在问题 , 即模型本质上是连续的 , 并且训练模型需要在层间前向和后向地传递数据 。因此 , 每次只能使用一个层和一个设备 。这种情况将导致设备利用严重不足 。
系统研究如何发挥助力作用呢?
以一个深度神经网络为例 , 如果将其分解为最小的组件 , 则它可以被视为一系列转换数据的算子 。简单地训练意味着这样一个过程:通过算子传递数据 , 产生梯度 , 再次通过算子将梯度反馈回来 , 最后更新算子 。
在这个层次分解之后 , 模型开始类似于其他阶段式操作 , 比如 CPU 的指令 pipeline 。谷歌于 2019 年在论文《 GPipe: Easy Scaling with Micro-Batch Pipeline Parallelism 》中提出的 GPipe 系统和分布式任务处理系统 Hydra 试图通过这种 CPU 并行指令将系统优化应用于可扩展性和并行性实现 。
其中 , GPipe 系统通过这种 CPU 并行指令将模型训练转变成了一个 pipeline 问题 。模型的每个分区都被视为一个 pipe 的不同阶段 , 并且 mini-batch 通过分区进行分级以实现利用效果最大化 。
连通系统与机器学习的 MLOps 挑战在哪?这篇文章讲清楚了
文章图片

文章图片
序列模型并行化中的 SOTA——pipeline 并行化可以并行处理 mini-batch 的训练 。但是 , 同步开销非常高 , 尤其是在前向和后向传递的转换过程中 。