モデルを作成する - Amazon SageMaker AI

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

モデルを作成する

次の例は、 AWS SDK for Python (Boto3)を使用してモデルを作成する方法を示しています。最初の数行では、以下を定義します。

  • sagemaker_client: AWS サービスへのリクエストの送受信を容易にする低レベルの SageMaker AI クライアントオブジェクト。

  • sagemaker_role: SageMaker AI IAM ロール Amazon リソースネーム (ARN) を持つ文字列変数。

  • aws_region: AWS リージョンの名前を持つ文字列変数。

import boto3 # Specify your AWS Region aws_region='<aws_region>' # Create a low-level SageMaker service client. sagemaker_client = boto3.client('sagemaker', region_name=aws_region) # Role to give SageMaker permission to access AWS services. sagemaker_role= "arn:aws:iam::<account>:role/*"

次に、Amazon S3 に保存されているトレーニング済みモデルの場所を指定します。この例では、demo-xgboost-model.tar.gz という名前のトレーニング済み XGBoost モデルを使用します。完全な Amazon S3 URI は文字列変数 model_url に保存されています。

#Create a variable w/ the model S3 URI s3_bucket = '<your-bucket-name>' # Provide the name of your S3 bucket bucket_prefix='saved_models' model_s3_key = f"{bucket_prefix}/demo-xgboost-model.tar.gz" #Specify S3 bucket w/ model model_url = f"s3://{s3_bucket}/{model_s3_key}"

プライマリコンテナを指定します。プライマリコンテナについては、推論コードを含む Docker イメージ、アーティファクト (以前のトレーニングから)、予測のためにモデルをデプロイするときに推論コードが使うカスタム環境マップを指定します。

この例では、XGBoost 組み込みアルゴリズムコンテナイメージを指定します。

from sagemaker import image_uris # Specify an AWS container image. container = image_uris.retrieve(region=aws_region, framework='xgboost', version='0.90-1')

を使用して Amazon SageMaker AI でモデルを作成しますCreateModel。次を指定します:

  • ModelName: モデルの名前 (この例では、model_name という文字列変数として保存されています)。

  • ExecutionRoleArn: Amazon SageMaker AI が ML コンピューティングインスタンスへのデプロイまたはバッチ変換ジョブのためにモデルアーティファクトと Docker イメージにアクセスするために引き受けることができる IAM ロールの Amazon リソースネーム (ARN)。

  • PrimaryContainer: 推論コード、関連アーティファクト、予測のためにモデルがデプロイされるときに推論コードが使用するカスタム環境マップを含むプライマリ Docker イメージの場所。

model_name = '<The_name_of_the_model>' #Create model create_model_response = sagemaker_client.create_model( ModelName = model_name, ExecutionRoleArn = sagemaker_role, PrimaryContainer = { 'Image': container, 'ModelDataUrl': model_url, })

API パラメータの完全なリストについては、SageMaker API リファレンスガイドの CreateModel の説明を参照してください。

SageMaker AI が提供するコンテナを使用している場合は、このステップで環境変数を設定することで、モデルサーバーのタイムアウトとペイロードサイズをデフォルト値からフレームワークでサポートされている最大値に増やすことができます。これらの変数を明示的に設定しないと、非同期推論がサポートする最大タイムアウトサイズとペイロードサイズを利用できない場合があります。次の例では、TorchServe をベースにした PyTorch 推論コンテナの環境変数を設定する方法を示しています。

model_name = '<The_name_of_the_model>' #Create model create_model_response = sagemaker_client.create_model( ModelName = model_name, ExecutionRoleArn = sagemaker_role, PrimaryContainer = { 'Image': container, 'ModelDataUrl': model_url, 'Environment': { 'TS_MAX_REQUEST_SIZE': '100000000', 'TS_MAX_RESPONSE_SIZE': '100000000', 'TS_DEFAULT_RESPONSE_TIMEOUT': '1000' }, })

エンドポイントの作成が完了したら、inference.py スクリプトから環境変数を出力して、環境変数が正しく設定されているかどうかをテストする必要があります。次の表は、デフォルト値を変更するために設定できる複数のフレームワークの環境変数の一覧です。

フレームワーク 環境変数

PyTorch 1.8 (TorchServe に基づく)

'TS_MAX_REQUEST_SIZE': '100000000'

'TS_MAX_RESPONSE_SIZE': '100000000'

'TS_DEFAULT_RESPONSE_TIMEOUT': '1000'

PyTorch 1.4 (MMS に基づく)

'MMS_MAX_REQUEST_SIZE': '1000000000'

'MMS_MAX_RESPONSE_SIZE': '1000000000'

'MMS_DEFAULT_RESPONSE_TIMEOUT': '900'

HuggingFace 推論コンテナ (MMS に基づく)

'MMS_MAX_REQUEST_SIZE': '2000000000'

'MMS_MAX_RESPONSE_SIZE': '2000000000'

'MMS_DEFAULT_RESPONSE_TIMEOUT': '900'