Tworzenie zespołu ML

Projekty ML wymagają zespołów z członkami o różnych umiejętnościach, wiedzy i obowiązkami związanymi z systemami uczącymi się. Oto najczęstsze z nich role występujące w typowych zespołach ML:

Rola Wiedza i umiejętności Główne do dostarczenia
Menedżer produktu ML Menedżerowie produktu ML i dobrze rozumieją jego mocne strony słabości i procesu rozwoju ML. Reagują na problemy biznesowe do rozwiązań ML dzięki współpracy z zespołem ds. systemów uczących się, użytkownikami i innych zainteresowanych osób. Ta stworzyć wizję usług, określić przypadki użycia oraz planować projekty i nadawać im priorytety. Dokument wymagań dotyczących produktu (PRD).
Menedżer ds. inżynierii Menedżerowie ds. inżynierii realizują cele biznesowe, wyznaczając, komunikując się w realizacji priorytetów zespołu. Jak ML menedżerami ds. usług, dostosowują rozwiązania ML do problemów biznesowych. Jasno określają oczekiwania wobec członków zespołu, ocenianie wyników i pomaganie w rozwoju kariery rozwoju zawodowego. Projektuj dokumenty, plany projektów i oceny wydajności.
Badacz danych Badacze danych wykorzystują analizy ilościowe i statystyczne do wyodrębniania statystyki i wartość na podstawie danych. Pomagają identyfikować i testować do tworzenia konstrukcji, tworzenia prototypów oraz wspomagania interpretowalności modeli. Raporty i wizualizacje danych, które odpowiadają na pytania biznesowe przez analizę statystyczną.
Inżynier systemów uczących się Inżynierowie ML projektują, tworzą i produkują modele systemów uczących się oraz nimi zarządzają. Są to doświadczeni inżynierowie oprogramowania, którzy dogłębnie rozumieją ML technologii i sprawdzonych metod. Wdrożony model o wystarczającej jakości prognoz, aby spełnić wymagania firmy celów.
Inżynier danych Inżynierowie danych tworzą potoki danych do przechowywania, agregacji przetwarzania dużych ilości danych. Opracowują infrastrukturę systemów zbierania i przekształcania nieprzetworzonych danych formatów przydatnych do trenowania i udostępniania modeli. Inżynierowie danych są odpowiedzialnym za dane w całym procesie programowania ML. W pełni produkowane potoki danych z niezbędnym monitorowaniem alerty.
Inżynier operacyjny deweloper (DevOps) Inżynierowie DevOps opracowują, wdrażają, skalują i monitorują infrastruktury obsługującej modele ML. Zautomatyzowany proces udostępniania, monitorowania, testowania i generowania alertów dla zachowania modelu.

Udane projekty ML mają zespoły o odpowiednich rolach reprezentowanych. W mniejszych zespołach poszczególne osoby będą musiały zająć się na wielu stanowiskach.

Opracuj zasady pracy zespołowej

Ponieważ role, narzędzia i platformy znacznie się różnią w systemach uczących się rozwoju aplikacji, kluczowe jest określenie wspólnych praktyk doskonałą dokumentację procesu. Jeden inżynier może na przykład sądzą, że do rozpoczęcia trenowania modelu wystarczy tylko zebranie odpowiednich danych. a bardziej odpowiedzialny inżynier sprawdzi, czy zbiór danych jest anonimizowany. oraz udokumentować ich metadane i pochodzenie. Dbamy o to, aby inżynierowie udostępniali treści Typowe definicje procesów i wzorców projektowych ograniczają dezorientację zwiększa szybkość drużyny.

Dokumentacja procesów

Dokumentacja procesów powinna określać narzędzia, infrastrukturę i procesy zespołu będzie używana do programowania ML. Dobra procedura dokumentów pomaga dopasować nowe i aktualne dokumenty członków zespołu. Powinien udzielać odpowiedzi na te rodzaje pytań:

  • Jak są generowane dane dla modelu?
  • Jak badamy, weryfikujemy i wizualizujemy dane?
  • Jak zmienić cechę wejściową lub etykietę w danych treningowych?
  • Jak dostosować potok generowania, trenowania i oceny?
  • Jak zmienić architekturę modelu, aby uwzględnić zmiany w danych wejściowych funkcje lub etykiety?
  • Jak uzyskujemy przykłady testów?
  • Jakich wskaźników będziemy używać do oceny jakości modelu?
  • Jak wprowadzamy nasze modele w fazie produkcyjnej?
  • Skąd dowiemy się, że coś jest nie tak z naszym modelem?
  • Od jakich systemów nadrzędnych bazują nasze modele?
  • Jak zadbać o to, aby moja baza SQL była łatwa do konserwacji i wielokrotnego użytku?

Więcej potencjalnych pytań

Model
  • Czy mogę trenować modele na różnych zbiorach danych w tym samym np. do dostrajania.

  • Jak dodać do potoku nowy testowy zbiór danych?

Szkolenie
  • Jak sprawdzić prognozę modelu na ręcznie wykonanym przykładzie?

  • Jak znaleźć, zbadać i zwizualizować przykłady, w których model błędów?

  • Jak ustalić, która funkcja odpowiadała w największym stopniu jako prognozy?

  • Jak sprawdzić, które funkcje mają największy wpływ i prognozach w danej próbce?

  • jak obliczyć prognozy modelu lub umieścić je na wykresie w wybranym zbiorze danych lub fragment?

  • Jak mogę obliczać standardowe wskaźniki dla prognoz mojego modelu w argumencie wybranego zbioru danych?

  • Jak tworzyć i obliczać dane niestandardowe?

  • Jak mogę porównać swój model z innymi modelami offline?

  • Czy mogę przeprowadzić metaanalizę wielu ocen modelu w jednej i środowisko programistyczne?

  • Czy mogę porównać obecny model z modelem sprzed 10 miesięcy?

Produkcja, monitorowanie i utrzymanie
  • Myślę, że udało mi się stworzyć dobry model. Jak mogę wprowadzić ją w wersji produkcyjnej?

  • Jak sprawdzić, czy mój nowy model poprawnie działa w środowisku produkcyjnym?

  • Czy mogę pobrać historię ocen modelu na przestrzeni czasu?

  • Skąd będę wiedzieć, że coś jest nie tak z modelem?

  • Przypisano mi stronę lub błąd, które zawierają wzmiankę o tym modelu. Co mam zrobić?

Potoki
  • Jak mogę dostosować generowanie, trenowanie i ocenę danych w potoku?

  • Kiedy i jak należy utworzyć zupełnie nowy potok?

SQL
  • Potrzebuję SQL do wygenerowania danych. Gdzie go umieścić?

Infrastruktura
  • Jak działa udostępnianie modeli? Czy jest schemat?

  • Od jakich systemów nadrzędnych zależy mój model wie?

Komunikacja
  • Nie mogę nic znaleźć. Z kim (i jak) mogę się skontaktować?

Pamiętaj

Co uznajemy za „sprawdzone metody ML” mogą różnić się w zależności od firmy, zespołu osób fizycznych. Dla: np. niektórzy członkowie zespołu mogą traktować eksperymentalne Colab jako główną a inni – w języku R. Niektórzy mogą być pasjonatami z inżynierią oprogramowania, ktoś inny uważa, że monitorowanie jest najważniejsze, jednak ktoś zna sprawdzone metody produkcji funkcji, chce korzystać z usługi Scala. Wszyscy mają rację z własnej perspektywy będzie nieźle sterowany, to prawdziwa mieszanka. Jeśli nie, może to być problem.

Opracowanie narzędzi, procesów i infrastruktury, z których zespół będzie korzystał przed napisanie wiersza kodu może być różnicą między awarią projektu po 2 lata lub z powodzeniem rozpoczęcie działalności z wyprzedzeniem kwartalnym.

Oceny wydajności

Ze względu na niejasność i niepewność nieodłączną w systemach uczących się menedżerowie muszą określić, jasno określić oczekiwania i z wyprzedzeniem określić materiały do dostarczenia.

Podczas określania oczekiwań i realizacji zadań zastanów się, jak będą one podjętych działań w celu oceny skuteczności projektu lub metody. Innymi słowy, ważne, aby wyniki członka zespołu nie były bezpośrednio powiązane dla sukcesu projektu. Na przykład członkowie zespołu często wydają Analizując rozwiązania, które ostatecznie nie przyniosły spodziewanego rezultatu. Nawet w tych wysokiej jakości kod, szczegółową dokumentację i skuteczne współpraca powinna pozytywnie wpływać na ocenę.

Sprawdź swoją wiedzę

Jaki jest główny powód, dla którego warto mieć doskonałą dokumentację procesową? i wdrażania wspólnych praktyk?
Zwiększ szybkość projektu.
Dobra odpowiedź. Dobra dokumentacja procesów i ustalenie wspólnych a także usprawniają proces opracowywania rozwiązań.
Opracować sprawdzone metody w całej firmie
Rozwój ML różni się w zależności od projektu, zespoły zwykle opracowują własne sprawdzone metody i zwiększają ich prędkość.
Zadbaj o to, aby wszyscy inżynierowie w zespole mieli taką samą wiedzę.
Zespoły systemów uczących się zwykle mają inżynierów o różnych umiejętnościach wiedzę. Dokumentacja procesów pomaga inżynierom połączyć sprawdzone metody aby zwiększyć ich prędkość.