吹拉弹唱


  • Home
  • Archive
  • Categories
  • Tags
  • Books
  •  

© 2022 Kleon

Theme Typography by Makito

Proudly published with Hexo

机器学习系统 0-0 - 总览

Posted at 2021-01-11Updated at 2021-01-11 机器学习  机器学习 

机器学习1模型对应一类用于从数据中提取模式与特征的人工智能子领域算法。机器学习系统是数据分析系统的拓展,用于自动化地构建机器学习模型。

得益于算法改进(Algorithm),数据快速增加(Big Data),算力提升(Computing Power),发掘了依赖数据统计理论的业务价值,深度学习模型被大规模应用。

随之而来的,是对快捷便利地构建部署模型的需求,从实验室的原型验证逐步过渡到成熟的大规模机器学习系统。

# 架构

机器学习系统整体架构

机器学习系统根据构建阶段可以分为:

  • 数据管理

机器学习的核心是数据,这些数据通常来自业务系统的数据仓库,通过ETL2系统清洗提取后组织成统一的结构化数据,再经预处理、特征工程转变为模型所需的特征。

数据管理子系统用来管理用户导入的结构化数据,称为数据集(Dataset)。通常数据管理子系统提供数据标注功能,由数据工程师或者众包人员标注。

  • 模型开发

模型的开发与调试需要算法工程师参与,通常使用Python脚本或Jupyter环境。常用框架有Tensorflow3/PyTorch4。开发人员更注重IDE的便捷性,而小微开发者对算力价格更敏感。

  • 模型训练

模型调试完成后需要大规模训练,通常会调整超参同时启动多个训练任务,这需要大量的算力,通常需要使用分布式训练系统。常用框架有PS(Parameter Server)。同时,训练任务的实时参数需要及时(比如通过Tensorboard)反馈给算法工程师,以便调整训练参数。

  • 模型部署

模型训练完成后,挑选精度/计算量符合业务需求的模型优化部署。模型部署系统需要支持多种标准模型,并且提供后端服务直接调用的接口,注重高吞吐、低延时。常用框架有Tensorflow Serving / TorchServe / Neuropod。在模型部署前,可以有针对地优化模型,以达到提高计算效率,降低推理延迟,节约计算成本等目的。

模型开发人员在首次开发新模型的过程中,需要手动完成模型的训练和部署。之后可以构建自动化训练部署的流水线(蓝色循环),定期或按特定条件触发。

我的经历是从后端硬件加速器入手,逐步扩展到后端硬件软件栈,模型推理优化,到机器学习系统的架构与产品。从下一节开始,我会逐一展开讨论。


  • [1] 机器学习
  • [2] ETL
  • [3] Tensorflow
  • [4] PyTorch

Share 

 Previous post: 机器学习系统 1-1 - 后端硬件初探 Next post: 如何掌握复杂事物 

© 2022 Kleon

Theme Typography by Makito

Proudly published with Hexo