ディープ ラーニング(DL)コンテナは、データ サイエンス フレームワーク、ライブラリ、ツールがプリインストールされた Docker コンテナです。データ サイエンティストなどのユーザーが、単一の DL コンテナを選択してデプロイします。デプロイされたコンテナには、パフォーマンスが最適化された一貫性のある環境があり、ワークフローのプロトタイプ作成と実装を迅速に行うことができます。
DL コンテナをデプロイする
DL コンテナを使用する前に、Machine Learning(ML)タスクを実行するコンテナ イメージを選択してデプロイする必要があります。プリインストールされたフレームワーク、ライブラリ、ツールによって DL コンテナがプロビジョニングされます。
kubeconfig
ファイルを使用して DL コンテナをデプロイする
Google Distributed Cloud(GDC)エアギャップ アプライアンスには、DL コンテナをデプロイする次の kubeconfig
ファイルが用意されています。
CLUSTER_KUBECONFIG
: ベアメタル Kubernetes クラスタの kubeconfig ファイル。GDC は、すべてのワークロードに 1 つのクラスタを提供します。
UI と kubectl
ツールへのログインの詳細については、ログインをご覧ください。CLUSTER_KUBECONFIG
ファイルを取得するには、kubeconfig
ファイルを取得するをご覧ください。
サンプル ML スクリプトとデータセットをダウンロードする
ML クイックスタート チュートリアルを実行するには、サンプル ML スクリプト beginner.ipynb
とデータセット mnist.npz
をダウンロードします。このチュートリアルでは、DL コンテナをデプロイして ML 実験を実行する方法について説明します。
mkdir -p /tmp/datasets
cd /tmp/datasets
wget --no-check-certificate
https://GDC_APPLIANCE_URL/.well-known/static/dl-container-tutorial/beginner.ipynb
wget --no-check-certificate
https://GDC_APPLIANCE_URL/.well-known/static/dl-container-tutorial/mnist.npz
GDC_APPLIANCE_URL
は、GDC へのアクセスに使用するドメイン名に置き換えます。URL を初めて開くと、GDC は ID プロバイダのログインページにリダイレクトします。
Harbor レジストリの IP アドレスを調べる
サンプル スクリプトとデータセットを使用する前に、Harbor レジストリで DL コンテナ イメージの場所を見つける必要があります。Harbor レジストリは、非公開コンテナ イメージを保存するサービスです。
サンプルコードの 1 行目は、Harbor レジストリ アドレスを取得する KUBECONFIG
環境変数のパスを設定します。Harbor レジストリ アドレスは、使用可能なコンテナ イメージのリストへのアクセスを提供します。
サンプルコードの 2 行目では、kubectl
ツールが KUBECONFIG
環境変数を使用しています。
サンプルコードの 3 行目の REGISTRY_URL#https://
コマンドは、URL から接頭辞 https://
を削除し、Harbor レジストリ ドメインを REGISTRY_IP
環境変数に格納します。
サンプルコードの最後の行で、kubectl ツールは admin
ユーザーのパスワードを取得します。
export KUBECONFIG=CLUSTER_KUBECONFIG
REGISTRY_URL=$(kubectl get harborcluster harbor -n harbor-system -o=jsonpath='{.spec.externalURL}')
REGISTRY_IP=${REGISTRY_URL#https://}
ADMIN_PASS=$(kubectl -n harbor-system get secret harbor-admin -o jsonpath="{.data.secret}" | base64 -d)
コンテナ イメージを選択する
ML タスクを実行する前に、デプロイするコンテナ イメージを選択する必要があります。Harbor レジストリの Harbor レジストリ ドメインと次の表のパスを使用して、使用可能なコンテナ イメージのリストを表示します。
フレームワーク | プロセッサ | コンテナ イメージ名 |
---|---|---|
ベース | GPU | base-cu113 |
ベース | CPU | base-cpu |
TensorFlow Enterprise 2.x | GPU | tf2-gpu |
PyTorch | GPU | pytorch-gpu |
この表は、フレームワークとプロセッサごとに整理されています。ML テストを処理できる DL コンテナ イメージを選択する手順は次のとおりです。
- ML ツールを含むフレームワークを特定します。
- プロセッサを選択します。プロセッサは、実行する ML タスクの種類と、そのタスクのコンピューティング強度に基づいて選択します。たとえば、コンピューティング負荷の高い ML タスクがある場合は、GPU プロセッサのいずれかを選択し、GPU リソースを DL コンテナに割り当てます。
DL コンテナを作成して Kubernetes クラスタにデプロイする
GDC インスタンスを作成するには、ベアメタル Kubernetes クラスタの kubeconfig
ファイルのパスを指定します。KUBECONFIG
環境変数は、kubectl
ツールが DL コンテナをデプロイするクラスタを指定します。kubectl apply
コマンドは、DL コンテナ インスタンスをデプロイします。
CONTAINER_IMAGE_NAME
は、[コンテナ イメージを選択] のイメージのリストから選択したイメージに置き換えます。必ずタグを指定してください。
export KUBECONFIG=CLUSTER_KUBECONFIG
kubectl apply -f - <<EOF
apiVersion: v1
kind: Pod
metadata:
name: dl-container-pod
namespace: NAMESPACE
spec:
containers:
- image: gcr.io/private-cloud-staging/notebooks/deeplearning-platform-release/CONTAINER_IMAGE_NAME:CONTAINER_IMAGE_TAG
command: ["tail", "-f", "/dev/null"]
name: training
EOF
デプロイされた DL コンテナを使用する
次のトピックでは、DL コンテナ イメージを使用してモデルをトレーニングし、モデルを使用して予測を生成する方法の例を示します。
チュートリアル ファイルを DL コンテナ Pod にコピーする
クイックスタート チュートリアルのファイルを DL コンテナ Pod にコピーします。beginner.ipynb
には、モデルをトレーニングして予測を行う手順が含まれています。ML トレーニング チュートリアルでは、mnist.npz
データセット ファイルを使用してモデルをトレーニングします。
cd /tmp/datasets
kubectl cp beginner.ipynb dl-container-pod:/tmp
kubectl cp mnist.npz dl-container-pod:/tmp
ML クイックスタート チュートリアルを実行する
次のコマンドを使用してチュートリアルを実行します。最初の行を使用して、コンテナ Pod に入力します。コンテナ Pod に移動したら、ディレクトリを tmp
に変更し、DL コンテナにパッケージ化されている papermill
ツールを実行します。papermill
ツールは、予測を生成するノートブックを作成するチュートリアルを実行します。
DL Pod にインタラクティブ ターミナルを入力します。
kubectl exec -it dl-container-pod -- /bin/bash
DL Pod コンテキストで、次のコマンドを実行します。
cd tmp papermill beginner.ipynb result.ipynb
デプロイにより、
/tmp
ディレクトリにresult.ipynb
ファイルが生成されます。生成された ML モデルのコンテンツと予測出力を表示します。
cat result.ipynb
省略可: DL コンテナ Pod を削除する
DL コンテナ Pod でテストの実行が完了したら、ベスト プラクティスとして Pod を削除します。
kubectl delete pod dl-container-pod