ML-Team zusammenstellen

ML-Projekte erfordern Teams mit Mitgliedern, die über eine Reihe von Fähigkeiten, und Verantwortlichkeiten im Zusammenhang mit maschinellem Lernen. Dies sind die häufigsten Rollen in typischen ML-Teams:

Rolle Wissen und Fähigkeiten Hauptliefergegenstand
ML-Produktmanager ML-Produktmanager haben ein tiefes Verständnis der Stärken und Schwächen und den ML-Entwicklungsprozess. Sie stimmen geschäftliche Probleme durch Zusammenarbeit mit dem ML-Team, den Endnutzern, und andere Stakeholder. Sie die Produktvision erstellen, Anwendungsfälle und und Projekte planen und priorisieren. Produktanforderungsdokument (PRD).
Technischer Manager Engineering-Manager erreichen Geschäftsziele, indem sie Teamprioritäten zu erreichen. Ähnlich wie ML Produktmanagern, die ML-Lösungen auf Geschäftsprobleme ausrichten. Sie legt klare Erwartungen an die Teammitglieder, Leistungsbewertungen durchführen und bei der Karriere und beruflichen Weiterbildung. Entwerfen Sie Dokumente, Projektpläne und Leistungsbewertungen.
Data Scientist Data Scientists nutzen quantitative und statistische Analysen, und den Nutzen aus Daten zu gewinnen. Sie helfen dabei, Funktionen, Prototypenmodellen und die Interpretierbarkeit von Modellen. Berichte und Datenvisualisierungen, die geschäftliche Fragen beantworten durch statistische Analysen.
ML-Entwickler ML-Entwickler entwerfen, erstellen, implementieren und verwalten ML-Modelle. Sie sind ausgebildete Softwareentwickler mit einem umfassenden ML-Verständnis Technologien und Best Practices. Bereitstellung des Modells mit ausreichender Vorhersagequalität, um den Anforderungen des Unternehmens gerecht zu werden Zielvorhaben.
Data Engineer Data Engineers erstellen Datenpipelines zum Speichern, Aggregieren und große Datenmengen zu verarbeiten. Sie entwickeln die Infrastruktur und zum Erfassen und Umwandeln von Rohdaten nützliche Formate zum Trainieren und Bereitstellen von Modellen. Data Engineers sind im gesamten ML-Entwicklungsprozess für die Daten verantwortlich. Vollständig produktivisierte Datenpipelines mit dem notwendigen Monitoring und Benachrichtigungen.
Developer Operations (DevOps) DevOps-Entwickler entwickeln, bereitstellen, skalieren und überwachen die Bereitstellungsinfrastruktur für ML-Modelle. Automatisierter Prozess zum Bereitstellen, Überwachen, Testen und Melden von das Verhalten eines Modells.

Bei erfolgreichen ML-Projekten gibt es Teams, die die jeweilige Rolle gut beherrschen. repräsentiert werden. In kleineren Teams müssen Einzelpersonen Verantwortlichkeiten für mehrere Rollen.

Teampraktiken festlegen

Weil sich die Rollen, Tools und Frameworks in ML stark unterscheiden Entwicklung haben, ist es wichtig, eine hervorragende Prozessdokumentation. Ein Engineering-Team könnte z. B. dass die richtigen Daten ausreichen, um mit dem Training eines Modells zu beginnen. während ein verantwortungsbewussteres Engineering-Team validiert, dass das Dataset anonymisiert ist. und ihre Metadaten und Herkunft dokumentieren. Dafür sorgen, dass Entwickler gemeinsame Definitionen von Prozessen und Designmustern, die Geschwindigkeit des Teams erhöht.

Prozessdokumentation

Prozessdokumente sollten die Tools, die Infrastruktur und die Prozesse des Teams definieren die für die ML-Entwicklung verwendet werden. Gute Prozessdokumente helfen dabei, neue und aktuelle Teammitgliedern. Sie sollten die folgenden Arten von Fragen beantworten:

  • Wie werden die Daten für das Modell generiert?
  • Wie untersuchen, validieren und visualisieren wir die Daten?
  • Wie ändern wir ein Eingabefeature oder ein Label in den Trainingsdaten?
  • Wie passen wir die Pipeline für Datengenerierung, -training und -bewertung an?
  • Wie ändere ich die Modellarchitektur, um Änderungen in der Eingabe zu berücksichtigen? Funktionen oder Beschriftungen?
  • Wie erhalten wir Testbeispiele?
  • Welche Metriken verwenden wir, um die Modellqualität zu beurteilen?
  • Wie bringen wir unsere Modelle in die Produktion?
  • Woher wissen wir, dass mit unserem Modell etwas nicht stimmt?
  • Von welchen vorgelagerten Systemen sind unsere Modelle abhängig?
  • Wie mache ich mein SQL wartbar und wiederverwendbar?

Weitere mögliche Fragen

Modell
  • Kann ich Modelle anhand verschiedener Datasets im selben z. B. für die Abstimmung?

  • Wie füge ich meiner Pipeline ein neues Test-Dataset hinzu?

Schulungen
  • Wie überprüfe ich die Vorhersage des Modells an einem handgefertigten Beispiel?

  • Wie kann ich Beispiele finden, untersuchen und visualisieren, in denen das Modell erstellt wurde Fehler?

  • Wie finde ich heraus, welche Funktion am meisten für eine bestimmte Vervollständigung?

  • Woher weiß ich, welche Funktionen den größten Einfluss Vorhersagen innerhalb einer bestimmten Stichprobe?

  • Wie kann ich Modellvorhersagen für ein ausgewähltes Dataset berechnen oder Probe?

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

  • Wie entwickle und berechne ich benutzerdefinierte Messwerte?

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

  • Kann ich Metaanalysen für mehrere Modellbewertungen in einem einzigen Entwicklungsumgebung?

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

Produktion, Monitoring und Wartung
  • Ich glaube, ich habe ein gutes Modell erstellt. Wie kann ich es in der Produktion veröffentlichen?

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

  • Kann ich den Verlauf der Modellbewertungen im Zeitverlauf abrufen?

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

  • Mir wurde eine Seite/ein Fehler zugewiesen, in dem etwas über das Modell erwähnt wird. Was soll ich tun?

Pipelines
  • Wie könnte ich die Datengenerierung/-training/-auswertung anpassen? Pipeline?

  • Wann und wie sollte ich eine komplett neue Pipeline erstellen?

SQL
  • Ich brauche SQL, um Daten zu generieren. Wo soll ich ihn platzieren?

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

  • Von welchen vorgelagerten Systemen ist mein Modell abhängig, die Sie kennen?

Kommunikation
  • Ich verstehe irgendetwas nicht. An wen und wie kann ich mich wenden?

Wichtig

Was sind die „Best Practices für ML“? zwischen Unternehmen, Teams und Personen. Für Einige Teammitglieder könnten beispielsweise experimentelle Colabs als Hauptbestandteil während andere in R arbeiten wollen. Manche haben eine Leidenschaft für Softwareentwicklung hält jemand anderes für das Monitoring aber jemand anders kennt gute Praktiken zur Produktion von Funktionen, möchte Scala verwenden. Alle haben „richtig“ aus ihrer eigenen Perspektive betrachten richtig gesteuert wird, ist die Mischung ein Kraftwerk. Wenn nicht, könnte es ein Chaos sein.

Festlegung der Tools, Prozesse und Infrastrukturen, die das Team vorher verwenden wird Das Schreiben einer Codezeile kann dafür sorgen, dass ein Projekt nach einer oder ein Quartal früher als geplant gestartet werden.

Leistungsbewertungen

Aufgrund der Ambiguität und Unsicherheit, die ML mit sich bringt, müssen Personalverantwortliche klare Erwartungen zu definieren und Liefergegenstände frühzeitig zu definieren.

Überlegen Sie bei der Bestimmung von Erwartungen und Liefergegenständen, wie diese wenn ein Projekt oder Ansatz nicht erfolgreich ist. Mit anderen Worten, es ist dass die Leistung eines Teammitglieds nicht direkt mit dem des Projekts messen. So ist es beispielsweise nicht ungewöhnlich, dass Teammitglieder Wochen, um Lösungen zu untersuchen, die letztendlich erfolglos sind. Selbst in diesen die Fälle, ihren hochwertigen Code, ihre ausführliche Dokumentation und sollte die Zusammenarbeit positiv zu ihrer Bewertung beitragen.

Wissenstest

Was ist der Hauptgrund für eine hervorragende Prozessdokumentation und gängige Praktiken zu etablieren?
Die Projektgeschwindigkeit erhöhen
Korrekt. Eine gute Prozessdokumentation und die führt zu weniger Missverständnissen und zur Optimierung des Entwicklungsprozesses.
Best Practices im gesamten Unternehmen etablieren
Da sich die ML-Entwicklung von Projekt zu Projekt unterscheidet, Teams entwickeln in der Regel ihre eigenen Best Practices, und ihre Geschwindigkeit zu erhöhen.
Sicherstellen, dass alle Entwickelnden im Team über das gleiche Fachwissen verfügen
ML-Teams haben in der Regel Entwickelnde mit einer Vielzahl von Fähigkeiten und Wissen. Prozessdokumentation hilft Engineers, Best Practices festzulegen um sie zu beschleunigen.