Wayfair によるリアルタイムのモデルサービングの実現に Vertex AI エンドポイントが果たした重要な役割について
Google Cloud Japan Team
※この投稿は米国時間 2024 年 1 月 18 日に、Google Cloud blog に投稿されたものの抄訳です。
Wayfair では、サービス インテリジェンス チームが複数の ML モデルを維持し、カスタマー サービス エクスペリエンスの継続的な改善を可能にしています。たとえば、顧客の意図を予測したり、欠損品に対して最適な割引額を計算したりする新しい機能をサポート スタッフに提供しています。Wayfair の従来のモデルの多くは、バッチ予測を行ってオンライン サービス向けにキャッシュに保存する仕組みでした。そこで、Wayfair は 2023 年に、モデルをバッチ推論からリアルタイム推論に移行しました。それによって、リアルタイム モデルの安全で効果的かつ効率的なデプロイとサービングを可能にするアーキテクチャの設計を目指したのです。
Wayfair にはすでにリアルタイムのモデル サービングのための社内ソリューションがありましたが、Vertex AI の予測エンドポイントがもたらすシンプルさと利便性は、Wayfair チームにとって非常に価値のあるものでした。Vertex AI エンドポイントの作成と削除をコードで自動化できる機能は、特に重要でした。Wayfair の社内ソリューションでは、そのような仕組みの実現が困難だったのです。
新しいモデルのデプロイを迅速化するために、Wayfair では、すべてのモデルを MLflow に登録する必要があります。そうすることで、MLflow が提供する統一されたインターフェースの活用が可能になります。Wayfair は、すべてのデプロイ モデルの望ましい状態を GitHub リポジトリに保存することで、Infrastructure-as-Code のパラダイムを実践しています。


リポジトリに保存された構成情報の簡単な例
構成を GitHub リポジトリに保存することで変更履歴をトラッキングし、GitHub の pull リクエスト承認プロセスを通じてガバナンスを徹底できます。構成への変更が承認されると、Buildkite の CI / CD パイプラインがトリガーされ、以下のタスクが実行されます。
- デプロイ エンドポイントの現在の状態と望ましい状態の差分を計算
- 個々の新規または更新モデルに対して以下のプロセスを実施
- MLflow からモデル メタデータとアーティファクトを pull
- モデルをカスタム コンテナにパッケージングし、Artifact Registry へアップロード
- エンドポイントを作成し、カスタム コンテナをエンドポイントにデプロイ
- エンドポイントで負荷テストを実施
- エンドポイントのアラート ポリシーを Cloud Monitoring で作成
- モデル メタデータと望ましいトラフィック分割を Cloud Bigtable にアップロード
- 不要となったエンドポイントを削除


構成の変更がリポジトリに push された際にトリガーされる Buildkite パイプラインの自動ステップを視覚化した図。
ダウンストリームでのリアルタイム エンドポイントとアプリケーションとの連携は、Google Kubernetes Engine で実行されるモデル コントローラ サービスに各アプリケーションがリクエストを送信することで実現します。このモデル コントローラには、全体に縦断的に関わる懸念事項に対応する役割があります。たとえば、モデル メタデータの読み取りや Cloud Bigtable からの情報のルーティング、Vertex AI Feature Store からの特徴の取得、エンドポイント間での A/B テストやシャドー モードなどのトラフィックの分割、BigQuery へのモデル予測のロギングなどを行っています。


リアルタイムのモデル サービング アーキテクチャを可視化した図。
Wayfair では、Vertex AI の導入により、新しい AI モデルのデプロイを高速化するうえで、顕著な改善が見られました。以前は、新しいリアルタイム モデルを実装して稼働させるのに、1 か月ほどの作業が必要でした。それが今では、Vertex AI を使用したプロセスの自動化と効率化されたデプロイ アーキテクチャにより、わずか 1 時間に短縮されています。
手動のステップが自動化されたことで、生産性と開発スピードが急加速するとともに、重要な細部の見落としもなくなりました。負荷テスト、アラート設定、その他のオプションのタスクも、プロセスにしっかり組み込まれています。
本稿は、技術的な内容において Wayfair の Anh Do と Sandeep Kandekar による協力と、Google Cloud に関するサポートにおいて Google の Neela Chaudhari 氏、Kieran Kavanagh 氏、Brij Dhanda 氏による協力のもとで書かれたものです。
-Wayfair、ML 担当スタッフ エンジニア Roger Bock
-Wayfair、エンジニアリング マネージャー Duncan Renfrow-Symon


