及时行乐|算法工程师福利:超实用技术路线图( 七 )

高性能计算
在做大规模的数据训练与推理时 , 近些年涌现出许多高性能计算优化的方法 , 例如从硬件方面 , 有各种超线程技术 , 向量化指令集 , GPGPU , TPU 的应用等 , 从软件方面 , 有针对数值计算场景的 OpenBLAS , 有自动并行化的 OpenMP , 有各种 codegen , JIT 技术下的运行时优化等 。 这方面可以学习的方向也很多 , 从基础的并行编程 , 编译原理及优化的知识开始 , 到 CUDA , OpenMP 的应用(例如 Nvidia 的 cuDNN , 还有 LightGBM 中也用到了 OpenMP) , Codegen , JIT 等技术在 Spark , TVM 等项目中的使用等 , 建议有深度性能优化需求时可以往这些方向做调研和学习 。

  • 自我考核:能够通过 LLVM JIT 来优化实现 Spark window function 的执行性能 。
模型加速领域
这个方向分两个部分 , 一块是模型训练方面 , 能够做到加速 , 例如使用大 batch size , 迁移学习 , 持续的在线 / 增量学习等手段 , 另一块在模型预测方面 , 也有很多加速需求 , 比如模型参数量优化 , 模型压缩 , 混合精度 , 知识蒸馏等技术手段 , 都是为了做到更高性能 , 更低资源消耗的模型预测推理 。 这方面业界有各个方向的文章和技术实现可以参考 , 比如经典的《Training ImageNet in 1 Hour》 , MobileNet , TensorRT , 二值网络等 。
  • 自我考核:在典型的销量预测场景中实现增量训练与预测 。
MLOps
编排调度
包含各类 pipeline 的编排与调度能力的支持 , 包括数据 pipeline , 训练 pipeline 和 serving pipeline 等 。 这方面比较常用的框架工具有 Airflow , DolphinScheduler , Cadence 等 , 需要掌握其基本的工作原理和使用方式 , 并能够应用于离线实验与线上运行 。
  • 自我考核:使用 Airflow 完成一个标准的项目 pipeline 搭建与运行 。
数据集成
相对于传统的 DevOps , 机器学习项目最大的区别在于数据方面的依赖会更加显著与重要 。 这方面的话题包括数据血缘 , 数据质量保障 , 数据版本控制等 , 有各类工具可以借鉴使用 , 例如数据版本管理方面的 DVC , 数据质量方面的 TFX Data Validation , Cerberus , Deequ 等 。 在方法论层面 , 《The ML Test Score》中给出了不少数据相关的具体测试方法 , 值得参考学习 。
  • 自我考核:在项目中实现输入数据的分布测试 , 特征工程测试及特征重要性准入测试 。
实验管理
这部分也是 ML 项目的独特之处 , 在开发过程中有大量的实验及相应的结果输出需要记录 , 以指导后续调整优化的方向 , 并选择最优结果来进行上线部署 。 这方面可以参考的项目有 MLflow , fitlog , wandb 等 。 当然对于单独的项目来说 , 可能 online Excel 就能满足需求了 :)
  • 自我考核:在实际项目中实行一套标准的实验记录手段 , 并能从中找出各类实验尝试带来的精度提升的 top 5 分别是哪些操作 。
Serving
目前我们的 serving 大多数是离线 batch 预计算的形式 , 所以主要依赖的技术手段是各类离线 inference 的方法 , 例如直接使用 model predict 接口 , 使用 mmlspark 等做大规模并行 inference 等 。 如果涉及到在线 serving , 情况会更加复杂 , 例如在线 pipeline 的运行 , 实时特征获取 , low latency/high throughput 的 serving 服务等 , 可以参考 TF Serving , MLeap , H2O , PredictionIO , PMML/PFA/ONNX 等开发标准模型格式等 。
  • 自我考核:部署一个实时预测服务 , 能够根据用户输入产生相应的预测结果 。
CI/CD
软件工程中的持续集成 , 持续部署已经成为一种标准实践 , 在算法项目中 , 额外引入了数据这个维度的复杂性 , 带来了一些新的挑战 。 在这个方向上 , 几个主要话题包括自动化测试 , pipeline 打包部署 , 持续监控运维等 , 可以参考 Martin Fowler 关于 CD4ML 的文章 。 工具系统层面 , 可以学习传统的 Jenkins , 也有一些新选择例如 CircleCI , GoCD , VerCD(Uber)等 。


推荐阅读