「Amazon SageMaker のルーティング戦略を使用して、リアルタイムの推論レイテンシを最小限に抑えましょう」

Using Amazon SageMaker's routing strategy to minimize real-time inference latency

Amazon SageMakerは、リアルタイム推論のための機械学習(ML)モデルの展開を容易にし、AWS InferentiaなどのCPUおよびアクセラレータを備えた多様なMLインスタンスを提供しています。完全に管理されたサービスとして、モデルの展開をスケーリングし、推論コストを最小限に抑え、運用負荷を削減しながらモデルを効果的に管理することができます。SageMakerのリアルタイム推論エンドポイントは、HTTPsエンドポイントとMLインスタンスで構成され、高可用性のために複数のアベイラビリティーゾーンに展開されます。SageMakerのアプリケーション自動スケーリングは、ワークロードの変化に応じてモデルのMLインスタンス数を動的に調整することができます。エンドポイントは、ラウンドロビンアルゴリズムを使用して、受信したリクエストを均等にMLインスタンスに分散させます。

インスタンスに展開されたMLモデルが多数のクライアントからAPIコールを受ける場合、リクエストとレスポンスに変動が少ない場合にはランダムなリクエストの分配が非常に効果的です。しかし、生成的なAIワークロードが存在するシステムでは、リクエストとレスポンスには非常に大きな変動があることがあります。このような場合、ランダムなロードバランシングではなく、インスタンスの容量と利用率を考慮してロードバランスを行うことがしばしば望ましいです。

本記事では、SageMakerの最も未完了リクエスト(LOR)ルーティング戦略について説明し、容量と利用率を考慮したMLインスタンスにおいて特定の種類のリアルタイム推論ワークロードのレイテンシを最小限に抑える方法について説明します。デフォルトのルーティングメカニズムと比較してその利点を紹介し、どのようにLORをモデルの展開に有効化するかについて説明します。最後に、ランダムルーティング戦略と比較したLORによるレイテンシの改善の比較分析を行います。

SageMaker LOR戦略

デフォルトでは、SageMakerのエンドポイントはランダムなルーティング戦略を持っています。SageMakerは現在、LOR戦略をサポートしており、SageMakerが最適なルートを選択してリクエストを適切なインスタンスに送信することができます。SageMakerは、エンドポイントの背後にあるインスタンスの負荷、および各インスタンスに展開されているモデルまたは推論コンポーネントの状態を監視することで、これを実現しています。

以下のインタラクティブな図は、モデルエンドポイントに対して来たリクエストがランダムな方法でMLインスタンスに転送されるデフォルトのルーティングポリシーを示しています。

以下のインタラクティブな図は、SageMakerが最も未完了のリクエスト数が少ないインスタンスにリクエストをルーティングするルーティング戦略を示しています。

一般的に、LORルーティングは、基幹モデルや生成的なAIモデルにおいて、モデルが数百ミリ秒から数分で応答する場合に適しています。レイテンシが低いモデルの場合(数百ミリ秒まで)、ランダムなルーティングの方がより有益です。ただし、ワークロードに最適なルーティングアルゴリズムをテストして特定することをおすすめします。

SageMakerルーティング戦略の設定方法

SageMakerでは、エンドポイントのEndpointConfigurationを作成する際にRoutingStrategyパラメータを設定することができます。SageMakerでサポートされている異なるRoutingStrategyの値は以下のとおりです。

  • LEAST_OUTSTANDING_REQUESTS
  • RANDOM

以下は、LORが有効な推論エンドポイント上にモデルを展開する例です。

  1. RoutingStrategyLEAST_OUTSTANDING_REQUESTSとして設定してエンドポイント構成を作成します:

    endpoint_config_response = sm_client.create_endpoint_config(    EndpointConfigName=endpoint_config_name,    ProductionVariants=[        {            "VariantName": "variant1",            "ModelName": model_name,            "InstanceType": "instance_type",            "InitialInstanceCount": initial_instance_count,  …..            "RoutingConfig": {                'RoutingStrategy': 'LEAST_OUTSTANDING_REQUESTS'}        },    ],)
  2. エンドポイント構成を使用してエンドポイントを作成します(変更なし):

    create_endpoint_response = sm_client.create_endpoint(    EndpointName="endpoint_name",     EndpointConfigName="endpoint_config_name")

パフォーマンス結果

エンドツーエンドの推論レイテンシとスループットを測定するためにパフォーマンスベンチマーキングを実行しました。デフォルトのルーティングとスマートルーティングのエンドポイントでホストされるcodegen2-7Bモデルについてのものです。 CodeGen2モデルは自己回帰的言語モデルの一種で、英語の提示を受けると実行可能なコードを生成します。

分析では、同時ユーザー数が増加するにつれて各テスト実行ごとに各エンドポイントのml.g5.24xlインスタンスの数を増やしました。次のテーブルに示すように、

テスト 同時ユーザー数 インスタンス数
1 4 1
2 20 5
3 40 10
4 60 15
5 80 20

インスタンス数を5から20に増やすと、エンドポイントごとのエンドツーエンドのP99レイテンシで4〜33%の改善が見られました。

同様に、インスタンス数を5から20に増やすと、1分あたりの各インスタンスのスループットが15〜16%改善されました。

これは、スマートルーティングがエンドポイント間のトラフィック分散を改善し、エンドツーエンドのレイテンシと全体的なスループットを向上させることができることを示しています。

結論

この記事では、SageMakerのルーティング戦略と新しいLORルーティングの有効化オプションについて説明しました。 LORの有効化方法と、モデルデプロイメントへの影響について説明しました。 パフォーマンステストでは、リアルタイム推論中のレイテンシとスループットの改善が示されました。 SageMakerのルーティング機能について詳しくは、ドキュメントを参照してください。 推論ワークロードを評価し、適切に設定されているかどうかを確認することをお勧めします。

We will continue to update VoAGI; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

AIテクノロジー

ウェブサイトのためにChatGPTに適切なテクニカルテキストを書かせる方法

「長いテキストを書くように依頼しないでくださいできるだけ多くの詳細と仕様を提供し、適切な言語を使用し、AIディテクター...

機械学習

ビジネスにおけるオープンソースと専有モデルの選択:生成型人工知能の展開において

ジェネレーティブAIへの関心の高まりにより、2023年中頃には約350社の企業がこの分野に参入しました[1]それぞれが基礎モデル...

機械学習

一緒にAIを学ぶ- Towards AIコミュニティニュースレター#3

おはようございます、AI愛好家のみなさん!今週のポッドキャストエピソードをシェアできることをとても嬉しく思います今回は...

AIニュース

Google Cloudがマッコーリー銀行のAIバンキング機能を強化するのを支援します

マッコーリーのバンキング&金融サービスグループは、人工知能(AI)と機械学習(ML)の力を結集し、銀行業界を変革するため...

データサイエンス

「CNNによる特徴抽出の探求」

「畳み込みニューラルネットワークは、機械学習を用いた画像分類タスクにおいて、今日の基礎となっていますただし、分類の前...