学习
实践
活动
专区
工具
TVP
写文章

Spotify开源Terraform:用于在GKE上运行Kubeflow

Spotify开源了自研的Terraform模块,用于在Google Kubernetes Engine(GKE)上运行机器学习流水线软件Kubeflow。通过将企业内部机器学习平台转换至Kubeflow,Spotify工程师缩短了上市时间,将运行的实验规模扩大为原平台的7倍。

在Spotify的最新博客帖子中,产品经理Josh Baer和机器学习工程师Samuel Ngahane介绍了Spotify在为机器学习“铺平道路”(Paved Road)上的做法。“基于我们推荐的基础架构,使用经慎重考虑过的产品和配置,部署端到端的机器学习解决方案”。通过执行此标准,Spotify的机器学习工程师得以专注于开展机器学习实验,无需费心基础架构的构建和维护。该平台自2019年中旬启动以来,得到约100个内部用户的采用,并已运行了18000多项实验。

Spotify长期使用机器学习技术,为用户自动生成定制的播放列表。例如,“每周发现”(Discover Weekly)频道可为用户推荐新的音乐。企业最初的策略是允许各团队自己选择工具和框架。不少现有的基础架构采用了Scala语言,并使用了包括Scio在内的多个由Spotify开源的自定义库。Scio是一种Apache Beam数据处理库,但其在扩展性上存在问题,使得团队需要支持多种框架,导致从概念原型到生产系统之间的迭代时间延长。此外,许多工程师“完全不考虑在基于Python的工作流中添加Scala”。上述问题促使Spotify重新考虑自身的框架选取问题,并由此提出了“铺平道路”(Paved Road)这一理念。

“铺平道路”意在解决端到端机器学习工作流中存在的问题。工作流定义了机器学习模型开发和部署的各个阶段,其中包括:

  • 数据预处理
  • 特征转换
  • 模型训练
  • 模型评估
  • 模型上线

具体而言,Spotify聚焦于各阶段间的数据接口问题,选择采用谷歌TensorFlow Extended (TFX)机器学习平台定义的TFRecord格式和tf.Example类 。团队通过对现有工具构建TFX连接器,实现向通用框架的迁移。团队正致力于使用Tensorflow Data Validation(TFDV)等TFX组件,支持开发人员检测偏斜分布和错误值等数据问题。但其中依然存在一些挑战。例如,现有工具尚未解决端到端的编排框架问题。

最终,团队决定迁移到开源机器学习工作流平台Kubeflow Pipelines(KFP)。该平台上的工作流的组件,将打包为受Kubernetes管理的Docker容器。KFP为TFX提供开箱即用的支持,因此团队无需再去学习新的框架。KFP SDK的另一个优点是预先打包了许多常用任务,支持代码共享和重用。Spotify实现了共享Kubeflow集群的部署和管理,使得开发人员得以专注于机器学习实验本身,不必操心基础架构管理的细节。群集托管在Google Kubernetes Engine(GKE)上,使用Terraform配置。

KFP是一类机器学习全生命周期管理工具。此类工具多由一些大型企业开源提供。例如,Databricks的MLFlow,以及Uber的Michaelangelo。最近,AWS也新发布了几项Sagemaker服务,力图为机器学习生命周期的各阶段提供统一的接口。在KubeCon 2019大会上,Spotify的机器学习工程师Ryan Clough和Dai Keshi介绍了Spotify的平台。此后,Clough发了如下推文:

如果要说参与KubeCon大会的最大收益,那就是我们同样面对着类似的问题,这些问题会由于各自企业的不同环境而表现各异。尽管我们一直在努力去提供最好的产品,但是没人能独自解决所有的问题。是的,没有人。

Spotify在GitHub上维护了多个开源项目,其中包括TensorFlow helpers等机器学习的相关类库。

原文链接:

Spotify Open-Sources Terraform Module for Kubeflow ML Pipelines

  • 发表于:
  • 本文为 InfoQ 中文站特供稿件
  • 首发地址https://www.infoq.cn/article/VlBtgzK3Gxf2OrU0mrvz
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

关注

腾讯云开发者公众号
10元无门槛代金券
洞察腾讯核心技术
剖析业界实践案例
腾讯云开发者公众号二维码

扫码关注腾讯云开发者

领取腾讯云代金券