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 からこのサービスアカウントが変更または削除されない限りは。
デフォルトでは提案ポッドは特定のサービスアカウントを持ちません。この場合、提案ポッドは デフォルト サービスアカウントを使用します。
以上