9章TensorFlow Servingを使った高度なモデルデプロイ
前章では、TensorFlow/KerasのモデルをTensorFlow Servingで効率的にデプロイする方法について説明しました。モデルのデプロイとTensorFlow Servingの設定について基本的な知識はすでにあるので、本章ではモデルデプロイの高度なユースケースを紹介します。紹介するユースケースでは、デプロイするモデルのA/Bテスト、デプロイとスケーリングのためのモデル最適化、モデルデプロイの監視など、さまざまなトピックに触れています。前章では本章の基礎となる内容を解説しているので、可能なら復習しておきましょう。
9.1 デプロイサイクルの分離
「8章 TensorFlow Servingを用いたモデルのデプロイ」で示した基本的なデプロイはうまく機能しますが、制約が1つあります。それは前章で説明したように、学習・検証されたモデルは、ビルド時にデプロイ用のコンテナイメージへ含めるか、コンテナ実行時にコンテナへマウントする必要がある点です。どちらを選んでも、DevOpsプロセスの知識(Dockerコンテナイメージの更新など)か、新バージョンのモデルをデプロイする段階で、データサイエンスチームとDevOpsチーム間の調整が必要になります。
「8章 TensorFlow Servingを用いたモデルのデプロイ」で簡単に触れたとおり、TensorFlow Servingはリモートストレージドライブ(AWS S3やGCP Storageバケットなど)からモデルを読み込めます。TensorFlow Servingの標準的なローダーのポリシーでは、モデルの格納された場所を頻繁にポーリングし、以前に読み込まれたモデルを解放し、新しく検出されたモデルを読み込みます。結果として、モデルを提供するコンテナは一度だけデプロイすれば済み、モデルの格納された場所で新バージョンのモデルが利用可能になると、バージョンを継続的に更新します。 ...
Get 入門 機械学習パイプライン ―TensorFlowで学ぶワークフローの自動化 now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.