View a markdown version of this page

公開されている基盤モデルを ModelBuilder クラスでデプロイする - Amazon SageMaker AI

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

公開されている基盤モデルを ModelBuilder クラスでデプロイする

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

  1. まず、 で選択したモデルのモデル ID を見つけます利用可能な基盤モデル

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

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

    model = model_builder.build() endpoint = model_builder.deploy()
  4. その後、invoke メソッドを使用して、デプロイしたモデルで推論を実行できます。このようなテキスト生成モデルは、 inputsキーを持つ JSON リクエストボディを受け入れます。を使用してペイロードをシリアル化しjson.dumps、コンテンツタイプを に設定しますapplication/json

    import json question = "What is Southern California often abbreviated as?" payload = {"inputs": question, "parameters": {"max_new_tokens": 100}} response = endpoint.invoke(body=json.dumps(payload), content_type="application/json") print(response.body.read().decode('utf-8'))
注記

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

ModelBuilder クラスとそのパラメータの詳細については、「ドキュメントを読む」ウェブサイトの「SageMaker Python SDK ドキュメント」のModelBuilder」を参照してください。 SageMaker

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

事前トレーニング済みのモデルをデプロイする場合、オプションで でモデルバージョンを指定できますJumpStartConfig。でインスタンスタイプを選択することもできます ModelBuilder (たとえば、 instance_typeパラメータを使用)。すべての JumpStart モデルにはデフォルトのインスタンスタイプがあります。次のコードを使用して、デフォルトのデプロイインスタンスタイプを取得してください。

from sagemaker.core 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 モデルでサポートされているすべてのインスタンスタイプを確認してください。

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

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

from sagemaker.core.enums import EndpointType endpoint = model_builder.deploy( endpoint_name = 'jumpstart-model-id-123456789012', endpoint_type = EndpointType.INFERENCE_COMPONENT_BASED )

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

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

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

from sagemaker.core.serializers.implementations import retrieve_options as retrieve_serializer_options from sagemaker.core.deserializers.implementations import retrieve_options as retrieve_deserializer_options print(retrieve_serializer_options(model_id=model_id, model_version=model_version)) print(retrieve_deserializer_options(model_id=model_id, model_version=model_version))

サポート対象のコンテンツタイプと出力タイプを確認する

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

from sagemaker.core import content_types, accept_types print(content_types.retrieve_options(model_id=model_id, model_version=model_version)) print(accept_types.retrieve_options(model_id=model_id, model_version=model_version))

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