Skip to main content
日本語は機械翻訳による参考訳です。内容に矛盾や不一致があった場合には、英語の内容が優先されます。

ワークフロー例- KubeflowとNetApp DataOpsツールキットを使用した画像認識モデルのトレーニング

共同作成者

このセクションでは、KubeflowとNetApp DataOps Toolkitを使用した画像認識のためのニューラルネットワークのトレーニングと導入に関連する手順について説明します。これは、NetAppストレージを組み込んだトレーニングジョブの例を示すことを目的としています。

前提条件

Kubeflowパイプライン内のトレーニングおよびテストステップに使用するために必要な構成を含むDockerfileを作成します。
Dockerfileの例を次に示します。

FROM pytorch/pytorch:latest
RUN pip install torchvision numpy scikit-learn matplotlib tensorboard
WORKDIR /app
COPY . /app
COPY train_mnist.py /app/train_mnist.py
CMD ["python", "train_mnist.py"]

必要に応じて、プログラムの実行に必要なすべてのライブラリとパッケージをインストールします。機械学習モデルをトレーニングする前に、すでに稼働しているKubeflowデプロイメントがあることを前提としています。

PyTorchとKubeflowパイプラインを使用して、小規模NNをMNISTデータでトレーニング

ここでは、MNISTデータでトレーニングされた小さなニューラルネットワークの例を使用します。MNISTデータセットは、0から9までの数字の手書き画像で構成されています。画像のサイズは28x28ピクセルです。データセットは、60,000枚の列車画像と10,000枚の検証画像に分割されています。この実験で使用されたニューラルネットワークは、2層のフィードフォワードネットワークです。トレーニングはKubeflow Pipelinesを使用して実行されます。のドキュメントを参照してください "こちらをご覧ください" を参照してください。Kubeflowパイプラインには、PrerequisitesセクションのDockerイメージが組み込まれています。

Kubeflowパイプラインランの視覚化

Tensorboardを使用した結果の表示

モデルのトレーニングが完了すると、Tensorboardを使用して結果を視覚化できます。 "Tensorboard" は、Kubeflowダッシュボードの機能として使用できます。ジョブ用のカスタムテンソルボードを作成できます。以下の例は、トレーニングの精度とエポック数、トレーニング損失とエポックの数。

トレーニング損失と精度のためのTensorboardグラフ

Katibを使用したハイパーパラメータの実験

"カティブ" は、Kubeflow内のツールで、モデルのハイパーパラメータを試すために使用できます。実験を作成するには、まず目的のメトリック/ゴールを定義します。これは通常、テストの精度です。メトリックが定義されたら、再生するハイパーパラメータを選択します(optimizer/learning_rate/number of layers)。Katibは、ユーザー定義の値を使用してハイパーパラメータスイープを実行し、目的のメトリックを満たす最適なパラメータの組み合わせを見つけます。これらのパラメータは、UIの各セクションで定義できます。または、必要な仕様で*YAML*ファイルを定義することもできます。以下はKatib実験の図です。

Katib Experiment Dashboardとハイパーパラメータ

トライアルチェックに成功しました

NetAppスナップショットを使用してデータを保存し、トレーサビリティを確保

モデルのトレーニング中に、トレーサビリティのためにトレーニングデータセットのスナップショットを保存したい場合があります。これを行うには、以下のようにパイプラインにスナップショットステップを追加します。スナップショットを作成するには、 "Kubernetes向けNetApp DataOpsツールキット"

KubeflowでSnapshotパイプラインを構築するためのコード

を参照してください "KubeflowのNetApp DataOpsツールキットの例" を参照してください。