グロースレコメンデーションのためのスケーラブルな推論基盤 | Auxia Blog
グロースレコメンデーションのためのスケーラブルな推論基盤
Sumeet Kumar & Max Zhao
July 31, 2025
目次
- リアルタイムパーソナライゼーションをスケーリングする
- アーキテクチャ:Kotlin + TensorFlow Serving Sidecar
- 推論抽象化レイヤー
- 動的モデル読み込み
- レイテンシとパフォーマンスの改善
Auxiaは、エージェントベースのカスタマー ジャーニー オーケストレーション・プラットフォームであり、エンタープライズ顧客に対してパーソナライズされたマーケティング施策を提供します。顧客企業は、APIを通じて「Decision(施策)」と呼ばれるレコメンデーションを取得します。
リアルタイムパーソナライゼーションをスケーリングする
私たちAuxiaでの、アーキテクチャの意思決定では、3つの重要要件があります:
- 高スループット、低レイテンシ処理:数千の同時リクエストに対して100ms未満で応答
- リアルタイムの文脈データ統合:新鮮なユーザー文脈や行動データを推論に取り込む
- マルチテナントモデル対応:顧客と目標の組み合わせごとに異なるモデルでの同時推論を実現
これらの要件により、動的にモデルを読み込める高性能なリアルタイム推論システムが求められました。
アーキテクチャ:Kotlin + TensorFlow Serving Sidecar
Kubernetesポッド内にKotlinサーバ(制御プレーン)とTensorFlow Servingバイナリ(推論エンジン)を同居させる構成を採用しました。この設計には以下の特徴があります:
- Kotlinサーバー:動的なモデル読み込み、モデルメタデータの管理、入出力テンソル変換
- TensorFlow Serving:gRPCベースのAPIによる高速な推論処理
Kotlin層は以下を担当しています:
- インフラ抽象化:様々なモデル形式(ONNX、TorchServe、ホステッドサービス)にも対応
- 動的モデル管理:Artifact Registryからモデルを読み込み、TensorFlow ServingのModelServiceを管理
- 形式変換:ユーザーや施策の特徴をモデル入力用のテンソルへ変換
TensorFlow Servingを選んだ理由
- gRPC APIの利点:通信サイズとCPU負荷を削減
- 高パフォーマンス:ネイティブなC++実装に最適化
- 本番環境向けの機能:動的モデル読み込みや自動バッチ推論への組み込み対応
推論抽象化レイヤー
AuxiaのPrediction Serviceは推論の複雑さを抽象化し、施策を軸に開発されたシンプルなAPIを提供しています。主な特徴は以下の通りです:
- 統一API:一貫性のあるインターフェースを提供
- 動的モデル管理:サーバー再起動不要でモデルの入れ替えが可能
- モニタリング:すべてのモデルから排出される予測におけるレイテンシやエラー率を自動収集
動的モデル読み込み
Auxiaの動的モデル読み込みシステムでは、クライアントからのリクエストごとにモデル名とダイジェストを指定できます。これにより、推論サーバの再起動は不要です。
モデルは、Google Cloud Artifact RegistryにOCIイメージとして公開されます。各イメージには、TensorFlow SavedModelや入出力形式を含むmetadata.jsonファイルが含まれます。
レイテンシとパフォーマンスの改善
Auxiaの最適化により、推論パイプライン全体で大幅なレイテンシ改善を達成しました。入力形式の最適化、効率的なバッチ処理、動的モデル管理の組み合わせにより、高い性能目標を満たし、柔軟性を維持しています。
詳しくは、ぜひ Auxiaの公式サイト からお問い合わせください。