無料で機械学習やデータ処理の流れを簡単に可視化してくれるワークフローツール「Flyte」を触ってみた
「宿泊者がサイコパスかどうか」を予約前にチェックする仕組みやわずか11万円で自動車を「完全自動運転車」に改造できる手作りキットが開発されるなど、機械学習を利用した技術の開発はますます活発になっています。そうした機械学習やデータ処理においては開発プロジェクトのコードやデータなどのワークフロー全体を管理してくれるワークフローツールが非常に便利な存在であり、NetflixのMetaflowなど企業が独自に開発したワークフローツールがオープンソースとして公開される事例もあります。「Flyte」はライドシェアサービスを展開するLyftがオープンソースとして公開したワークフローツールとのことなので、実際にツールを触ってみました。
Flyte — Flyte 0.0.1 documentation
https://lyft.github.io/flyte/
GitHub - lyft/flyte: develop, execute, and monitor distributed workflows reliably at scale.
https://github.com/lyft/flyte
今回は「画像をインプットすると機械学習のモデルを使って画像の境界を抽出しアウトプットする」というサンプルワークフローを用いたチュートリアルに従いながら、Flyteの機能を見ていきます。
Flyteの動作にはKubernetesが必要とのことなので、今回はWindows上にDockerとMinikubeをインストールしました。
Install Docker Desktop on Windows | Docker Documentation
https://docs.docker.com/docker-for-windows/install/
Install Minikube - Kubernetes
https://kubernetes.io/docs/tasks/tools/install-minikube/
必要なソフトのインストールが完了したら、WindowsのPowerShellを管理者権限で起動し、下記コマンドを実行します。
kubectl cluster-info
実行するとKubernetesのMasterの情報が表示されるので、赤枠で囲ったIPアドレスをメモしておきます。
Flyteを最も簡単にインストールできるデプロイメントは「Sandbox」とのことなので、下記コマンドをPowerShell上で実行しFlyteをデプロイします。
kubectl create -f https://raw.githubusercontent.com/lyft/flyte/master/deployment/sandbox/flyte_generated.yaml
Flyteにサンプルワークフローを登録するため、下記コマンドを実行。
docker run --network host -e FLYTE_PLATFORM_URL='赤枠で囲ったIPアドレス:30081' lyft/flytesnacks:v0.1.0 pyflyte -p flytesnacks -d development -c sandbox.config register workflows
実行すると構成物のダウンロードとインストールが始まります。
登録後、下記URLにアクセスしてみます。
http://赤枠で囲ったIPアドレス:30081/console
Flyteの画面が表示されました。「flytesnacks」プロジェクトの「development」をクリックします。
プロジェクト内のワークフロー一覧が表示されるので、赤枠部分をクリック。
ワークフローを起動させるため「Launch Workflow」をクリックします。
今回は「画像をインプットすると機械学習のモデルを使って画像の境界を抽出しアウトプットする」というサンプルワークフローを使用しており、インプットする画像を指定する必要があるので、赤枠部分にサンプル画像のURLを入力し「Launch」を押します。
処理が完了するまでしばらく待ちます。
処理が完了すると、ステータス部分に「SUCCEEDED」と表示されました。左上のタブの「Graph」をクリックすると……
ワークフローをグラフで確認することができます。
グラフ上の点はワークフローの実行ステータスよって色が変わるようになっており、「未実行」は薄い青色、「実行成功」は緑色、「実行失敗」は赤色となっているので、どの部分でエラーが出ているのかを一目で確認することができます。
今回のサンプルワークフローではシンプルなグラフでしたが、複雑なワークフローを登録するとグラフも複雑になります。
実行結果を見たいので、右上の「View Inputs & Outputs」をクリック。
インプットした情報とアウトプットされた情報を確認できます。
アウトプットされた画像を見るために、下記URLにアクセスします。
http://赤枠で囲ったIPアドレス:30081/minio
ログイン画面が表示されます。ユーザー名は「minio」パスワードは「miniostorage」となっています。
ログインするとフォルダ一覧が表示されるので、先ほど確認したアウトプット情報を元にファイルを探します。
アウトプットファイルを見つけたら、ファイルを選択後「Download Output」をクリックすれば、アウトプットされたファイルをダウンロードできます。
実際にアウトプットされた画像がこれ。
今回はサンプルワークフローを動作させましたが、自分で作ったワークフローを動作させることももちろん可能。複雑な機械学習やデータ処理を行う際にワークフローをきれいに可視化できる、開発現場では重宝されそうなツールでした。
GitHub - lyft/flyte: develop, execute, and monitor distributed workflows reliably at scale.
https://github.com/lyft/flyte
・関連記事
脳のスキャンデータから「理解度」を数値化してくれる機械学習アルゴリズムが誕生 - GIGAZINE
「ヒットする曲」を87%の精度で予測する機械学習モデルが誕生 - GIGAZINE
YouTubeが機械学習で広告を最適化する「ビデオリーチキャンペーン」を発表 - GIGAZINE
成功した機械学習モデル150個を分析してわかったことまとめ、Booking.comの場合 - GIGAZINE
わずか11万円で自動車を「完全自動運転車」に改造できる手作りキット「comma two devkit」発売 - GIGAZINE
「宿泊者がサイコパスかどうか」を予約前にチェックする仕組みを民泊サイトのAirbnbが開発 - GIGAZINE
・関連コンテンツ
in レビュー, ソフトウェア, Posted by darkhorse_log
You can read the machine translated English article I tried the workflow tool `` Flyte '….