Uczenie maszynowe w projekcie - jak wygląda współpraca ze specjalistami ML?

AI & ML
21.12.23

Wstęp

Zdefiniowanie problemu to najistotniejszy moment w procesie tworzenia aplikacji opartej na uczeniu maszynowym (machine learning). Aby móc stworzyć funkcjonalne oprogramowanie, musimy określić, co jest problemem do rozwiązania oraz jak mierzyć sukces (bądź jego brak) opracowanej aplikacji w jego rozwiązywaniu.

Inżynierowie zespołu machine learning, którzy będą pracowali przy tworzeniu modelu, muszą w pierwszej kolejności zrozumieć istotę problemu. Co za tym idzie, konieczna jest obecność osoby pełniącej rolę eksperta w danej dziedzinie, rozumiejącej istotę problemu i sposobu, w jaki model może pomóc w jego rozwiązaniu. Osoba ta uczestniczy w pracy zespołu, dba o jakość przekazywanej wiedzy oraz odpowiada na pytania pojawiające się w trakcie prac.

To ML or not to ML

Przed rozpoczęciem jakichkolwiek prac nad modelem, warto przeanalizować, czy to właśnie uczenie maszynowe jest odpowiednim narzędziem do rozwiązania problemu. Oto kilka aspektów machine learning, o których warto pamiętać, dobierając metodologię.

1. Niemożliwe jest wytrenowanie dobrego modelu bez dużej ilości danych o wysokiej jakości.

Co to znaczy, “duża ilość”? To zależy zarówno od problemu jak i od algorytmu. Nie istnieje złota zasada umożliwiająca podanie tej liczby. Posłużmy się jednak przykładem: uczenie modelu klasyfikacji obrazu wymaga danych o liczebności rzędu dziesiątek tysięcy.

Z kolei przez wysoką jakość rozumie się dane o takiej dystrybucji, która precyzyjnie i w sposób pełny odwzorowuje modelowane zjawisko.

2. Nie warto używać ML do rozwiązywania prostych problemów.
Niektóre problemy nie wymagają zastosowania uczenia maszynowego. Sprawdza się ono w przypadku znajdowania złożonych i nie zawsze oczywistych zależności. Jeśli istnieje prostsze, deterministyczne (rule-based) rozwiązanie, które daje wyniki zbliżone do rozwiązania ML, zdecydowanie lepiej jest przy nim pozostać.

Powyższe kwestie powinny zostać przedyskutowane.

Praca z modelami uczenia maszynowego – wyzwania

87% projektów machine learning nigdy nie trafia na produkcję.

Warto przeczytać powyższe zdanie jeszcze raz, bo dość dobrze pokazuje, że projekty angażujące uczenie maszynowe obarczone są większym ryzykiem. Należy mieć to na względzie od samego początku, żeby zminimalizować prawdopodobieństwo zakwalifikowania się do tych 87%.

Dlaczego tak jest?
Przede wszystkim trzeba zrozumieć, że proces tworzenia rozwiązań ML znacznie różni się od typowego procesu rozwoju oprogramowania. Znacznie trudniej jest wydzielić kamienie milowe projektu i przewidzieć czas potrzebny na konkretne zadanie. Ma to związek z naukowo-badawczą naturą pracy z danymi. Osobom przyzwyczajonym do pracy w technikach takich jak SCRUM może wydawać się, że projekt nie posuwa się do przodu. Pamiętajmy jednak, że to po prostu charakterystyka tej dziedziny.

Inną “charakterystyką” uczenia maszynowego (wynikającą z jego badawczej natury) jest niemożność przewidzenia, jak dobrze model może zostać wytrenowany. Zbyt dużo czynników wpływa na proces treningu, aby mieć stuprocentową pewność, że model będzie zwracał pożądane wyniki. Przed rozpoczęciem jakichkolwiek prac należy ustalić the definition of done (dod), w której za porozumieniem obu stron określone zostaną minimalne oczekiwania dotyczące efektywności modelu będącego wynikiem prac zespołu ML.

medicine_2_the_cooperation_between_an_IT_team_and_a_specialist

Jakich materiałów potrzebujemy, oraz jak przygotować dane?

Zakres potrzebnych materiałów i sposób ich przygotowania zależy od problemu, który próbujemy rozwiązać. Najlepiej zacząć od jego przedstawienia i prezentacji posiadanych danych, a także (w zależności od stopnia poufności) przekazania reprezentatywnej próbki danych zespołowi ML celem ich wstępnej oceny i analizy.

Dobrym pomysłem jest również zorganizowanie przez klienta warsztatów wprowadzających w tematykę projektową i, w miarę możliwości (o ile takie były), rozwiązań dotychczas wypróbowanych przez klienta. Takie warsztaty dają członkom zespołu ML możliwość zadawania pytań i dogłębnego zrozumienia problemu, co jest niezbędnym elementem pracy nad jakimkolwiek rozwiązaniem ML.

Współpraca podczas tworzenia modelu

Podstawowym warunkiem owocnej współpracy jest opisane wyżej zrozumienie charakterystyki projektów angażujących uczenie maszynowe. Dobrze jest przed rozpoczęciem prac zorganizować spotkanie lidera teamu ML i właściciela produktu (ang. product owner, PO), na którym omówione zostaną oczekiwania i dotychczasowe doświadczenia obu stron. Tak wypracowane rozwiązanie zapewni najbardziej optymalne rozwiązanie.

Prezentacja wyników, omówienie dalszego kierunku rozwoju modeli

Po opracowaniu i wytrenowaniu modelu (zgodnie z ustaleniami dod) przygotowana zostanie prezentacja jego działania, osiąganych przez niego wyników oraz potencjalnych dalszych prac nad jego rozwojem. Może okazać się, że działanie modelu da się jeszcze w jakiś sposób ulepszyć, mimo iż spełnia on ustalone kryteria. A może uczenie maszynowe pomoże w rozwiązaniu innych problemów klienta?

Przekazanie wyniku końcowego, szkolenie i wsparcie odbiorcy

Wynikiem prac zespołu będzie model machine learning, opakowany w odrębną aplikację bądź zaimplementowany do istniejącego wewnętrznego systemu klienta, oraz dokumentacja. W zależności od charakterystyki dziedziny/danych, konieczne może okazać się okresowe douczanie modelu w celu zapewnienia rzetelności wyników przez niego generowanych. W takim przypadku zorganizowane zostaną warsztaty dla osób pracujących z aplikacją/systemem.

Sztuczna inteligencja, a w szczególności uczenie maszynowe, mają ogromny potencjał w kontekście rozwiązywania kompleksowych problemów. Aby jednak taki projekt się powiódł, trzeba odpowiednio go zaplanować i dogłębnie zrozumieć rozwiązywany problem. Nasi specjaliści na co dzień wspierają w tym klientów biznesowych. Tutaj przeczytasz np. jak rozwiązaliśmy problem kolejek do specjalistów, wykorzystując właśnie machine learning.

Jeśli chcesz przeczytać więcej o tym, jak można wykorzystywać uczenie maszynowe w biznesie, zapraszamy do dalszej lektury naszego bloga!