Rassembler une équipe de ML

Les projets de ML nécessitent des équipes dont les membres possèdent des compétences, une expertise et les responsabilités liées au machine learning. Ce sont les plus courantes les rôles attribués aux équipes de ML typiques:

Rôle Connaissances et compétences Principal produit livrable
Responsable produit de ML Les chefs de produit de ML ont une connaissance approfondie de leurs points forts et de leurs points faibles et le processus de développement du ML. Elles permettent d'aligner les problèmes métier vers les solutions de ML en travaillant avec l'équipe ML, les utilisateurs finaux et les autres partenaires. Ils définir la vision du produit, définir les cas d'utilisation les exigences, et planifier et hiérarchiser les projets. Document sur les exigences du produit (PRD).
Responsable de l'ingénierie Les responsables de l’ingénierie atteignent les objectifs de l’entreprise en définissant, en communiquant et d’atteindre les priorités de l'équipe. Comme le ML ils adaptent les solutions de ML aux problèmes métier. Il définit des attentes claires pour les membres de l'équipe, mener des évaluations de performance, et aider à la gestion de carrière et de développement professionnel. Documents de conception, plans de projet et évaluations de performances.
Data scientist Les data scientists utilisent des analyses quantitatives et statistiques pour extraire des insights et de la valeur des données. Elles aident à identifier et à tester créer des prototypes, créer des modèles et améliorer l'interprétabilité des modèles. Rapports et visualisations des données qui répondent aux questions commerciales grâce à une analyse statistique.
Ingénieur en ML Les ingénieurs en ML conçoivent, compilent, passent en production et gèrent des modèles de ML. Ce sont de solides ingénieurs logiciel ayant une connaissance approfondie du ML technologies et bonnes pratiques. Modèle déployé avec une qualité de prédiction suffisante pour répondre aux besoins métier objectifs.
Ingénieur de données Les ingénieurs de données créent des pipelines de données pour stocker, agréger et de grandes quantités de données. Ils développent l'infrastructure et des systèmes de collecte et de transformation des données brutes utiles pour l'entraînement et l'inférence du modèle. Les ingénieurs de données sont des données tout au long du processus de développement de ML. Pipelines de données entièrement mis en production avec les fonctionnalités de surveillance et des alertes.
Ingénieur DevOps (Developer Operations) Les ingénieurs DevOps développent, déploient, font évoluer et surveillent l'infrastructure d'inférence des modèles de ML. Un processus automatisé de diffusion, de surveillance, de test et d'alerte sur le comportement d'un modèle.

Pour réussir un projet de ML, il faut des équipes qui attribuent bien tous les rôles représentées. Dans les petites équipes, les individus devront gérer les responsabilités pour plusieurs rôles.

Établir les pratiques d’équipe

Étant donné que les rôles, les outils et les frameworks varient considérablement dans le domaine du ML, il est essentiel d'établir des pratiques communes une excellente documentation sur les processus. Par exemple, un ingénieur peut qu'il suffit d'obtenir les bonnes données pour commencer à entraîner un modèle, tandis qu'un ingénieur plus responsable vérifiera que l'ensemble de données est anonymisé correctement et documenter ses métadonnées et sa provenance. S’assurer que les ingénieurs partagent les définitions communes des processus et des modèles de conception réduit la confusion et augmente la vitesse de l'équipe.

Documentation des processus

Les documents de processus doivent définir les outils, l'infrastructure et les processus dont l'équipe dispose que vous utiliserez pour le développement du ML. Des documents pertinents sur les processus permettent d'aligner les nouvelles sur les nouveautés membres de l'équipe. Il doit répondre aux types de questions suivants:

  • Comment les données sont-elles générées pour le modèle ?
  • Comment examiner, valider et visualiser les données ?
  • Comment modifier une caractéristique d'entrée ou une étiquette dans les données d'entraînement ?
  • Comment personnaliser le pipeline de génération de données, d'entraînement et d'évaluation ?
  • Comment modifier l'architecture du modèle pour prendre en compte les changements d'entrée caractéristiques ou étiquettes ?
  • Comment obtenons-nous des exemples de tests ?
  • Quelles métriques utiliserons-nous pour évaluer la qualité du modèle ?
  • Comment lançons-nous nos modèles en production ?
  • Comment savoir si notre modèle présente un problème ?
  • De quels systèmes en amont nos modèles dépendent-ils ?
  • Comment rendre mon code SQL facile à gérer et réutilisable ?

Autres questions potentielles

Modèle
  • Puis-je entraîner des modèles sur différents ensembles de données au sein du même (par exemple, pour l'ajustement) ?

  • Comment ajouter un ensemble de données de test à mon pipeline ?

Entraînement
  • Comment vérifier la prédiction du modèle à partir d'un exemple artisanal ?

  • Comment trouver, examiner et visualiser des exemples de génération du modèle les erreurs ?

  • Comment déterminer quelle fonctionnalité est la plus responsable d'une action donnée la prédiction ?

  • Comment identifier les fonctionnalités qui ont le plus d'impact sur dans un échantillon donné ?

  • Comment calculer ou tracer les prédictions d'un modèle sur un ensemble de données choisi ? échantillon ?

  • Comment calculer des métriques standards pour les prédictions de mon modèle l'ensemble de données choisi ?

  • Comment développer et calculer des métriques personnalisées ?

  • Comment comparer mon modèle à d’autres modèles hors connexion ?

  • Puis-je effectuer des méta-analyses pour plusieurs évaluations de modèles en une seule fois ? de développement cloud ?

  • Puis-je comparer le modèle actuel avec celui d'il y a 10 mois ?

Mise en production, surveillance et maintenance
  • Je pense que j'ai créé un bon modèle. Comment puis-je le lancer en production ?

  • Comment vérifier que mon nouveau modèle fonctionne correctement en production ?

  • Puis-je obtenir un historique des évaluations de modèles au fil du temps ?

  • Comment savoir si le modèle présente un problème ?

  • Une page ou un bug m'a été affecté et m'ont indiqué quelque chose concernant le modèle. Que dois-je faire ?

Pipelines
  • Comment puis-je personnaliser la génération/l'entraînement/l'évaluation des données pipeline?

  • Quand et comment créer un pipeline entièrement nouveau ?

SQL
  • J'ai besoin de SQL pour générer des données. Où dois-je le placer ?

Infrastructure
  • Comment fonctionne l'inférence du modèle ? Y a-t-il un diagramme ?

  • Sur quels systèmes en amont mon modèle dépend-il au courant ?

Communication
  • Je n'arrive pas à comprendre. Qui (et comment) dois-je contacter ?

À retenir

En quoi consistent les "bonnes pratiques de ML" ? peuvent différer selon les entreprises, les équipes des personnes. Pour Par exemple, certains membres de l'équipe peuvent considérer les Colabs expérimentaux comme la principale produit livrable, tandis que d'autres voudront travailler en R. Certains pourraient avoir une passion pour en ingénierie logicielle, quelqu'un d'autre pense que la surveillance est mais quelqu'un d'autre connaît les bonnes pratiques de production des caractéristiques, souhaite utiliser Scala. Tout le monde a raison de leur propre point de vue et si est bien dirigée, le tout sera extrêmement puissant. Si ce n'est pas le cas, ce sera peut-être un gâchis.

Établir les outils, les processus et l'infrastructure que l'équipe utilisera avant l'écriture d'une ligne de code peut être la différence entre un projet défaillant deux ans ou avec succès un trimestre en avance sur le calendrier.

Évaluations des performances

En raison de l'ambiguïté et de l'incertitude inhérentes au ML, les responsables du personnel doivent définir des attentes claires et de définir les produits livrables dès le début.

Lors de la détermination des attentes et des produits livrables, réfléchissez à la façon dont ils seront évalué si un projet ou une approche n’est pas réussi. En d’autres termes, il s’agit important que les performances d'un membre de l'équipe ne soient pas directement liées la réussite du projet. Par exemple, il n'est pas rare que les membres de l'équipe passent semaines pour trouver des solutions qui n'aboutissent pas. Même dans ces leur code de haute qualité, leur documentation approfondie et leurs la collaboration doit contribuer positivement à leur évaluation.

Testez vos connaissances

Quelle est la principale raison d’avoir une excellente documentation des processus et établi des pratiques communes ?
Augmenter la vitesse des projets.
Bonne réponse. Le fait d'avoir une bonne documentation des processus et d'établir des réduit la confusion et simplifie le processus de développement.
Mettre en place les bonnes pratiques au sein d'une entreprise
Comme le développement du ML varie d'un projet à l'autre, les équipes établissent généralement leurs propres ensembles de bonnes pratiques de manière efficace et augmenter leur vitesse.
S’assurer que tous les ingénieurs de l’équipe ont le même niveau d’expertise.
Les équipes de ML disposent généralement d'ingénieurs aux compétences diverses connaissances. La documentation des processus aide les ingénieurs à s'aligner sur les bonnes pratiques pour accroître leur vitesse.