肉球でキーボード

MLエンジニアの技術ブログです

SageMaker Endpointのレイテンシー高速化実験

SageMaker推論高速化のTIPS

サービスの中でMLによるリアルタイム推論を行う場合、レイテンシーは重要な指標となります。

SageMakerによるリアルタイム推論の導入を検討してる場合、レイテンシーがサービス要件に合うかは気にする場合が多いと思います。

本記事では、SageMaker Endpointの高速化を試し、レイテンシーがどれほど抑えられるか実験してみます。

SageMakerの推論高速化について、こちらの記事で以下の方法が紹介されています。
How To Pick the Best SageMaker Model Hosting Option - Caylent

今回はAWS PrivateLinkの利用によりネットワーク通信速度が改善するか、インスタンスタイプの変更により推論処理速度が改善するかを確認します。

Elastic Inference, Nvidia Triton inerence, Multi model inferenceは深層学習モデルや複数モデルの利用という特定のユースケースに特化してる方法なので今回は扱いません。

実験内容

モデル

モデル選択による推論時間の差をなくすため、リクエストを受け取り、定数値を返すダミーモデルを使用します。

モデルの作成とエンドポイントのデプロイ手順はこちらの記事に記載している内容です。

SageMaker Endpointのレイテンシーを負荷試験ツールlocustで計測する - 肉球でキーボード

実験

  • PrivateLinkの利用

PrivateLinkを使用する場合としない場合で、ネットワーク通信速度の変化を確認します。

異なるAZに配置されたインスタンスにリクエストを割り振ることによるAZ間通信を無くすため、インスタンス数を2に設定します。

インスタンスタイプはml.t2.xlargeを使用します。

PrivateLinkの設定はこちらの記事に記載してる内容です。
AWS PrivateLinkを介したSageMaker Endpointへのリクエスト手順 - 肉球でキーボード

SageMaker Endpointでは汎用・コンピューティング最適・メモリ最適・高速コンピューティングのインスタンスタイプが用意されています。
料金 - Amazon SageMaker | AWS

今回は以下の汎用インスタンスタイプの比較を行います。

  • t2系 : ml.t2.medium, ml.t2.large, ml.t2.xlarge, ml.t2.2xlarge
  • m5系: ml.m5.large, ml.m5.xlarge, ml.m5.2xlarge, ml.m5.4xlarge, ml.m5.12xlarge, ml.m5.24xlarge

リクエス

上記2つの設定で、ap-northeast-1にSageMaker Endpointと、リクエストを送るEC2インスタンスを立てます。

リクエストを送るEC2インスタンスはm5.2xlarge 1台です。

レイテンシの計測はlocustを使用します。

結果

PrivateLinkの利用

PrivateLinkを使用する場合としない場合のレイテンシーの差は以下のようになりました

private-link-latency

  • PrivateLinkを使用する場合、最小のレスポンス時間は5ms
  • 平均的にPrivateLinkを使用する場合の方がレイテンシーが低い
  • 99percentileではPrivateLinkを使用する場合としない場合で差はない

インスタンスタイプの変更

t2系

t2-latency

m5系

m5-latency

t2・m5系ともに、インスタンスタイプが上がるほどレイテンシーが下がる結果となりませんでした。
上記の実験の手間をAmazon SageMaker Inference recommenderを使用することで省けるため、レイテンシー改善の手段として利用してみる価値はありそうです。

まとめ

PrivateLinkの使用、インスタンスタイプの変更によるレイテンシーの変化を確認しました。PrivateLinkの使用によりレイテンシーが改善される結果となりましたが、インスタンスタイプは性能上がるほどレイテンシーが改善する結果となりませんでした。

同じインスタンスファミリー内で平均レスポンス時間が1ms 以上改善するため、インスタンスタイプのチューニングは推論速度向上のために試してみるとよさそうです。

参考