CDOPolecane tematy

Jak zbudować skuteczne rozwiązanie, bazujące na Machine Learning?

Rozwiązania oparte o sztuczną inteligencję i uczenie maszynowe są wykorzystywane w wielu dziedzinach życia. Każdy z nas ma styczność z rekomendacjami w sklepach internetowych i serwisach streamingowych czy z aplikacjami do rozpoznawania obrazu. Technologie te obecne są w biznesie, przemyśle, logistyce czy medycynie. Z roku na rok lista zastosowań się tylko rozszerza. Firmy zaczynają dostrzegać przewagę, którą mogą osiągnąć dzięki wykorzystaniu modeli uczenia maszynowego – Machine Learning.

Jak zbudować skuteczne rozwiązanie, bazujące na Machine Learning?

Dzięki rozwiązaniom z obszaru Big Data oraz dostępowi do taniej mocy obliczeniowej, systemy oparte o Machine Learning znajdują coraz szersze zastosowania. Według raportu IDC, globalne przychody z rynku sztucznej inteligencji osiągną w tym roku poziom 432 mld USD! Jednocześnie raport Gartnera z 2021 pokazuje, że aż 85% projektów ML ponosi porażkę. Co jest tego powodem i jak firmy mogą zwiększyć szanse na sukces?

Na wstępie warto wyjaśnić, czym jest Machine Learning. To pojęcie z zakresu sztucznej inteligencji, które dotyczy tworzenia rozwiązań odwzorowujących pewien wąski – dobrze zdefiniowany – problem. Polega to na zaprogramowaniu systemu czy komputera w taki sposób, aby wiedział, jak uczyć się danych i doskonalić jego działanie w miarę zdobywania doświadczenia. Procesy te nie są jednak zaprogramowane.

Algorytmy, o które oparte są modele w Machine Learning są trenowane za pomocą danych pod kątem znajdywania wzorców i korelacji w zbiorach danych, a następnie aby przeprowadzić ich analizę i podjąć najlepsze możliwe decyzje. Przyjęto się mówić, że każde zadanie, które człowiek jest w stanie wykonać w ciągu kilku sekund, może zostać wykonane również przez model ML. Jest to nic innego jak matematyczna próba reprezentacji danego problemu, często takiego, którego nie da się rozwiązać bez posiadania wiedzy eksperckiej.

Typy algorytmów Machine Learning

Istnieją modele oparte o uczenie nadzorowane (uczące się na danych, gdzie końcowy wynik jest znany) oraz uczenie nienadzorowane, gdzie model grupuje dane na bazie podobieństw pomiędzy nimi. Przykładem uczenia nadzorowanego jest klasyfikacja obrazów medycznych. Na bazie pojedynczego zdjęcia np. stawu skokowego, model ten jest w stanie stwierdzić, czy noga jest skręcona czy zwichnięta. Z kolei uczenie nadzorowane to m.in. wspomniane już rekomendacje produktów, piosenek czy seriali, które są tworzone na podstawie badania wcześniejszych reakcji i zachowań użytkownika.

Istnieją modele algorytmów ML oparte o uczenie nadzorowane i nienadzorowane, gdzie model grupuje dane na bazie podobieństw. Przykładem uczenia nadzorowanego jest klasyfikacja obrazów medycznych. Na bazie pojedynczego zdjęcia np. stawu skokowego, model ten jest w stanie stwierdzić, czy noga jest skręcona czy zwichnięta. Z kolei uczenie nadzorowane to m.in. wspomniane już rekomendacje produktów, piosenek czy seriali.

ML to dziedzina bardzo eksperymentalna, wymagająca wiele pracy w celu osiągniecia zadowalających wyników. Proces tworzenia modelu jest bardzo złożony i często niestety nie prowadzi do uzyskania oczekiwanego rezultatu. Jak wspomniałem na początku, większość projektów z dziedziny sztucznej inteligencji kończy się fiaskiem, co wynika z jednego lub większej liczby błędów, jakie są popełniane na etapie jego projektowania lub wdrożenia.

Błędy w projektowaniu modeli uczenia maszynowego

1. Pierwszym z nich jest dobór niewłaściwych danych

Modele uczenia maszynowego mogą być tylko tak dobre, jak dane, za pomocą których były trenowane. Jednym z efektów cyfrowej transformacji są bardzo obszerne zbiory informacji, w jakich posiadanie weszły organizacje. Często zachodzi wtedy pokusa, aby wykorzystać je właśnie w uczeniu maszynowym, „bo przecież nadają się one do tego idealnie”.

Niestety, jeżeli dane nie są odpowiednio przygotowane do wykorzystania w trakcie trenowania modelu, nie ma to większego sensu. Wszelkie błędy w zbiorach wyjściowych zostaną odwzorowane w tworzonym rozwiązaniu. Im więcej przykładów jesteśmy w stanie wykorzystać w procesie trenowania, tym wyższego poziomu dokładności i generalizacji możemy oczekiwać później. Dla małej liczby rekordów nie uda nam się stworzyć skutecznego rozwiązania. Wybór odpowiednich danych to sztuka sama w sobie, dlatego tak ważna jest koncentracja tym etapie od samego początku.

2. Próba rozwiązywania losowych problemów

Firmy, które zaczynają przygodę z uczeniem maszynowym, często chcą od razu być pionierami w działaniu i szukają w organizacji procesów, który mogą zautomatyzować. Zazwyczaj wynika to z braku doświadczenia i chęci stworzenia czegoś wyjątkowego. Tego typu projekty mogą trwać wiele tygodni, a nawet i miesięcy, zależnie od stopnia skomplikowania i liczby przeprowadzonych eksperymentów.

W takiej sytuacji często źle zdefiniowane zostają kryteria sukcesu. W celu odpowiedniej definicji należy dobrać metryki, które pozwolą nam ocenić wartość modelu, dla problemu który rozwiązujemy. Przykładem najpopularniejszych metryk jest precyzja i czułość. Metryki te oparte są na macierzy wyników klas 1 (prawdziwych) i 0 (fałszywych), gdzie podajemy oczekiwane wartości końcowe oraz wyprodukowane przez model.

Efektywne wdrożenie rozwiązań z zakresu Machine Learning najczęściej wymagają przyjęcia odpowiedniego podejścia do tego procesu. W celu uskutecznienia całego działania oraz jego optymalizacji stworzona została kultura MLOps. Słowo to powstało z połączenia zestawu praktyk programistycznych DevOps oraz Machine Learning. Celem tej metodyki jest ułatwienie wdrożeń i późniejszego utrzymania rozwiązań opartych o uczenie maszynowe oraz wsparcie automatyzacji w całym cyklu życia modelu.

Precyzja mówi nam jak wiele wyników zostało odpowiednio sklasyfikowanych, czułość z kolei, ile rzeczywistych prawdziwych wyników było wśród tych określonych przez model. Zebrane razem dają nam więc informacje jak dobrze radzi sobie model. W momencie, w którym nie wykorzystujemy metryk, sprawdzamy wyniki ręcznie i bardzo ciężko mówić o powodzeniu lub niepowodzeniu projektu. Bardzo istotne jest więc ich zdefiniowane oraz ustalenie, które z metryk dany model musi spełniać. Końcowym etapem jest ewaluacja na ich podstawie.

3. Wdrożenie i wykorzystanie rozwiązań ML

Zespoły pracujące nad modelami niejednokrotnie funkcjonują niezależnie od innych działów firmy i tworzą rozwiązania, które teoretycznie mają pomóc w funkcjonowaniu biznesu, jednak zapominają o uwzględnieniu realnych potrzeb innych zespołów. W takiej sytuacji może okazać się, że model nie spełnia wymogów zespołu odpowiedzialnego za jego wdrożenie, bo czas działania modelu jest niedostosowany do potrzeb aplikacji albo API nie jest zgodne z dokumentacją czy ustaleniami.

Skalowanie rozwiązań ML jest naprawdę trudnym zagadnieniem. Większość tych w fazie Proof of Concept tworzone jest z myślą o jak najwyższej dokładności modelu i wiele z nich nie radzi sobie później w codziennym wykorzystaniu lub szybko traci początkową wartość. Wynika to ze zmiany natury danych oraz samego modelu w czasie.

Wydarzenia takie, jak wybuch pandemii, czy wojna zmieniają zachowanie ludzi, a co za tym idzie model wytrenowany na danych z wcześniejszego okresu nie będzie sobie z nimi dobrze radził. Może to prowadzić do problemów z aplikacją, albo nawet do podejmowania błędnych decyzji biznesowych.

Jak radzić sobie z wyzwaniami w projektowaniu modeli?

W przypadku dwóch pierwszych sytuacji, czyli nieprawidłowego doboru danych oraz wyboru zagadnienia, jakie ma być rozwiązane przy wykorzystaniu modelu ML, receptą może być współpraca z wyspecjalizowanym zespołem w tym obszarze lub zdobywanie kompetencji i doświadczenia oraz eksperymentowanie. To jednak proces długotrwały i obarczony błędami, które zwykle wydłuża proces tworzenia i generuje koszty.

Efektywne wdrożenie rozwiązań z zakresu Machine Learning, odpowiadające na ostatnie z wymienionych wyzwań, najczęściej wymagają przyjęcia odpowiedniego podejścia do tego procesu. W celu uskutecznienia całego działania oraz jego optymalizacji stworzona została kultura MLOps. Słowo to powstało z połączenia zestawu praktyk programistycznych DevOps oraz Machine Learning. Celem tej metodyki jest ułatwienie wdrożeń i późniejszego utrzymania rozwiązań opartych o uczenie maszynowe oraz wsparcie automatyzacji w całym cyklu życia modelu.

Od samego początku realizowania projektu ML, warto uwzględnić dobre praktyki oraz automatyzację pewnych kroków, czym właśnie zajmuje się MLOps. Dzięki temu dalszy proces będzie przebiegał bardziej efektywnie. Automatyczne testy, walidacja czy przetrenowanie, w momencie pojawienia się odpowiednio dużej liczby danych w bazie, pozwolą nam oszczędzić czas inżynierów i przyspieszyć tworzenie rozwiązania.

Od samego początku realizowania projektu ML, warto uwzględnić dobre praktyki oraz automatyzację pewnych kroków, czym właśnie zajmuje się MLOps. Dzięki temu dalszy proces będzie przebiegał bardziej efektywnie. Automatyczne testy, walidacja czy przetrenowanie, w momencie pojawienia się odpowiednio dużej liczby danych w bazie, pozwolą nam oszczędzić czas inżynierów i przyspieszyć tworzenie rozwiązania. Konieczne jest również uwzględnienie czasu odpowiedzi systemu czy też sposobu, w jaki model będzie wykorzystany.

Produkcja i… co dalej?

Wsparcie modelu nie kończy się na wdrożeniu. Po wykorzystaniu ML w aplikacji, powinniśmy cały czas monitorować działanie naszego modelu. Raz na jakiś czas warto, aby został on zasilony i „przetrenowany” na nowych danych wejściowych. Tylko śledzenie już działającego w docelowym otoczeniu modelu, pozwoli nam bowiem na określenie częstotliwości tej czynności.

Ten krok jest absolutnie niezbędny, ponieważ warunki działania ML i to w jaki sposób funkcjonuje w swoim środowisku zmieniają się. Świetnym przykładem mogą być pandemia koronawirusa, która zmieniła sposób robienia zakupów przez klientów czy też wypuszczenia nowego produktu przez firmę odzieżową. Modele wytrenowane na danych sprzed pandemii nie były w stanie wesprzeć działów logistycznych, odpowiedzialnych za rozmieszczenie towaru w sklepach, biorąc pod uwagę zmianę zachowania klientów, którzy znacznie więcej zaczęli kupować online. Świat wokół nas zmienia się nieustannie i tak też powinno ewoluować nasze rozwiązanie. W przeciwnym wypadku, model ML przestanie być przydatny.

Tworzenie rozwiązań wykorzystujących uczenie maszynowe, charakteryzujących się niezawodnością i efektywnością i przede wszystkim odpowiadających na potrzeby biznesowe, jest nadal sporym wyzwaniem. Szanse na sukces projektu wzrastają jednak wraz z rozwojem technologii i metodologii wokół nich, właśnie takich, jak MLOps. Na pewno rośnie też liczba doświadczonych specjalistów, którzy rozumieją wyzwania związane z ML.

Wszystkie te elementy sprawiają, że wykorzystanie tej technologii w praktyce jest łatwiejsze niż jeszcze kilka lat temu, a dziedzina ML staje się coraz bardziej dojrzała. W najbliższych latach postęp automatyzacji będzie coraz większy, co sprawi, że praca osób związanych z danymi zmieni się. Dzisiaj widzimy, jak ML zmienia nasze codzienne życie, automatyzacja procesów i wsparcie w podejmowaniu decyzji poprzez uczenie maszynowe, staje się standardem. Modele nie są w stanie zastąpić człowieka, ich wykorzystanie wiąże się z wieloma wyzwaniami, jednak dobrze wykorzystane mogą pomóc nam w optymalizacji naszego biznesu.

Krystian Kozieł, MLOps Engineer / Team Leader w Billennium

Tagi

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *