SDK で基盤モデルを使用する SageMaker Python - Amazon SageMaker

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

SDK で基盤モデルを使用する SageMaker Python

すべての JumpStart 基盤モデルは、 Python SDK を使用して SageMakerプログラムでデプロイできます。公開されているテキスト生成基盤モデルは、 のモデル ID を使用してデプロイできます公開されているテキスト生成モデルテーブル。独自モデルは、 AWS Marketplaceでモデルをサブスクライブした後に、モデルパッケージ情報を使用してデプロイする必要があります。

以下のセクションでは、 JumpStartEstimator クラスを使用して基盤モデルを微調整する方法と、 JumpStartModel クラスを使用してモデルをデプロイする方法と、追加の Python SDK ユーティリティについて説明します。

重要

一部の基盤モデルでは、エンドユーザー使用ライセンス契約 (EULA) に明示的に同意する必要があります。詳細については、「SDK での EULA の SageMaker Python承諾」を参照してください。

公開されているすべての基盤モデルで使用可能なモデル IDs を参照するには、「事前トレーニング済みのモデルテーブルを備えた組み込みアルゴリズム」を参照してください。検索バーで選択した基盤モデルの名前を検索するか、エントリを表示ドロップダウンメニューを使用して表示されるエントリの数を変更するか、ページの左側で青色で強調表示されている Next text を選択して、使用可能なモデル内を移動します。

JumpStartEstimator クラスで公開されている基盤モデルを微調整する

SDK を使用すると SageMaker Python、組み込みアルゴリズムまたは事前トレーニング済みモデルをわずか数行のコードで微調整できます。

  1. まず、選択したモデルのモデル ID を、事前トレーニング済みのモデルテーブル を備えた組み込みアルゴリズムで見つけます。

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

    from sagemaker.jumpstart.estimator import JumpStartEstimator model_id = "huggingface-textgeneration1-gpt-j-6b" estimator = JumpStartEstimator(model_id=model_id)
  3. 微調整に使用するトレーニングデータをポイントして、モデルestimator.fit()で を実行します。

    estimator.fit( {"train": training_dataset_s3_path, "validation": validation_dataset_s3_path} )
  4. 次に、 deployメソッドを使用して、推論用にモデルを自動的にデプロイします。この例では、 の GPT-J 6B モデルを使用しますHugging Face。

    predictor = estimator.deploy()
  5. その後、 predictメソッドを使用して、デプロイされたモデルで推論を実行できます。

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

この例では、基盤モデル GPT-J 6B を使用しています。これは、質問への回答、名前付きエンティティ認識、要約など、幅広いテキスト生成のユースケースに適しています。モデルのユースケースの詳細については、「」を参照してください最新の基盤モデルの詳細

の作成時に、オプションでモデルバージョンまたはインスタンスタイプを指定できますJumpStartEstimatorJumpStartEstimator クラスとそのパラメータの詳細については、「」を参照してくださいJumpStartEstimator

デフォルトのインスタンスタイプを確認する

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 モデルでサポートされているすべてのインスタンスタイプを表示できます。

デフォルトのハイパーパラメータを確認する

トレーニングに使用されるデフォルトのハイパーパラメータを確認するには、 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)

使用可能なハイパーパラメータの詳細については、「」を参照してください一般的にサポートされている微調整ハイパーパラメータ

デフォルトのメトリクス定義を確認する

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

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

JumpStartModel クラスを使用して公開されている基盤モデルをデプロイする

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

  1. まず、選択したモデルのモデル ID を、事前トレーニング済みのモデルテーブル を備えた組み込みアルゴリズムで見つけます。

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

    from sagemaker.jumpstart.model import JumpStartModel model_id = "huggingface-text2text-flan-t5-xl" my_model = JumpStartModel(model_id=model_id)
  3. deploy メソッドを使用して、推論用にモデルを自動的にデプロイします。この例では、 の FLAN-T5 XL モデルを使用しますHugging Face。

    predictor = my_model.deploy()
  4. その後、 predictメソッドを使用して、デプロイされたモデルで推論を実行できます。

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

この例では、基盤モデル FLAN-T5 XL を使用しています。これは、質問への回答、要約、チャットボットの作成など、幅広いテキスト生成のユースケースに適しています。モデルのユースケースの詳細については、「」を参照してください最新の基盤モデルの詳細

JumpStartModel クラスとそのパラメータの詳細については、「」を参照してくださいJumpStartModel

デフォルトのインスタンスタイプを確認する

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 モデルでサポートされているすべてのインスタンスタイプを表示します。

推論コンポーネントを使用して複数のモデルを共有エンドポイントにデプロイする

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

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

推論コンポーネントを使用したエンドポイントの作成と SageMaker モデルのデプロイの詳細については、「」を参照してください複数のモデルで共有リソース使用率

有効な入出力推論形式を確認する

有効なデータ入力形式と出力形式を推論で確認するには、 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))

サポートされているコンテンツを確認し、タイプを受け入れる

同様に、 retrieve_options()メソッドを使用して、サポートされているコンテンツを確認し、モデルのタイプを受け入れることができます。

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))

ユーティリティの詳細については、「ユーティリティ APIs」を参照してください。

SDK で独自の基盤モデルを使用する SageMaker Python

独自モデルは、 AWS Marketplaceでモデルをサブスクライブした後に、モデルパッケージ情報を使用してデプロイする必要があります。 SageMaker および の詳細については AWS Marketplace、「 で Amazon SageMaker アルゴリズムとモデルを購入および販売する AWS Marketplace」を参照してください。最新の独自モデルの AWS Marketplace リンクを見つけるには、「Amazon の開始方法 SageMaker JumpStart」を参照してください。

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

例えば、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 )

step-by-step 例えば、 SageMaker Studio Classic で選択した独自の基盤モデルに関連付けられたノートブックを検索して実行します。詳細については、「Amazon SageMaker Studio Classic で基盤モデルを使用する」を参照してください。SDK の詳細については、 SageMaker Python「」を参照してくださいModelPackage