Help us understand the problem. What is going on with this article?

コンテナで機械学習を動かすKubeflow

More than 1 year has passed since last update.

コンテナで機械学習を動かすKubeflow

KubernetesでオーケストレートされたDockerコンテナでTensorflowを動かすKubeflowというツールがGithubに上がっていました。
https://github.com/google/kubeflow

ためしに動かしてみました。

Kubeflowとは

KubeflowはKubernetesで機械学習を動かすためのスケーラブルでポータブルな環境を提供します。
目的は"to provide a straightforward way for spinning up best of breed OSS solutions"とのことですので、OSSで機械学習基盤を実現するシンプルな構成を提供するというものだと思います。
Kubeflowには以下が含まれています。
- JupyterHub
- Tensorflow Training Container
- Tensorflow Serving

というわけで、モデル開発(JupyterHub)、学習(Tensorflow Training Container)、推論(Tensorflow Serving)まで、機械学習に関わる一連の機能を提供しています。
これらをDockerコンテナとKubernetesのymlで提供しているので、すぐ使い始められてスケーラブルも簡単、というものです。

早速動かしてみる

早速動かしてみます。
Kubernetesを構築後(ここが一番たいへんでは?)、git cloneしてKubernetesから起動します。
具体的には以下のコマンドで構築可能です。

git clone https://github.com/google/kubeflow.git

cd kubeflow/
kubectl apply -f components/ -R

0.PNG

kubectl get svc,pods,rs,deployment,role,rolebindingで起動されているものを確認すると以下が表示されます。

2.PNG

なんかいろいろ動いていますが、ひとまずJupyterHubにアクセスしてみます。

JupyterHubの初期ログインユーザ/パスワードは任意です。好きなユーザとパスワードがそのままユーザとパスワードになります。

3.PNG

4.PNG

ユーザとパスワードを設定すると同時に、このユーザのJupyterHubに割くリソースを設定します。

5.PNG

どうもユーザ/パスワードを設定することで新たにpodsを起動しているようです。

6.PNG

ユーザ用JupyterHubの起動には少々時間がかかりますが、正常起動するとJupyterHubのログイン後画面が表示されます。

7.PNG

ディレクトリがいくつかありますが、.ipynbはtensorflow-models/samples/outreach/blogs/housing_prices.ipynbしか見つけられませんでした。

8.PNG

なお、.pyのサンプルはたくさんありますが、どう動かすのかはよくわかりません。
JupyerHubで動かすわけではなさそうですし、どうするのでしょうね(笑)

tf-controllerのサンプル

JupyterHub以外にも、tf-controllerのサンプルがkubeflow/tf-controller-examples/tf-cnn/ディレクトリにあります。
https://github.com/google/kubeflow/tree/master/tf-controller-examples/tf-cnn

こちらにはkube jobsがいろいろ用意してあり、kubectl createで実行可能です。

cd kubeflow/tf-controller-examples/tf-cnn/
kubectl create -f tf_job_cpu.yaml

CPU用とGPU用が用意されています。
現時点(2017年末)でKubernetesからGPUアクセスするのはまだα機能ですが、今後正式版になっていくのでしょう(期待)
kubectl get svc,pods,rs,deployment,role,rolebinding,jobsで確認すると、更にいろいろ起動していることがわかります。

9.PNG

jobsとしてマスターとワーカーとパラメータ・サーバが起動していて、Resnet50の学習が動いているようです。

11.PNG

今後に期待?

まだドキュメントが少なく、まともに動かせていませんが、機械学習やディープラーニングとコンテナは相性が良いと思うので、今後発展していくと期待しています。

cvusk
#Python #Golang #C++ #Bash #Linux #MachineLearning #DeepLearning #Keras #Tensorflow #Docker #Kubernetes #AWS #Azure #GCP #SAS #MENSA #Unity #C# #Kotlin #Android #PyTorch #DL4J #ARCore
https://github.com/shibuiwilliam
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした