View a markdown version of this page

厳選されたハブモデルをファインチューニングする - Amazon SageMaker AI

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

厳選されたハブモデルをファインチューニングする

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

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

前提条件

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

  1. ユーザーの IAM ロールに SageMaker AI TrainHubModel アクセス許可がアタッチされていることを確認します。詳細については、AWS IAM ユーザーガイドの「IAM ID アクセス許可の追加および削除」を参照してください。

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

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

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

    JSON
    { "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/*" ] } ] }
  2. ファインチューニングする JumpStart モデルへのモデル参照を含む、厳選されたプライベートハブを用意します。プライベートハブの作成の詳細については、「プライベートモデルハブを作成する」を参照してください。一般公開されている JumpStart モデルをプライベートハブに追加する方法については、「プライベートハブにモデルを追加する」を参照してください。

    注記

    選択した JumpStart モデルはファインチューニング可能である必要があります。「Built-in Algorithms with Pre-trained Models Table」で、モデルがファインチューニング可能かどうかを確認できます。

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

厳選されたハブモデル参照をファインチューニングする

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

  1. SageMaker Python SDK の最新バージョン (少なくとも 2.242.0) がインストールされていることを確認します。詳細については、SageMaker Python SDK のバージョン 3.x を使用する」を参照してください。

    !pip install --upgrade sagemaker
  2. AWS SDK for Python (Boto3) と必要なモジュールを SageMaker Python SDK からインポートします。

    import boto3 from sagemaker.train import ModelTrainer from sagemaker.core.jumpstart.configs import JumpStartConfig from sagemaker.core.helper.session_helper import Session
  3. Boto3 セッション、SageMaker AI クライアント、SageMaker Python SDK セッションを初期化します。

    sagemaker_client = boto3.Session(region_name=<AWS-region>).client("sagemaker") sm_session = Session(sagemaker_client=sagemaker_client)
  4. ModelTrainer を使用して を作成し、JumpStart モデル ID、モデルリファレンスを含むハブの名前、SageMaker Python SDK セッションfrom_jumpstart_configを指定します。モデル ID のリストについては、「Built-in Algorithms with Pre-trained Model Table」を参照してください。

    オプションで、ModelTrainer の作成時に フィールドinstance_typeinstance_countフィールドを指定できます。指定しない場合、トレーニングジョブでは使用しているモデルのデフォルトのインスタンスタイプとカウントを使用します。

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

    jumpstart_config = JumpStartConfig( model_id="meta-textgeneration-llama-3-2-1b", hub_name=<your-hub-name>, # Optional: specify your desired instance type and count for the training job # instance_type = "ml.g5.2xlarge" # instance_count = 1 ) model_trainer = ModelTrainer.from_jumpstart_config(jumpstart_config=jumpstart_config) # Optional: specify a custom S3 location to store the fine-tuned model artifacts # output_path: "s3://<output-path-for-model-artifacts>"
  5. ファインチューニングデータセットの場所を指定する training キーを使用してディクショナリを作成します。この例では Amazon S3 URI を参照しています。ローカルモードや複数のトレーニングデータチャネルの使用など、その他の考慮事項がある場合は、SageMaker Python SDK ドキュメントの ModelTrainer.train() を参照してください。

    training_input = { "training": "s3://<your-fine-tuning-dataset>" }
  6. モデルトレーナーの train()メソッドを呼び出し、トレーニングデータと EULA 承諾 (該当する場合) を渡します。

    注記

    次の例では accept_eula=False. を設定しています。EULA に同意するには、値を手動で True に変更する必要があります。

    model_trainer.train(input_data_config=[training_input], accept_eula=False)

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

SageMaker AI コンソールで、または ListTrainingJobs API を使用して、トレーニングジョブを表示することでファインチューニングジョブを確認できます。

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