SageMaker推論高速化のTIPS
サービスの中でMLによるリアルタイム推論を行う場合、レイテンシーは重要な指標となります。
SageMakerによるリアルタイム推論の導入を検討してる場合、レイテンシーがサービス要件に合うかは気にする場合が多いと思います。
本記事では、SageMaker Endpointの高速化を試し、レイテンシーがどれほど抑えられるか実験してみます。
SageMakerの推論高速化について、こちらの記事で以下の方法が紹介されています。
How To Pick the Best SageMaker Model Hosting Option - Caylent
- AWS PrivateLink
- Elastic Inference
- Nvidia Triton Inference
- 推論ワークフローが複雑な複数要素で構成されてる場合、Triton Inferenceを利用することで最適化されたコンピューティング環境で処理を高速化できます
- Multi-model inference endpoint
- 複数モデルの推論エンドポイントを1つにまとめることで、コスト・レイテンシーを抑えることができます
- Amazon SageMaker Inference recommender
今回は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を使用する場合としない場合のレイテンシーの差は以下のようになりました
- PrivateLinkを使用する場合、最小のレスポンス時間は5ms
- 平均的にPrivateLinkを使用する場合の方がレイテンシーが低い
- 99percentileではPrivateLinkを使用する場合としない場合で差はない
インスタンスタイプの変更
t2系
m5系
t2・m5系ともに、インスタンスタイプが上がるほどレイテンシーが下がる結果となりませんでした。
上記の実験の手間をAmazon SageMaker Inference recommenderを使用することで省けるため、レイテンシー改善の手段として利用してみる価値はありそうです。
まとめ
PrivateLinkの使用、インスタンスタイプの変更によるレイテンシーの変化を確認しました。PrivateLinkの使用によりレイテンシーが改善される結果となりましたが、インスタンスタイプは性能上がるほどレイテンシーが改善する結果となりませんでした。
同じインスタンスファミリー内で平均レスポンス時間が1ms 以上改善するため、インスタンスタイプのチューニングは推論速度向上のために試してみるとよさそうです。