

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

# 厳選されたハブモデルをファインチューニングする
<a name="jumpstart-curated-hubs-fine-tune"></a>

厳選されたプライベートモデルハブでは、モデル参照を使用してファインチューニングトレーニングジョブを実行できます。モデル参照は、SageMaker AI パブリックハブで公開されている JumpStart モデルを参照しますが、特定のユースケースに合わせて独自のデータでモデルをファインチューニングできます。ファインチューニングジョブの後、エンドポイントで使用またはデプロイできるモデルの重みにアクセスできます。

SageMaker Python SDK を使用して、厳選されたハブモデルをわずか数行のコードでファインチューニングできます。公開されている JumpStart モデルのファインチューニングに関する一般的な情報については、「[ファインチューニング用の基盤モデルとハイパーパラメータ](jumpstart-foundation-models-fine-tuning.md)」を参照してください。

## 前提条件
<a name="jumpstart-curated-hubs-fine-tune-prereqs"></a>

厳選されたハブで JumpStart モデル参照をファインチューニングするには、以下を実行します。

1. ユーザーの IAM ロールに SageMaker AI `TrainHubModel` アクセス許可がアタッチされていることを確認します。詳細については、*AWS IAM ユーザーガイド*の「[IAM ID アクセス許可の追加および削除](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html)」を参照してください。

   ユーザーの IAM ロールには、以下の例のようなポリシーをアタッチする必要があります。

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "VisualEditor0",
               "Effect": "Allow",
               "Action": "sagemaker:TrainHubModel",
               "Resource": "arn:aws:sagemaker:*:111122223333:hub/*"
           }
       ]
   }
   ```

------
**注記**  
厳選されたハブが複数のアカウント間で共有されており、ハブコンテンツが別のアカウントによって所有されている場合は、次の例に示すように、リクエスト元アカウントに `TrainHubModel` アクセス許可も付与するリソースベースの IAM ポリシーが `HubContent` (モデル参照リソース) にあることを確認してください。  

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "AllowCrossAccountSageMakerAccess",
               "Effect": "Allow",
               "Principal": {
                   "AWS": "arn:aws:iam::111122223333:root"
               },
               "Action": [
                   "sagemaker:TrainHubModel"
               ],
               "Resource": [
                   "arn:aws:sagemaker:*:111122223333:hub/*"
               ]
           }
       ]
   }
   ```

1. ファインチューニングする JumpStart モデルへのモデル参照を含む、厳選されたプライベートハブを用意します。プライベートハブの作成の詳細については、「[プライベートモデルハブを作成する](jumpstart-curated-hubs-admin-guide-create.md)」を参照してください。一般公開されている JumpStart モデルをプライベートハブに追加する方法については、「[プライベートハブにモデルを追加する](jumpstart-curated-hubs-admin-guide-add-models.md)」を参照してください。
**注記**  
選択した JumpStart モデルはファインチューニング可能である必要があります。「[Built-in Algorithms with Pre-trained Models Table](https://sagemaker.readthedocs.io/en/stable/doc_utils/pretrainedmodels.html)」で、モデルがファインチューニング可能かどうかを確認できます。

1. モデルのファインチューニングに使用するトレーニングデータセットを用意します。データセットは、ファインチューニングするモデルに適したトレーニング形式である必要があります。

## 厳選されたハブモデル参照をファインチューニングする
<a name="jumpstart-curated-hubs-fine-tune-pysdk"></a>

次の手順では、SageMaker Python SDK を使用して、厳選されたプライベートハブでモデル参照をファインチューニングする方法を示しています。

1. SageMaker Python SDK の最新バージョン (少なくとも `2.242.0`) がインストールされていることを確認します。詳細については、「[Use Version 2.x of the SageMaker Python SDK](https://sagemaker.readthedocs.io/en/stable/v2.html)」を参照してください。

   ```
   !pip install --upgrade sagemaker
   ```

1.  AWS SDK for Python (Boto3) と必要なモジュールを SageMaker Python SDK からインポートします。

   ```
   import boto3
   from sagemaker.jumpstart.estimator import JumpStartEstimator
   from sagemaker.session import Session
   ```

1. Boto3 セッション、SageMaker AI クライアント、SageMaker Python SDK セッションを初期化します。

   ```
   sagemaker_client = boto3.Session(region_name=<AWS-region>).client("sagemaker")
   sm_session = Session(sagemaker_client=sagemaker_client)
   ```

1. `JumpStartEstimator` を作成し、JumpStart モデル ID、モデル参照を含むハブの名前、SageMaker Python SDK セッションを指定します。モデル ID のリストについては、「[Built-in Algorithms with Pre-trained Model Table](https://sagemaker.readthedocs.io/en/stable/doc_utils/pretrainedmodels.html)」を参照してください。

   必要に応じて、推定器の作成時に `instance_type` フィールドと `instance_count` フィールドを指定できます。指定しない場合、トレーニングジョブでは使用しているモデルのデフォルトのインスタンスタイプとカウントを使用します。

   必要に応じて、ファインチューニングされたモデルの重みを保存する Amazon S3 の場所を `output_path` で指定することもできます。`output_path` を指定しない場合、デフォルトの SageMaker AI Amazon S3 バケットをアカウントのリージョンに使用します。名前は `sagemaker-<region>-<account-id>` という形式になります。

   ```
   estimator = JumpStartEstimator(
       model_id="meta-textgeneration-llama-3-2-1b",
       hub_name=<your-hub-name>,
       sagemaker_session=sm_session, # If you don't specify an existing session, a default one is created for you
       # Optional: specify your desired instance type and count for the training job
       # instance_type = "ml.g5.2xlarge"
       # instance_count = 1
       # Optional: specify a custom S3 location to store the fine-tuned model artifacts
       # output_path: "s3://<output-path-for-model-artifacts>"
   )
   ```

1. ファインチューニングデータセットの場所を指定する `training` キーを使用してディクショナリを作成します。この例では Amazon S3 URI を参照しています。ローカルモードや複数のトレーニングデータチャネルの使用など、その他の考慮事項がある場合は、SageMaker Python SDK ドキュメントの「[JumpStartEstimator.fit()](https://sagemaker.readthedocs.io/en/stable/api/training/estimators.html#sagemaker.jumpstart.estimator.JumpStartEstimator.fit)」で詳細を参照してください。

   ```
   training_input = {
       "training": "s3://<your-fine-tuning-dataset>"
   }
   ```

1. 推定器の `fit()` メソッドを呼び出し、トレーニングデータと EULA の同意 (該当する場合) を渡します。
**注記**  
次の例では `accept_eula=False.` を設定しています。EULA に同意するには、値を手動で `True` に変更する必要があります。

   ```
   estimator.fit(inputs=training_input, accept_eula=False)
   ```

これでファインチューニングジョブが開始されます。

SageMaker AI コンソールで、または [ListTrainingJobs](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ListTrainingJobs.html) API を使用して、トレーニングジョブを表示することでファインチューニングジョブを確認できます。

`JumpStartEstimator` オブジェクトで指定された Amazon S3 `output_path` (リージョンのデフォルトの SageMaker AI Amazon S3 バケット、または該当する場合は指定したカスタム Amazon S3 パス) で、ファインチューニングされたモデルアーティファクトにアクセスできます。