AutoGluon-表 - アマゾン SageMaker

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

AutoGluon-表

AutoGluon-Tabular は、未処理の表形式データセットで精度の高い機械学習モデルをトレーニングする、人気の高いオープンソースの AutoML フレームワークです。主にモデルとハイパーパラメータの選択に重点を置いている既存のAutoMLフレームワークとは異なり、 AutoGluon-Tabularは複数のモデルをアンサンブルして複数のレイヤーに積み重ねることで成功します。

使用方法 SageMaker AutoGluon-表形式

AutoGluon-Tabular は Amazon SageMaker の組み込みアルゴリズムとして使用できます。次のセクションでは、 SageMaker Python SDK で AutoGluon-Tabular を使用する方法について説明します。Amazon SageMaker Studio ユーザーインターフェイスから AutoGluon-Tabular を使用する方法については、を参照してくださいSageMaker JumpStart

  • AutoGluon-Tabular を組み込みのアルゴリズムを使用する

    次のコード例に示すように、 AutoGluon AutoGluon-Tabular 組み込みアルゴリズムを使用して-Tabular トレーニングコンテナを作成します。 SageMaker image_uris.retrieveAPI (または Amazon SageMaker Python SDK バージョン 2 を使用している場合はget_image_uri API) を使用して、 AutoGluon-Tabular の組み込みアルゴリズムイメージ URI を自動的に見つけることができます。

    AutoGluon-Tabular 画像 URI を指定したら、 AutoGluon-Tabular コンテナを使用して SageMaker Estimator API を使用して推定器を構築し、トレーニングジョブを開始できます。 AutoGluon-Tabular 組み込みアルゴリズムはスクリプトモードで実行されますが、トレーニングスクリプトは用意されているので、置き換える必要はありません。 SageMaker スクリプトモードを使用してトレーニングジョブを作成した経験が豊富な場合は、独自の AutoGluon-Tabular トレーニングスクリプトを組み込むことができます。

    from sagemaker import image_uris, model_uris, script_uris train_model_id, train_model_version, train_scope = "autogluon-classification-ensemble", "*", "training" training_instance_type = "ml.p3.2xlarge" # Retrieve the docker image train_image_uri = image_uris.retrieve( region=None, framework=None, model_id=train_model_id, model_version=train_model_version, image_scope=train_scope, instance_type=training_instance_type ) # Retrieve the training script train_source_uri = script_uris.retrieve( model_id=train_model_id, model_version=train_model_version, script_scope=train_scope ) train_model_uri = model_uris.retrieve( model_id=train_model_id, model_version=train_model_version, model_scope=train_scope ) # Sample training data is available in this bucket training_data_bucket = f"jumpstart-cache-prod-{aws_region}" training_data_prefix = "training-datasets/tabular_binary/" training_dataset_s3_path = f"s3://{training_data_bucket}/{training_data_prefix}/train" validation_dataset_s3_path = f"s3://{training_data_bucket}/{training_data_prefix}/validation" output_bucket = sess.default_bucket() output_prefix = "jumpstart-example-tabular-training" s3_output_location = f"s3://{output_bucket}/{output_prefix}/output" from sagemaker import hyperparameters # Retrieve the default hyperparameters for training the model hyperparameters = hyperparameters.retrieve_default( model_id=train_model_id, model_version=train_model_version ) # [Optional] Override default hyperparameters with custom values hyperparameters[ "auto_stack" ] = "True" print(hyperparameters) from sagemaker.estimator import Estimator from sagemaker.utils import name_from_base training_job_name = name_from_base(f"built-in-algo-{train_model_id}-training") # Create SageMaker Estimator instance tabular_estimator = Estimator( role=aws_role, image_uri=train_image_uri, source_dir=train_source_uri, model_uri=train_model_uri, entry_point="transfer_learning.py", instance_count=1, instance_type=training_instance_type, max_run=360000, hyperparameters=hyperparameters, output_path=s3_output_location ) # Launch a SageMaker Training job by passing the S3 path of the training data tabular_estimator.fit( { "training": training_dataset_s3_path, "validation": validation_dataset_s3_path, }, logs=True, job_name=training_job_name )

    AutoGluon-Tabular を組み込みのアルゴリズムとして設定する方法の詳細については、以下のノートブックの例を参照してください。これらの例で使うすべての S3 バケットは、それらを実行するために使用されたノートブックインスタンスと同じAWSリージョンにある必要があります。

AutoGluon-Tabular アルゴリズムの入力および出力インターフェイス

勾配ブースティングは表形式のデータで動作し、行が観測値、1 つの列がターゲット変数またはラベル、残りの列が特徴を表します。

SageMaker AutoGluon-Taker の実装では、トレーニングと推論に CSV がサポートされています。

  • ContentTypeトレーニングでは、有効な入力は text/csv でなければなりません。

  • ContentType推論では、有効な入力は text/csv でなければなりません。

注記

CSV トレーニングの場合、アルゴリズムはターゲット変数が最初の列にあり、CSV にはヘッダーレコードがないと見なします。

CSV 推論の場合、アルゴリズムは CSV 入力にラベル列がないと見なします。

トレーニングデータ、検証データ、およびカテゴリ特徴の入力形式

AutoGluon-Tabular モデルへの入力用にトレーニングデータをフォーマットする方法に注意してください。トレーニングと検証データを含む Amazon S3 バケットへのパスを提供する必要があります。カテゴリ別機能のリストを含めることもできます。trainingvalidationとの両方のチャネルを使用して入力データを提供します。または、trainingチャネルだけを使用できます。

trainingvalidationとチャネルの両方を使う

入力データは、trainingチャンネル用とチャンネル用の 2 つの S3 パスを介して提供できます。validation各 S3 パスは、1 つ以上の CSV ファイルを指す S3 プレフィックスでも、1 つの特定の CSV ファイルを指す完全な S3 パスでもかまいません。ターゲット変数は CSV ファイルの最初の列にあるはずです。予測変数 (特徴) は残りの列にあるはずです。trainingvalidationまたはチャンネルに複数の CSV ファイルが指定されている場合、 AutoGluon-Tabular アルゴリズムはファイルを連結します。検証データは、各ブースティング反復の終了時に検証スコアを計算するために使用されます。早期停止は、検証スコアの改善が止まったときに適用されます。

予測変数にカテゴリの特徴が含まれている場合は、categorical_index.jsonトレーニングデータファイルまたはファイルと同じ場所に名前を付けた JSON ファイルを指定できます。カテゴリー機能用の JSON ファイルを提供する場合、trainingチャンネルは特定の CSV ファイルではなく S3 プレフィックスを指している必要があります。このファイルには、キーが文字列"cat_index_list"、値がユニークな整数のリストである Python 辞書が含まれている必要があります。値リストの各整数は、トレーニングデータの CSV ファイル内の対応するカテゴリの特徴の列インデックスを示す必要があります。各値は正の整数 (ゼロが目標値を表すためゼロより大きい) で、Int32.MaxValue (2147483647) より小さく、列の総数より小さい必要があります。カテゴリ別の JSON ファイルは 1 つだけにする必要があります。

trainingチャンネルのみを使用してください:

または、trainingチャンネルの 1 つの S3 パスを介して入力データを提供することもできます。この S3 パスは、1 つ以上の CSVtraining/ ファイルを含むという名前のサブディレクトリがあるディレクトリを指している必要があります。オプションで、同じ場所に 1 つ以上の CSV ファイルがある別のサブディレクトリを含めることができます。validation/検証データが提供されない場合、トレーニングデータの 20% が検証データとしてランダムにサンプリングされます。予測変数にカテゴリの特徴が含まれている場合は、categorical_index.jsonデータサブディレクトリと同じ場所に名前を付けた JSON ファイルを提供できます。

注記

CSV トレーニング入力モードでは、アルゴリズムで使用可能な合計メモリ (インスタンス数にで使用可能なメモリを掛けたものInstanceType) がトレーニングデータセットを保持できる必要があります。

SageMaker AutoGluon-Tabularautogluon.tabular.TabularPredictor はモジュールを使用してモデルのシリアル化または逆シリアル化を行い、モデルの保存または読み込みに使用できます。

SageMaker AutoGluon-Tabular AutoGluon でトレーニングされたモデルをフレームワークで使用するには
  • 次の Python コードを使用します。

    import tarfile from autogluon.tabular import TabularPredictor t = tarfile.open('model.tar.gz', 'r:gz') t.extractall() model = TabularPredictor.load(model_file_path) # prediction with test data # dtest should be a pandas DataFrame with column names feature_0, feature_1, ..., feature_d pred = model.predict(dtest)

AutoGluon-表形式アルゴリズムの Amazon EC2 インスタンスに関する推奨事項

SageMaker AutoGluon-Taker では、シングルインスタンスの CPU トレーニングとシングルインスタンスの GPU トレーニングがサポートされています。インスタンスごとのコストは高いものの、GPU はトレーニングをより迅速に行うため、費用対効果が高くなります。GPU トレーニングを利用するには、インスタンスタイプを GPU インスタンスの 1 つ (P3 など) として指定します。 SageMaker AutoGluon-現在、Tabuler ではマルチ GPU トレーニングはサポートされていません。

AutoGluon-表形式のサンプルノートブック

次の表は、Amazon SageMaker AutoGluon-Tabular アルゴリズムのさまざまなユースケースに対応する各種サンプルノートブックの概要を示しています。

ノートブックのタイトル 説明

Amazon による表形式分類 SageMaker AutoGluon-表形式アルゴリズム

このノートブックでは、Amazon SageMaker AutoGluon-Tabular アルゴリズムを使用して表形式の分類モデルをトレーニングおよびホストする方法を示しています。

Amazon SageMaker AutoGluon-表形式アルゴリズムによる表形式回帰

このノートブックでは、Amazon SageMaker AutoGluon-Tabular アルゴリズムを使用して表形式の回帰モデルをトレーニングおよびホストする方法を示しています。

サンプルの実行に使用できる Jupyter ノートブックインスタンスを作成してアクセスする方法の詳細については SageMaker、「」を参照してくださいAmazon SageMaker ノートブックインスタンス。ノートブックインスタンスを作成して開いたら、[SageMakerExamples] タブを選択して、 SageMaker すべてのサンプルのリストを表示します。ノートブックを開くには、その [Use (使用)] タブを選択し、[Create copy (コピーを作成)] を選択します。