机器学习系统工程
机器学习平台

什么是机器学习系统?

我觉得机器学习系统(又可以称作是模型系统机器学习平台ML-as-a-service system)作为一个软件系统,它不是一个孤立存在的软件系统,而总是作为一个工具服务于另一个更大的软件系统。比如用于预测一件事情发生的概率,或是用于预测一个事物所属的归类,而被安放在某种识别系统、推荐系统、搜索排序系统、广告系统之中。

在不同应用中的模型系统又具有很多相同之处,因此机器学习系统可以作为一个独立的系统来进行设计和开发。

软件系统存在的目的是什么?提供电子化、自动化的某种功能,方便人类的生产或生活。机器学习系统也是如此。

机器学习系统的用户,一类是建模者,一般是数据分析师、算法工程师等;另一类是模型的使用者,一般是算法工程师、系统工程师。一个机器学习系统越是完善,那么这两类人群的效率就会越高。

机器学习系统和其他软件系统有什么差别?

机器学习系统中“错误”这一概念要更模糊一些。

机器学习系统中的”数据“(样本)会实质性的影响”逻辑”(模型)。你不能简单的把数据和代码彻底分开看待。有个词叫”data-intensive system”。

模型的优化和其他软件优化

机器学习系统的组成

如果硬要先做一个大题的划分,可以有以下几种划分方式

离线功能部分(Train)

样本数据相关:

模型训练相关:

在线功能部分(Inference)

在线指的是用户即时请求模型预估时所需要执行到的功能。

特征数据相关:

模型预测相关:

人机交互(UI)

监控(Monitor)

资源调度

资源是指images、cpu、内存、gpu、磁盘。在训练和预测的时候,都存在资源调度的需要。

机器学习系统的设计

并不是所有的模块都需要从0设计,集成合适的开源组件,是一种不错的选择。

模块化设计

在线系统与离线系统的接口

分层设计

配置设计

充分的可视化交互设计

测试/持续集成设计

支持特征快速开发

支持模型快速迭代

支持模型自动迭代

数据流水线的设计和数据验证

模型管理的设计

实时性、超大量级的挑战

特征实时性

样本实时性

模型实时性

分布式训练

分布式预测

响应速度

性能调优

工业开源实践

各层组件的开源实施

基础设施层方案

数据流方案(airflow argo kubeflow)、资源调度

数据可视化

数据处理层组件

特征组件(FeatureStore)

模型训练层组件

模型抽象层

加速库

模型分析层组件

模型可视化

预估服务层组件

模型仓库

版本控制

工业界体系方案

几个大厂的作品

数据预处理组件 https://github.com/tensorflow/transform

PAI

PAI-DSW(Data Science Workshop)是为算法开发者量身打造的云端深度学习开发环境,集成JupyterLab,插件化深度定制化开发,无需任何运维配置,沉浸式体验Notebook编写、调试及运行Python代码。支持开源框架的安装,并提供阿里巴巴深度优化的Tensorflow框架,通过编译优化提升训练性能。 https://help.aliyun.com/product/30347.html

EasyDL / BML

百度推出的机器学习平台。 https://ai.baidu.com/easydl/ https://ai.baidu.com/bml/

mindspore

华为推出的机器学习平台 https://www.mindspore.cn/tutorials/zh-CN/master/distributed_training.html

第四范式

https://www.4paradigm.com/

九章云极

https://datacanvas.io/

huggingface

AutoTokenizer.from_pretrained PreTrainedTokenizer AutoModel.from_pretrained

model.eval model.set_adapter model.chat model.stream_chat

参考

视频教程

如何构建产品化机器学习系统?

机器学习系统的工程实践

https://papers.nips.cc/paper/5656-hidden-technical-debt-in-machine-learning-systems.pdf

https://storage.googleapis.com/pub-tools-public-publication-data/pdf/aad9f93b86b7addfea4c419b9100c6cdd26cacea.pdf

美团搜索的模型系统实践

爱奇艺的机器学习平台建设

machine-learning-systems-design

Deep Learning Infrastructure at Scale: An Overview

Rules of Machine Learning: Best Practices for ML Engineering

A Guide to Production Level Deep Learning

为什么需要机器学习平台?

算法与数据中台 知乎文章

feature store

特征平台需求分层

openmlsys

深度学习框架的灵魂

*****
Written by Lu.dev on 21 May 2019