翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
サードパーティーの Git リポジトリを使用した SageMaker MLOps プロジェクトのチュートリアル
重要
2023 年 11 月 30 日現在、以前の Amazon SageMaker Studio エクスペリエンスは Amazon SageMaker Studio Classic という名前になりました。次のセクションは、Studio Classic アプリケーションの使用に固有のものです。更新された Studio エクスペリエンスの使用については、「」を参照してくださいAmazon SageMaker Studio。
このチュートリアルでは、を使用したサードパーティーの Git リポジトリによるモデルの構築、トレーニング、デプロイ用の MLOps テンプレート CodePipeline テンプレートを使用して、モデルを構築、トレーニング、デプロイする CI/CD システムを MLOps プロジェクトで作成する方法を示します。
前提条件
このチュートリアルを完了するには、以下が必要になります。
-
Studio Classic にサインインするための IAM または IAM Identity Center アカウント。詳細については、「Amazon SageMaker ドメインの概要」を参照してください。
-
SageMakerが提供するプロジェクトテンプレートを使用する許可。詳細については、「SageMaker プロジェクトを使用するために必要な Studio アクセス許可」を参照してください。
-
Studio Classic ユーザーインターフェイスに関する基本的な知識。詳細については、「Amazon SageMaker Studio Classic UI の概要」を参照してください。
-
README で初期化された 2 つの GitHub リポジトリ。これらのリポジトリをプロジェクトテンプレートに入力すると、これらのリポジトリにモデルの構築およびデプロイのコードがシードされます。
トピック
ステップ 1: 接続を設定する GitHub
このステップでは、接続 AWS CodeStarを使用して GitHub リポジトリに接続します。 SageMaker プロジェクトはこの接続を使用してソースコードリポジトリにアクセスします。
GitHub 接続を設定するには:
-
https://console.aws.amazon.com/codepipeline/
で CodePipeline コンソールにログインします。 -
ナビゲーションペインの [Settings] (設定) で [Connections] (接続) を選択します。
-
[Create connection] (接続の作成) を選択します。
-
「プロバイダーの選択」で、「」を選択しますGitHub。
-
[Connection name] (接続名) に、名前を入力します。
-
に接続 GitHubを選択します。
-
AWS Connector GitHub アプリが以前にインストールされていない場合は、新しいアプリのインストール を選択します。
これにより、アクセスできるすべての GitHub 個人アカウントと組織のリストが表示されます。
-
SageMaker プロジェクトと GitHub リポジトリで使用する接続を確立するアカウントを選択します。
-
[設定] を選択します。
-
オプションで、特定のリポジトリを選択するか、すべてのリポジトリを選択できます。
-
[保存] を選択します。アプリをインストールすると、Connect to GitHubページにリダイレクトされ、インストール ID が自動的に入力されます。
-
[接続]を選択します。
-
true
この AWS CodeStar 接続にキーsagemaker
と値を含むタグを追加します。 -
接続 ARN をコピーし、後で使用できるように保存します。この ARN は、プロジェクト作成ステップでパラメータとして使用します。
ステップ 2: プロジェクトを作成する
このステップでは、 が提供するプロジェクトテンプレートを使用してモデルを構築、トレーニング、デプロイすることで、 SageMaker MLOps SageMakerプロジェクトを作成します。
SageMaker MLOps プロジェクトを作成するには
-
Studio Classic にサインインします。詳細については、「Amazon SageMaker ドメインの概要」を参照してください。
-
Studio Classic サイドバーで、ホームアイコン () を選択します 。
-
メニューから [デプロイ] を選択し、[プロジェクト] を選択します。
-
[プロジェクトを作成] を選択します。
[Create project] (プロジェクトの作成) タブが表示されます。
-
SageMaker プロジェクトテンプレート では、サードパーティーの Git リポジトリ を使用したモデルの構築、トレーニング、デプロイ用の MLOps テンプレートを選択します。
-
[Select project template] (プロジェクトテンプレートを選択) を選択します。
-
ModelBuild CodeRepository 情報 で、次のパラメータを指定します。
-
[URL] で、モデル構築コードの Git リポジトリの URL を https://
git-url
.git 形式で入力します。 -
[Branch] (ブランチ) で、Git リポジトリからパイプラインアクティビティに使用するブランチを入力します。
-
[Full Repository Name] (フルリポジトリ名) で、Git リポジトリ名を、
username/repository name
またはorganization/repository name
の形式で入力します。 -
Codestar Connection ARN には、ステップ 1 で作成した AWS CodeStar 接続の ARN を入力します。
-
[Sample Code] (サンプルコード) トグルスイッチを使用すると、リポジトリにモデル構築シードコードを自動的に設定するかどうかを選択できます。このデモでは、デフォルトのままにしておきます。
-
-
ModelDeploy CodeRepository 情報 で、次のパラメータを指定します。
-
[URL] で、モデル構築コードの Git リポジトリの URL を https://
git-url
.git 形式で入力します。 -
[Branch] (ブランチ) で、Git リポジトリからパイプラインアクティビティに使用するブランチを入力します。
-
[Full Repository Name] (フルリポジトリ名) で、Git リポジトリ名を、
username/repository name
またはorganization/repository name
の形式で入力します。 -
Codestar Connection ARN には、ステップ 1 で作成した AWS CodeStar 接続の ARN を入力します。
-
[Sample Code] (サンプルコード) トグルスイッチを使用すると、リポジトリにモデルデプロイシードコードを自動的に設定するかどうかを選択できます。このデモでは、デフォルトのままにしておきます。
-
-
[プロジェクトを作成] を選択します。
プロジェクトが [Projects] (プロジェクト) リストに表示され、[Status] (ステータス) が [Created] (作成済み) になります。
ステップ 3: コードを変更する
次に、モデルを構築するパイプラインコードを変更し、変更をコミットして新しいパイプラインの実行を開始します。このパイプラインの実行により、新しいモデルバージョンが登録されます。
コードを変更するには
-
モデルビルド GitHub リポジトリで、
pipelines/abalone
フォルダに移動します。pipeline.py
をダブルクリックして、コードファイルを開きます。 -
pipeline.py
ファイルで、トレーニングインスタンスタイプを設定する行を見つけます。training_instance_type = ParameterString( name="TrainingInstanceType", default_value="ml.m5.xlarge"
編集するファイルを開き、
ml.m5.xlarge
をml.m5.large
に変更してコミットします。
コードの変更をコミットすると、新しいモデルバージョンを作成するパイプラインの実行が MLOps システムで開始されます。次のステップでは、新しいモデルバージョンを承認して、本番環境にデプロイします。
ステップ 4: モデルを承認する
次に、前のステップで作成した新しいモデルバージョンを承認して、 SageMaker エンドポイントへのモデルバージョンのデプロイを開始します。
モデルバージョンを承認するには
-
Studio Classic サイドバーで、ホームアイコン () を選択します 。
-
メニューから [デプロイ] を選択し、[プロジェクト] を選択します。
-
最初のステップで作成したプロジェクトの名前を見つけてダブルクリックし、プロジェクトのプロジェクトタブを開きます。
-
プロジェクトタブで [Model groups] (モデルグループ) を選択し、表示されるモデルグループの名前をダブルクリックします。
モデルグループタブが表示されます。
-
モデルグループタブで、[バージョン 1] をダブルクリックします。[バージョン 1] タブが開きます。[Update status] (ステータスを更新) を選択します。
-
[Update model version status] (モデルバージョンのステータスを更新) ダイアログボックスの [Status] (ステータス)ドロップダウンリストで、[Approve] (承認)、[Update status] (ステータスを更新) の順に選択します。
モデルバージョンを承認すると、モデルがステージングにデプロイされます。エンドポイントを表示するには、プロジェクトタブで [Endpoints] (エンドポイント) タブを選択します。
(オプション) ステップ 5: モデルバージョンを本番環境にデプロイする
これで、モデルバージョンを本番環境にデプロイできます。
注記
このステップを完了するには、Studio Classic ドメインの管理者である必要があります。管理者でない場合は、この手順をスキップします。
モデルバージョンを本番環境にデプロイするには
-
https://console.aws.amazon.com/codepipeline/
で CodePipeline コンソールにログインします。 -
[Pipelines] (パイプライン) を選択し、sagemaker-
projectname
-projectid
-modeldeploy という名前のパイプラインを選択します。ここで、projectname
はプロジェクトの名前、projectid
はプロジェクトの ID になります。 -
DeployStaging ステージで、「レビュー」を選択します。
-
[Review] (確認) ダイアログボックスで、[Approve] (承認) を選択します。
DeployStaging ステージを承認すると、MLOps システムはモデルを本番環境にデプロイします。エンドポイントを表示するには、Studio Classic のプロジェクトタブでエンドポイントタブを選択します。
ステップ 6: リソースをクリーンアップする
料金の発生を止めるには、このチュートリアルで作成したリソースをクリーンアップします。
注記
AWS CloudFormation スタックと Amazon S3 バケットを削除するには、Studio Classic の管理者である必要があります。管理者でない場合は、管理者にこれらの手順を実行するように依頼します。
-
Studio Classic サイドバーで、ホームアイコン () を選択します 。
-
メニューから [デプロイ] を選択し、[プロジェクト] を選択します。
-
ドロップダウンリストから、ターゲットのプロジェクトを選択します。プロジェクトが表示されていない場合は、プロジェクト名を入力し、フィルターを適用してプロジェクトを検索します。
プロジェクトを選択すると、メインパネルに詳細が表示されます。
[Actions] (アクション) メニューから [Delete] (削除) を選択します。
-
[Delete Project] (プロジェクトの削除) ウィンドウの [Delete] (削除) を選択して、選択を確定します。
これで、プロジェクトで作成した Service Catalog プロビジョニングの製品が削除されます。これには CodeCommit、、 CodePipeline、およびプロジェクト用に作成された CodeBuild リソースが含まれます。
-
プロジェクトが作成した AWS CloudFormation スタックを削除します。スタックには、ステージング用と本番用の 2 つがあります。スタックの名前は sagemaker-
projectname
-project-id
-deploy-staging と sagemaker-projectname
-project-id
-deploy-prod です。ここで、projectname
はプロジェクトの名前、project-id
はプロジェクトの ID になります。AWS CloudFormation スタックを削除する方法については、「 ユーザーガイド」の AWS CloudFormation 「コンソールでのスタックの削除AWS CloudFormation 」を参照してください。
-
プロジェクトで作成した Amazon S3 バケットを削除します。バケットの名前は sagemaker-project-
project-id
です。ここで、project-id
はプロジェクトの ID になります。