人工智能/模式识别/机器学习精华专题自然语言处理(NLP)

深度学习项目的生产级架构:数据管理模块

2020-01-26  本文已影响0人  6c643a7fc0e6

在生产中部署深度学习模型工作远远超过了训练性能良好模型的工作,为了部署生产级深度学习系统,需要设计和开发不同的模块,如下所示。

deep_learning_deploying_01.png

下图是生产级深度学习系统中不同模块的高级概述。

deep_learning_deploying_02.png

下面我们将介绍数据管理模块。

1 数据来源

由于有监督学习需要大量标记数据,并且数据标注非常昂贵,因此可以通过以下方式可以获得一些数据资源:

2 数据标注

数据标注可以通过以下方式来进行:

常用的数据标注平台有:

3 数据存储

不同的数据类型可以采取不同的数据存储方式:

  1. 对象存储:存储二进制数据(比如:图像,音视频,文本)
  1. 数据库:存储元数据(文件路径,标签,用户活动等)。
  1. 数据湖:聚合无法从数据库获得的功能(例如日志)
  1. Feature Store:存储、访问和共享机器学习功能(功能提取可能在计算上很昂贵,几乎无法扩展,因此,复用机器学习功能是高性能ML团队的关键)。

建议:在数据训练时,在本地或网络文件系统(NFS)进行数据备份。

4 数据版本控制

对于已部署的 ML 模型进行版本控制是必须的,没有数据版本控制意味着没有模型版本控制。

数据版本控制平台:

5 数据处理

生产模型的训练数据可能来自不同的数据源,包括:数据库中数据、对象存储中数据、日志处理以及其他分类器的输出。

任务之间存在依赖关系,每个任务都需要在其依赖关系完成后才能启动。例如:对新日志数据的训练需要在训练之前进行预处理。

Makefile 是不可伸缩的。在这方面,“工作流管理器”变得非常重要。

工作流程编排有:

  1. Luigi
  2. Airflow:动态,优雅且可扩展(使用最广泛)
deep_learning_deploying_03.png
上一篇 下一篇

猜你喜欢

热点阅读