Modelli e algoritmi Amazon SageMaker JumpStart ora disponibili tramite API PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

Modelli e algoritmi Amazon SageMaker JumpStart ora disponibili tramite API

Nel mese di dicembre 2020, AWS ha annunciato la disponibilità generale of JumpStart di Amazon SageMaker, una capacità di Amazon Sage Maker che ti aiuta a iniziare rapidamente e facilmente con l'apprendimento automatico (ML). JumpStart offre la messa a punto e l'implementazione con un clic di un'ampia varietà di modelli pre-addestrati per le attività di machine learning più comuni, nonché una selezione di soluzioni end-to-end che risolvono problemi aziendali comuni. Queste funzionalità eliminano il lavoro gravoso da ogni fase del processo di machine learning, semplificando lo sviluppo di modelli di alta qualità e riducendo i tempi di implementazione.

In precedenza, tutto il contenuto JumpStart era disponibile solo tramite Amazon Sage Maker Studio, che fornisce a interfaccia grafica intuitiva per interagire con la funzione. Oggi siamo lieti di annunciare il lancio di facile da usare API JumpStart come estensione di SageMaker Python SDK. Queste API ti consentono di distribuire e mettere a punto in modo programmatico una vasta selezione di modelli pre-addestrati supportati da JumpStart sui tuoi set di dati. Questo lancio sblocca l'utilizzo delle funzionalità JumpStart nei flussi di lavoro del codice, nelle pipeline MLOps e in qualsiasi altro luogo in cui stai interagendo con SageMaker tramite SDK.

In questo post, forniamo un aggiornamento sullo stato corrente delle funzionalità di JumpStart e ti guidiamo attraverso il flusso di utilizzo dell'API JumpStart con un caso d'uso di esempio.

Panoramica di JumpStart

JumpStart è un prodotto multiforme che include diverse funzionalità per aiutarti a iniziare rapidamente con ML su SageMaker. Al momento della scrittura, JumpStart ti consente di fare quanto segue:

  • Distribuisci modelli pre-addestrati per attività di machine learning comuni – JumpStart consente di risolvere le comuni attività di ML senza alcuno sforzo di sviluppo, fornendo una facile distribuzione di modelli pre-addestrati su grandi set di dati pubblicamente disponibili. La comunità di ricerca sul ML ha compiuto grandi sforzi per rendere pubblicamente disponibile per l'uso la maggior parte dei modelli sviluppati di recente. JumpStart ospita una raccolta di oltre 300 modelli, che coprono le 15 attività di ML più popolari come il rilevamento di oggetti, la classificazione del testo e la generazione di testo, facilitandone l'utilizzo da parte dei principianti. Questi modelli sono tratti da hub di modelli popolari, come TensorFlow, PyTorch, Hugging Face e MXNet Hub.
  • Perfeziona i modelli pre-addestrati – JumpStart ti consente di mettere a punto modelli pre-addestrati senza la necessità di scrivere il tuo algoritmo di addestramento. In ML, viene chiamata la capacità di trasferire le conoscenze apprese in un dominio in un altro dominio trasferire l'apprendimento. Puoi utilizzare il transfer learning per produrre modelli accurati sui tuoi set di dati più piccoli, con costi di addestramento molto inferiori rispetto a quelli coinvolti nell'addestramento del modello originale da zero. JumpStart include anche algoritmi di addestramento popolari basati su LightGBM, CatBoost, XGBoost e Scikit-learn che puoi addestrare da zero per la regressione e la classificazione dei dati tabulari.
  • Usa soluzioni predefinite – JumpStart fornisce una serie di 17 soluzioni predefinite per casi d'uso comuni di ML, come la previsione della domanda e le applicazioni industriali e finanziarie, che puoi implementare con pochi clic. Le soluzioni sono applicazioni ML end-to-end che mettono insieme vari servizi AWS per risolvere un particolare caso d'uso aziendale. Usano AWS CloudFormazione modelli e architetture di riferimento per un'implementazione rapida, il che significa che sono completamente personalizzabili.
  • Usa esempi di notebook per algoritmi SageMaker – SageMaker fornisce una suite di algoritmi incorporati per aiutare i data scientist e i professionisti del machine learning a iniziare con la formazione e la distribuzione rapida dei modelli di machine learning. JumpStart fornisce notebook di esempio che è possibile utilizzare per utilizzare rapidamente questi algoritmi.
  • Approfitta dei video e dei blog di formazione – JumpStart fornisce anche numerosi post di blog e video che ti insegnano come utilizzare diverse funzionalità all'interno di SageMaker.

JumpStart accetta impostazioni VPC personalizzate e chiavi di crittografia KMS, in modo che tu possa utilizzare i modelli e le soluzioni disponibili in modo sicuro all'interno del tuo ambiente aziendale. Puoi passare le tue impostazioni di sicurezza a JumpStart all'interno di SageMaker Studio o tramite SageMaker Python SDK.

Attività di machine learning supportate da JumpStart ed esempi di API Notebook

JumpStart attualmente supporta 15 delle attività ML più popolari; 13 di queste sono attività basate sulla visione e sulla NLP, di cui 8 supportano la messa a punto senza codice. Supporta anche quattro algoritmi popolari per la modellazione di dati tabulari. Le attività e i collegamenti ai relativi taccuini di esempio sono riepilogati nella tabella seguente.

Task Inferenza con modelli pre-addestrati Formazione su set di dati personalizzati Framework supportati Notebook di esempio
Classificazione delle immagini PyTorch, TensorFlow Introduzione a JumpStart – Classificazione delle immagini
Rilevazione dell'oggetto PyTorch, TensorFlow, MXNet Introduzione a JumpStart – Rilevamento di oggetti
Segmentazione semantica MXNet Introduzione a JumpStart – Segmentazione semantica
Segmentazione delle istanze no MXNet Introduzione a JumpStart – Segmentazione dell'istanza
Incorporamento di immagini no Tensorflow, MXNet Introduzione a JumpStart – Incorporamento di immagini
Classificazione del testo TensorFlow Introduzione a JumpStart – Classificazione del testo
Classificazione delle coppie di frasi TensorFlow, faccia che abbraccia Introduzione a JumpStart – Classificazione delle coppie di frasi
Risposta alla domanda PyTorch Introduzione a JumpStart – Risposte alle domande
Riconoscimento di entità nominate no Abbracciare il viso Introduzione a JumpStart – Riconoscimento di entità nominative
Riepilogo del testo no Abbracciare il viso Introduzione a JumpStart – Riepilogo del testo
Generazione di testo no Abbracciare il viso Introduzione a JumpStart – Generazione di testi
Traduzione automatica no Abbracciare il viso Introduzione a JumpStart – Traduzione automatica
Incorporamento del testo no Tensorflow, MXNet Introduzione a JumpStart – Incorporamento del testo
Classificazione tabulare LightGBM, CatBoost, XGBoost, Apprendimento lineare Introduzione a JumpStart – Classificazione tabulare – LightGBM, CatBoost
Introduzione a JumpStart – Classificazione tabulare – XGBoost, Linear Learner
Regressione tabulare LightGBM, CatBoost, XGBoost, Apprendimento lineare Introduzione a JumpStart – Regressione tabulare – LightGBM, CatBoost
Introduzione a JumpStart – Regressione tabulare – XGBoost, Linear Learner

A seconda dell'attività, i taccuini di esempio collegati nella tabella precedente possono guidare l'utente su tutti o un sottoinsieme dei seguenti processi:

  • Seleziona un modello pre-addestrato supportato da JumpStart per la tua attività specifica.
  • Ospita un modello pre-addestrato, ottieni previsioni da esso in tempo reale e visualizza adeguatamente i risultati.
  • Perfeziona un modello pre-addestrato con la tua selezione di iperparametri e distribuiscilo per l'inferenza.

Ottimizza e distribuisci un modello di rilevamento degli oggetti con le API JumpStart

Nelle sezioni seguenti viene fornita una procedura dettagliata su come utilizzare le nuove API JumpStart nell'attività rappresentativa del rilevamento degli oggetti. Mostriamo come utilizzare un modello di rilevamento degli oggetti pre-addestrato per identificare gli oggetti da un insieme predefinito di classi in un'immagine con riquadri di delimitazione. Infine, mostriamo come mettere a punto un modello pre-addestrato sul tuo set di dati per rilevare oggetti nelle immagini che sono specifici per le tue esigenze aziendali, semplicemente portando i tuoi dati. Forniamo un taccuino di accompagnamento per questa procedura dettagliata.

Esaminiamo i seguenti passaggi di alto livello:

  1. Eseguire l'inferenza sul modello pre-addestrato.
    1. Recupera gli artefatti JumpStart e distribuisci un endpoint.
    2. Eseguire query sull'endpoint, analizzare la risposta e visualizzare le previsioni del modello.
  2. Perfeziona il modello pre-addestrato sul tuo set di dati.
    1. Recupera gli artefatti di addestramento.
    2. Esegui l'allenamento.

Eseguire l'inferenza sul modello pre-addestrato

In questa sezione, scegliamo un modello pre-addestrato appropriato in JumpStart, distribuiamo questo modello a un endpoint SageMaker e mostriamo come eseguire l'inferenza sull'endpoint distribuito. Tutti i passaggi sono disponibili nel quaderno di accompagnamento di Jupyter.

Recupera gli artefatti JumpStart e distribuisci un endpoint

SageMaker è una piattaforma basata su container Docker. JumpStart utilizza il framework disponibile specifico Contenitori di deep learning di SageMaker (DLC). Recuperiamo eventuali pacchetti aggiuntivi, nonché script per gestire l'addestramento e l'inferenza per l'attività selezionata. Infine, gli artefatti del modello pre-addestrati vengono recuperati separatamente model_uris, che fornisce flessibilità alla piattaforma. È possibile utilizzare un numero qualsiasi di modelli pre-addestrati per la stessa attività con un unico script di addestramento o inferenza. Vedere il codice seguente:

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")

Successivamente, inseriamo le risorse in a Modello SageMaker istanza e distribuire un endpoint:

# 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)

Il completamento della distribuzione dell'endpoint potrebbe richiedere alcuni minuti.

Interroga l'endpoint, analizza la risposta e visualizza le previsioni

Per ottenere inferenze da un modello distribuito, è necessario fornire un'immagine di input in formato binario insieme a un tipo di accettazione. In JumpStart è possibile definire il numero di riquadri di delimitazione restituiti. Nel frammento di codice seguente, prevediamo dieci riquadri di delimitazione per immagine aggiungendo ;n_predictions=10 a Accept. Per prevedere xx caselle, puoi cambiarlo in ;n_predictions=xx o ottieni tutte le caselle previste omettendo ;n_predictions=xx interamente.

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)

Il seguente frammento di codice offre un'idea dell'aspetto del rilevamento degli oggetti. Viene visualizzata la probabilità prevista per ciascuna classe di oggetti, insieme al relativo riquadro di delimitazione. Noi usiamo il parse_response ed display_predictions funzioni di supporto, che sono definite nell'allegato taccuino.

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

La schermata seguente mostra l'output di un'immagine con etichette di previsione e riquadri di delimitazione.

Modelli e algoritmi Amazon SageMaker JumpStart ora disponibili tramite API PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

Perfeziona un modello pre-addestrato sul tuo set di dati

I modelli di rilevamento degli oggetti esistenti in JumpStart sono pre-addestrati sui set di dati COCO o VOC. Tuttavia, se è necessario identificare le classi di oggetti che non esistono nel set di dati di pre-training originale, è necessario ottimizzare il modello su un nuovo set di dati che includa questi nuovi tipi di oggetti. Ad esempio, se è necessario identificare gli utensili da cucina ed eseguire l'inferenza su un modello SSD pre-addestrato distribuito, il modello non riconosce alcuna caratteristica dei nuovi tipi di immagine e pertanto l'output non è corretto.

In questa sezione dimostreremo quanto sia facile mettere a punto un modello pre-addestrato per rilevare nuove classi di oggetti utilizzando le API JumpStart. L'esempio di codice completo con maggiori dettagli è disponibile in quaderno di accompagnamento.

Recupera gli artefatti di addestramento

Gli artefatti di addestramento sono simili agli artefatti di inferenza discussi nella sezione precedente. La formazione richiede un contenitore Docker di base, ovvero il contenitore MXNet nel codice di esempio seguente. Eventuali pacchetti aggiuntivi richiesti per la formazione sono inclusi negli script di formazione in train_sourcer_uri. Il modello pre-addestrato e i suoi parametri sono confezionati separatamente.

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)

Esegui l'allenamento

Per eseguire l'addestramento, inseriamo semplicemente gli artefatti richiesti insieme ad alcuni parametri aggiuntivi in ​​a Estimatore di SageMaker e chiama il .fit funzione:

# 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)

Mentre l'algoritmo si allena, puoi monitorarne l'avanzamento sia nel notebook SageMaker in cui stai eseguendo il codice stesso, sia su Amazon Cloud Watch. Al termine dell'addestramento, gli artefatti del modello ottimizzati vengono caricati in Servizio di archiviazione semplice Amazon (Amazon S3) posizione di output specificata nella configurazione di addestramento. È ora possibile distribuire il modello nello stesso modo del modello pre-addestrato. Puoi seguire il resto del processo in quaderno di accompagnamento.

Conclusione

In questo post, abbiamo descritto il valore delle API JumpStart appena rilasciate e come usarle. Abbiamo fornito collegamenti a 17 notebook di esempio per le diverse attività di ML supportate in JumpStart e ti abbiamo guidato attraverso il notebook di rilevamento degli oggetti.

Non vediamo l'ora di sentirti mentre sperimenti JumpStart.


Informazioni sugli autori

Modelli e algoritmi Amazon SageMaker JumpStart ora disponibili tramite API PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.Dott. Vivek Madan è uno scienziato applicato con il team Amazon SageMaker JumpStart. Ha conseguito il dottorato di ricerca presso l'Università dell'Illinois a Urbana-Champaign ed è stato ricercatore post-dottorato presso la Georgia Tech. È un ricercatore attivo nell'apprendimento automatico e nella progettazione di algoritmi e ha pubblicato articoli in conferenze EMNLP, ICLR, COLT, FOCS e SODA.

Modelli e algoritmi Amazon SageMaker JumpStart ora disponibili tramite API PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.João Moura è un architetto specializzato in soluzioni AI/ML presso Amazon Web Services. Si concentra principalmente sui casi d'uso della NLP e aiuta i clienti a ottimizzare la formazione e l'implementazione del modello di Deep Learning.

Modelli e algoritmi Amazon SageMaker JumpStart ora disponibili tramite API PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.Dottor Ashish Khetan è un Senior Applied Scientist con JumpStart di Amazon SageMaker ed Algoritmi integrati di Amazon SageMaker e aiuta a sviluppare algoritmi di apprendimento automatico. È un ricercatore attivo nell'apprendimento automatico e nell'inferenza statistica e ha pubblicato molti articoli in conferenze NeurIPS, ICML, ICLR, JMLR e ACL.

Timestamp:

Di più da Apprendimento automatico di AWS