

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

# SageMaker Python SDK で基盤モデルを使用する
<a name="jumpstart-foundation-models-use-python-sdk"></a>

JumpStart 基盤モデルはすべて、SageMaker Python SDK を使用してプログラムでデプロイできます。

公開されている基盤モデルをデプロイするには、そのモデルの ID を使用できます。公開されているすべての基盤モデルのモデル ID を調べるには、「[Built-in Algorithms with pre-trained Model Table](https://sagemaker.readthedocs.io/en/stable/doc_utils/pretrainedmodels.html)」を参照してください。**[検索]** バーで基盤モデルの名前を検索します。**[エントリを表示]** ドロップダウンまたはページ分割コントロールを使用して、利用可能なモデルを確認してください。

独自モデルは、 AWS Marketplaceでモデルをサブスクライブした後に、モデルパッケージ情報を使用してデプロイする必要があります。

JumpStart で使用可能なモデルのリストは、「[利用可能な基盤モデル](jumpstart-foundation-models-latest.md)」で確認できます。

**重要**  
一部の基盤モデルでは、エンドユーザー使用ライセンス契約 (EULA) に明示的に同意する必要があります。詳細については、「[SageMaker Python SDK で EULA に同意する](jumpstart-foundation-models-choose.md#jumpstart-foundation-models-choose-eula-python-sdk)」を参照してください。

以下のセクションでは、公開されている基盤モデルを `JumpStartEstimator` クラスを使用してファインチューニングする方法、公開されている基盤モデルを `JumpStartModel` クラスを使用してデプロイする方法、独自の基盤モデルを `ModelPackage` クラスを使用してデプロイする方法を説明します。

**Topics**
+ [公開されている基盤モデルを `JumpStartEstimator` クラスでファインチューニングする](jumpstart-foundation-models-use-python-sdk-estimator-class.md)
+ [公開されている基盤モデルを `JumpStartModel` クラスでデプロイする](jumpstart-foundation-models-use-python-sdk-model-class.md)
+ [独自の基盤モデルを `ModelPackage` クラスでデプロイする](jumpstart-foundation-models-use-python-sdk-proprietary.md)

# 公開されている基盤モデルを `JumpStartEstimator` クラスでファインチューニングする
<a name="jumpstart-foundation-models-use-python-sdk-estimator-class"></a>

**注記**  
厳選されたプライベートハブで基盤モデルをファインチューニングする手順については、「[厳選されたハブモデルをファインチューニングする](jumpstart-curated-hubs-fine-tune.md)」を参照してください。

SageMaker Python SDK を使用して、組み込みアルゴリズムや事前トレーニング済みのモデルをわずか数行のコードでファインチューニングできます。

1. まず、「[Built-in Algorithms with pre-trained Model Table](https://sagemaker.readthedocs.io/en/stable/doc_utils/pretrainedmodels.html)」で、選択したモデルのモデル ID を調べます。

1. そのモデル ID を使用して、トレーニングジョブを JumpStart 推定器として定義します。

   ```
   from sagemaker.jumpstart.estimator import JumpStartEstimator
   
   model_id = "huggingface-textgeneration1-gpt-j-6b"
   estimator = JumpStartEstimator(model_id=model_id)
   ```

1. モデルで `estimator.fit()` を実行し、ファインチューニングに使用するトレーニングデータを指定します。

   ```
   estimator.fit(
       {"train": training_dataset_s3_path, "validation": validation_dataset_s3_path}
   )
   ```

1. 次に、`deploy` メソッドを使用して、推論用にモデルを自動的にデプロイします。この例では、Hugging Face の GPT-J 6B モデルを使用します。

   ```
   predictor = estimator.deploy()
   ```

1. その後、`predict` メソッドを使用して、デプロイしたモデルで推論を実行できます。

   ```
   question = "What is Southern California often abbreviated as?"
   response = predictor.predict(question)
   print(response)
   ```

**注記**  
この例では、基盤モデル GPT-J 6B を使用しています。このモデルは、質疑応答、固有表現抽出、要約など、幅広いテキスト生成のユースケースに適しています。モデルのユースケースの詳細については、「[利用可能な基盤モデル](jumpstart-foundation-models-latest.md)」を参照してください。

`JumpStartEstimator` の作成時に、モデルのバージョンやインスタンスのタイプをオプションで指定できます。`JumpStartEstimator `クラスとそのパラメータの詳細については、「[JumpStartEstimator](https://sagemaker.readthedocs.io/en/stable/api/inference/model.html#sagemaker.jumpstart.estimator.JumpStartEstimator)」を参照してください。

## デフォルトのインスタンスタイプを確認する
<a name="jumpstart-foundation-models-use-python-sdk-estimator-class-instance-types"></a>

事前トレーニング済みのモデルを `JumpStartEstimator` クラスを使用してファインチューニングするときに、モデルのバージョンやインスタンスのタイプをオプションで指定することができます。すべての JumpStart モデルにはデフォルトのインスタンスタイプがあります。次のコードを使用して、デフォルトのトレーニングインスタンスタイプを取得してください。

```
from sagemaker import instance_types

instance_type = instance_types.retrieve_default(
    model_id=model_id,
    model_version=model_version,
    scope="training")
print(instance_type)
```

`instance_types.retrieve()` メソッドを使用して、特定の JumpStart モデルでサポートされているすべてのインスタンスタイプを確認できます。

## デフォルトのハイパーパラメータを確認する
<a name="jumpstart-foundation-models-use-python-sdk-estimator-class-hyperparameters"></a>

トレーニングに使用されるデフォルトのハイパーパラメータを確認するには、`hyperparameters` クラスから `retrieve_default()` メソッドを使用できます。

```
from sagemaker import hyperparameters

my_hyperparameters = hyperparameters.retrieve_default(model_id=model_id, model_version=model_version)
print(my_hyperparameters)

# Optionally override default hyperparameters for fine-tuning
my_hyperparameters["epoch"] = "3"
my_hyperparameters["per_device_train_batch_size"] = "4"

# Optionally validate hyperparameters for the model
hyperparameters.validate(model_id=model_id, model_version=model_version, hyperparameters=my_hyperparameters)
```

利用可能なハイパーパラメータの詳細については、「[一般的にサポートされているファインチューニングのハイパーパラメータ](jumpstart-foundation-models-fine-tuning.md#jumpstart-foundation-models-fine-tuning-hyperparameters)」を参照してください。

## デフォルトのメトリクス定義を確認する
<a name="jumpstart-foundation-models-use-python-sdk-estimator-class-metric-definitions"></a>

デフォルトのメトリクス定義を確認することもできます。

```
print(metric_definitions.retrieve_default(model_id=model_id, model_version=model_version))
```

# 公開されている基盤モデルを `JumpStartModel` クラスでデプロイする
<a name="jumpstart-foundation-models-use-python-sdk-model-class"></a>

SageMaker Python SDK を使用して、組み込みアルゴリズムまたは事前トレーニング済みモデルをわずか数行のコードで SageMaker AI エンドポイントにデプロイできます。

1. まず、「[Built-in Algorithms with pre-trained Model Table](https://sagemaker.readthedocs.io/en/stable/doc_utils/pretrainedmodels.html)」で、選択したモデルのモデル ID を調べます。

1. そのモデル ID を使用して、モデルを JumpStart モデルとして定義します。

   ```
   from sagemaker.jumpstart.model import JumpStartModel
   
   model_id = "huggingface-text2text-flan-t5-xl"
   my_model = JumpStartModel(model_id=model_id)
   ```

1. `deploy` メソッドを使用して、推論用にモデルを自動的にデプロイします。この例では、Hugging Face の FLAN-T5 XL モデルを使用します。

   ```
   predictor = my_model.deploy()
   ```

1. その後、`predict` メソッドを使用して、デプロイしたモデルで推論を実行できます。

   ```
   question = "What is Southern California often abbreviated as?"
   response = predictor.predict(question)
   print(response)
   ```

**注記**  
この例では、基盤モデル FLAN-T5 XL を使用しています。このモデルは、質疑応答、要約、チャットボットの作成など、幅広いテキスト生成のユースケースに適しています。モデルのユースケースの詳細については、「[利用可能な基盤モデル](jumpstart-foundation-models-latest.md)」を参照してください。

`JumpStartModel `クラスとそのパラメータの詳細については、「[JumpStartModel](https://sagemaker.readthedocs.io/en/stable/api/inference/model.html#sagemaker.jumpstart.model.JumpStartModel)」を参照してください。

## デフォルトのインスタンスタイプを確認する
<a name="jumpstart-foundation-models-use-python-sdk-model-class-instance-types"></a>

事前トレーニング済みのモデルを `JumpStartModel` クラスを使用してデプロイするときに、モデルのバージョンやインスタンスのタイプをオプションで指定することができます。すべての JumpStart モデルにはデフォルトのインスタンスタイプがあります。次のコードを使用して、デフォルトのデプロイインスタンスタイプを取得してください。

```
from sagemaker import instance_types

instance_type = instance_types.retrieve_default(
    model_id=model_id,
    model_version=model_version,
    scope="inference")
print(instance_type)
```

`instance_types.retrieve()` メソッドを使用して、特定の JumpStart モデルでサポートされているすべてのインスタンスタイプを確認してください。

## 推論コンポーネントを使用して複数のモデルを共有エンドポイントにデプロイする
<a name="jumpstart-foundation-models-use-python-sdk-model-class-endpoint-types"></a>

推論コンポーネントは SageMaker AI のホスティングオブジェクトです。これを使用して 1 つ以上のモデルをエンドポイントにデプロイし、柔軟性とスケーラビリティを高めることができます。JumpStart モデルの `endpoint_type` を、デフォルトのモデルベース (model-based) ではなく推論コンポーネントベース (inference-component-based) のエンドポイントに変更する必要があります。

```
predictor = my_model.deploy(
    endpoint_name = 'jumpstart-model-id-123456789012', 
    endpoint_type = EndpointType.INFERENCE_COMPONENT_BASED
)
```

推論コンポーネントを使用したエンドポイントの作成と SageMaker AI モデルのデプロイの詳細については、「[複数のモデルでリソース使用率を共有する](realtime-endpoints-deploy-models.md#deployed-shared-utilization)」を参照してください。

## 推論の有効な入出力形式を確認する
<a name="jumpstart-foundation-models-use-python-sdk-model-class-input-output"></a>

推論用の有効なデータ入力形式と出力形式を確認するには、`Serializers` クラスおよび `Deserializers` クラスから `retrieve_options()` メソッドを使用できます。

```
print(sagemaker.serializers.retrieve_options(model_id=model_id, model_version=model_version))
print(sagemaker.deserializers.retrieve_options(model_id=model_id, model_version=model_version))
```

## サポート対象のコンテンツタイプと出力タイプを確認する
<a name="jumpstart-foundation-models-use-python-sdk-model-class-content-types"></a>

同様に、`retrieve_options()` メソッドを使用して、モデルでサポートされているコンテンツタイプ (content type) と出力タイプ (accept type) を確認できます。

```
print(sagemaker.content_types.retrieve_options(model_id=model_id, model_version=model_version))
print(sagemaker.accept_types.retrieve_options(model_id=model_id, model_version=model_version))
```

ユーティリティの詳細については、「[Utility APIs](https://sagemaker.readthedocs.io/en/stable/api/utility/index.html)」を参照してください。

# 独自の基盤モデルを `ModelPackage` クラスでデプロイする
<a name="jumpstart-foundation-models-use-python-sdk-proprietary"></a>

独自モデルは、 AWS Marketplaceでモデルをサブスクライブした後に、モデルパッケージ情報を使用してデプロイする必要があります。SageMaker AI と の詳細については AWS Marketplace、「 [で Amazon SageMaker AI アルゴリズムとモデルを購入および販売する AWS Marketplace](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-marketplace.html)」を参照してください。最新の独自モデル AWS Marketplace へのリンクについては、[Amazon SageMaker JumpStart の開始方法](https://aws.amazon.com/sagemaker/jumpstart/getting-started/?sagemaker-jumpstart-cards.sort-by=item.additionalFields.priority&sagemaker-jumpstart-cards.sort-order=asc&awsf.sagemaker-jumpstart-filter-product-type=product-type%23foundation-model&awsf.sagemaker-jumpstart-filter-text=*all&awsf.sagemaker-jumpstart-filter-vision=*all&awsf.sagemaker-jumpstart-filter-tabular=*all&awsf.sagemaker-jumpstart-filter-audio-tasks=*all&awsf.sagemaker-jumpstart-filter-multimodal=*all&awsf.sagemaker-jumpstart-filter-RL=*all&sagemaker-jumpstart-cards.q=proprietary&sagemaker-jumpstart-cards.q_operator=AND)」を参照してください。

で選択したモデルにサブスクライブした後 AWS Marketplace、SageMaker Python SDK とモデルプロバイダーに関連付けられた SDK を使用して基盤モデルをデプロイできます。例えば、AI21 Labs、Cohere、LightOn はそれぞれ、`"ai21[SM]"`、`cohere-sagemaker`、`lightonsage` のパッケージを使用しています。

例えば、AI21 Labs の Jurassic-2 Jumbo Instruct を使用して JumpStart モデルを定義するには、次のコードを使用します。

```
import sagemaker
import ai21

role = get_execution_role()
sagemaker_session = sagemaker.Session()
model_package_arn = "arn:aws:sagemaker:us-east-1:865070037744:model-package/j2-jumbo-instruct-v1-1-43-4e47c49e61743066b9d95efed6882f35"

my_model = ModelPackage(
    role=role, model_package_arn=model_package_arn, sagemaker_session=sagemaker_session
)
```

ステップバイステップの例については、選択した独自の基盤モデルに関連するノートブックを SageMaker Studio Classic で見つけて実行してください。詳細については「[Amazon SageMaker Studio Classic で基盤モデルを使用する](jumpstart-foundation-models-use-studio.md)」を参照してください。SageMaker Python SDK の詳細については、「[https://sagemaker.readthedocs.io/en/stable/api/inference/model.html#sagemaker.model.ModelPackage](https://sagemaker.readthedocs.io/en/stable/api/inference/model.html#sagemaker.model.ModelPackage)」を参照してください。