1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

コンテナ稼働のtensorflow2系でmodel.loadはできたけどmodel.predictでコンテナが落ちる原因について

Last updated at Posted at 2023-03-10

全体構成

AWSでAIを用いたWebサービスを運営しています。
構成は大まかにはEC2(g4dn.xlarge) on ECSで ECS上にflaskコンテナとjobコンテナを配置しています。
タスク定義にて、適当な量のvCPUを割り当てて、g4dnのGPUはjobの方にアタッチしています。
コンテナ間通信によって、flaskから画像をjobに投げるとjobの中のAIが動いていろいろ推論して、結果を返します。

jobの中にはfastapiサーバを立ててます。サーバ起動と同時に3つのmodelがloadされます。
flaskからリクエストが来たら、endpointに従って対応するmodelでpredictします。

変化点

4つめのmodelを追加して、loadやpredictのコーディングをした。

起こったこと

flaskがjobと通信できていない

確認順序

確認 結果
コンテナ間通信のURLが合っているか 合っている
jobコンテナは生きているか 死んでいた
model.loadはできてるか 出来てた
model.predictはできているか ここで死んでいた

仮説検証

仮説 結果
GPUメモリ不足 g5系に変更 predictでコンテナ停止
CPUメモリ不足 タスク定義にてjobコンテナへのvCPU割当増加 成功

結論

GPUを用いた推論でもCPUまで疑うこと。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?