第13章. モデル・サービング・インフラストラクチャー
この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com
他のアプリケーションと同じように、MLインフラは、自社内のハードウェアインフラ上でトレーニングし、デプロイすることができる。しかし、このアプローチでは、ハードウェア(物理マシン)と、大規模モデル(ディープニューラルネットワーク、DNN)のトレーニングと推論用のGPUを調達する必要がある。これは、MLアプリケーションを長期間にわたって実行・維持する大企業にとっては実行可能な方法である。
中小企業や個人チームにとって実行可能な選択肢は、クラウド上にデプロイし、Amazon Web Services(AWS)、Google Cloud Platform(GCP)、Microsoft Azureなどのクラウドサービスプロバイダが提供するハードウェアインフラを活用することだ。一般的なクラウドサービスプロバイダのほとんどは、MLモデルに特化したトレーニングやデプロイソリューションを用意している。これには、GCP上のAutoMLやAWS上のAmazon SageMaker Autopilotが含まれる。
オンプレミス(自社のハードウェアインフラ)でMLモデルをデプロイする場合、TensorFlow Serving、KServe、NVIDIA Tritonなどのオープンソースの構築済みモデルサーバを使用することができる。
MLモデルをクラウド上にデプロイする場合、EC2やGoogle Compute Engineなどの仮想マシン(VM)上に学習済みモデルをデプロイし、TensorFlow Servingなどのモデルサーバを使用して推論要求を処理することができる。あるいは、Google Kubernetes Engineのようなコンピュートクラスタを利用することもできる。
クラウドサービスプロバイダは、データクリーニング、データ準備、フィーチャーエンジニアリング、トレーニング、検証、モデルモニタリング、デプロイなど、MLのワークフロー全体を管理するソリューションも提供している。そのようなサービスの例としては、Amazon SageMaker、Google Vertex AI、Microsoft Azureなどがある。
この章では、現在利用可能なモデルサーバをいくつか紹介し、スケーラブルなサービングインフラを構築する方法を見ていく。また、コンテナ・ベースのアプローチを使ってサービング・インフラを実装し、それを拡張できるようにする方法についても説明する。最後に、冗長性を利用することで、サーバーの信頼性と可用性を常に確保する方法を検討する。
モデルサーバ
オンプレミスであれクラウドであれ、モデルサーバはMLモデルを大規模にデプロイするタスクを簡素化する。APIを提供するタスクを簡素化するアプリケーションサーバに似ている。モデルサーバーはスケーリングとパフォーマンスを処理し、モデルのライフサイクル管理をある程度行うことができる。
最新のモデルサーバーの多くは、通常RESTやgRPCエンドポイントを通してアクセスできる。クライアントはモデル・サーバに推論リクエストを送信し、モデル・サーバは学習済みモデルにクエリを発行して推論結果を取得し、クライアントに返す。TensorFlow Servingから始まり、NVIDIA Triton、TorchServeと続く。