表形式データモデリング用の新しい組み込みAmazonSageMakerアルゴリズム:LightGBM、CatBoost、AutoGluon-Tabular、およびTabTransformer

ソースノード: 1541386

アマゾンセージメーカー のスイートを提供します 組み込みアルゴリズム, 事前トレーニング済みモデル, 構築済みのソリューションテンプレート データサイエンティストと機械学習(ML)の実践者が、MLモデルのトレーニングと展開を迅速に開始できるように支援します。 これらのアルゴリズムとモデルは、教師あり学習と教師なし学習の両方に使用できます。 表形式、画像、テキストなど、さまざまな種類の入力データを処理できます。

本日より、SageMakerは、LightGBM、CatBoost、AutoGluon-Tabular、およびTabTransformerのXNUMXつの新しい組み込みの表形式データモデリングアルゴリズムを提供します。 これらの人気のある最先端のアルゴリズムを、表形式の分類タスクと回帰タスクの両方に使用できます。 それらは、 組み込みアルゴリズム SageMakerコンソールおよび Amazon SageMaker ジャンプスタート 内部のUI Amazon SageMakerスタジオ.

以下は、XNUMXつの新しい組み込みアルゴリズムのリストであり、それらのドキュメント、ノートブックの例、およびソースへのリンクが含まれています。

ドキュメンテーション ノートブックの例 ソース
LightGBMアルゴリズム 不具合, Classification ライトGBM
CatBoostアルゴリズム 不具合, Classification キャットブースト
AutoGluon-表形式アルゴリズム 不具合, Classification AutoGluon-表形式
TabTransformerアルゴリズム 不具合, Classification タブトランスフォーマー

次のセクションでは、各アルゴリズムの簡単な技術的説明と、SageMakerSDKまたはSageMakerJumpstartを介してモデルをトレーニングする方法の例を示します。

ライトGBM

ライトGBM は、Gradient Boosting Decision Tree(GBDT)アルゴリズムの一般的で効率的なオープンソース実装です。 GBDTは、一連の単純なモデルと弱いモデルからの推定値のアンサンブルを組み合わせることにより、ターゲット変数を正確に予測しようとする教師あり学習アルゴリズムです。 LightGBMは、追加の技術を使用して、従来のGBDTの効率とスケーラビリティを大幅に向上させます。

キャットブースト

キャットブースト は、GBDTアルゴリズムの一般的で高性能なオープンソース実装です。 CatBoostには、XNUMXつの重要なアルゴリズムの進歩が導入されています。順序付けられたブーストの実装、従来のアルゴリズムの順列駆動型の代替、およびカテゴリ機能を処理するための革新的なアルゴリズムです。 両方の手法は、勾配ブースティングアルゴリズムの現在存在するすべての実装に存在する特殊な種類のターゲットリークによって引き起こされる予測シフトと戦うために作成されました。

AutoGluon-表形式

AutoGluon-表形式 は、Amazonによって開発および保守されているオープンソースのAutoMLプロジェクトであり、高度なデータ処理、ディープラーニング、およびマルチレイヤースタックアンサンブルを実行します。 テキストフィールドの特別な処理を含む堅牢なデータ前処理のために、各列のデータ型を自動的に認識します。 AutoGluonは、既成のブーストツリーからカスタマイズされたニューラルネットワークモデルに至るまで、さまざまなモデルに適合します。 これらのモデルは斬新な方法で組み立てられます。モデルは複数のレイヤーにスタックされ、レイヤーごとにトレーニングされるため、特定の時間制約内で生データを高品質の予測に変換できます。 過剰適合は、フォールド外の例を注意深く追跡しながらさまざまな方法でデータを分割することにより、このプロセス全体で軽減されます。 AutoGluonはパフォーマンスが最適化されており、すぐに使用できるため、データサイエンスのコンテストでトップ3とトップ10の位置を獲得しています。

タブトランスフォーマー

タブトランスフォーマー は、教師あり学習のための新しい深い表形式のデータモデリングアーキテクチャです。 TabTransformerは、自己注意ベースのトランスフォーマーに基づいて構築されています。 Transformerレイヤーは、カテゴリ機能の埋め込みを堅牢なコンテキスト埋め込みに変換して、より高い予測精度を実現します。 さらに、TabTransformerから学習したコンテキスト埋め込みは、欠落しているデータ機能とノイズの多いデータ機能の両方に対して非常に堅牢であり、より優れた解釈性を提供します。 このモデルは最近の製品です アマゾンサイエンス 研究( そして公式 ブログ投稿 ここで)、MLコミュニティで広く採用されており、さまざまなサードパーティの実装があります(ケラスオートグルオン、)およびソーシャルメディア機能など つぶやきデータサイエンスに向けて、中、および Kaggle.

SageMakerの組み込みアルゴリズムの利点

特定のタイプの問題とデータのアルゴリズムを選択する場合、SageMakerの組み込みアルゴリズムを使用するのが最も簡単なオプションです。これには、次の主な利点があります。

  • 組み込みのアルゴリズムでは、実験の実行を開始するためにコーディングは必要ありません。 提供する必要のある入力は、データ、ハイパーパラメータ、および計算リソースのみです。 これにより、結果やコードの変更を追跡するためのオーバーヘッドを減らして、実験をより迅速に実行できます。
  • 組み込みのアルゴリズムには、複数のコンピューティングインスタンス間での並列化が付属しており、GPUは、適用可能なすべてのアルゴリズムをすぐにサポートします(固有の制限により、一部のアルゴリズムが含まれていない場合があります)。 モデルをトレーニングするためのデータがたくさんある場合、ほとんどの組み込みアルゴリズムは、需要を満たすために簡単にスケーリングできます。 事前にトレーニングされたモデルがすでにある場合でも、SageMakerでその結果を使用して、移植してトレーニングスクリプトを自分で作成するよりも、既知のハイパーパラメーターを入力する方が簡単な場合があります。
  • 結果のモデルアーティファクトの所有者はあなたです。 そのモデルを取得してSageMakerにデプロイし、いくつかの異なる推論パターンを実現できます(すべての 利用可能な展開タイプ)そして簡単なエンドポイントのスケーリングと管理、または必要な場所にデプロイできます。

これらの組み込みアルゴリズムのXNUMXつをトレーニングする方法を見てみましょう。

SageMakerSDKを使用して組み込みアルゴリズムをトレーニングする

選択したモデルをトレーニングするには、そのモデルのURIと、トレーニングスクリプトのURI、およびトレーニングに使用されるコンテナイメージを取得する必要があります。 ありがたいことに、これらのXNUMXつの入力は、モデル名、バージョンのみに依存します(使用可能なモデルのリストについては、を参照してください。 JumpStart使用可能なモデルテーブル)、およびトレーニングするインスタンスのタイプ。 これは、次のコードスニペットで示されています。

from sagemaker import image_uris, model_uris, script_uris train_model_id, train_model_version, train_scope = "lightgbm-classification-model", "*", "training"
training_instance_type = "ml.m5.xlarge" # 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
)
# Retrieve the model artifact; in the tabular case, the model is not pre-trained train_model_uri = model_uris.retrieve( model_id=train_model_id, model_version=train_model_version, model_scope=train_scope
)

  train_model_id への変更 lightgbm-regression-model 回帰問題を扱っている場合。 この投稿で紹介されている他のすべてのモデルのIDを次の表に示します。

モデル 問題の種類 モデルID
ライトGBM Classification lightgbm-classification-model
. 不具合 lightgbm-regression-model
キャットブースト Classification catboost-classification-model
. 不具合 catboost-regression-model
AutoGluon-表形式 Classification autogluon-classification-ensemble
. 不具合 autogluon-regression-ensemble
タブトランスフォーマー Classification pytorch-tabtransformerclassification-model
. 不具合 pytorch-tabtransformerregression-model

次に、入力がどこにあるかを定義します Amazon シンプル ストレージ サービス (Amazon S3)。 この例では、公開サンプルデータセットを使用しています。 また、出力の行き先を定義し、選択したモデルのトレーニングに必要なハイパーパラメーターのデフォルトリストを取得します。 あなたはそれらの値をあなたの好みに変えることができます。

import sagemaker
from sagemaker import hyperparameters sess = sagemaker.Session()
region = sess.boto_session.region_name # URI of sample training dataset
training_dataset_s3_path = f"s3:///jumpstart-cache-prod-{region}/training-datasets/tabular_multiclass/" # URI for output artifacts output_bucket = sess.default_bucket()
s3_output_location = f"s3://{output_bucket}/jumpstart-example-tabular-training/output" # Retrieve the default hyper-parameters for training
hyperparameters = hyperparameters.retrieve_default( model_id=train_model_id, model_version=train_model_version
) # [Optional] Override default hyperparameters with custom values
hyperparameters[ "num_boost_round"
] = "500" # The same hyperparameter is named as "iterations" for CatBoost

最後に、SageMakerをインスタンス化します Estimator 取得したすべての入力を使用して、でトレーニングジョブを開始します .fit、トレーニングデータセットURIを渡します。 The entry_point 提供されるスクリプトの名前は transfer_learning.py (他のタスクとアルゴリズムについても同じ)、およびに渡される入力データチャネル .fit 名前を付ける必要があります training.

from sagemaker.estimator import Estimator
from sagemaker.utils import name_from_base # Unique training job name
training_job_name = name_from_base(f"built-in-example-{model_id}") # Create SageMaker Estimator instance
tc_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 s3 path of the training data
tc_estimator.fit({"training": training_dataset_s3_path}, logs=True)

組み込みのアルゴリズムをでト​​レーニングできることに注意してください SageMaker自動モデル調整 最適なハイパーパラメータを選択し、モデルのパフォーマンスをさらに向上させます。

SageMakerJumpStartを使用して組み込みアルゴリズムをトレーニングする

SageMaker JumpStart UIを使用して、数回クリックするだけで、これらの組み込みアルゴリズムをトレーニングすることもできます。 JumpStartはSageMakerの機能であり、グラフィカルインターフェイスを介してさまざまなMLフレームワークとモデルハブから組み込みアルゴリズムと事前トレーニング済みモデルをトレーニングおよびデプロイできます。 また、MLモデルと他のさまざまなAWSサービスをつなぎ合わせて、対象となるユースケースを解決する本格的なMLソリューションをデプロイすることもできます。

詳細については、 TensorFlowHubモデルとHuggingFaceモデルを使用して、AmazonSageMakerJumpStartでテキスト分類を実行します.

まとめ

この投稿では、SageMakerで利用できるようになった表形式のデータセットでのML用のXNUMXつの強力な新しい組み込みアルゴリズムの立ち上げを発表しました。 これらのアルゴリズムとは何かについての技術的な説明と、SageMakerSDKを使用したLightGBMのトレーニングジョブの例を提供しました。

独自のデータセットを持ってきて、SageMakerでこれらの新しいアルゴリズムを試してみてください。また、サンプルノートブックをチェックして、で利用可能な組み込みアルゴリズムを使用してください。 GitHubの.


著者について

XinHuang博士 は、AmazonSageMakerJumpStartおよびAmazonSageMakerの組み込みアルゴリズムの応用科学者です。 彼はスケーラブルな機械学習アルゴリズムの開発に焦点を当てています。 彼の研究対象は、自然言語処理、表形式データに関する説明可能な深層学習、および非パラメトリック時空間クラスタリングの堅牢な分析の分野です。 彼は、ACL、ICDM、KDD会議、およびRoyal Statistics Society:SeriesAジャーナルに多くの論文を発表しています。

アシッシュ・ケタン博士 は、Amazon SageMakerJumpStartおよびAmazonSageMakerの組み込みアルゴリズムを使用するシニア応用科学者であり、機械学習アルゴリズムの開発を支援しています。 彼は機械学習と統計的推論の活発な研究者であり、NeurIPS、ICML、ICLR、JMLR、ACL、およびEMNLP会議で多くの論文を発表しています。

ジョアンモウラ アマゾンウェブサービスのAI/MLスペシャリストソリューションアーキテクトです。 彼は主にNLPのユースケースに焦点を当てており、顧客がディープラーニングモデルのトレーニングと展開を最適化するのを支援しています。 彼はまた、ローコードMLソリューションとML専用ハードウェアの積極的な支持者でもあります。

タイムスタンプ:

より多くの AWS機械学習