Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Novità di MLOps su AWS re:Invent 2020

Novità di MLOps su AWS re:Invent 2020

Riassunto delle novità di MLOps sulla conferenza online di AWS re:Invent (in Italiano). Presentato per AWS User Group Milano il 14/12/2020.

Avatar for Janos Tolgyesi

Janos Tolgyesi

December 14, 2020
Tweet

More Decks by Janos Tolgyesi

Other Decks in Programming

Transcript

  1. Differenza del ciclo di sviluppo software • Rispetto a ciclo

    di sviluppo software, è una disciplina nuova ◦ “best practices” stanno ancora formulando ◦ tool di sviluppo sono molto “freschi” • Oltre la codice che definisce il modello, bisogna gestire tanti dati ◦ artefatti dei modelli (100 Mbyte ... 700 Gbyte) ◦ dataset (fino all’ordine di grandezza di 50 Tbyte) ◦ non ci stanno in git… • Tanti esperimenti affidandosi all’intuizione
  2. Tipico modo di sviluppare modelli ML (1) • Partiamo dal

    passo di avere tutto il dataset a disposizione • Subsampling del dataset ◦ Prendiamo una quantità di dati che è gestibile con un singolo workstation ◦ Subset preferibilmente rappresentativo ◦ Strumenti: Athena, SQL, prefissi S3, etc. • Exploratory Data Analysis (EDA) ◦ Acquisiamo una “conoscenza” dei dati ◦ Distribuzione, statistica, correlazioni, istogrammi ◦ Dati mancanti o errati e come gestirli ◦ Intuizione di quali coloni di input possono essere di maggior aiuto
  3. Tipico modo di sviluppare modelli ML (2) • Pulizia dei

    dati e feature extraction ◦ Gestione dei dati mancanti e errati ◦ Conversione dei dati categorici ◦ Conversione dei dati testuali ◦ Normalizzazione • Selezione del modello ◦ A base della tipologia dell’input (tabulare, immagini, testo naturale, altro tipo “esotico” o la combinazione di questi) ◦ Addestramento del primo modello “baseline” sul subset dell’input • Addestramento sul dataset intero ◦ Aggiustamento dei parametri del modello ◦ Valutazione delle metriche ◦ Repeat
  4. Tipico modo di sviluppare modelli ML (3) • Deploy del

    modello ◦ Tipicamente nella forma di un web service ◦ Serverless? Il modello ha bisogno del GPU? ◦ In produzione bisogna eseguire i stessi trasformazione dell’input che sono stati definite prima dell’addestramento! • Monitoring ◦ Model drifting: la distribuzione dei dati di input possono cambiare con il tempo ◦ Possibilmente arrivano nuovi dati di addestramento
  5. SageMaker Pipelines • È possibile definire i passi: ◦ recupero

    dell’input ◦ preprocessing dei dati ◦ addestramento del modello ◦ salvataggio e versionamento degli artefatti del modello ◦ deploy in produzione in un singolo script python, che può essere eseguito manualmente o automaticamente quando il codice o i dati di input cambiano. • L’idea è simile a Step Functions, soprattutto al Data Science SDK di SF
  6. SageMaker Data Wrangler e Glue Data Brew • Sono fatti

    entrambi per fare EDA e preprocessing • Glue Data Brew ◦ Solo trasformazioni predefiniti ◦ Utile anche per finalità non machine-learning (ETL) ◦ UI sul console AWS ◦ Deploy: Glue job • SageMaker Data Wrangler ◦ Trasformazioni custom (pyspark / pandas) ◦ Per preprocessing dei dataset ◦ Addestramento piccolo modello di baseline in situ ◦ UI in JupyterLab ◦ Deploy: SageMaker pipelines, nel Feature Store o codice