BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース SpotifyがKubeflow MLパイプライン用のTerraformモジュールをオープンソースとして公開

SpotifyがKubeflow MLパイプライン用のTerraformモジュールをオープンソースとして公開

原文(投稿日:2020/03/02)へのリンク

Spotifyは、マシンラーニングパイプラインソフトウェアのKubeflowGoogle Kubernetes Engine(GKE)上で実行する、自社製のTerraformモジュールをオープンソースとして公開した。社内MLプラットフォームをKubeflowに切り替えることにより、運用投入までの時間を短縮すると同時に、従来のプラットフォームに比較して7倍の試験を実施できるようになった。

先日発表したブログ記事で、SpotifyのプロダクトマネージャであるJosh Baer氏とMLエンジニアのSamuel Ngahane氏は、マシンラーニング用に同社が構築した"Paved Road(舗装道路)"について、"私たちが推奨するインフラストラクチャを使ったエンドツーエンドのマシンラーニングソリューションをデプロイするための、プロダクトとコンフィギュレーションの独断的セット"である、と表現した。これらの標準を採用する同社のマシンラーニングエンジニアは、インフラストラクチャを自身で構築ないしメンテナンスする必要がなく、自身のMLエクスペリメントに集中することが可能になる。プラットフォームがローンチされた2019年中頃から、100名ほどの社内ユーザがこれを採用し、18,000の試験が行われた。

Spotifyでは、ユーザに新曲を推薦する"Discover Weekly"などのカスタマイズされたプレイリストを自動構築するために、以前からマシンラーニングを使用してきた。同社の当初のポリシは、チームに対して独自のツールやフレームワークの選択を認めるものだった。既存のインフラストラクチャの多くでScala言語が使用され、Apache Beam用のデータ処理ライブラリであるScioなど、同社がオープンソースとして公開したいくつかのライブラリが含まれていた。しかしこのシステムには、スケーラビリティに乏しい、複数のフレームワークをサポートする必要がある、概念から運用までのイテレーション時間が遅いなど、いくつかの欠点があった。さらに、多くのエンジニアにとって、"自分たちのPythonベースのワークフローにScalaを加える考えはまったくなかった"。これらの問題からSpotifyは、自社のフレームワーク選択について再考し、"Paved Road"というコンセプトを開発したのだ。

Paved Roadは、エンドツーエンドのMLワークフローに関する問題に対処することを目的とした、モデルの開発からデプロイまでのプロセスで、以下のような複数のステップで構成される。

  • データのプリプロセス
  • 特徴量変換(feature transformation)
  • モデルのトレーニング
  • モデルの評価
  • モデルの提供

Spotifyは特に、これらステップ間のデータインターフェースの問題に注目し、GoogleのTensorFlow Extended(TFX) MLプラットフォームの定義したTFRecordとtf.Exampleフォーマットを採用することにした。TFXと同社の既存ツールとのコネクタを構築することにより、共通フレームワークへのマイグレーションパスが完成した。程なくTensorFlow Data Validation(TFDV)など他のTFXコンポーネントも活用できるようになり、歪曲分布(skewed distribution)や値の誤り(erroneous value)といったデータの問題検出が可能になった。一方で、ツーリングにエンドツーエンドのオーケストレーションフレームワークがないことなど、問題はまだ残っている。

最終的な結果は、オープンソースのMLワークフロープラットフォームであるKubeflow Pipelines(KFP)への移行だった。このプラットフォームでは、ワークフローのコンポーネントはDockerコンテナとしてパッケージされ、Kubernetesによって管理される。KFPはTFXをデフォルトでサポートしているので、新たなフレームワークを学ぶ必要はなかった。もうひとつのメリットであるKFP SDKは、数多くの共通タスクを事前にパッケージしたもので、コードの共有と再利用が可能になる。Spotifyでは共有Kubeflowクラスタのデプロイと管理を行っているため、インフラストラクチャ管理の詳細に煩わされることなく、MLエクスペリメントに集中することが可能になる。このクラスタはGoogle Kubernetes Engine(GKE)上にホストされ、Terraformを使って設定されている。

Kubeflow Pipelinesは現在成長中の分野である、マシンラーニングのライフサイクル全般を管理するためのツールのひとつだ。この分野のツールは、DatabricksのMLFlowやUberのMichaelangeloなどに代表されるように、その多くが大企業によってオープンソースとして公開されている。AWSは先日、MLライフサイクルのステージをひとつのインターフェースに統合するための取り組みとして、いくつかのSagemakerサービスを新たにリリースした。同社MLエンジニアのRyan Clough氏とKeshi Dai氏は、KubeCon 2019でSpotifyのプラットフォームについて講演した。講演後Clough氏は次のようにツイートしている

[KubeCon]で得たものをひとつ挙げるならば、私たちはみな、同じような問題に対して自らの組織の制約によるさまざまなバリエーションで対処していること、自分たちのサービスが最善なものになるように賢明に取り組んでいること、そして、すべてを解決できたものは誰もいないことです。そう、誰も。

Spotifyは自社のTensorFlowヘルパやML関連ライブラリなど、いくつかのオープンソースプロジェクトをGitHub上でホストしている。

この記事に星をつける

おすすめ度
スタイル

特集コンテンツ一覧

BT