TabTransformer - Amazon SageMaker

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

TabTransformer

TabTransformerist eine neuartige, tief tabellarische Datenmodellierungsarchitektur für überwachtes Lernen. Die TabTransformer Architektur basiert auf self-attention-based Transformatoren. Die Transformer-Ebenen transformieren die Einbettungen von kategorialen Merkmalen in robuste kontextbezogene Einbettungen, um eine höhere Vorhersagegenauigkeit zu erzielen. Darüber hinaus lernten die kontextuellen Einbettungen von TabTransformer sind äußerst robust gegenüber fehlenden und verrauschten Datenfunktionen und bieten eine bessere Interpretierbarkeit.

Funktionsweise von SageMaker TabTransformer

Sie können Folgendes verwenden TabTransformer als Amazon SageMaker integrierter Algorithmus. Im folgenden Abschnitt wird beschrieben, wie Sie TabTransformer mit dem SageMaker Python SDK. Informationen zur Verwendung von TabTransformer aus dem Amazonas SageMaker Studio-Benutzeroberfläche, sieheSageMaker JumpStartaus.

  • Verwenden von TabTransformer als integrierter Algorithmus

    Verwenden der TabTransformer integrierter Algorithmus zum Erstellen eines TabTransformer Schulungscontainer, wie im folgenden Codebeispiel gezeigt. Sie können das automatisch erkennen TabTransformer integrierter Algorithmus Image-URI mit dem SageMaker image_uris.retrieveAPI (oder dasget_image_uriAPI bei VerwendungAmazon SageMaker Python SDKVersion 2).

    Nach der Angabe des TabTransformer Bild-URI können Sie den TabTransformer Container, um einen Schätzer mit dem SageMaker Estimator API und initiieren Sie einen Schulungsauftrag. Die TabTransformer Der eingebaute Algorithmus wird im Skriptmodus ausgeführt, aber das Trainingsskript wird für Sie bereitgestellt und muss nicht ersetzt werden. Wenn Sie über umfangreiche Erfahrung mit dem Skriptmodus verfügen, um eine SageMaker Trainingsjob, dann kannst du deinen eigenen einbauen TabTransformer Trainings-Skripte.

    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 )

    Weitere Informationen zum Einrichten der TabTransformer als integrierten Algorithmus finden Sie in den folgenden Notebook-Beispielen.

Eingabe- und Output-Schnittstelle für das TabTransformer Algorithmus

TabTransformer arbeitet mit tabellarischen Daten, wobei die Zeilen die Beobachtungen repräsentieren, eine Spalte die Zielvariable oder die Kennzeichnung darstellt und die übrigen Spalten die Merkmale.

Die SageMaker Implementierung von TabTransformer unterstützt CSV für Training und Inferenz:

  • FürSchulung ContentTypemüssen gültige Eingaben seintext/csvaus.

  • FürInferenz ContentTypemüssen gültige Eingaben seintext/csvaus.

Anmerkung

Bei der CSV-Schulung geht der Algorithmus davon aus, dass die Zielvariable in der ersten Spalte zu finden ist und CSV keinen Header-Eintrag aufweist.

Bei der CSV-Inferenz geht der Algorithmus davon aus, dass die CSV-Eingabe keine Kennzeichnungsspalte hat.

Achte darauf, wie du deine Trainingsdaten formatierst, um sie in den TabTransformer -Modell. Sie müssen den Pfad zu einem Amazon S3 S3-Bucket angeben, der Unterverzeichnisse für Ihr Training und optionale Validierungsdaten enthält. Sie können auch eine Liste mit kategorischen Merkmalen hinzufügen.

  • Trainingsdaten-Eingabeformat: Deine Trainingsdaten sollten sich in einem Unterverzeichnis mit dem Namentrain/dasdata.csvfile. Die Zielvariablen sollten in der ersten Spalte vondata.csvaus. Die Prädiktorvariablen (Features) sollten sich in den verbleibenden Spalten befinden.

  • Gültige Daten-Eingabeformat: Optional können Sie ein anderes Verzeichnis mit dem Namenvalidation/das hat auch einedata.csvfile. Die Validierungsdaten werden verwendet, um am Ende jeder Boosting-Iteration einen Validierungswert zu berechnen. Frühes Stoppen wird angewendet, wenn die Validierungsbewertung keine Verbesserung mehr zeigt Wenn die Validierungsdaten nicht bereitgestellt werden, werden 20% Ihrer Trainingsdaten nach dem Zufallsprinzip als Validierungsdaten entnommen.

  • Kategorische Merkmale: Eingabeformat: Wenn Ihre Prädiktoren kategoriale Merkmale enthalten, können Sie eine JSON-Datei mit dem Namencategorical_index.jsonan derselben Stelle wie Ihre Datenverzeichnisse. Diese Datei sollte ein Python-Dictionary enthalten, wobei der Schlüssel die Zeichenfolge ist"cat_index_list"und der Wert ist eine Liste von eindeutigen ganzen Zahlen. Jede Ganzzahl in der Werteliste sollte den Spaltenindex der entsprechenden kategorialen Merkmale in der CSV-Datei Ihrer Trainingsdaten angeben. Jeder Wert sollte eine positive Ganzzahl sein (größer als Null, weil Null den Zielwert darstellt), kleiner alsInt32.MaxValue(2147483647) und weniger als die Gesamtanzahl der Spalten. Es sollte nur eine JSON-Datei mit kategorischem Index geben.

Beim CSV-Eingabemodus für Schulungen ist der für den Algorithmus verfügbare Gesamtspeicher (Instance-Zählung) multipliziert mit dem imInstanceType) muss in der Lage sein, den Trainingsdatensatz zu speichern.

Empfehlung Amazon EC2 EC2-Instance für die TabTransformerAlgorithmus

SageMaker TabTransformer unterstützt Schulungen auf Einzel-Instance-CPUs und Schulungen auf Einzel-Inst Trotz höherer Kosten pro Instance schulen GPUs schneller und sind damit kostengünstiger. Um GPU-Schulungen nutzen zu können, geben Sie den Instance-Typ als eine der GPU-Instanzen an (z. B. P3). SageMaker TabTransformer unterstützt derzeit keine Schulungen mit mehreren GPUs.

TabTransformer -Beispiel-Notebooks

Die folgende Tabelle enthält eine Vielzahl von Beispiel-Notebooks, die sich mit verschiedenen Anwendungsfällen von Amazon befassen. SageMaker TabTransformer Algorithmus.

Notebook-Titel Beschreibung

Tabellarische Klassifizierung mit Amazon SageMaker TabTransformer Algorithmus

Dieses Notizbuch demonstriert die Nutzung der Amazon SageMaker TabTransformerAlgorithmus zum Trainieren und Hosten eines tabellarischen Klassifikationsmodells.

Tabellarische Regression mit Amazon SageMaker TabTransformer Algorithmus

Dieses Notizbuch demonstriert die Nutzung der Amazon SageMaker TabTransformerAlgorithmus zum Trainieren und Hosten eines tabellarischen Regressionsmodells.

Anweisungen zum Erstellen von und Zugreifen auf Jupyter-Notebook-Instances, die Sie verwenden können, um das Beispiel in SageMakerfinden Sie unter.Verwenden von Amazon SageMaker Notebook Instancesaus. Nachdem Sie eine Notebook-Instance erstellt und geöffnet haben, wählen Sie die OptionSageMakerBeispiele, um eine Liste aller SageMaker -Beispiele Zum Öffnen eines Notebooks wählen Sie die Registerkarte Use (Verwenden) und dann Create copy (Kopie erstellen) aus.