翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
公開されている基盤モデルを ModelTrainer クラスでファインチューニングする
注記
厳選されたプライベートハブで基盤モデルをファインチューニングする手順については、「厳選されたハブモデルをファインチューニングする」を参照してください。
SageMaker Python SDK を使用して、組み込みアルゴリズムや事前トレーニング済みのモデルをわずか数行のコードでファインチューニングできます。
-
まず、 で選択したモデルのモデル ID を見つけます利用可能な基盤モデル。
-
モデル ID を使用して、JumpStart でトレーニングジョブを定義します
ModelTrainer。from sagemaker.train import ModelTrainer from sagemaker.core.jumpstart.configs import JumpStartConfig jumpstart_config = JumpStartConfig(model_id="huggingface-textgeneration1-gpt-j-6b") model_trainer = ModelTrainer.from_jumpstart_config(jumpstart_config=jumpstart_config) -
で
train()メソッドを呼び出しModelTrainer、ファインチューニングに使用するトレーニングデータをポイントします。from sagemaker.train.configs import InputData model_trainer.train( input_data_config=[ InputData(channel_name="train", data_source=training_dataset_s3_path), InputData(channel_name="validation", data_source=validation_dataset_s3_path), ] ) -
次に、
deployメソッドを使用して、推論用にモデルを自動的にデプロイします。この例では、Hugging Face の GPT-J 6B モデルを使用します。from sagemaker.serve import ModelBuilder model_builder = ModelBuilder.from_jumpstart_config(jumpstart_config=jumpstart_config) model = model_builder.build() endpoint = model_builder.deploy() -
その後、
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'))
注記
この例では、基盤モデル GPT-J 6B を使用しています。このモデルは、質疑応答、固有表現抽出、要約など、幅広いテキスト生成のユースケースに適しています。モデルのユースケースの詳細については、「利用可能な基盤モデル」を参照してください。
必要に応じて、 でモデルバージョンを指定できますJumpStartConfig。インスタンスタイプとカウントを選択するには、 Compute オブジェクトを に渡しますModelTrainer.from_jumpstart_config。JumpStartConfig 自体はインスタンス設定を受け入れません。ModelTrainer クラスとそのパラメータの詳細については、SageMaker
デフォルトのインスタンスタイプを確認する
クラスを使用して事前トレーニング済みのモデルを微調整する場合ModelTrainer、オプションで でモデルバージョンを指定できますJumpStartConfig。Compute オブジェクトを使用してインスタンスタイプを選択することもできます。すべての JumpStart モデルにはデフォルトのインスタンスタイプがあります。次のコードを使用して、デフォルトのトレーニングインスタンスタイプを取得してください。
from sagemaker.core 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.core 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)
利用可能なハイパーパラメータの詳細については、「一般的にサポートされているファインチューニングのハイパーパラメータ」を参照してください。
デフォルトのメトリクス定義を確認する
デフォルトのメトリクス定義を確認することもできます。
from sagemaker.core import metric_definitions print(metric_definitions.retrieve_default(model_id=model_id, model_version=model_version))