TabTransformer - Amazon SageMaker

TabTransformer

TabTransformerは、教師あり学習のための新しいディープテーブルデータモデリングアーキテクチャです。- TabTransformer アーキテクチャはベースにして構築されています self-attention-based トランスフォーマー。トランスフォーマー層は、より高い予測精度を達成するために、カテゴリカルフィーチャの埋め込みを堅牢なコンテキスト埋め込みに変換します。さらに、コンテキスト埋め込みはから学んだ TabTransformer は、欠損データフィーチャとノイズを含むデータフィーチャの両方に対して非常に堅牢で、より優れた解釈性を提供します。

を使用する方法 SageMaker TabTransformer

ではを使用できます。 TabTransformer アマゾンとして SageMaker 組み込みのアルゴリズム。次のセクションでは、使用方法について説明します。 TabTransformer と SageMaker Python thon thon thon thon 使用方法については TabTransformer アマゾンから行うこと SageMaker Studio UI, 参照SageMaker JumpStart

  • を使用する TabTransformer 組み込みのアルゴリズムとして

    を使用する TabTransformer 組み込みのアルゴリズムを構築する TabTransformer 次のコード例に示すように、トレーニングコンテナを次のコード例で示します。あなたは自動的に見つけることができます TabTransformer 組み込みアルゴリズムイメージ URI SageMaker image_uris.retrieveAPI (またはget_image_uriAPIアマゾン SageMaker Python SDKバージョン 2)。

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

    from sagemaker import image_uris, model_uris, script_uris train_model_id, train_model_version, train_scope = "pytorch-tabtransformerclassification-model", "*", "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_multiclass/" training_dataset_s3_path = f"s3://{training_data_bucket}/{training_data_prefix}" 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 hyper-parameters 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[ "n_epochs" ] = "50" 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}, logs=True, job_name=training_job_name )

    をセットアップする方法の詳細については TabTransformer 組み込みのアルゴリズムとして、次のノートブックの例を参照してください。

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

TabTransformer は表形式のデータで動作し、行が観測値、行が観測値、残りの列がターゲット変数またはラベル、残りの列が観測値、行が観測値、行が観測値、

- SageMaker の実装 TabTransformer トレーニングと推論のために CSV をサポートしています。

  • を使用する場合トレーニング ContentType、有効な入力はtext/csv

  • を使用する場合推論 ContentType、有効な入力はtext/csv

注記

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

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

トレーニングデータへの入力用にトレーニングデータをどのようにフォーマットするかに注意してください TabTransformer MODEL. トレーニング用のサブディレクトリを含む Amazon S3 S3 バケットへのパスを指定する必要があります。カテゴリ別フィーチャのリストを含めることもできます。

  • トレーニングデータ入力形式: トレーニングデータは、という名前のサブディレクトリにある必要がありますtrain/にはが含まれていますdata.csvファイルを開きます。ターゲット変数は、data.csv。予測変数 (特徴) は残りの列にあるはずです。

  • 検証データ入力形式: オプションで、という名前の別のディレクトリを含めることができます。validation/それにもあるdata.csvファイルを開きます。検証データは、各ブースティング反復の終了時に検証スコアを計算するために使用されます。検証スコアに改善が見られなくなると、早期停止が適用されます。検証データが提供されない場合、トレーニングデータの 20% が検証データとして使用されるようにランダムにサンプリングされます。

  • カテゴリ別特徴量入力形式: 予測変数にカテゴリ特徴が含まれる場合は、JSON ファイルをcategorical_index.jsonデータディレクトリと同じ場所にあります。このファイルには Python ディクショナリが含まれている必要があります。キーは文字列です"cat_index_list"値は一意の整数のリストです。値リストの各整数は、トレーニングデータ CSV ファイル内の対応するカテゴリ特徴の列インデックスを示す必要があります。各値は正の整数 (ゼロが目標値を表すためゼロより大きい) で、Int32.MaxValue(2147483647)、および列のリクエストの総数よりも少ないです。カテゴリインデックスの JSON ファイルは 1 つだけにする必要があります。

CSV トレーニング入力モードの場合、アルゴリズムで使用できるメモリの合計 (インスタントカウントInstanceType) はトレーニングデータセットを保持できなければなりません。

の Amazon EC2 インスタンスに関する推奨事項 TabTransformerアルゴリズム

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

TabTransformer サンプルノートブック

次の表に、Amazon のさまざまなユースケースを扱う各種サンプルノートブックの概要があります。 SageMaker TabTransformer Alorithm.

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

Amazon での表形式分類 SageMaker TabTransformer アルゴリズム

このノートブックはAmazonの使い方を示しています SageMaker TabTransformer表形式の分類モデルをトレーニングしてホストするアルゴリズム。

表形式回帰 SageMaker TabTransformer アルゴリズム

このノートブックはAmazonの使い方を示しています SageMaker TabTransformer表形式の回帰モデルをトレーニングしてホストするアルゴリズム。

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