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ń
ModelCzy mogę trenować modele na różnych zbiorach danych w tym samym np. do dostrajania.
Jak dodać nowy testowy zbiór danych do potoku?
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?
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ć?
Jak mogę dostosować generowanie, trenowanie i ocenę danych w dotychczasowym potoku?
Kiedy i jak należy utworzyć zupełnie nowy potok?
Potrzebuję SQL do wygenerowania danych. Gdzie mam go umieścić?
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?
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ę.