Vertex AI を使用して ML モデルをプロトタイプから本番環境へ移行する

Google Cloud Japan Team
※この投稿は米国時間 2022 年 9 月 14 日に、Google Cloud blog に投稿されたものの抄訳です。
あなたは今、新しい機械学習の問題に取り組んでいるとします。使用する最初の環境はノートブックです。データはローカルマシンに保存されており、ノートブックのセルを毎回手動で実行しながら、さまざまなモデル アーキテクチャと構成を試します。このようなワークフローは実験段階では良い選択かもしれませんが、本番環境の規模にまで発展させようとすると、途端に壁にぶつかります。今まではより高い精度スコアを獲得することだけを考えていればよかったのに、急にそれだけでは済まなくなるのです。
このようなことに心当たりがありませんか?
本番環境のアプリケーションの開発や大規模モデルのトレーニングには、単なるノートブック内のコーディングを越えてスケーリングするための付加的なツールが必要です。これにはクラウド サービス プロバイダの利用が役立つ場合があります。しかし、このプロセスは大変に感じるかもしれません。
そこで、もう少しシンプルにするために、Prototype to Production という動画シリーズを制作しました。この動画シリーズでは、Vertex AI を使用して Google Cloud 上で機械学習モデルを構築、トレーニング、スケーリング、デプロイするために必要な、すべての基本概念が扱われています。
それでは、プロトタイプから本番環境へ移行する方法を見ていきましょう。
機械学習に Notebooks を使ってみる
このシリーズのエピソード 1 では、Vertex AI Workbench を使用してマネージド ノートブックを作成する方法を示します。環境がセットアップされていれば、データの探索、さまざまなハードウェア構成のテスト、モデルのトレーニング、他の Google Cloud サービスとの連携が可能になります。
機械学習用のデータの保存
機械学習の問題に取り組んでいるときは、モデルのトレーニングに一点集中しやすいです。ただし、データがなければ何も始まりません。
Vertex AI 上でモデルをトレーニングする場合は、まず、データをクラウドに集める必要があります。エピソード 2 では、モデルをトレーニングするための非構造化データの保存の基礎を学習し、Vertex AI Workbench からトレーニング データにアクセスする方法を確認します。

Vertex AI でのカスタムモデルのトレーニング
ノートブックで直接モデルのトレーニングを実行するだけなのに、なぜトレーニング サービスが必要なのだろうと不思議に思う方もいるかもしれません。トレーニングに時間がかかるモデルの場合は、必ずしもノートブックが最も便利な選択肢になるとは限りません。また、ML を使用してアプリケーションを構築する場合は、モデルのトレーニングは一度だと十分ではないでしょう。モデルが最新で、価値ある結果を出し続けられるように、時間をかけてトレーニングを繰り返したいと思うはずです。
初めて新しい ML の問題に直面した当初は、ノートブックのセルを手動で実行するのが良いかもしれません。しかし、規模を拡大して実験を自動化したい場合や本番環境のアプリケーション用のモデルを再度トレーニングしたい場合は、マネージド ML トレーニング オプションの方がはるかに便利です。
エピソード 3 では、Docker を使用してトレーニング コードをパッケージ化し、Vertex AI のカスタム コンテナ トレーニング ジョブを実行する方法を示します。Docker の知識がなくても大丈夫です。この動画と付随する codelab は、必要なすべてのコマンドを扱っています。
CODELAB: Vertex AI を使用したカスタムモデルのトレーニング
ML モデルから予測を取得する方法
トレーニングだけが機械学習のすべてではありません。実際にモデルを使って何かをしなければ、この作業は役に立たないでしょう。
トレーニングと同様に、model.predict を呼び出すことによって、ノートブックから直接予測を実行できます。しかし、大量のデータに関する予測を取得したい場合や、低レイテンシの予測を即座に取得したい場合は、ノートブック以上のものが必要になります。モデルを使用して ML によって現実世界の問題を解決する準備ができているなら、手動でノートブック セルを実行して予測を取得する必要はありません。
エピソード 4 では、バッチ予測とオンライン予測に Vertex AI 予測サービスを使用する方法を学習します。
CODELAB: カスタム トレーニング済みモデルからの予測の取得
ML モデルの調整とスケーリング
ここまで、ノートブック コードから、クラウドにデプロイされたモデルに移行する方法を見てきました。しかし実際には、ML ワークフローのほとんどが直線型ではありません。機械学習プロセスの大部分が実験と調整です。ユースケースに対する最適解を見つけ出すために、さまざまなハイパーパラメータ、アーキテクチャ、さらにはハードウェア構成を試さなければならない場合もあります。
エピソード 5 は、ML モデルの調整とスケーリングを支援する Vertex AI の機能を扱っています。具体的には、 ハイパーパラメータ調整、分散トレーニング、およびテスト追跡について学習します。
CODELAB: Vertex AI でのハイパーパラメータ調整
CODELAB: Vertex AI での分散トレーニング
あなたが Vertex AI を使用して ML アプリケーションを作成するのに、このシリーズがお役に立てば幸いです。コンセプトのいずれかについてさらに詳しく知りたいと思われる場合や Vertex AI MLOps ツールの使用方法を学びたいと思われる場合は、動画にコメントしてください。
自分ですべてのコードを試したいと思われる場合は、以下の Codelab を参照してください。
- デベロッパー アドボケイト Nikita Namjoshi