Creare un team ML

I progetti ML richiedono team con membri con una vasta gamma di competenze, e le responsabilità legate al machine learning. Di seguito sono riportati i ruoli più comuni presenti nei team di ML tipici:

Ruolo Conoscenze e competenze Prodotto principale
Product Manager di ML I product manager di ML hanno una conoscenza approfondita dei punti di forza e di debolezza del machine learning e del processo di sviluppo del machine learning. Allineano i problemi aziendali alle soluzioni di ML lavorando direttamente con il team di ML, gli utenti finali e altri stakeholder. Essi creano la visione del prodotto, definiscono i casi d'uso e i requisiti, nonché pianificano e danno la priorità ai progetti. Documento dei requisiti del prodotto (PRD).
Engineering Manager I gestori dell'ingegneria raggiungono gli obiettivi commerciali impostando, comunicando e raggiungendo le priorità del team. Come l'ML product manager, allineano le soluzioni ML ai problemi aziendali. Definiscono aspettative chiare per i membri del team, effettuare valutazioni delle prestazioni e assistere nella carriera sviluppo professionale. Documenti di progettazione, piani di progetto e valutazioni del rendimento.
Data scientist I data scientist utilizzano l'analisi quantitativa e statistica per estrarre informazioni e valore dai dati. Aiutano a identificare e testare le funzionalità, a creare modelli di prototipi e a migliorare l'interpretabilità dei modelli. Report e visualizzazioni dei dati che rispondono alle domande sull'attività tramite l'analisi statistica.
ML engineer Gli ML engineer progettano, creano, mettono in produzione e gestiscono modelli ML. Si tratta di esperti sviluppatori software con una conoscenza approfondita delle tecnologie e delle best practice di ML. Modello di cui è stato eseguito il deployment con una qualità di previsione sufficiente per soddisfare le esigenze aziendali obiettivi.
Data engineer I data engineer creano pipeline di dati per l'archiviazione, l'aggregazione e elaborare grandi quantità di dati. Sviluppano l'infrastruttura per la raccolta e la trasformazione di dati non elaborati formati utili per l'addestramento e la pubblicazione del modello. I data engineer sono responsabili dei dati nell'intero processo di sviluppo dell'IA. Pipeline di dati completamente in produzione con il monitoraggio e gli avvisi necessari.
Ingegnere delle operazioni di sviluppo (DevOps) Gli ingegneri DevOps sviluppano, eseguono il deployment, scalano e monitorano l'infrastruttura di pubblicazione per i modelli ML. Un processo automatizzato per la pubblicazione, il monitoraggio, il test e l'invio di avvisi sul comportamento di un modello.

I progetti di ML di successo hanno team con ogni ruolo ben rappresentato. Nei team più piccoli, gli individui dovranno gestire le responsabilità di più ruoli.

Stabilire le pratiche di gruppo

Poiché i ruoli, gli strumenti e i framework variano notevolmente nello sviluppo di ML, è fondamentale stabilire pratiche comuni tramite una documentazione del processo eccellente. Ad esempio, un ingegnere potrebbe pensare che sia sufficiente ottenere i dati giusti per iniziare ad addestrare un modello, mentre un ingegnere più responsabile convaliderà che il set di dati sia anonimizzato correttamente e ne documenterà i metadati e la provenienza. Assicurarsi che gli ingegneri condividano definizioni comuni di processi e pattern di progettazione riducono la confusione aumenta la velocità della squadra.

Documentazione della procedura

La documentazione del processo deve definire gli strumenti, l'infrastruttura e i processi che il team utilizzerà per lo sviluppo di ML. Documenti di procedure efficaci aiutano ad allineare i membri del team nuovi e attuali. Dovrebbero rispondere ai seguenti tipi di domande:

  • Come vengono generati i dati per il modello?
  • Come esaminiamo, convalidiamo e visualizziamo i dati?
  • Come modifichiamo una caratteristica o un'etichetta di input nei dati di addestramento?
  • Come personalizziamo la pipeline di generazione, addestramento e valutazione dei dati?
  • Come posso cambiare l'architettura del modello per adattarla alle modifiche dell'input caratteristiche o etichette?
  • Come otteniamo esempi di test?
  • Quali metriche utilizzeremo per valutare la qualità del modello?
  • Come lanciamo i nostri modelli in produzione?
  • Come facciamo a sapere se qualcosa non va nel nostro modello?
  • Da quali sistemi a monte dipendono i nostri modelli?
  • Come faccio a rendere il mio codice SQL gestibile e riutilizzabile?

Altre potenziali domande

Modello
  • Posso addestrare modelli su set di dati diversi all'interno dello stesso pipeline di dati, ad esempio per l'ottimizzazione?

  • Come faccio ad aggiungere un nuovo set di dati di test alla mia pipeline?

Formazione
  • Come faccio a controllare la previsione del modello su un esempio creato manualmente?

  • Come faccio a trovare, esaminare e visualizzare esempi in cui il modello ha commesso errori?

  • Come posso determinare quale funzionalità è stata la più responsabile di una determinata la previsione?

  • Come faccio a capire quali caratteristiche hanno il maggiore impatto sulle previsioni all'interno di un determinato campione?

  • Come faccio a calcolare o tracciare le previsioni del modello su un set di dati o su un campione scelto?

  • Come posso calcolare le metriche standard per le previsioni del mio modello su una scelto?

  • Come faccio a sviluppare e calcolare le metriche personalizzate?

  • Come faccio a confrontare il mio modello con altri modelli offline?

  • Posso eseguire una meta-analisi per più valutazioni di modelli in una singola di sviluppo software?

  • Posso confrontare il modello attuale con quello di 10 mesi fa?

Implementazione, monitoraggio e manutenzione
  • Penso di aver creato un buon modello. Come faccio a lanciarlo in produzione?

  • Come posso verificare che il mio nuovo modello sia in esecuzione correttamente in produzione?

  • Posso ottenere la cronologia delle valutazioni del modello nel tempo?

  • Come faccio a sapere se qualcosa non va nel modello?

  • Mi è stata assegnata una pagina/un bug che menziona qualcosa sul modello. Che cosa devo fare?

Pipeline
  • Come faccio a personalizzare la generazione, l'addestramento e la valutazione dei dati? pipeline di dati?

  • Quando e come devo creare una pipeline completamente nuova?

SQL
  • Ho bisogno di SQL per generare alcuni dati. Dove devo inserirlo?

Infrastruttura
  • Come funziona la pubblicazione del modello? C'è un diagramma?

  • Da quali sistemi a monte dipende il mio modello? a conoscenza?

Comunicazione
  • Non riesco a capire una cosa. Chi (e come) devo contattare?

Aspetti da considerare

La definizione di "best practice di ML" può variare in base a società, team e persone. Per Ad esempio, alcuni membri del team potrebbero considerare Colab sperimentali come disponibile, mentre altri vorranno lavorare in R. Alcuni potrebbero avere la passione per progettazione del software, qualcun altro pensa che il monitoraggio sia la eppure qualcun altro è a conoscenza di buone pratiche di produzione delle caratteristiche, vuole usare Scala. Ognuno ha ragione dal proprio punto di vista e, se gestito correttamente, il mix sarà una risorsa straordinaria. In caso contrario, può essere un disastro.

Stabilire gli strumenti, le procedure e l'infrastruttura che il team utilizzerà prima di scrivere una riga di codice può fare la differenza tra il fallimento del progetto dopo due anni o il lancio riuscito un trimestre prima del previsto.

Valutazioni delle prestazioni

A causa dell'ambiguità e dell'incertezza del ML, i manager devono impostare aspettative chiare e definizione tempestiva dei risultati finali.

Nel determinare le aspettative e i risultati finali, valuta come saranno valutate se un progetto o un approccio non ha successo. In altre parole, è importante che le prestazioni di un membro del team non siano direttamente collegate il successo del progetto. Ad esempio, non è raro che i membri del team impieghino settimane per esaminare soluzioni che alla fine non sono efficaci. Anche in questi di questo tipo, il loro codice di alta qualità, la documentazione accurata e i le collaborazioni dovrebbero contribuire positivamente alla valutazione.

Verifica le tue conoscenze

Qual è il motivo principale per cui disponi di un'eccellente documentazione relativa al processo e l'adozione di pratiche comuni?
Aumenta la velocità del progetto.
risposta esatta. Una buona documentazione dei processi e l'adozione di pratiche comuni riducono la confusione e semplificano il processo di sviluppo.
Stabilire le best practice per un'azienda.
Poiché lo sviluppo ML varia da progetto a progetto, i team in genere stabiliscono i propri insiemi di best practice per lavorare in modo efficace e aumentare la velocità.
Assicurarsi che tutti i tecnici del team abbiano lo stesso livello di competenza.
I team di ML sono in genere composti da ingegneri con diverse competenze e conoscenze. La documentazione dei processi aiuta i tecnici ad allinearsi alle best practice per aumentarne la velocità.