Netflix经常以开放源代码的形式向公众发布其内部工具。近日,Netflix的数据科学团队已将其Metaflow Python库开源,该库是“以人为中心”的机器学习基础架构的关键部分,用于构建和部署数据科学工作流。
Metaflow与Apache Airflow和Luigi等项目有许多相似的概念,开发人员可能对此有一定的经验。例如,使用Metaflow,你可以创建和执行DAGs(有向无环图)。
代码结构
其中一个关键特性是Metaflow自动将所有代码、数据和依赖项快照到Amazon S3的能力。有了这个功能特性,使Metaflow能够实现自动版本控制和实验跟踪,因此开发人员可以安全地检查和恢复Metaflow的执行情况。
外部Python库
Python已经成为数据科学的标准语言之一,因此它有许多常用的库。Metaflow允许导入外部库,并支持所有公共机器学习框架。
因此,你可以使用所有你熟悉的数据科学库,例如PyTorch和TensorFlow。只需使用惯用的Python代码编写模型。
此外,Netflix在2月份的一场演讲中透露,Metaflow已经将Netflix机器学习项目的部署时间中位数从四个月缩短到了仅仅7天,部署效率大大提高
AWS集成
多年来,Netflix一直是使用AWS的最大企业之一,因此Metaflow与众多AWS服务集成在一起就不足为奇了,从文档中可以看到,这些是当前的集成(将来还会有两个集成):
借助内置的强大S3客户端,Metaflow可以加载高达10Gbps的数据。AWS上Metaflow 的文档地址:https://docs.metaflow.org/metaflow-on-aws/metaflow-on-aws
Metaflow还与基于AWS容器的计算平台Batch集成。 Netflix 认为,AWS上的Metaflow可以让开发人员提高在笔记本电脑上进行开发的速度,同时可以在云中使用更深的计算资源。 Metaflow使得不必在每种状态下都对代码或库进行更改,从而使在本地和远程执行模式之间轻松地来回移动,这反过来又使故障排除更加容易。
Metaflow的源代码可在GitHub上获得,目前已经在Github上标星1.4K,76个Fork(Github地址:https://github.com/Netflix/metaflow)