モデルサービングにおけるルーティングの状態 ノート

モデルサービングにおけるルーティングの状態

このブログ記事では、NetflixのMLモデルサービングインフラストラクチャが、さまざまなドメインにわたるパーソナライズされたエクスペリエンスを大規模にどのように実現しているかについての技術的な洞察を論じています。中央のMLモデルサービングプラットフォームは、ドメインに依存しないAPI抽象化とトラフィックルーティング機能を提供し、モデル推論のためにいくつかのドメイン固有のマイクロサービスに公開しています。この単一のAPIは、既存のMLエクスペリエンスの新しいバージョンのイテレーションのイノベーション速度を向上させ、MLによる新しい製品エクスペリエンスを可能にしました。MLモデルサービングインフラストラクチャの成功は、研究者が新しい仮説を迅速に実験し、モデルを安全に本番環境にリリースできるかどうかにかかっています。このプラットフォームは、数百のモデルタイプとバージョンを提供し、毎秒100万リクエストを処理し、個々のスコアリング関数だけでなく、ワークフローのレベルで動作します。モデル定義には、特徴量を計算するために必要な事実のリストが含まれており、サービング時に他のいくつかのマイクロサービスを呼び出すことによってこれらの事実を供給するためにモデルサービングプラットフォームに依存しています。呼び出し元のサービスは、標準的なリクエストコンテキストと関連するドメインコンテキストを提供するだけでよく、モデル自体が実行フローの一部として特徴量を計算し、推論を実行できます。このプラットフォームは、迅速なMLイノベーションの実現者として機能し、MLモデルのイテレーションがクライアントアプリに公開される範囲を制限します。プラットフォームの主要な原則には、クライアントアプリから独立したモデルイノベーション、クライアントとモデルシャーディングの分離、および柔軟なトラフィックルーティングルールが含まれます。このプラットフォームは、Switchboardと呼ばれるカスタムサービスを使用しており、これはすべてのトラフィックの柔軟なプロキシレイヤーとして機能し、毎秒100万リクエスト以上を処理しながら、高い可用性と信頼性を維持します。Switchboardは、すべてのクライアントのモデルニーズに対する単一の連絡窓口を提供し、豊富なコンテキスト機能に基づいてリクエストをルーティングできます。このプラットフォームは、「Objective」という概念も導入しています。これは、サービングプラットフォームによって定義された列挙型であり、システムへのすべてのリクエストが提供する必要があります。Objectiveは、クライアントと具体的なモデルを分離し、プラットフォームのルーティングとモデル選択の決定をガイドします。Switchboard Rulesは、研究者がクライアントコードを変更せずにObjectiveにモデルバリアント、実験、およびトラフィック分割をアタッチできるJavaScript構成です。ルールは、特定のObjectiveに使用するデフォルトモデル、一連のObjective用に設定するA/B実験、および新しいモデルへのトラフィックを段階的にシフトするためのカスタマイズを指示します。ルールはSwitchboardとModel Servingクラスターの両方によって消費され、サービングプラットフォームコンポーネントはこれらのルールに基づいてさまざまなアクションを実行できます。全体として、このプラットフォームは、NetflixでMLモデルをサービングするためのスケーラブルで柔軟なソリューションを提供し、クライアントアプリへの影響を最小限に抑えながら、迅速なイノベーションと実験を可能にします。
CdXz5zHNQW_XdCPf6klQA.png