Kubeflow 1.0 : コンポーネント : ハイパーパラメータ調整 : Katib Configuration 概要 (翻訳/解説)
翻訳 : (株)クラスキャット セールスインフォメーション
作成日時 : 04/12/2020 (1.0)
* 本ページは、Kubeflow の以下のページを翻訳した上で適宜、補足説明したものです:
- Components of Kubeflow : Hyperparameter Tuning : Katib Configuration Overview
* サンプルコードの動作確認はしておりますが、必要な場合には適宜、追加改変しています。
* ご自由にリンクを張って頂いてかまいませんが、sales-info@classcat.com までご一報いただけると嬉しいです。
コンポーネント : ハイパーパラメータ調整 : Katib Configuration 概要
このページは Katib config についての情報を説明します。
Katib config は以下についての情報を含む Kubernetes Config Map です :
- 現在の メトリクス・コレクタ (key = metrics-collector-sidecar)
- 現在の アルゴリズム (提案) (key = suggestion).
Katib Config Map は katib-config を持つ KATIB_CORE_NAMESPACE 名前空間に配備されなければなりません。Katib コントローラは実験を提出するとき Katib config をパースします。
Katib を配備した後でさえもこの Config Map を編集できます。
Katib を Kubeflow 名前空間で配備する場合、Katib config を編集するためにこれを実行します :
kubectl edit configMap katib-config -n kubeflow
メトリクスコレクタ Sidecar 設定
これらの設定は Katib メトリクスコレクタに関係します、そこでは :
- key = metrics-collector-sidecar
- value = 各メトリクスコレクタのための JSON を設定することに相当します。
総ての設定を持つファイル・メトリクスコレクタのためのサンプル :
metrics-collector-sidecar: |- { "File": { "image": "gcr.io/kubeflow-images-public/katib/v1alpha3/file-metrics-collector", "imagePullPolicy": "Always", "resources": { "requests": { "memory": "200Mi", "cpu": "250m", "ephemeral-storage": "200Mi" }, "limits": { "memory": "1Gi", "cpu": "500m", "ephemeral-storage": "2Gi" } } }, ... }
image を除くこれらの設定の総ては省略できます。任意の他の設定を指定しない場合、デフォルト値が設定されます。
- image – ファイル・メトリクスコレクタのための Docker イメージ名。
指定されなければなりません。
- imagePullPolicy – ファイル・メトリクスコレクタ・コンテナ イメージ pull ポリシー。
デフォルト値は IfNotPresent.
- resources – ファイル・メトリクスコレクタ コンテナリソース。上のサンプルで limits と requests をどのように指定するか見ることができます。現在、memory, cpu と ephemeral-storage リソースだけが指定できます。
requests のためのデフォルト値は :
- memory = 10Mi.
- cpu = 50m.
- ephemeral-storage = 500Mi.
limits のためのデフォルト値は :
- memory = 100Mi.
- cpu = 500m.
- ephemeral-storage = 5Gi.
提案 (= suggestiojn) 設定
これらの設定は Katib 提案に関係します、そこでは :
- key = suggestion
- value = 各アルゴリズムための JSON を設定することに相当します。
新しいアルゴリズムを使用することを望む場合、新しい提案で Katib config を更新しなければなりません。
総ての設定を持つランダム提案のためのサンプル :
suggestion: |- { "random": { "image": "gcr.io/kubeflow-images-public/katib/v1alpha3/suggestion-hyperopt", "imagePullPolicy": "Always", "resources": { "requests": { "memory": "100Mi", "cpu": "100m", "ephemeral-storage": "100Mi" }, "limits": { "memory": "500Mi", "cpu": "500m", "ephemeral-storage": "3Gi" } }, "serviceAccountName": "suggestion-serviceaccount" }, ... }
image を除くこれらの設定の総ては省略できます。任意の他の設定を指定しない場合、デフォルト値が設定されます。
- image – ランダム提案のための Docker イメージ名。
指定されなければなりません。
- imagePullPolicy – ランダム提案・コンテナ イメージ pull ポリシー。
デフォルト値は IfNotPresent.
- resources – ランダム提案 コンテナリソース。上のサンプルで limits と requests をどのように指定するか見ることができます。現在、memory, cpu と ephemeral-storage リソースだけが指定できます。
requests のためのデフォルト値は :
- memory = 10Mi.
- cpu = 50m.
- ephemeral-storage = 500Mi.
limits のためのデフォルト値は :
- memory = 100Mi.
- cpu = 500m.
- ephemeral-storage = 5Gi.
- serviceAccountName – ランダム提案コンテナ サービスアカウント。上のサンプルでは、ランダムアルゴリズムを持つ各実験のために suggestion-serviceaccount サービスアカウントが使用されます、Katib config からこのサービスアカウントが変更または削除されない限りは。
デフォルトでは提案ポッドは特定のサービスアカウントを持ちません。この場合、提案ポッドは デフォルト サービスアカウントを使用します。
以上