「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でお金を稼ぐ5つの方法

もしChatGPTでお金を稼げるとは信じていないなら、この記事の終わりまでには信じるようになるでしょう

人工知能

関数呼び出し:GPTチャットボットを何にでも統合する

OpenAIのGPTの新しい関数呼び出し機能を探索し、チャットボットが外部ツールやAPIと対話できるようにしますAIパワーを活用し...

人工知能

新しい方法:AIによって地図がより没入感あるものになる

AIの進歩により、マップで経路を理解する新しい方法がありますさらに、開発者向けの新しい没入型ツールもあります

機械学習

「ビジュアルAIがカナダ最大かつ最も賑やかな空港で飛躍する」

カナダのオンタリオ州にあるトロントピアソン国際空港は、年間約5000万人の旅客にサービスを提供する国内最大かつ最も混雑し...

データサイエンス

データ・コモンズは、AIを使用して世界の公共データをよりアクセスしやすく、役に立つものにしています

「データコモンズ」についての説明これは、Googleが公に利用可能なデータを社会的な課題の解決に取り組む人々により有益にす...

機械学習

「IoT企業のインテリジェントビデオアナリティクスプラットフォームを搭載したAIがベンガルール空港に到着」

毎年、約3200万人がベンガルール空港、またはBLRを通過し、世界で最も人口の多い国の中で最も忙しい空港の一つです。 このよ...