AutoGluon-Tabellarisch - 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.

AutoGluon-Tabellarisch

AutoGluon-Tabular ist ein beliebtes Open-Source-AutoML-Framework, das hochpräzise Machine-Learning-Modelle auf einem unverarbeiteten tabellarischen Datensatz trainiert. Im Gegensatz zu vorhandenen AutoML-Frameworks, die sich hauptsächlich auf die Modell AutoGluon- und Hyperparameterauswahl konzentrieren, ist es -Tabular erfolgreich, indem mehrere Modelle zusammengestellt und in mehreren Ebenen gestapelt werden.

So verwenden Sie SageMaker AutoGluon-Tabular

Sie können AutoGluon-Tabular als integrierten Amazon SageMaker -Algorithmus verwenden. Im folgenden Abschnitt wird beschrieben, wie Sie AutoGluon-Tabular mit dem SageMaker Python SDK verwenden. Informationen zur Verwendung von AutoGluon-Tabular über die Amazon SageMaker Studio Classic-Benutzeroberfläche finden Sie unter SageMaker JumpStart.

  • Verwenden von AutoGluon-Tabular als integrierten Algorithmus

    Verwenden Sie den integrierten AutoGluon-Tabular-Algorithmus, um einen AutoGluon-Tabular-Trainingscontainer zu erstellen, wie im folgenden Codebeispiel gezeigt. Sie können die Image AutoGluon-URI des integrierten -Tabular-Algorithmus automatisch mithilfe der SageMaker image_uris.retrieve -API (oder der -get_image_uriAPI bei Verwendung von Amazon SageMaker Python SDK Version 2) erkennen.

    Nachdem Sie den URI für AutoGluon-Tabular-Images angegeben haben, können Sie den Container AutoGluon-Tabular verwenden, um mithilfe der SageMaker Schätzer-API einen Schätzer zu erstellen und einen Schulungsauftrag zu initiieren. Der integrierte AutoGluon-Tabular-Algorithmus wird im Skriptmodus ausgeführt, aber das Trainingsskript wird für Sie bereitgestellt und muss nicht ersetzt werden. Wenn Sie umfangreiche Erfahrung mit der Verwendung des Skriptmodus haben, um einen SageMaker Trainingsauftrag zu erstellen, können Sie Ihre eigenen AutoGluon-Tabular-Trainingsskripte integrieren.

    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 )

    Weitere Informationen zum Einrichten von AutoGluon-Tabular als integrierten Algorithmus finden Sie in den folgenden Notebook-Beispielen. Jeder in diesen Beispielen verwendete S3-Bucket muss sich in derselben AWS Region befinden wie die Notebook-Instance, auf der sie ausgeführt wurden.

Eingabe- und Ausgabeschnittstelle für den AutoGluon-Tabular-Algorithmus

Gradient Boosting arbeitet mit tabellarischen Daten, wobei die Zeilen die Beobachtungen repräsentieren, eine Spalte die Zielvariable oder die Kennzeichnung darstellt und die verbleibenden Spalten die Funktionen.

Die SageMaker Implementierung von AutoGluon-Tabular unterstützt CSV für Training und Inferenz:

  • Für Training ContentType müssen gültige Eingaben text/csv sein.

  • Für Inferenz ContentType müssen gültige Eingaben text/csv sein.

Anmerkung

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

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

Eingabeformat für Trainingsdaten, Validierungsdaten und kategoriale Features

Beachten Sie, wie Sie Ihre Trainingsdaten für die Eingabe in das AutoGluon-Tabular-Modell formatieren. Sie müssen den Pfad zu einem Amazon-S3-Bucket angeben, der Ihre Trainings- und Validierungsdaten enthält. Sie können auch eine Liste von kategorialen Features einschließen. Verwenden Sie sowohl den training als auch den validation Kanal, um Ihre Eingabedaten bereitzustellen. Alternativ hierzu können Sie auch nur den training Kanal verwenden.

Verwenden Sie sowohl den training als auch den validation Kanal

Sie können Ihre Eingabedaten über zwei S3-Pfade bereitstellen, einen für den training Kanal und einen für den validation Kanal. Jeder S3-Pfad kann entweder ein S3-Präfix oder ein vollständiger S3-Pfad sein, der auf eine bestimmte CSV-Datei verweist. Die Zielvariablen sollten sich in der ersten Spalte Ihrer CSV-Datei befinden. Die Prädiktorvariablen (Features) sollten sich in den verbleibenden Spalten befinden. Die Validierungsdaten werden verwendet, um am Ende jeder Boosting-Iteration eine Validierungspunktzahl zu berechnen. Ein vorzeitiger Stopp wird angewendet, wenn sich der Validierungsscore nicht mehr verbessert.

Wenn Ihre Prädiktoren kategoriale Features enthalten, können Sie eine JSON-Datei mit dem Namen categorical_index.json am selben Speicherort wie Ihre Trainingsdatendatei bereitstellen. Wenn du eine JSON-Datei für kategoriale Features bereitstellst, muss dein training Kanal auf ein S3-Präfix verweisen und nicht auf eine bestimmte CSV-Datei. Diese Datei sollte ein Python-Wörterbuch enthalten, in dem der Schlüssel der String "cat_index_list" und der Wert eine Liste eindeutiger Ganzzahlen ist. Jede Ganzzahl in der Werteliste sollte den Spaltenindex der entsprechenden kategorialen Features in Ihrer CSV-Datei mit Trainingsdaten angeben. Jeder Wert sollte eine positive Ganzzahl (größer als Null, weil Null den Zielwert darstellt), kleiner als Int32.MaxValue (2147483647) und kleiner als die Gesamtzahl der Spalten sein. Es sollte nur eine JSON-Datei mit dem kategorialen Index geben.

Benutze nur den training Kanal:

Sie können Ihre Eingabedaten alternativ über einen einzigen S3-Pfad für den training Kanal bereitstellen. Dieser S3-Pfad sollte auf ein Verzeichnis mit einem Unterverzeichnis namens verweisentraining/, das eine CSV-Datei enthält. Sie können optional ein anderes Unterverzeichnis an demselben Speicherort namens einfügenvalidation/, das auch eine CSV-Datei enthält. Wenn die Validierungsdaten nicht bereitgestellt werden, werden 20% Ihrer Trainingsdaten nach dem Zufallsprinzip als Validierungsdaten ausgewählt. Wenn Ihre Prädiktoren kategoriale Features enthalten, können Sie eine JSON-Datei mit dem Namen categorical_index.json an demselben Ort wie Ihre Datenunterverzeichnisse bereitstellen.

Anmerkung

Beim CSV-Eingabemodus für Trainings muss der für den Algorithmus verfügbare Gesamtspeicher (Instance-Zählung multipliziert mit verfügbarem Speicher im InstanceType) in der Lage sein, den Trainingsdatensatz aufzunehmen.

SageMaker AutoGluon-Tabular verwendet das -autogluon.tabular.TabularPredictorModul, um das Modell zu serialisieren oder zu deserialisieren, das zum Speichern oder Laden des Modells verwendet werden kann.

So verwenden Sie ein Modell, das mit SageMaker AutoGluon-Tabular mit dem AutoGluon Framework trainiert wurde
  • Verwenden Sie den folgenden Python-Code:

    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)

Amazon EC2-Instance-Empfehlung für den AutoGluon-Tabular-Algorithmus

SageMaker AutoGluon-Tabular unterstützt CPU-Training mit einer Instance und GPU-Training mit einer Instance. Trotz höherer Kosten pro Instance trainieren GPUs schneller und sind damit kostengünstiger. Um das GPU-Training zu nutzen, geben Sie den Instance-Typ als eine der GPU-Instances an (z. B. P3). SageMaker AutoGluon-Tabular unterstützt derzeit kein Multi-GPU-Training.

AutoGluon– Tabellarische Beispiel-Notebooks

Die folgende Tabelle beschreibt eine Vielzahl von Beispielnotizbüchern, die sich mit verschiedenen Anwendungsfällen des Amazon-Tabular SageMaker AutoGluon-Algorithmus befassen.

Titel des Notebooks Beschreibung

Tabellarische Klassifizierung mit dem Amazon-Tabular SageMaker AutoGluon-Algorithmus

Dieses Notebook zeigt die Verwendung des Amazon-Tabular SageMaker AutoGluon-Algorithmus zum Trainieren und Hosten eines tabellarischen Klassifizierungsmodells.

Tabellarische Regression mit dem Amazon-Tabular SageMaker AutoGluon-Algorithmus

Dieses Notebook zeigt die Verwendung des Amazon-Tabular SageMaker AutoGluon-Algorithmus zum Trainieren und Hosten eines tabellarischen Regressionsmodells.

Anweisungen zum Erstellen und Zugreifen auf Jupyter-Notebook-Instances, mit denen Sie das Beispiel in ausführen können SageMaker, finden Sie unter Amazon- SageMaker Notebook-Instances. Nachdem Sie eine Notebook-Instance erstellt und geöffnet haben, wählen Sie die Registerkarte SageMaker Beispiele, um eine Liste aller SageMaker Beispiele anzuzeigen. Zum Öffnen eines Notebooks wählen Sie die Registerkarte Verwenden und dann Kopie erstellen aus.