2019 年 12 月 4 日,Netflix数据科学团队宣布其内部使用多年的 Python 库 Metaflow 正式开源。Metaflow 是 Netflix 机器学习基础架构的关键部件,主要用于加速数据科学工作流的构建和部署,Netflix 希望通过开源 Metaflow 简化机器学习项目从原型阶段到生产阶段的过程,进而提高数据科学家的工作效率。
Netflix(官方中文名称:网飞)是全球最大的视频流媒体平台,在除中国大陆以外的所有国家和地区都提供视频点播服务。这家视频流媒体巨头在其业务的各个方面都使用了机器学习,从剧本分析到优化制作时间表、预测客户流失、视频定价、视频字幕翻译以及优化其庞大的内容分发网络,而其中有许多机器学习应用都由 Metaflow 提供支持。它是一个基于 Python 编写的框架,可以使机器学习项目从原型阶段到生产阶段变得更加容易。在过去两年中,Metaflow 已在 Netflix 内部用于构建和管理从自然语言处理到运营研究的数百个数据科学项目。
据Netflix内部调研发现,数据科学家喜欢使用 Python 代码来实现业务逻辑,但不想花费太多时间思考诸如对象层次结构、封装等问题,或处理各类晦涩的 API。
因此,Metaflow 想做的就是让 Netflix 数据科学家能够尽早查看原型模型是否会在生产环境中失败,让他们可以提前解决问题,并加快部署速度。Netflix 在 2 月份的一场演讲中透露,Metaflow 已经将 Netflix 机器学习项目的部署时间中位数从四个月缩短到了仅仅 7 天。
Metaflow 为机器学习项目整个流程提供了统一的 API,数据科学家可以使用 Metaflow 设计自己的工作流程,大规模运行并将其部署到生产环境。它会自动对所有实验和数据进行版本控制和跟踪,同时,Metaflow 的 UI 能够与 Jupyter notebooks 无缝集成。与其他 Python 工具类似,数据科学家可以在笔记本电脑上快速开发和测试代码,如果工作流支持并行,Metaflow 会自动利用开发 PC 上所有可用的 CPU 内核。
Metaflow 也可以与当前主流的 Python 数据科学库一起使用,包括 PyTorch、Tensorflow 和 SciKit Learn。
想了解 Metaflow 所有功能的详细介绍,可以查阅官方文档。
支持 AWS 服务无缝集成
多年来 Netflix 一直是Amazon Web Services(AWS)的最大用户之一,因此,Metaflow 支持与众多 AWS 服务无缝集成也就不足为奇了。Netflix 软件工程师表示,Metaflow 是一个云原生框架,能够充分利用云在存储和计算上的弹性。
Metaflow 支持对 Amazon S3 中所有代码和数据的自动快照功能,可以帮助用户使用 AWS 的存储、计算和机器学习服务快速扩展模型,同时,这也使 Metaflow 能够实现自动版本控制和实验跟踪,无需任何人为干预,开发人员可以非常方便地检查和恢复 Metaflow 的执行情况,这是所有生产级机器学习基础架构的核心。
此外,Metaflow 还绑定了一个高性能的 S3 客户端,它可以加载高达 10Gbps 的数据,加快用户的模型迭代周期。
针对通用数据处理,Metaflow 与基于 AWS 容器的计算平台 Batch 集成。开发者只需要在代码中添加一行:@batch,就可以利用无限扩展的计算集群。对于机器学习模型的训练,除了编写自己的功能,用户还可以选择使用 AWS Sagemaker,它提供了各种模型的高性能实现,其中许多支持分布式训练。
关于 Metaflow 与 AWS 集成的更多详细信息,可以查看此页面。
评论