Creare un team ML
Mantieni tutto organizzato con le raccolte
Salva e classifica i contenuti in base alle tue preferenze.
I progetti di ML richiedono team con membri che dispongono di una serie di competenze, esperienza e responsabilità correlate al machine learning. Di seguito sono riportati i ruoli più comuni presenti nei team di ML tipici:
Ruolo |
Conoscenze e competenze |
Risultato 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 i product manager di ML, allineano le soluzioni di ML ai problemi aziendali.
Stabiliscono aspettative chiare per i membri del team,
conducono valutazioni del rendimento e aiutano con la carriera e
lo 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, implementano e gestiscono i modelli di machine learning.
Si tratta di esperti software engineer 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 raggiungere gli obiettivi
commerciali.
|
Data engineer |
I data engineer creano pipeline di dati per archiviare, aggregare ed elaborare grandi quantità di dati. Sviluppano l'infrastruttura e
i sistemi per raccogliere e trasformare i dati non elaborati in
formati utili per l'addestramento e la pubblicazione dei modelli. 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 di 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 per i processi e i pattern di progettazione riduce la confusione e
aumenta la velocità del team.
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 si modifica una funzionalità di input o un'etichetta nei dati di addestramento?
- Come personalizziamo la pipeline di generazione, addestramento e valutazione dei dati?
- Come faccio a modificare l'architettura del modello per adattarla alle modifiche delle funzionalità o delle etichette di input?
- Come otteniamo esempi di test?
- Quali metriche utilizzeremo per valutare la qualità del modello?
- Come lanciamo i nostri modelli in produzione?
- Come faccio a sapere se c'è qualcosa di sbagliato nel nostro modello?
- Su quali sistemi a monte dipendono i nostri modelli?
- Come faccio a rendere il mio codice SQL manutenibile e riutilizzabile?
Altre potenziali domande
Modello
Posso addestrare modelli su set di dati diversi nella stessa
pipeline, ad esempio per la messa a punto fine?
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 faccio a determinare quale caratteristica ha contribuito maggiormente a una determinata
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 faccio a calcolare le metriche standard per le previsioni del mio modello su un set di dati 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 del modello in un singolo
ambiente di sviluppo?
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 faccio a verificare che il mio nuovo modello funzioni correttamente in produzione?
Posso ottenere la cronologia delle valutazioni del modello nel tempo?
Come faccio a sapere quando c'è un problema con il modello?
Mi è stata assegnata una pagina/un bug che menziona qualcosa sul modello.
Che cosa devo fare?
Pipeline
SQL
Infrastruttura
Comunicazione
Aspetti da considerare
La definizione di "best practice di ML" può variare in base a società, team e persone. Ad esempio, alcuni membri del team potrebbero considerare Colabs sperimentale come il prodotto principale, mentre altri vorranno lavorare in R. Alcuni potrebbero avere una passione per la progettazione di software, altri ritengono che il monitoraggio sia la cosa più importante, mentre altri ancora sono a conoscenza di buone pratiche di produzione di funzionalità, ma vogliono utilizzare 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.
A causa dell'ambiguità e dell'incertezza insite nell'IA, i responsabili delle risorse umane devono stabilire aspettative chiare e definire in anticipo i risultati.
Quando stabilisci le aspettative e gli elementi da consegnare, considera come verranno valutati se un progetto o un approccio non va a buon fine. In altre parole, è importante che il rendimento di un membro del team non sia direttamente collegato al 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
casi, il codice di alta qualità, la documentazione completa e la collaborazione efficace dovrebbero contribuire positivamente alla valutazione.
Verifica di aver compreso
Qual è il motivo principale per avere una documentazione eccellente dei processi
e stabilire pratiche comuni?
Aumenta la velocità del progetto.
risposta esatta. Una buona documentazione del processo 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à.
Assicurati che tutti gli ingegneri del team abbiano lo stesso livello di esperienza.
I team di ML sono in genere composti da ingegneri con varie competenze e conoscenze. La documentazione del processo aiuta gli ingegneri ad allinearsi alle best practice per aumentare la velocità.
Salvo quando diversamente specificato, i contenuti di questa pagina sono concessi in base alla licenza Creative Commons Attribution 4.0, mentre gli esempi di codice sono concessi in base alla licenza Apache 2.0. Per ulteriori dettagli, consulta le norme del sito di Google Developers. Java è un marchio registrato di Oracle e/o delle sue consociate.
Ultimo aggiornamento 2025-07-27 UTC.
[null,null,["Ultimo aggiornamento 2025-07-27 UTC."],[[["\u003cp\u003eMachine learning projects necessitate diverse teams with specialized roles like ML product managers, data scientists, and ML engineers, to address various aspects of development and deployment.\u003c/p\u003e\n"],["\u003cp\u003eComprehensive process documentation is crucial for ML teams to establish common practices, ensure smooth collaboration, and enhance project velocity by reducing confusion and streamlining workflows.\u003c/p\u003e\n"],["\u003cp\u003eProcess documentation should cover key questions regarding data handling, model development, training, evaluation, and productionization to guide the team's approach and decision-making.\u003c/p\u003e\n"],["\u003cp\u003eEstablishing clear expectations, deliverables, and evaluation criteria for team members is essential, emphasizing contributions beyond project success due to the inherent uncertainties in ML development.\u003c/p\u003e\n"],["\u003cp\u003eSuccessful ML teams foster a collaborative environment where diverse perspectives and expertise are valued, enabling efficient problem-solving and innovative solutions.\u003c/p\u003e\n"]]],[],null,["# Assembling an ML team\n\nML projects require teams with members who have a range of skills, expertise,\nand responsibilities related to machine learning. These are the most common\nroles found on typical ML teams:\n\n| Role | Knowledge and skills | Main deliverable |\n|----------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------|\n| ML product manager | ML product managers have a deep understanding of ML strengths and weaknesses and the ML development process. They align business problems to ML solutions by working directly with the ML team, end-users, and other stakeholders. They create the product vision, define use cases and requirements, and plan and prioritize projects. | Product requirements document (PRD). |\n| Engineering manager | Engineering managers achieve business goals by setting, communicating, and achieving team priorities. Like ML product managers, they align ML solutions to business problems. They set clear expectations for team members, conduct performance evaluations, and assist with career and professional development. | Design docs, project plans, and performance evaluations. |\n| Data scientist | Data scientists use quantitative and statistical analysis to extract insights and value from data. They help to identify and test features, prototype models, and help with model interpretability. | Reports and data visualizations that answer business questions through statistical analysis. |\n| ML engineer | ML engineers design, build, productionize, and manage ML models. They are strong software engineers with a deep understanding of ML technologies and best practices. | Deployed model with sufficient prediction quality to meet business goals. |\n| Data engineer | Data engineers build data pipelines for storing, aggregating, and processing large amounts of data. They develop the infrastructure and systems for collecting and transforming raw data into useful formats for model training and serving. Data engineers are responsible for the data across the entire ML development process. | Fully productionized data pipelines with the necessary monitoring and alerting. |\n| Developer operations (DevOps) engineer | DevOps engineers develop, deploy, scale, and monitor the serving infrastructure for ML models. | An automated process for serving, monitoring, testing, and alerting on a model's behavior. |\n\nSuccessful ML projects have teams with each role well\nrepresented. In smaller teams, individuals will need to handle the\nresponsibilities for multiple roles.\n\n\nEstablish team practices\n------------------------\n\nBecause the roles, tools, and frameworks vary widely in ML\ndevelopment, it's critical to establish common practices through\nexcellent process documentation. For example, one engineer might\nthink that just getting the right data is sufficient to begin training a model,\nwhile a more responsible engineer will validate that the dataset is anonymized\ncorrectly and document its metadata and provenance. Making sure engineers share\ncommon definitions for processes and design patterns reduces confusion and\nincreases the team's velocity.\n\n### Process documentation\n\nProcess docs should define the tools, infrastructure, and processes the team\nwill use for ML development. Good process docs help align new and current\nteam members. They should answer the following types of questions:\n\n- How is the data generated for the model?\n- How do we examine, validate, and visualize the data?\n- How do we modify an input feature or label in the training data?\n- How do we customize the data generation, training, and evaluation pipeline?\n- How do I change the model architecture to accommodate changes in input features or labels?\n- How do we obtain testing examples?\n- What metrics will we use to judge model quality?\n- How do we launch our models in production?\n- How will we know if something is wrong with our model?\n- What upstream systems do our models depend on?\n- How do I make my SQL maintainable and reusable?\n\n#### More potential questions\n\n**Model**\n\n-\n Can I train models on different datasets in the same\n pipeline, like for fine-tuning?\n\n-\n How do I add a new test dataset to my pipeline?\n\n**Training**\n\n-\n How do I check the model's prediction on a hand-crafted example?\n\n-\n How do I find, examine, and visualize examples where the model made\n mistakes?\n\n-\n How do I determine which feature was most responsible for a given\n prediction?\n\n-\n How do I understand which features have the most impact on\n predictions within a given sample?\n\n-\n How do I compute or plot model predictions on a chosen dataset or\n sample?\n\n-\n How do I compute standard metrics for my model's predictions on a\n chosen dataset?\n\n-\n How do I develop and compute custom metrics?\n\n-\n How do I compare my model with other models offline?\n\n-\n Can I perform meta-analysis for multiple model evaluations in a single\n development environment?\n\n-\n Can I compare the current model with the one from 10 months ago?\n\n**Productionization, monitoring, and maintenance**\n\n-\n I think I created a good model. How can I launch it in production?\n\n-\n How do I verify that my new model is running in production correctly?\n\n-\n Can I get the history of model evaluations over time?\n\n-\n How will I know when something is wrong with the model?\n\n-\n I got assigned a page/bug mentioning something about the model.\n What should I do?\n\n**Pipelines**\n\n-\n How could I customize the data generation/training/evaluation\n pipeline?\n\n-\n When and how should I create a completely new pipeline?\n\n**SQL**\n\n-\n I need SQL to generate some data. Where should I put it?\n\n**Infrastructure**\n\n-\n How does our model serving work? Is there a diagram?\n\n-\n What upstream systems does my model depend on that I should be\n aware of?\n\n**Communication**\n\n-\n I can't figure something out. Who (and how) should I contact?\n\n### Keep in mind\n\nWhat constitutes \"ML best practices\" can differ between companies, teams, and\nindividuals. For\nexample, some team members might consider experimental Colabs as the main\ndeliverable, while others will want to work in R. Some might have a passion for\nsoftware engineering, someone else thinks monitoring is the most important\nthing, yet someone else is aware of good feature productionization practices but\nwants to use Scala. Everyone is \"right\" from their own perspective and if\nsteered correctly, the mix will be a powerhouse. If not, it can be a mess.\n\nEstablishing the tools, processes, and infrastructure the team will use before\nwriting a line of code can be the difference between the project failing after\ntwo years or successfully launching a quarter ahead of schedule.\n\nPerformance evaluations\n-----------------------\n\nDue to the ambiguity and uncertainty inherent in ML, people managers need to set\nclear expectations and define deliverables early.\n\nWhen determining expectations and deliverables, consider how they'll be\nevaluated if a project or approach isn't successful. In other words, it's\nimportant that a team member's performance isn't directly connected to the\nsuccess of the project. For example, it's not uncommon for team members to spend\nweeks investigating solutions that are ultimately unsuccessful. Even in these\ncases, their high-quality code, thorough documentation, and effective\ncollaboration should contribute positively toward their evaluation.\n\n### Check Your Understanding\n\nWhat is the primary reason for having excellent process documentation and establishing common practices? \nIncrease project velocity. \nCorrect. Having good process documentation and establishing common practices reduces confusion and streamlines the development process. \nEstablish best practices across a company. \nBecause ML development varies from project to project, teams typically establish their own sets of best practices to work effectively and increase their velocity. \nEnsure all engineers on the team have the same level of expertise. \nML teams typically have engineers with a variety of skills and knowledge. Process documentation helps engineers align on best practices to increase their velocity."]]