SageMakerエンドポイントを利用してモデル管理を調べた話

AWSを使用してAIモデルを複数管理する方法 AWSを使用してAIのモデルを複数管理したいという話がありました。 学習済みのモデルなので本番では推論しか使われませんが、モデルのバージョン管理を行いたいということだったので調査をしました。 S3にモデルを置くだけでもある程度管理はできますが、SageMakerのエンドポイントを使うかもしれないということでSageMakerでの管理を調べることになりました。 基本的な書き方はサンプルの書き方に沿ってます。こちらです。 モデルのS3へのアップロード まずはモデルをS3にアップロードするところからです。 # tensorflowを使うのでmodel.tar.gzにモデルを固める TAR_DIR = './tmp' # 一時的なモデルディレクトリ CODE_DIR = './code' # infarence.py等のディレクトリ MODEL_DIR = './model' # モデルディレクトリ TAR_NAME = os.path.join(TAR_DIR , 'model.tar.gz') with tarfile.open(TAR_NAME, mode='w:gz') as tar tar.add(MODEL_DIR) tar.add(CODE_DIR) # モデルをS3にアップロード(複数モデルをアップロードする想定) s3_uri1 = sagemaker.session.Session(default_bucket='development').upload_data( path = TAR_NAME key_prefix = 'image_recognition/test/model1' ) s3_uri2 = sagemaker.session.Session(default_bucket='development').upload_data( path = TAR_NAME key_prefix = 'image_recognition/test/model2' ) イメージの作成 モデルをアップロードしたら次はイメージの作成をします。イメージに関しては1イメージで複数モデル格納できますが、未調査のため一旦複数イメージを作成します。 image_uri1 = sagemaker.image_uris.retrieve( framework='tensorflow', region=sagemaker.session.Session().boto_region_name, version='2.12', instance_type='ml.m5.xlarge', image_scope=inference' ) image_uri2 = sagemaker.image_uris.retrieve( framework='tensorflow', region=sagemaker.session.Session().boto_region_name, version='2.12', instance_type='ml.m5.xlarge', image_scope=inference' ) モデルパッケージグループの作成 モデルパッケージグループの作成をします。この中にモデルを複数入れることでバージョン管理を行っていきます。 ...

2024年8月3日