Tworzenie zespołu ML

Projekty dotyczące uczenia maszynowego wymagają zespołów, których członkowie mają różne umiejętności, doświadczenie i obowiązki związane z uczeniem maszynowym. Oto najczęstsze z nich role występujące w typowych zespołach ML:

Rola Wiedza i umiejętności Główny rezultat
Menedżer produktu ML Menedżerowie produktu ML i dobrze rozumieją mocne strony systemów uczących się słabości i procesu rozwoju ML. Reagują na problemy biznesowe do rozwiązań ML dzięki bezpośredniej współpracy z zespołem ds. systemów uczących się, użytkownikami i innych zainteresowanych osób. Tworzą oni wizję produktu, definiują przypadki użycia i wymagania oraz planują projekty i nadają im priorytety. Dokument wymagań dotyczących produktu (PRD).
Menedżer ds. inżynierii Menedżerowie ds. inżynierii osiągają cele biznesowe, ustalając priorytety zespołu, komunikując je i realizując je. Jak ML menedżerami ds. usług, dostosowują rozwiązania ML do problemów biznesowych. określają jasne oczekiwania wobec członków zespołu, przeprowadzają oceny wyników i pomagają w rozwoju zawodowym. dokumenty projektowe, plany projektów i oceny wyników.
badacz danych, Badacze danych wykorzystują analizy ilościowe i statystyczne do wyodrębniania statystyki i wartość na podstawie danych. Pomagają identyfikować i testować cechy, prototypować modele oraz zwiększać interpretowalność modeli. raporty i wizualizacje danych, które odpowiadają na pytania biznesowe za pomocą analizy statystycznej;
Inżynier systemów uczących się Inżynierowie ML projektują, tworzą i produkują modele systemów uczących się oraz nimi zarządzają. To doświadczeni inżynierowie oprogramowania, którzy dobrze znają technologie i sprawdzone metody związane z systemami uczącymi się. 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 odpowiadają za dane w całym procesie tworzenia systemów uczących się. w pełni produkcyjne potoki danych z niezbędnym monitorowaniem i ostrzeganiem.
Inżynier ds. obsługi programistów (DevOps) Inżynierowie DevOps opracowują, wdrażają, skalują i monitorują infrastrukturę służącą do obsługi modeli ML. Automatyczny proces obsługi, monitorowania, testowania i ostrzegania o zachowaniu modelu.

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

Opracuj zasady postępowania zespołowego

Ponieważ role, narzędzia i ramy są bardzo zróżnicowane w rozwoju ML, ważne jest, aby ustalić wspólne praktyki poprzez doskonałą dokumentację procesów. 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. Upewnij się, że inżynierowie używają wspólnych definicji procesów i wzorców projektowych. Pomoże to uniknąć nieporozumień i zwiększy wydajność zespołu.

Dokumentacja procesów

Dokumentacja procesów powinna określać narzędzia, infrastrukturę i procesy zespołu będzie używana do programowania ML. Dobre dokumenty z procedurami pomagają dostosować się do nich nowym i obecnym członkom zespołu. Powinny one odpowiadać na te typy pytań:

  • Jak są generowane dane dla modelu?
  • Jak badamy, weryfikujemy i wizualizujemy dane?
  • Jak zmodyfikować cechę wejściową lub etykietę w danych treningowych?
  • Jak dostosowujemy łańcuch generowania danych, trenowania i oceny?
  • Jak zmienić architekturę modelu, aby uwzględnić zmiany w wprowadzanych cechach lub etykietach?
  • Jak uzyskać przykłady testów?
  • Jakich wskaźników będziemy używać do oceny jakości modelu?
  • Jak wdrażamy modele w produkcji?
  • 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ć nowy testowy zbiór danych do potoku?

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

  • Jak znaleźć, sprawdzić i wizualizować przykłady, w których model popełnił błędy?

  • Jak ustalić, która funkcja była najbardziej odpowiedzialna 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 przykład?

  • Jak obliczyć standardowe dane dla prognoz modelu na wybranym zbiorze danych?

  • Jak tworzyć i obliczać dane niestandardowe?

  • Jak porównać mój model z innymi modelami offline?

  • Czy mogę przeprowadzić metaanalizę w przypadku wielu ocen modeli w jednym środowisku programistycznym?

  • 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 nowy model działa prawidłowo w produkcji?

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

  • Jak dowiem się, że coś jest nie tak z modelem?

  • Przypisano mi stronę lub błąd, w których opisie jest coś na temat modelu. Co mam zrobić?

Przepływy
  • Jak mogę dostosować generowanie, trenowanie i ocenę danych w dotychczasowym potoku?

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

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

Infrastruktura
  • Jak działa udostępnianie modeli? Czy masz diagram?

  • Od jakich systemów zewnętrznych zależy mój model i co powinienem wiedzieć na ich temat?

. Komunikacja
  • Nie mogę czegoś zrozumieć. 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. Każdy ma „rację” ze swojej perspektywy, a jeśli wszystko pójdzie zgodnie z planem, mix będzie potężny. Jeśli nie, może to być problem.

Wybór narzędzi, procesów i infrastruktury, których zespół będzie używać przed napisaniem choćby jednego wiersza kodu, może przesądzić o tym, czy projekt zakończy się niepowodzeniem po 2 latach, czy też zostanie uruchomiony przed czasem.

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. Inaczej mówiąc, ważne jest, aby wyniki członka zespołu nie były bezpośrednio powiązane z sukcesem projektu. Na przykład członkowie zespołu często spędzają tygodnie na badaniu rozwiązań, które ostatecznie okazują się nieskuteczne. Nawet w takich przypadkach ich wysoka jakość kodu, rzetelna dokumentacja i skuteczna współpraca powinny 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ększenie szybkości realizacji 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ę.
Zespół ds. systemów uczących się składa się zwykle z inżynierów o różnych umiejętnościach i wiedzy. Dokumentacja procesów pomaga inżynierom w dopasowywaniu się do najlepszych praktyk, aby zwiększać szybkość pracy.