ML-Team zusammenstellen

ML-Projekte erfordern Teams mit Mitgliedern, die eine Vielzahl von Fähigkeiten, Fachkenntnissen und Verantwortlichkeiten im Bereich maschinelles Lernen haben. Dies sind die häufigsten Rollen in typischen ML-Teams:

Rolle Wissen und Fähigkeiten Hauptergebnis
ML-Produktmanager ML-Produktmanager haben ein tiefes Verständnis der Stärken und Schwächen von ML und des ML-Entwicklungsprozesses. Sie passen Geschäftsprobleme an ML-Lösungen an, indem sie direkt mit dem ML-Team, Endnutzern und anderen Stakeholdern zusammenarbeiten. Sie entwickeln die Produktvision, definieren Anwendungsfälle und Anforderungen und planen und priorisieren Projekte. Produktanforderungsdokument (Product Requirements Document, PRD)
Engineering Manager Engineering Manager erreichen Geschäftsziele, indem sie Teamprioritäten festlegen, kommunizieren und erreichen. Wie ML-Produktmanager richten sie ML-Lösungen auf Geschäftsprobleme aus. Sie legen klare Erwartungen an die Teammitglieder fest, führen Leistungsbewertungen durch und unterstützen bei der beruflichen Entwicklung. Designdokumente, Projektpläne und Leistungsbewertungen.
Data Scientist Data Scientists verwenden quantitative und statistische Analysen, um Erkenntnisse und Informationen aus Daten zu gewinnen. Sie helfen, Funktionen zu identifizieren und zu testen, Modelle zu prototypisieren und die Interpretierbarkeit von Modellen zu verbessern. Berichte und Datenvisualisierungen, die Geschäftsfragen durch statistische Analysen beantworten.
ML-Entwickler ML-Entwickler entwerfen, erstellen, produzieren und verwalten ML-Modelle. Sie sind erfahrene Softwareentwickler mit fundierten Kenntnissen zu ML-Technologien und Best Practices. Ein bereitgestelltes Modell mit ausreichender Vorhersagequalität, um die Geschäftsziele zu erreichen.
Data Engineer Data Engineers erstellen Datenpipelines zum Speichern, Aggregieren und Verarbeiten großer Datenmengen. Sie entwickeln die Infrastruktur und Systeme zum Erheben und Umwandeln von Rohdaten in nützliche Formate für das Modelltraining und die Bereitstellung. Dateningenieure sind für die Daten im gesamten ML-Entwicklungsprozess verantwortlich. Vollständig für die Produktion optimierte Datenpipelines mit den erforderlichen Monitoring- und Benachrichtigungsfunktionen.
DevOps-Entwickler DevOps-Entwickler entwickeln, implementieren, skalieren und überwachen die Bereitstellungsinfrastruktur für ML-Modelle. Ein automatisierter Prozess zum Bereitstellen, Überwachen, Testen und Warnen bei Abweichungen des Modellverhaltens.

Erfolgreiche ML-Projekte haben Teams, in denen jede Rolle gut vertreten ist. In kleineren Teams müssen einzelne Personen die Aufgaben mehrerer Rollen übernehmen.

Teampraktiken einführen

Da die Rollen, Tools und Frameworks in der ML-Entwicklung sehr unterschiedlich sind, ist es wichtig, durch eine hervorragende Prozessdokumentation gemeinsame Praktiken zu etablieren. Ein Entwickler könnte beispielsweise der Meinung sein, dass es ausreicht, die richtigen Daten zu erhalten, um mit dem Training eines Modells zu beginnen. Ein verantwortungsbewussterer Entwickler hingegen prüft, ob der Datensatz korrekt anonymisiert ist, und dokumentiert seine Metadaten und Herkunft. Wenn Entwickler gemeinsame Definitionen für Prozesse und Designmuster verwenden, wird Verwirrung reduziert und die Geschwindigkeit des Teams erhöht.

Prozessdokumentation

In Prozessdokumenten sollten die Tools, die Infrastruktur und die Prozesse definiert werden, die das Team für die ML-Entwicklung verwenden wird. Gute Prozessdokumente helfen, neue und aktuelle Teammitglieder auf den gleichen Stand zu bringen. Sie sollten die folgenden Fragen beantworten:

  • Wie werden die Daten für das Modell generiert?
  • Wie prüfen, validieren und visualisieren wir die Daten?
  • Wie ändern wir ein Eingabemerkmal oder Label in den Trainingsdaten?
  • Wie passen wir die Pipeline für die Datengenerierung, das Training und die Bewertung an?
  • Wie ändere ich die Modellarchitektur, um Änderungen an Eingabemerkmalen oder Labels zu berücksichtigen?
  • Woher bekomme ich Testbeispiele?
  • Welche Messwerte verwenden wir, um die Modellqualität zu beurteilen?
  • Wie führen wir unsere Modelle in der Produktion ein?
  • Woher wissen wir, ob etwas mit unserem Modell nicht stimmt?
  • Von welchen vorgelagerten Systemen hängen unsere Modelle ab?
  • Wie kann ich meine SQL-Abfragen wartbar und wiederverwendbar machen?
Modell
  • Kann ich Modelle in derselben Pipeline mit verschiedenen Datasets trainieren, z. B. für die Feinabstimmung?

  • Wie füge ich meiner Pipeline einen neuen Testdatensatz hinzu?

Training
  • Wie kann ich die Vorhersage des Modells anhand eines selbst erstellten Beispiels überprüfen?

  • Wie finde, prüfe und visualisiere ich Beispiele, bei denen das Modell Fehler gemacht hat?

  • Wie finde ich heraus, welches Merkmal für eine bestimmte Vorhersage am wichtigsten war?

  • Wie finde ich heraus, welche Features in einer bestimmten Stichprobe die größten Auswirkungen auf die Vorhersagen haben?

  • Wie berechne oder zeichne ich Modellvorhersagen für einen ausgewählten Datensatz oder eine ausgewählte Stichprobe?

  • Wie berechne ich Standardmesswerte für die Vorhersagen meines Modells auf einem ausgewählten Datensatz?

  • Wie erstelle und berechne ich benutzerdefinierte Messwerte?

  • Wie kann ich mein Modell offline mit anderen Modellen vergleichen?

  • Kann ich eine Metaanalyse für mehrere Modellbewertungen in einer einzigen Entwicklungsumgebung durchführen?

  • Kann ich das aktuelle Modell mit dem von vor 10 Monaten vergleichen?

Produktion, Monitoring und Wartung
  • Ich denke, ich habe ein gutes Modell erstellt. Wie kann ich es in der Produktion starten?

  • Wie kann ich prüfen, ob mein neues Modell in der Produktion richtig ausgeführt wird?

  • Kann ich den Verlauf der Modellbewertungen im Zeitverlauf abrufen?

  • Woher weiß ich, ob etwas mit dem Modell nicht stimmt?

  • Ich wurde mit einer Seite/einem Fehler beauftragt, in dem etwas über das Modell erwähnt wird. Was soll ich tun?

Pipelines
  • Wie kann ich die Pipeline für die Datengenerierung, das Training und die Bewertung anpassen?

  • Wann und wie sollte ich eine völlig neue Pipeline erstellen?

SQL
  • Ich benötige SQL, um Daten zu generieren. Wo sollte ich es platzieren?

Infrastruktur
  • Wie funktioniert die Modellbereitstellung? Gibt es ein Diagramm?

  • Von welchen vorgelagerten Systemen hängt mein Modell ab, die ich kennen sollte?

Kommunikation
  • Ich komme nicht weiter. An wen (und wie) kann ich mich wenden?

Wichtig

Was als „Best Practices für maschinelles Lernen“ gilt, kann je nach Unternehmen, Team und Einzelperson variieren. Einige Teammitglieder halten beispielsweise experimentelle Colabs für das wichtigste Arbeitsergebnis, während andere in R arbeiten möchten. Manche haben eine Leidenschaft für Softwareentwicklung, andere sind der Meinung, dass Monitoring am wichtigsten ist, und wieder andere kennen gute Praktiken für die Produktionsbereitstellung von Funktionen, möchten aber Scala verwenden. Jeder hat aus seiner eigenen Perspektive Recht und wenn die richtigen Entscheidungen getroffen werden, wird der Mix ein echter Knaller. Andernfalls kann es unübersichtlich werden.

Die Tools, Prozesse und die Infrastruktur, die das Team verwenden wird, vor dem Schreiben einer Codezeile festzulegen, kann den Unterschied zwischen einem Scheitern des Projekts nach zwei Jahren und einer erfolgreichen Markteinführung ein Viertel vor dem Zeitplan ausmachen.

Leistungsbewertungen

Aufgrund der Unklarheiten und Unsicherheiten, die mit ML einhergehen, müssen Personalverantwortliche klare Erwartungen stellen und die zu erbringenden Leistungen frühzeitig definieren.

Berücksichtigen Sie bei der Festlegung von Erwartungen und Arbeitsergebnissen, wie sie bewertet werden, wenn ein Projekt oder Ansatz nicht erfolgreich ist. Mit anderen Worten: Es ist wichtig, dass die Leistung eines Teammitglieds nicht direkt mit dem Erfolg des Projekts zusammenhängt. Es ist beispielsweise nicht ungewöhnlich, dass Teammitglieder Wochen damit verbringen, Lösungen zu untersuchen, die letztendlich nicht erfolgreich sind. Selbst in diesen Fällen sollten hochwertiger Code, gründliche Dokumentation und effektive Zusammenarbeit positiv zur Bewertung beitragen.

Wissen testen

Was ist der Hauptgrund für eine hervorragende Prozessdokumentation und die Festlegung gemeinsamer Praktiken?
Alle Entwickler im Team sollten die gleiche Kompetenz haben.
Die Projektgeschwindigkeit erhöhen.
Best Practices für das gesamte Unternehmen festlegen