Kubeflow 1.0 : コンポーネント : メタデータ (翻訳/解説)
翻訳 : (株)クラスキャット セールスインフォメーション
作成日時 : 04/09/2020 (1.0)
* 本ページは、Kubeflow の以下のページを翻訳した上で適宜、補足説明したものです:
- Components of Kubeflow : Metadata
* サンプルコードの動作確認はしておりますが、必要な場合には適宜、追加改変しています。
* ご自由にリンクを張って頂いてかまいませんが、sales-info@classcat.com までご一報いただけると嬉しいです。
コンポーネント : メタデータ
メタデータ プロジェクトの目標は Kubeflow ユーザが (ワークフローが生成する) メタデータを追跡して管理することにより機械学習 (ML) ワークフローを理解して管理することを手助けすることです。
このコンテキストでは、実行, モデル, データセットそして他の artifacts についての情報を意味します。artifact は貴方の ML ワークフローでコンポーネントの入力と出力を形成するファイルとオブジェクトです。
メタデータ・コンポーネントをインストールする
Kubeflow v0.6.1 とその後のバージョンはデフォルトで Metadata コンポーネントをインストールします。Kubeflow v0.6.1 or later を実行している場合、このセクションはスキップできます。
Metadata コンポーネントの最新版をインストールするかコンポーネントを Kubernetes クラスタのアプリケーションとしてインストールすることを望む場合、これらのステップに従ってください :
- Kubeflow manifests レポジトリをダウンロードします :
git clone https://github.com/kubeflow/manifests
- Metadata コンポーネントのサービスを配備するために次のコマンドを実行します :
cd manifests/metadata kustomize build overlays/db | kubectl apply -n kubeflow -f -
メタデータを記録するために Metadata SDK を使用する
Metadata プロジェクトは Python SDK (API リファレンス、ソース) を公開しています、これを貴方のメタデータを記録するために利用できます。
Metadata SDK をインストールするには次のコマンドを実行します :
pip install kubeflow-metadata
サンプル Jupyter ノートブックで Metadata SDK を試す
Metadata SDK をどのように使用するかのサンプルをこの demo ノートブック で見つけることができます。
ノートブックを Kubeflow クラスあで実行するには :
- setting up your Jupyter notebooks in Kubeflow へのガイドに従う。
- GitHub の demo ノートブック に進む。
- ファイルの Raw ビューを開くことでノートブックコードをダウンロードしてから、コンテンツ上で右クリックしてファイルを demo.ipynb としてローカルにセーブします。
- Kubeflow UI の Jupyter ノートブック・サーバに戻ります。(Kubeflow のノートブック・セクションから離れて移動した場合、そこに戻るには左手のナビゲーション・パネルの Notebook Servers をクリックします。)
- Jupyter ノートブック UI で、demo.ipynb ノートブックをアップロードするには Upload をクリックしてプロンプトに従います。
- Kubeflow クラスタでノートブックを開くにはノートブック名 (demo.ipynb) をクリックします。
- Metadata SDK をインストールして使用するにはノートブックのステップを実行します。
demo.ipynb ノートブックのステップを通した実行を完了したとき、Kubeflow UI 上で結果としてのメタデータを見ることができます :
- Kubeflow UI の左手のナビゲーション・パネルの Artifact Store をクリックします。
- Artifacts スクリーン上で次の項目を見るはずです :
- 名前 MNIST を持つ モデル メタデータ項目。
- 名前 MNIST-evaluation を持つ メトリクス メタデータ項目。
- 名前 mytable-dump を持つ データセット メターデータ項目。
詳細を見るために各項目の名前をクリックできます。Metadata UI についてより多くの詳細は下のセクションを見てください。
Metadata SDK について更に学習する
Metadata SDK は次の事前定義された型を含みます、貴方の ML ワークフローを記述するためにこれを使用できます :
- DataSet, データセットのためのメタデータを捕捉するため、これは貴方のワークフローでコンポーネントへの入力やコンポーネントの出力を形成します。
- Execution, ML ワークフローの実行のためのメタデータを捕捉するため。
- Metrics, ML モデルを評価するために使用されるメトリクスのためのメタデータを捕捉するため。
- Model, ワークフローが生成する ML モデルのためのメタデータを捕捉するため。
メタデータを記録するためにメタデータ・ウォッチャーを使用する
メタデータを直接ロギングするために Python SDK を使用することに加えて、Kubernetes リソースの変化を監視してメタデータをメタデータ・サービスにセーブするために貴方自身の メタデータ・ウォッチャー を追加することができます。
メタデータ UI 上で artifacts を追跡する
Kubeflow UI 上の Artifact Store でロギングされた artifacts のリストと各個別の artifact の詳細を見ることができます。
- 貴方のブラウザの Kubeflow に行きます。(Kubeflow UI をまだ開いていない場合、どのように セントラル・ダッシュボードにアクセスする かを見つけてください。)
- 左手のナビゲーション・パネルの Artifact Store をクリックします :
- Artifacts スクリーンは貴方のワークフローがロギングした総てのメタデータイベントのための項目のリストを開いて表示します。詳細を見るために各項目の名前をクリックできます。
次のサンプルは 上 で説明された demo.ipynb ノートブックを実行するとき現れる項目を示します :- 名前 “MNIST” を持つ モデル メタデータのサンプル :
- 名前 “MNIST-evaluation” を持つ メトリクス メタデータのサンプル :
- 名前 “mytable-dump” を持つ データセット メタデータのサンプル :
- 名前 “MNIST” を持つ モデル メタデータのサンプル :
GRPC バックエンド
Kubeflow メタデータはメタデータと関係を管理するために ML メタデータ (MLMD) の gRPC サービス を配備します。
Kubeflow メタデータ SDK は gRPC サービスを通してデータをセーブして取得します。同様に、貴方のカスタム artifacts のためのメタデータをロギングして見るために貴方自身のメタデータ型を定義することができます。Python サンプルについては、MLMD Python クライアント と Kubeflow メタデータ SDK ソースコード を確認できます。Go サンプルについては、メタデータ・ウォッチャー の ソースコード を確認できます。
以上