AutoML – Una soluzione senza codice per la creazione di modelli di Machine Learning.

AutoML soluzione senza codice per creare modelli di Machine Learning.

Introduzione

AutoML è anche conosciuto come Automatic Machine Learning. Nel 2018, Google ha lanciato cloud AutoML che ha suscitato molto interesse ed è uno degli strumenti più significativi nel campo dell’Apprendimento Automatico e dell’Intelligenza Artificiale. In questo articolo, imparerai “AutoML”, una soluzione senza codice per la costruzione di modelli di apprendimento automatico con l’aiuto di Google Cloud AutoML.

AutoML è parte di Vertex AI sulla piattaforma Google Cloud. Vertex AI è la soluzione end-to-end per la costruzione e la creazione di pipeline di apprendimento automatico nel cloud. Tuttavia, discuteremo i dettagli di Vertex AI in un futuro articolo. AutoML dipende principalmente da due cose, una è il trasferimento di apprendimento e l’altra è l’architettura di ricerca neurale. Devi solo fornire i dati, dopodiché AutoML costruirà un modello personalizzato ottimale per il tuo caso d’uso.

In questo articolo, discuteremo i vantaggi, l’utilizzo e l’implementazione pratica di AutoML con il codice Python sulla piattaforma Google Cloud.

Obiettivi di apprendimento

  • Per far sapere ai lettori come utilizzare AutoML con il codice
  • Per comprendere i benefici di AutoML
  • Come usare la libreria client per creare una pipeline di apprendimento automatico

Questo articolo è stato pubblicato come parte del Data Science Blogathon.

Problema

Costruire un modello di apprendimento automatico è un processo che richiede tempo e molta esperienza, come la conoscenza di un linguaggio di programmazione, una buona conoscenza di matematica e statistica e una comprensione degli algoritmi di apprendimento automatico. In passato, solo le persone con competenze tecniche potevano lavorare in scienza dei dati e costruire modelli. Per le persone non tecniche, la costruzione di un modello di apprendimento automatico era un compito molto difficile. Tuttavia, il percorso non era facile nemmeno per le persone tecniche che costruivano modelli. Una volta costruito il modello, la sua manutenzione, il deployment e l’autoscaling richiedono ulteriori sforzi e ore-uomo e richiedono un insieme di competenze leggermente diverso. Per superare queste sfide, il colosso della ricerca globale Google ha lanciato AutoML nel 2014, ma è stato reso disponibile pubblicamente in seguito.

Benefici di AutoML

  • AutoML riduce l’intervento manuale e richiede poca esperienza di apprendimento automatico.
  • AutoML consente a persone tecniche e non tecniche di costruire modelli di apprendimento automatico senza scrivere alcun codice.
  • Si occupa di ogni passo della costruzione di un modello, come la pre-elaborazione dei dati, l’ingegneria delle funzionalità, la costruzione del modello, l’ottimizzazione degli iperparametri, la valutazione del modello e la previsione sui dati di test, quindi non è necessario scrivere alcun codice per eseguire tali attività.
  • AutoML ha un’interfaccia utente intuitiva e fornisce diverse API.
  • AutoML fornisce anche la libreria client con Python e altri linguaggi di programmazione.

Tipi di dati supportati

AutoML supporta dati strutturati e non strutturati che sono categorizzati in quattro tipi

  1. Immagine
  2. Tabulare
  3. Video
  4. Testo

Con questi quattro tipi di dati, è possibile eseguire determinate attività supportate da AutoML.

Immagine

Con l’insieme di dati di immagini, è possibile eseguire le seguenti attività in AutoML

  • Classificazione dell’immagine (singola etichetta)
  • Classificazione dell’immagine (multi-etichetta)
  • Rilevamento oggetti
  • Segmentazione dell’immagine

Tabulare

Con un insieme di dati tabulare, è possibile eseguire le seguenti attività:

  • Regressione
  • Classificazione
  • Previsione serie storiche

Video

È possibile eseguire le seguenti attività con l’insieme di dati video

  • Rilevamento oggetti
  • Riconoscimento azioni video
  • Tracciamento oggetti video

Testo

I dati di testo di AutoML supportano le seguenti attività:

  • Analisi del sentimento
  • Classificazione del testo (etichetta singola)
  • Classificazione del testo (multi-etichetta)
  • Estrazione di entità

Implementazione

Per utilizzare AutoML, è necessario avere un account sulla piattaforma Google Cloud. La configurazione dell’account è un processo molto semplice, basta andare all’URL https://console.cloud.google.com/ e fare clic su “join”, verrà richiesto l’indirizzo email e la password di Gmail e verrà creato un account su GCP. Fare clic sulla barra di ricerca e cercare Vertex AI, sul lato sinistro vedrete tutti i componenti di Vertex AI, fare clic su workbench.

Workbench fornisce un jupyter lab in cui è possibile creare un’istanza di notebook sul cloud utilizzando una macchina virtuale. Selezionare l’istanza “USER-MANAGED NOTEBOOKS” e fare clic su “NEW NOTEBOOK”, scegliere Python 3 e lasciare le impostazioni predefinite come sono, ci vorranno due o tre minuti e verrà creato per voi un Jupyter Lab. È anche possibile creare un’istanza tensorflow e pytorch con o senza GPU. Fare clic su “OPEN JUPYTERLAB” e quindi fare clic su Python 3 (ipykernel) dalla sezione Notebook. Il vostro notebook Jupyter è pronto; ora è possibile scrivere codice simile al proprio notebook Python Jupyter locale.

Libreria client AutoML in Python

Creaeremo un modello di classificazione tabellare per la demo utilizzando la libreria client AutoML in Python.

Prima di tutto, è necessario installare i due pacchetti.

!pip install --upgrade google-cloud-aiplatform

!pip install --upgrade google-cloud-storage

Una volta installati con successo questi due pacchetti, riavviare il kernel. È possibile riavviare il kernel in due modi, uno è dall’interfaccia utente, selezionare la scheda “Kernel” dalla barra superiore e fare clic su “Restart Kernel”, la seconda opzione è in modo programmato.

#restart the kernel

import os

if not os.getenv("IS_TESTING"):
  import ipython
  
  app = Ipython.Application.instance()
  app.kernel.do_shutdown(True)
  

Impostare il proprio id progetto, nome del bucket e regione. Se non si conosce il proprio id progetto, eseguire il codice sottostante per conoscere il proprio id progetto di Google Cloud utilizzando il comando gcloud.

import os

PROJECT_ID = ''

if not os.getenv("IS_TESTING"):
  proj_output = !gcloud config list --format 'value(core.project)' 2>/dev/null
  PROJECT_ID = proj_output[0]
  print("Project ID: ", PROJECT_ID)

#set project id, bucket name and region

PROJECT_ID = '@YOUR PROJECT ID' #from the above code you can get your project id
BUCKET_NAME = 'gs://PROJECT_ID' #you can set your own bucket name
REGION = 'us-west1' #change the region if different

Perché abbiamo bisogno di un nome del bucket? In AutoML è possibile caricare i dati in tre modi:

  • BigQuery
  • Cloud Storage
  • Unità locale (dalla macchina locale)

In questo esempio, stiamo caricando l’insieme di dati da cloud storage, per questo è necessario creare un bucket dove verrà caricato il file CSV.

Crea un bucket in Cloud Storage e imposta il percorso dei dati da Google Cloud Storage.

#utilizzando il comando gsutil è possibile creare un bucket in cloud storage
! gsutil mb -l $REGION $BUCKET_NAME


#verifica se il bucket è stato creato
! gsutil ls -al $BUCKET_NAME

#percorso dell'insieme di dati in gcs

IMPORT_FILE = 'data.csv'
gcs_path = f"{BUCKET_NAME}/{IMPORT_FILE}"

Ora, è necessario creare un insieme di dati in AutoML e quindi addestrare il modello sull’insieme di dati.

#importando le librerie necessarie

import os
from google.cloud import aiplatform


#inizializzazione della piattaforma AI
aiplatform.init(project=PROJECT_ID, location=REGION)

#creazione dell'insieme di dati in AutoML
ds = aiplatform.TabularDataset.create(
  display_name = 'data_tabular', #impostare il proprio nome
  gcs_source = gcs_path)
  

#creare un training job in AutoML per eseguire il modello
job = aiplatform.AutoMLTabularTrainingJob(
  diaply_name = '#impostare il proprio nome',
  optimization_prediction_type = 'classification',
  column_transformations = [
      {'categorical' : {'column_name': 'City'}},  #solo dato casualmente il nome
      {'numeric' : {'column_name': 'Age'}},
      {'numeric' : {'column_name': 'Salary'}}])


#eseguire il modello
#ciò richiederà tempo, a seconda dell'insieme di dati
model = job.run(
  dataset = ds,
  target_column = Adopted,
  training_fraction_split = 0.8,
  test_fraction_split = 0.2,
  model_display_name = '#impostare il proprio nome',
  disable_early_stopping = False)

Una volta completato l’addestramento, distribuiremo il nostro modello utilizzando l’endpoint. L’endpoint è uno dei componenti di Vertex AI in cui è possibile distribuire il proprio modello e effettuare previsioni online.

#distribuzione del modello
endpoint = model.deploy(machine_type = 'n1-standard-4')

Ci vorranno alcuni minuti per completare l’operazione. Durante la creazione di un’istanza di endpoint, scegliere il tipo di macchina con saggezza poiché questo comporterà dei costi. Impostare un tipo di macchina basso comporta meno costi, mentre impostare un tipo di macchina elevato comporta maggiori costi. Per maggiori informazioni sulla tariffazione, consultare il link sottostante.

https://cloud.google.com/products/calculator#id=9c1e6e38-ba1e-4b40-b1e4-52c86bb9ab29

#effettuare previsioni

pred = endpoint.prediction([
  {'Città': 'Madrid',
  'Età': 52,
  'Stipendio': 70000}])
  

print(pred)

Conclusione

Google Cloud AutoML è un potente strumento che chiunque può utilizzare per creare modelli di Machine Learning senza scrivere codice. AutoML dispone di un’interfaccia utente molto interattiva da cui è possibile creare e distribuire il modello senza una conoscenza approfondita degli algoritmi e del codice. Tuttavia, i punti chiave di questo articolo sono:

  • Come sfruttare i servizi di AutoML in modo programmabile con l’aiuto della libreria client AutoML
  • È possibile creare diversi tipi di modelli come classificazione delle immagini, estrazione di entità di testo, previsione delle serie temporali, rilevamento degli oggetti e molti altri in AutoML
  • Non è necessaria una grande esperienza in ML per utilizzare AutoML e come riduce l’intervento manuale.
  • Come permette ai programmatori e agli scienziati dei dati di sfruttare rapidamente ed efficientemente la potenza della tecnologia AI nelle loro applicazioni.

Domande frequenti

I media mostrati in questo articolo non sono di proprietà di Analytics Vidhya e sono utilizzati a discrezione dell’autore.