Kubeflow 1.0 : Getting Started : Kubeflow 概要 (翻訳/解説)
翻訳 : (株)クラスキャット セールスインフォメーション
作成日時 : 04/08/2020 (1.0)
* 本ページは、Kubeflow の以下のページを翻訳した上で適宜、補足説明したものです:
- Getting Started : Kubeflow Overview
* サンプルコードの動作確認はしておりますが、必要な場合には適宜、追加改変しています。
* ご自由にリンクを張って頂いてかまいませんが、sales-info@classcat.com までご一報いただけると嬉しいです。
Getting Started : Kubeflow 概要
このガイドは機械学習 (ML) システムを開発して配備するためのプラットフォームとしての Kubeflow を紹介します。
Kubeflow は ML パイプラインを構築して実験することを望むデータサイエンティストのためのプラットフォームです。Kubeflow はまた ML システムを開発、テストと製品レベルサービングのための様々な環境に配備することを望む ML エンジニアと運用チームのためでもあります。
概念的概要
Kubeflow は Kubernetes のための ML ツールキットです。次の図は Kubeflow を Kubernetes 上に貴方の ML システムのコンポーネントを配置するためのプラットフォームとして示しています :
Kubeflow は複雑なシステムを配備、スケーリング、そして管理するためのシステムを Kuberunetes 上に構築します。Kubeflow configuration インターフェイスを使用して (下 参照)、貴方のワークフローに必要な ML ツールを指定できます。それからワークフローを実験と製品ユースのために様々なクラウド、ローカル、そしてオンプレミス・プラットフォームに配備できます。
ML ワークフローを紹介する
ML システムを開発して配備するとき、ML ワークフローは典型的には幾つかのステージから成ります。ML システムの開発は反復プロセスです。ML ワークフローの様々なステージの出力を評価してモデルが必要な結果を生成し続けることを確かなものにするため必要な時にはモデルとパラメータに変更を適用する必要があります。
単純化のため、次の図はワークフロー・ステージを順番に示します。ワークフローの最後の矢印はプロセスの反復的性質を示すためにフローに差し戻しています :
ステージをより詳細に見ます :
- 実験フェーズでは、初期仮定に基づいてモデルを開発し、求める結果を生成するためにモデルを反復的にテストして更新します :
- ML システムに解くことを望む問題を明らかにする。
- ML モデルを訓練するために必要なデータを集めて解析する。
- ML フレームワークとアルゴリズムを選択し、そしてモデルの初期バージョンをコーディングする。
- データで実験してモデルを訓練する。
- 最も効率的な処理と可能な最も正確な結果を確実にするようにモデルハイパーパラメータを調整する。
- プロダクションフェーズでは、次のプロセスを遂行するシステムを配備します :
- データを訓練システムが必要とする形式に変換する。モデルが訓練と予測の間に一貫して動作することを確実にするため、変換プロセスは実験とプロダクションフェーズで同じでなければなりません。
- ML モデルを訓練する。
- オンライン予測やバッチモードでの実行のためにモデルをサーブする。
- モデルのパフォーマンスを監視し、モデルを調整または再訓練するために結果をプロセスに供給します。
ML ワークフローの Kubeflow コンポーネント
次の図は Kubeflow をワークフローに追加し、各ステージでどの Kubeflow コンポーネントが有用であるかを示します :
更に学習するため、Kubeflow コンポーネントへの次のガイドを読んでください :
- Kubeflow は Jupyter ノートブックを起動して管理するためのサービスを含みます。ML ワークフローによる対話的データサイエンスと実験のためにノートブックを利用します。
- Kubeflow パイプライン は Docker コンテナに基づくマルチステップ ML ワークフローを構築し、配備し、そして管理するためのプラットフォームです。
- Kubeflow はマルチプラットフォームに渡り ML 訓練、ハイパーパラメータ調整、そしてワークロードのサービングを構築するために使用できる幾つかの コンポーネント を提供します。
特定の ML ワークフローのサンプル
次の図は特定の ML ワークフローの単純なサンプルを示します、これは MNIST データセット上で訓練されるモデルを訓練してサーブするために利用できます :
ワークフローの詳細についてそしてシステムを貴方自身で実行するためには、end-to-end チュートリアル for Kubeflow on GCP を見てください。
Kubeflow インターフェイス
このセクションは Kubeflow と相互作用するためにそして Kubeflow 上で ML ワークフローを構築して実行するために使用できるインターフェイスを紹介します。
Kubeflow ユーザ・インターフェイス (UI)
Kubeflow UI はこのように見えます :
UI は Kubeflow 配備のコンポーネントにアクセスするために利用できる中心的なダッシュボードを提供します。how to access the central dashboard を読んでください。
Kubeflow コマンドライン・インターフェイス (CLI)
Kfctl は Kubeflow をインストールして configure するために利用できる Kubeflow CLI です。Kubeflow を構成する ためのガイドの kfctl について読んでください。
Kubernetes CLI, kubectl, は Kubeflow クラスタに対してコマンドを実行するために有用です。アプリケーションを配備し、クラスタリソースを調査して管理し、そしてログを見るために kubectl を利用できます。Kubernetes ドキュメント の kubectl について読んでください。
Kubeflow API と SDK
Kubeflow の様々なコンポーネントが API と Python SDK を提供します。リファレンス・ドキュメントの次のセットを見てください :
- Kubeflow 参照ドキュメント。Kubeflow メタデータ API と SDK, PyTorchJob CRD と TFJob CRD のためのガイドです。
- パイプライン・リファレンス・ドキュメント 。Kubeflow パイプライン・ドメイン固有言語 (DSL) を含む Kubeflow パイプライン API と SDK のため。
- Fairing リファレンス・ドキュメント。Kubeflow Fairing SDK のため。
以上