Amazon SageMaker JumpStart-Modelle und -Algorithmen jetzt über API PlatoBlockchain Data Intelligence verfügbar. Vertikale Suche. Ai.

Amazon SageMaker JumpStart-Modelle und -Algorithmen jetzt über API verfügbar

Im Dezember 2020, AWS gab die allgemeine Verfügbarkeit bekannt of Amazon SageMaker-JumpStart, eine Fähigkeit von Amazon Sage Maker das Ihnen den schnellen und einfachen Einstieg in Machine Learning (ML) erleichtert. JumpStart bietet mit einem Klick die Feinabstimmung und Bereitstellung einer Vielzahl vortrainierter Modelle für beliebte ML-Aufgaben sowie eine Auswahl an End-to-End-Lösungen, die allgemeine Geschäftsprobleme lösen. Diese Funktionen entlasten jeden Schritt des ML-Prozesses, erleichtern die Entwicklung hochwertiger Modelle und verkürzen die Bereitstellungszeit.

Zuvor waren alle JumpStart-Inhalte nur über verfügbar Amazon SageMaker-Studio, die a bereitstellt benutzerfreundliche grafische Oberfläche um mit der Funktion zu interagieren. Wir freuen uns, heute die Einführung von Easy-to-Use ankündigen zu können JumpStart-APIs als Erweiterung des SageMaker Python SDK. Mit diesen APIs können Sie eine große Auswahl von JumpStart-unterstützten vortrainierten Modellen auf Ihren eigenen Datensätzen programmgesteuert bereitstellen und optimieren. Diese Einführung schaltet die Verwendung von JumpStart-Funktionen in Ihren Code-Workflows, MLOps-Pipelines und überall dort frei, wo Sie mit SageMaker über das SDK interagieren.

In diesem Beitrag stellen wir ein Update zum aktuellen Stand der JumpStart-Funktionen bereit und führen Sie anhand eines Anwendungsbeispiels durch den Nutzungsablauf der JumpStart-API.

JumpStart-Übersicht

JumpStart ist ein facettenreiches Produkt, das verschiedene Funktionen umfasst, die Ihnen helfen, schnell mit ML auf SageMaker zu beginnen. Zum Zeitpunkt der Erstellung dieses Artikels können Sie mit JumpStart Folgendes tun:

  • Stellen Sie vortrainierte Modelle für allgemeine ML-Aufgaben bereit – JumpStart ermöglicht es Ihnen, allgemeine ML-Aufgaben ohne Entwicklungsaufwand zu lösen, indem es eine einfache Bereitstellung von Modellen bereitstellt, die auf öffentlich verfügbaren großen Datensätzen vortrainiert wurden. Die ML-Forschungsgemeinschaft hat große Anstrengungen unternommen, um einen Großteil der kürzlich entwickelten Modelle öffentlich zur Nutzung verfügbar zu machen. JumpStart hostet eine Sammlung von über 300 Modellen, die die 15 beliebtesten ML-Aufgaben wie Objekterkennung, Textklassifizierung und Textgenerierung abdecken, was es Anfängern leicht macht, sie zu verwenden. Diese Modelle stammen aus beliebten Modell-Hubs wie TensorFlow, PyTorch, Hugging Face und MXNet Hub.
  • Optimieren Sie vortrainierte Modelle – JumpStart ermöglicht Ihnen die Feinabstimmung vortrainierter Modelle, ohne dass Sie Ihren eigenen Trainingsalgorithmus schreiben müssen. Im ML wird die Fähigkeit bezeichnet, das in einer Domäne erlernte Wissen auf eine andere Domäne zu übertragen Transferlernen. Sie können Transfer Learning verwenden, um genaue Modelle auf Ihren kleineren Datensätzen zu erstellen, und zwar mit viel geringeren Schulungskosten als beim Training des ursprünglichen Modells von Grund auf. JumpStart enthält auch beliebte Trainingsalgorithmen auf Basis von LightGBM, CatBoost, XGBoost und Scikit-learn, die Sie von Grund auf neu für die tabellarische Datenregression und -klassifizierung trainieren können.
  • Verwenden Sie vorgefertigte Lösungen – JumpStart bietet eine Reihe von 17 vorgefertigte Lösungen für gängige ML-Anwendungsfälle wie Bedarfsprognosen und Industrie- und Finanzanwendungen, die Sie mit nur wenigen Klicks bereitstellen können. Die Lösungen sind End-to-End-ML-Anwendungen, die verschiedene AWS-Services aneinanderreihen, um einen bestimmten geschäftlichen Anwendungsfall zu lösen. Sie benutzen AWS CloudFormation Vorlagen und Referenzarchitekturen für eine schnelle Bereitstellung, was bedeutet, dass sie vollständig anpassbar sind.
  • Verwenden Sie Notebook-Beispiele für SageMaker-Algorithmen – SageMaker bietet eine Reihe von eingebaute Algorithmen um Data Scientists und ML-Praktikern den Einstieg in das Training und die schnelle Bereitstellung von ML-Modellen zu erleichtern. JumpStart stellt Beispiel-Notebooks bereit, mit denen Sie diese Algorithmen schnell verwenden können.
  • Profitieren Sie von Schulungsvideos und Blogs – JumpStart bietet auch zahlreiche Blogbeiträge und Videos, die Ihnen beibringen, wie Sie verschiedene Funktionen in SageMaker verwenden.

JumpStart akzeptiert benutzerdefinierte VPC-Einstellungen und KMS-Verschlüsselungsschlüssel, sodass Sie die verfügbaren Modelle und Lösungen sicher in Ihrer Unternehmensumgebung verwenden können. Sie können Ihre Sicherheitseinstellungen innerhalb von SageMaker Studio oder über das SageMaker Python SDK an JumpStart übergeben.

Von JumpStart unterstützte ML-Aufgaben und API-Beispiel-Notebooks

JumpStart unterstützt derzeit 15 der beliebtesten ML-Aufgaben; 13 davon sind Vision- und NLP-basierte Aufgaben, von denen 8 No-Code-Fine-Tuning unterstützen. Es unterstützt auch vier gängige Algorithmen für die tabellarische Datenmodellierung. Die Aufgaben und Links zu ihren Beispielnotebooks sind in der folgenden Tabelle zusammengefasst.

Aufgabe Inferenz mit vortrainierten Modellen Schulung für benutzerdefinierte Datensätze Frameworks unterstützt Beispiel Notebooks
Bildklassifizierung ja ja PyTorch, TensorFlow Einführung in JumpStart – Bildklassifizierung
Objekterkennung ja ja PyTorch, TensorFlow, MXNet Einführung in JumpStart – Objekterkennung
Semantische Segmentierung ja ja MXNet Einführung in JumpStart – Semantische Segmentierung
Instanzsegmentierung ja nicht MXNet Einführung in JumpStart – Instanzsegmentierung
Bildeinbettung ja nicht TensorFlow, MXNet Einführung in JumpStart – Bilderinbettung
Textklassifizierung ja ja TensorFlow Einführung in JumpStart – Textklassifizierung
Satzpaarklassifizierung ja ja TensorFlow, umarmendes Gesicht Einführung in JumpStart – Satzpaarklassifizierung
Frage beantworten ja ja PyTorch Einführung in JumpStart – Fragen beantworten
Anerkennung benannter Entitäten ja nicht Gesicht umarmen Einführung in JumpStart – Erkennung benannter Entitäten
Textzusammenfassung ja nicht Gesicht umarmen Einführung in JumpStart – Textzusammenfassung
Textgenerierung ja nicht Gesicht umarmen Einführung in JumpStart – Textgenerierung
Maschinelle Übersetzung ja nicht Gesicht umarmen Einführung in JumpStart – Maschinelle Übersetzung
Texteinbettung ja nicht TensorFlow, MXNet Einführung in JumpStart – Texteinbettung
Tabellarische Einordnung ja ja LightGBM, CatBoost, XGBoost, Linear Learner Einführung in JumpStart – Tabellarische Klassifizierung – LightGBM, CatBoost
Einführung in JumpStart – Tabellarische Klassifizierung – XGBoost, Linear Learner
Tabellarische Regression ja ja LightGBM, CatBoost, XGBoost, Linear Learner Einführung in JumpStart – tabellarische Regression – LightGBM, CatBoost
Einführung in JumpStart – Tabellarische Regression – XGBoost, Linear Learner

Je nach Aufgabe können Sie die in der vorangehenden Tabelle verlinkten Beispiel-Notebooks bei allen oder einer Teilmenge der folgenden Prozesse anleiten:

  • Wählen Sie ein von JumpStart unterstütztes vortrainiertes Modell für Ihre spezifische Aufgabe aus.
  • Hosten Sie ein vortrainiertes Modell, erhalten Sie Vorhersagen daraus in Echtzeit und zeigen Sie die Ergebnisse angemessen an.
  • Optimieren Sie ein vortrainiertes Modell mit Ihrer eigenen Auswahl an Hyperparametern und stellen Sie es für die Inferenz bereit.

Optimieren und implementieren Sie ein Objekterkennungsmodell mit JumpStart-APIs

In den folgenden Abschnitten bieten wir eine Schritt-für-Schritt-Anleitung zur Verwendung der neuen JumpStart-APIs für die repräsentative Aufgabe der Objekterkennung. Wir zeigen, wie Sie ein vortrainiertes Objekterkennungsmodell verwenden, um Objekte aus einem vordefinierten Satz von Klassen in einem Bild mit Begrenzungsrahmen zu identifizieren. Abschließend zeigen wir, wie Sie ein vortrainiertes Modell auf Ihrem eigenen Datensatz optimieren können, um Objekte in Bildern zu erkennen, die für Ihre Geschäftsanforderungen spezifisch sind, indem Sie einfach Ihre eigenen Daten einbringen. Wir bieten eine begleitendes Notizbuch für diese exemplarische Vorgehensweise.

Wir durchlaufen die folgenden High-Level-Schritte:

  1. Führen Sie eine Inferenz für das vorab trainierte Modell aus.
    1. Rufen Sie JumpStart-Artefakte ab und stellen Sie einen Endpunkt bereit.
    2. Fragen Sie den Endpunkt ab, parsen Sie die Antwort und zeigen Sie Modellvorhersagen an.
  2. Passen Sie das vortrainierte Modell an Ihrem eigenen Datensatz an.
    1. Trainingsartefakte abrufen.
    2. Lauftraining.

Führen Sie Rückschlüsse auf das vorab trainierte Modell aus

In diesem Abschnitt wählen wir ein geeignetes vortrainiertes Modell in JumpStart aus, stellen dieses Modell auf einem SageMaker-Endpunkt bereit und zeigen, wie die Inferenz auf dem bereitgestellten Endpunkt ausgeführt wird. Alle Schritte sind in der verfügbar begleitendes Jupyter-Notizbuch.

Rufen Sie JumpStart-Artefakte ab und stellen Sie einen Endpunkt bereit

SageMaker ist eine Plattform, die auf Docker-Containern basiert. JumpStart verwendet das verfügbare Framework-spezifisch SageMaker Deep Learning-Container (DLCs). Wir rufen alle zusätzlichen Pakete sowie Skripte ab, um das Training und die Inferenz für die ausgewählte Aufgabe zu handhaben. Schließlich werden die vortrainierten Modellartefakte separat mit abgerufen model_uris, was der Plattform Flexibilität verleiht. Sie können mit einem einzigen Trainings- oder Inferenzskript eine beliebige Anzahl von Modellen verwenden, die für dieselbe Aufgabe vortrainiert wurden. Siehe folgenden Code:

infer_model_id, infer_model_version = "pytorch-od-nvidia-ssd", "*" # Retrieve the inference docker container uri. This is the base container PyTorch image for the model selected above. deploy_image_uri = image_uris.retrieve(region=None, framework=None, image_scope="inference",model_id=infer_model_id, model_version=infer_model_version, instance_type=inference_instance_type) # Retrieve the inference script uri. This includes all dependencies and scripts for model loading, inference handling etc.
deploy_source_uri = script_uris.retrieve(model_id=infer_model_id, model_version=infer_model_version, script_scope="inference") # Retrieve the base model uri. This includes the pre-trained nvidia-ssd model and parameters.
base_model_uri = model_uris.retrieve(model_id=infer_model_id, model_version=infer_model_version, model_scope="inference")

Als nächstes speisen wir die Ressourcen in a SageMaker-Modell Instanz und stellen Sie einen Endpunkt bereit:

# Create the SageMaker model instance
model = Model(image_uri=deploy_image_uri, source_dir=deploy_source_uri, model_data=base_model_uri, entry_point="inference.py", role=aws_role, predictor_cls=Predictor, name=endpoint_name) # deploy the Model. Note that we need to pass Predictor class when we deploy model through Model class for being able to run inference through the sagemaker API.
base_model_predictor = model.deploy(initial_instance_count=1, instance_type=inference_instance_type, predictor_cls=Predictor, endpoint_name=endpoint_name)

Die Endpoint-Bereitstellung kann einige Minuten dauern.

Fragen Sie den Endpunkt ab, parsen Sie die Antwort und zeigen Sie Vorhersagen an

Um Rückschlüsse aus einem bereitgestellten Modell zu erhalten, muss ein Eingabebild im Binärformat zusammen mit einem Akzeptanztyp bereitgestellt werden. In JumpStart können Sie die Anzahl der zurückgegebenen Begrenzungsrahmen definieren. Im folgenden Codeausschnitt sagen wir durch Anhängen zehn Begrenzungsrahmen pro Bild voraus ;n_predictions=10 zu Accept. Um xx Felder vorherzusagen, können Sie es ändern in ;n_predictions=xx , oder erhalten Sie alle vorhergesagten Kästchen, indem Sie sie weglassen ;n_predictions=xx vollständig.

def query(model_predictor, image_file_name): with open(image_file_name, "rb") as file: input_img_rb = file.read() return model_predictor.predict(input_img_rb,{ "ContentType": "application/x-image", "Accept": "application/json;verbose;n_predictions=10"}) query_response = query(base_model_predictor, Naxos_Taverna)

Das folgende Code-Snippet gibt Ihnen einen Einblick, wie die Objekterkennung aussieht. Die für jede Objektklasse vorhergesagte Wahrscheinlichkeit wird zusammen mit ihrem Begrenzungsrahmen visualisiert. Wir nehmen das parse_response und display_predictions Hilfsfunktionen, die im Begleittext definiert sind Notizbuch.

normalized_boxes, classes_names, confidences = parse_response(query_response)
display_predictions(Naxos_Taverna, normalized_boxes, classes_names, confidences)

Der folgende Screenshot zeigt die Ausgabe eines Bildes mit Vorhersagebeschriftungen und Begrenzungsrahmen.

Amazon SageMaker JumpStart-Modelle und -Algorithmen jetzt über API PlatoBlockchain Data Intelligence verfügbar. Vertikale Suche. Ai.

Optimieren Sie ein vortrainiertes Modell an Ihrem eigenen Datensatz

Vorhandene Objekterkennungsmodelle in JumpStart sind entweder auf den COCO- oder den VOC-Datensätzen vortrainiert. Wenn Sie jedoch Objektklassen identifizieren müssen, die im ursprünglichen Dataset vor dem Training nicht vorhanden sind, müssen Sie das Modell an einem neuen Dataset optimieren, das diese neuen Objekttypen enthält. Wenn Sie beispielsweise Küchenutensilien identifizieren und Rückschlüsse auf ein bereitgestelltes vortrainiertes SSD-Modell ausführen müssen, erkennt das Modell keine Merkmale der neuen Bildtypen und daher ist die Ausgabe falsch.

In diesem Abschnitt demonstrieren wir, wie einfach es ist, ein vorab trainiertes Modell zu optimieren, um neue Objektklassen mithilfe von JumpStart-APIs zu erkennen. Das vollständige Codebeispiel mit weiteren Details ist in der verfügbar Begleitnotizbuch.

Trainingsartefakte abrufen

Trainingsartefakte ähneln den im vorherigen Abschnitt besprochenen Inferenzartefakten. Das Training erfordert einen Basis-Docker-Container, nämlich den MXNet-Container im folgenden Beispielcode. Alle zusätzlichen Pakete, die für das Training erforderlich sind, sind in den Trainingsskripts enthalten train_sourcer_uri. Das vortrainierte Modell und seine Parameter sind separat verpackt.

train_model_id, train_model_version, train_scope = "mxnet-od-ssd-512-vgg16-atrous-coco","*","training"
training_instance_type = "ml.p2.xlarge" # Retrieve the docker image. This is the base container MXNet image for the model selected above. 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 and dependencies. This contains all the necessary files including data processing, model training etc.
train_source_uri = script_uris.retrieve(model_id=train_model_id, model_version=train_model_version, script_scope=train_scope) # Retrieve the pre-trained model tarball to further fine-tune
train_model_uri = model_uris.retrieve(
model_id=train_model_id, model_version=train_model_version, model_scope=train_scope)

Führen Sie ein Training durch

Um das Training auszuführen, füttern wir einfach die erforderlichen Artefakte zusammen mit einigen zusätzlichen Parametern in a SageMaker-Schätzer und rufen Sie die .fit Funktion:

# Create SageMaker Estimator instance
od_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", # Entry-point file in source_dir and present in train_source_uri. 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
od_estimator.fit({"training": training_dataset_s3_path}, logs=True)

Während der Algorithmus trainiert, können Sie seinen Fortschritt entweder im SageMaker-Notebook überwachen, in dem Sie den Code selbst ausführen, oder auf Amazon CloudWatch. Wenn das Training abgeschlossen ist, werden die feinabgestimmten Modellartefakte in die hochgeladen Amazon Simple Storage-Service (Amazon S3) Ausgabespeicherort, der in der Trainingskonfiguration angegeben ist. Sie können das Modell jetzt auf die gleiche Weise wie das vorab trainierte Modell bereitstellen. Den weiteren Ablauf können Sie im verfolgen Begleitnotizbuch.

Zusammenfassung

In diesem Beitrag haben wir den Wert der neu veröffentlichten JumpStart-APIs und ihre Verwendung beschrieben. Wir haben Links zu 17 Beispiel-Notebooks für die verschiedenen in JumpStart unterstützten ML-Aufgaben bereitgestellt und Sie durch das Objekterkennungs-Notebook geführt.

Wir freuen uns darauf, von Ihnen zu hören, während Sie mit JumpStart experimentieren.


Über die Autoren

Amazon SageMaker JumpStart-Modelle und -Algorithmen jetzt über API PlatoBlockchain Data Intelligence verfügbar. Vertikale Suche. Ai.Vivek Madan ist ein angewandter Wissenschaftler im Amazon SageMaker JumpStart-Team. Er promovierte an der University of Illinois at Urbana-Champaign und war Postdoktorand an der Georgia Tech. Er ist ein aktiver Forscher in den Bereichen maschinelles Lernen und Algorithmendesign und hat Artikel auf Konferenzen von EMNLP, ICLR, COLT, FOCS und SODA veröffentlicht.

Amazon SageMaker JumpStart-Modelle und -Algorithmen jetzt über API PlatoBlockchain Data Intelligence verfügbar. Vertikale Suche. Ai.Joao Moura ist AI/ML Specialist Solutions Architect bei Amazon Web Services. Er konzentriert sich hauptsächlich auf NLP-Anwendungsfälle und hilft Kunden, das Training und die Bereitstellung von Deep-Learning-Modellen zu optimieren.

Amazon SageMaker JumpStart-Modelle und -Algorithmen jetzt über API PlatoBlockchain Data Intelligence verfügbar. Vertikale Suche. Ai.Dr. Ashish Khetan ist Senior Applied Scientist mit Amazon SageMaker-JumpStart und Integrierte Amazon SageMaker-Algorithmen und hilft bei der Entwicklung von Algorithmen für maschinelles Lernen. Er ist ein aktiver Forscher auf dem Gebiet des maschinellen Lernens und der statistischen Inferenz und hat viele Artikel auf den Konferenzen NeurIPS, ICML, ICLR, JMLR und ACL veröffentlicht.

Zeitstempel:

Mehr von AWS Maschinelles Lernen