Blog.

Machine Learning Engineer: le skill più richieste


Autore
Andrea Provino
Data
Tempo di lettura
4 minuti
Categoria
machine-learning

machine-learning-engineer-curriculum-data-science-italia

Quali sono le competenze più richieste a un Machine Learning Engineer? In questo blogpost, rispondiamo esattamente a questa domanda!

Seguimi e presta attenzione.

Non sarà il solito elenco puntato di parole, ma un breve viaggio, simpatico e interessante, alla scoperta delle skill più richieste a un Machine Learning Engineer.

Come forse già saprai, in questo blog trattiamo temi di Data Science, Machine Learning, AI con un approccio omnicomprensivo.

Questo significa che non ci occupiamo solo di teoria.

Anzi.

Trattiamo anche l’aspetto umano, caratteriale e tecnico, necessario per affrontare con successo queste professioni.

Ed eccoci qui.

Oggi, esploriamo quelle che sono le competenze più richieste a un Machine Learning Engineer!

Il Machine Learning Engineer

Quella del Machine Learnign Engineer è una professione molto richiesta oltreoceano, dove i salari raggiungono i 140K annuali.

In Italia… la questione è un po’ differente.

E quando mai…

Il problema è chiaro: le aziende italiane sono troppo ignoranti per riconoscere il valore reale di questa figura.

Il motivo? E’ un ruolo molto più definito rispetto al blasonato data scientist, appellativo oggi associato a chiunque traffichi con i dati.

Usi Google analytics? Allora sei un data scientist. No non lo sei.

Sfatiamo questo mito.

Le aziende che ricercano un Machine Learning Engineer in gnere hanno due caratteristiche:

  • una chiara idea di come e perché vogliano usare il machine learning
  • diversi data scientist operativi, quindi hanno definito una distinzione di ruoli.

Possiamo allora delineare il profilo standard di un machine learning engineer attraverso queste note salienti:

  • gestisce esperimenti di machine learning conoscendo uno o più linguaggi, e librerie software
  • rilascia soluzioni di machine learning in produzione
  • ottimizza le perfomance e la scalabilità delle soluzioni esistenti
  • analizza dati per scoprire nuovi use case (sovrapposizione con data scientist)
  • assicura il corretto flow dei dati tra database e back-end (sovrapposizione con data engineer)

Approfondiamo ulteriormente la figura.

From Development to Production

Il solo sviluppo di un modello di machine learning può essere assimilato al piccolo pezzo di un puzzle molto ampio.

Quando usciamo dall’ambiente protetto del nostro amato Google Colab le sfide si complicano.

Teniamo presente una cosa.

Non importa infatti quanto piccolo o banale possa essere un problema di machine learning: l’effort richiesto per renderlo utile e profittevole è tremendo.

E quando si parla di aziende, del mondo reale, questo effort costituisce un investimento, di risorse e denaro, che deve produrre un ritorno economico.

Un modello ha bisogno di generare valore affinché produca un effettivo ROI, e questo spesso significa disporre di un ecosistema di sostentamento costituito da diversi livelli:

  • Sicurezza
  • User Interface (e.g. un sito web, un chat bot, etc)
  • API per contattare il modello
  • ETL di gestione dati
  • Database
  • Scheduler
  • Sistema di Log e Performance Monitoring

Ci dovrà pur essere qualcuno a sovraintendere questo intricato assieme di parti…

Ecco il Machine Learning Engineer.

A questo punto potresti pensare che il Data Scientist sia il rigoroso ricercatore, che sintetizza complesse funzioni matematiche, in un’ordinata e linda cleanroom, mentre il nostro amico ML Engineer si sporchi le mani a fare il lavoro duro.

Chiaramente non è esattamente così, anche se mi piaceva l’idea del team work distribuito in questo modo.

Consideriamo però una cosa.

Esistono diverse variabili che determinano una sfumatura più nebulosa tra le due figure professionali, ad esempio: grandezza dell’azienda, caratteristiche e complessità del progetto, etc.

Ciò detto, in linea generale possiamo considerare vera l’affermazione precedente.

Il ML Engineer cura le prestazioni del modello e si prende cura di lui durante l’intero ciclo di vita, attivandosi prontamente qualora ci fossero cali di performance.

Failures

Diversi fattori contribuiscono a rendere la vita di un modello difficile, e quella del Machine Leanring Engineer un vero calvario.

Vediamoli insieme.

Il database potrebbe rifiutare la connessione, una funzione smettere di operare su un dataset di dimensioni superiori, e il bucket usato per lo storage dei dati (una sorta di cartella in cloud ad alte prestazioni) potrebbe esaurire lo spazio.

Aspetta. Aspetta. C’è del’altro.

Alcuni algoritmi potrebbero infatti rifiutare la combinazione di parametri fornita dall’utente tramite un’interfaccia priva di controlli adeguati, drogando i dati e riducendo le prestazioni.

O ancora…

Una colonna potrebbe smettere di esistere.

Beh se poi ci appoggiassimo a un servizio esterno di terze parti, invece che le credenziali di accesso potremmo ricevere un fantastico errore di Timeout Exception.

Tutte cose che fanno dormire tranquilli i neonati, e chiunque altro lavori in azienda, fuorché il ML Engineer.

Visivamente, ecco dunque dove si coccola un ML Engineer:

Image for post

Qualora tu volessi saperne di più, ti invito a dare un’occhiata a questo corso di AWS.

Hard Skills: Il CV del Machine Learning Engineer

Qualora ti stessi chiedendo quali debbano essere le competenze tecniche e pratiche di un machine learning engineer, sappi allora che questa lista è sufficientemente esaustiva:

  • Python
  • Data Structure
  • ML Algorithms
  • ML Best Practice
  • (No)SQL
  • Version Control / Git
  • REST API / Flask
  • Virtualization / Docker / Kubernetes
  • Distributed Computing / Spark / Dask
  • Workflow Management / Airflow / Kubeflow
  • Unit tests / Integration tests

Per il momento è tutto.

Per aspera, ad astra.

Un caldo abbraccio, Andrea.

Taggedmachine learning


Ultimi post

Patricia Merkle Trie

Il Practical Algorithm To Retrieve Information Coded In Alphanumeric Merkle Trie, o Patricia Merkle Trie è una struttura dati chiave-valore usatada Ethereum e particolarmente efficiente per il salvataggio e la verifica dell’integrità dell’informazione. In questo post ne studieremo le caratteristiche. Prima di procedere, ci conviene ripassare l’introduzione al Merkle Tree nella quale abbiamo chiarito il […]

Andrea Provino
ethereum-patricia-merkle-tree
Tree Data Structure: cos’è un Merkle Tree

Un Merkle Tree è una struttura dati efficiente per verificare che un dato appartenga a un insieme esteso di elementi. È comunemente impiegato nelle Peer to Peer network in cui la generazione efficiente di prove (proof) contribuisce alla scalabilità della rete. Capire i vantaggi di questa struttura ci tornerà utile nel nostro percorso di esplorazione […]

Andrea Provino
merkle-tree-cover
UTXO: come funziona il modello Unspent Transaction Outputs

Per tenere traccia dei bilanci utente, la blockchain di Bitcoin sfrutta un modello di contabilità definito UTXO o Unspent Transaction Outputs. In questo articolo ne esaminiamo le caratteristiche. Ogni blockchain è dotata di un sistema di contabilità, un meccanismo attraverso cui tenere traccia dei bilanci di ciascun utente. I due grandi modelli di riferimento nel […]

Andrea Provino
bitcoin-utxo
Cos’è Ethereum

Possiamo definire Ethereum come una macchina a stati distribuita che traccia le transizioni di un archivio dati general-purpose (i.e. una memoria in grado di registrare qualsiasi dato esprimibile come coppia di chiave e valore o key-value) all’interno della Ethereum Blockchain. È arrivato il momento di esplorare uno dei progetti tecnologici più innovativi e interessanti degli […]

Andrea Provino
ethereum