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 stimmen geschäftliche Probleme bis hin zu ML-Lösungen durch direkte Zusammenarbeit mit dem ML-Team, den Endnutzern und andere Stakeholder. Sie entwickeln die Produktvision, definieren Anwendungsfälle und Anforderungen und planen und priorisieren Projekte. |
Produktanforderungsdokument (Product Requirements Document, PRD) |
Technischer 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 formulieren klare Erwartungen an die Teammitglieder, führen Leistungsbewertungen durch und unterstützen bei der beruflichen Entwicklung. |
Designdokumente, Projektpläne und Leistungsbewertungen. |
Data Scientist | Data Scientists nutzen quantitative und statistische Analysen, und den Nutzen 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ä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 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. 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, 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 Einzelpersonen Verantwortlichkeiten für mehrere Rollen.
Teampraktiken einführen
Weil sich die Rollen, Tools und Frameworks in ML stark unterscheiden Entwicklung haben, ist es wichtig, eine erstklassige Prozessdokumentation. 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 Arten von Fragen beantworten:
- Wie werden die Daten für das Modell generiert?
- Wie prüfen, 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 an Eingabemerkmalen oder Labels zu berücksichtigen?
- Wie erhalten wir Testbeispiele?
- Welche Messwerte verwenden wir, um die Modellqualität zu beurteilen?
- Wie führen wir unsere Modelle in der Produktion ein?
- Woher wissen wir, dass mit unserem Modell etwas nicht stimmt?
- Von welchen vorgelagerten Systemen sind unsere Modelle abhängig?
- Wie kann ich meine SQL-Abfragen wartbar und wiederverwendbar machen?
Weitere mögliche Fragen
ModellKann ich Modelle in derselben Pipeline mit verschiedenen Datasets trainieren, z. B. für die Feinabstimmung?
Wie füge ich meiner Pipeline ein neues Test-Dataset hinzu?
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 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ä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 zehn Monaten vergleichen?
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?
Wie könnte ich die Datengenerierung/-training/-auswertung anpassen? Pipeline?
Wann und wie sollte ich eine völlig neue Pipeline erstellen?
Ich benötige SQL, um Daten zu generieren. Wo sollte ich es platzieren?
Wie funktioniert die Modellbereitstellung? Gibt es ein Diagramm?
Von welchen vorgelagerten Systemen hängt mein Modell ab, die ich kennen sollte?
Ich verstehe irgendetwas nicht. 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. 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 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 die Fälle, ihren hochwertigen Code, ihre ausführliche Dokumentation und sollte die Zusammenarbeit positiv zu ihrer Bewertung beitragen.