唯品会-2017全球软件架构技术大会_唯品会机器学习平台建设实践-2017.10-29页-1mb
报告摘要
唯品会机器学习平台建设实践总结
核心内容
唯品会构建了一个名为 MLP (Machine Learning Pipeline) 的机器学习平台,旨在解决机器学习开发过程中存在的多个关键问题,包括共享协作、开发效率、环境维护、实时计算能力等。该平台通过一站式服务、容器化技术和高性能计算引擎,实现了从数据获取到模型部署的全流程支持。
主要问题与解决思路
问题1:共享协助的问题
- 多人协作开发时缺乏统一的数据和模型管理,导致重复劳动。
- 解决思路:通过提供统一的数据目录和模型共享机制,实现数据、算法和模型的共享与协作。
问题2:开发模型周期长,时间成本高
- 线上与线下切换频繁,影响开发效率。
- 解决思路:构建交互式开发环境,支持实时数据处理与模型训练,提升开发效率。
问题3:运行环境多样,系统维护成本高
- 多版本依赖、跨平台移植性等问题增加了系统维护难度。
- 解决思路:采用容器化技术,实现多租户隔离与资源弹性扩展。
问题4:实时分布式计算能力不足
- 需要处理海量数据、长周期数据和实时数据。
- 解决思路:构建高性能、高可靠性的分布式计算引擎,支持多种框架如TensorFlow、Spark、Flink等。
技术方案概述
MLP平台架构图
MLP平台分为四个主要层次:
-
用户交互层
- 提供交互式开发环境(Notebook)和可视化编程(DAG Editor)。
- 支持多租户,每个用户拥有独立的开发环境。
- 集成Git,支持Python、R、Scala、SQL等语言。
- Notebook与DAG Editor结合,实现开发到线上部署的无缝转换。
-
容器层
- 支持用户容器和计算容器,实现资源的弹性扩展。
- 使用远程卷和本地卷进行数据存储,保障数据安全与高可用性。
- 容器层具备高可用、隔离、共享和监控等特性,提升系统稳定性与协作效率。
-
计算引擎层
- 支持多种机器学习框架(TensorFlow、Spark、Flink、XGBoost、LightLDA等)。
- 优化TensorFlow分布式训练,解决HDFS性能、gRPC性能、训练异常、超时、PS失败等问题。
- 提供模型有效性监控和报警功能,保障训练过程的稳定性。
-
服务层
- 算法服务:提供通用和基础算法,支持算法共享与协作开发。
- 模型服务:支持模型目录、模型共享、部署、验证与评估。
- 数据服务:提供统一的数据访问接口,支持特征工程和数据处理工具链。
平台目标
- 解放生产力:让算法工程师专注于数据和算法,减少系统管理负担。
- 支持多种数据类型:包括图像数据、实时数据和长周期数据。
- 提高开发效率:通过交互式开发与可视化编程,实现快速迭代。
- 促进共享协作:支持数据、模型和算法的共享,增强跨团队协作能力。
- 标准化工具链:前置数据处理、数据探查,后置模型评估,形成完整的开发流程。
总结
MLP平台通过一站式服务、容器化架构和高性能计算引擎,解决了机器学习开发中的共享协作、开发效率、环境维护和实时计算能力等核心问题。平台支持多种数据类型和计算框架,提供交互式开发与可视化编程工具,实现从开发到部署的无缝转换。最终目标是提升算法工程师的生产力,推动机器学习的现代化发展,实现高效、稳定、可扩展的机器学习流程。
展开完整摘要
试读结束,高清完整版pdf/doc/ppt,请点下载