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

什么是机器学习系统?

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

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

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

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

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

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

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

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

机器学习系统的组成

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

离线功能部分(Train)

样本数据相关:

模型训练相关:

在线功能部分(Inference)

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

特征数据相关:

模型预测相关:

人机交互(UI)

监控(Monitor)

资源调度

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

机器学习系统的设计

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

模块化设计

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

分层设计

配置设计

充分的可视化交互设计

测试/持续集成设计

支持特征快速开发

支持模型快速迭代

支持模型自动迭代

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

模型管理的设计

实时性、超大量级的挑战

特征实时性

样本实时性

模型实时性

分布式训练

分布式预测

响应速度

性能调优

如何加速attention ?

在transformer中attention操作是最耗时的模块。

原因和它的操作逻辑有关:

优化思路:

“prefill”技术: 用于在解码器的自注意力计算中提前计算一部分注意力权重,以减少计算量和提高效率。

工业开源实践

各层组件的开源实施

基础设施层方案

数据流方案(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/

第四范式

https://www.4paradigm.com/

九章云极

https://datacanvas.io/

huggingface

https://huggingface.co/ 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