– Dane są kluczowym elementem w działaniu i rozwoju uczenia maszynowego. Szkoda, iż wiele osób o tym zapomina. Trzeba przekonać klienta, iż ich dostarczenie jest konieczne do wytrenowania modelu, zapewnić adekwatne umowy dotyczące przekazania danych i upewnić klienta, iż dane będą u nas bezpieczne – uważa Jakub Porzycki, Machine Learning Team Leader w Ailleron, z którym rozmawiamy o ML.
Cześć! Jesteś już trochę w branży Machine Learning. Skąd wziął się pomysł na taką ścieżkę kariery?
Wcześniej spędziłem kilka lat, pracując na AGH, gdzie zajmowałem się symulacjami komputerowymi, co można określić jako rodzaj sztucznej inteligencji, ale tzw. symbolicznej. Tworzenie modeli odbywa się tu w inny sposób niż przy użyciu uczenia maszynowego. Dlatego, gdy zdecydowałem się na przeniesienie się do biznesu, wybór pracy w obszarze AI wydał mi się naturalną decyzją.
Patrząc w nieco szerszej perspektywie, zawsze marzyłem o robieniu rzeczy, które wywołują „efekt wow”. Coś, co przypomina trochę „magię”. Dlatego wcześniej interesowała mnie informatyka, programowanie, praca naukowa, a teraz sztuczna inteligencja. Mimo kilku lat doświadczenia w branży przez cały czas fascynuje mnie moment, gdy model zaczyna działać i zaskakująco poprawnie udziela odpowiedzi.
Jak rozumiesz pojęcie Machine Learning?
Kiedy się nad tym dobrze zastanowić, to całkiem trudne pytanie. O ML mówi się na wiele sposobów: jako sposób automatyzacji zadań, rozwinięcie analizy danych, zestaw algorytmów do „uczenia” komputerów, czy też metoda zdobywania wiedzy biznesowej.
Według mnie najprostszym wyjaśnieniem jest to, iż Machine Learning to automatyczne tworzenie modeli opisujących rzeczywistość na podstawie danych. Model jest matematycznym odwzorowaniem rzeczywistości, które tworzymy dzięki algorytmów ML i danych. Oczywiście, model zawsze jest uproszczeniem rzeczywistości.
Na przykład, analizując historię zakupów, możemy stworzyć model (np. sieć neuronową). Sieć neuronowa, ucząc się na podstawie danych, odzwierciedla preferencje zakupowe klientów (czyli zależności pomiędzy parametrami klienta a produktem) i koduje te informacje w postaci wag, czyli połączeń pomiędzy neuronami w sieci. Dzięki takiemu modelowi możemy przewidzieć, jakie produkty spodobają się danemu użytkownikowi.
Jak wykorzystywane są techniki ML w Ailleron — firmie, w której pracujesz?
Ailleron tworzy modele ML dla zewnętrznych klientów, głównie z branży finansowej. Najczęściej kreujemy modele operujące na danych transakcyjnych, takie jak klasyfikatory rodzaju transakcji, klasyfikatory subskrypcji, klasyfikacja odbiorcy transakcji, detekcja transakcji cyklicznych. Takie modele, oprócz bezpośredniej wartości biznesowej, wniosą też dużo dodatkowej informacji o kliencie, którą można wykorzystać w innych modelach.
W ostatnim roku (2023) opracowaliśmy szereg rozwiązań opartych na Generative AI i LLM (Large Language Models). Dobrym przykładem jest AI Prompter – narzędzie, które pomaga pracownikom centrum obsługi klienta znaleźć odpowiednie odpowiedzi na pytania klientów. Wiem, iż może się to wydawać kolejnym kiepskim klonem ChatGPT, ale jestem całkiem dumny z tego, co mój zespół osiągnął w zakresie przetwarzania skomplikowanych dokumentów i zapobiegania halucynacjom LLM.
W ofercie mamy również rozwiązania takie jak rekomendacje produktowe, predykcje zachowań klienta, wykrywanie anomalii, segmentacja klientów czy ulepszenia do chatbotów. Pracujemy usługowo, po prostu używając ML do rozwiązania problemu, który stawia przed nami klient.
Jak to wygląda w praktyce?
Podczas rozmów z klientami wiele zależy od ich poziomu zrozumienia uczenia maszynowego. Jeszcze niedawno wielu z nich było dosyć nieufnych wobec rozwiązań ML. W rozmowach z nimi najważniejsze jest pokazanie, iż uczenie maszynowe pozwala rozwiązywać niektóre problemy znacznie taniej niż klasyczne programowanie, jednocześnie mając możliwość udowodnienia wysokiej jakości i niezawodności modeli. Dlatego zaczęliśmy intensywnie pracować nad testowaniem modeli. Oprócz standardowej walidacji modeli podczas trenowania i tuningu hiperparametrów wprowadziliśmy tzw. „post-train testing”, czyli serię testów weryfikujących jakość modelu od strony biznesowej.
Trochę inaczej wyglądają rozmowy, kiedy klient jest zafascynowany uczeniem maszynowym. zwykle ma już pomysł, jakiego systemu potrzebuje. Wtedy naszym zadaniem jest upewnić się, iż pomysł klienta jest możliwy do zrealizowania, ewentualnie zaproponować jakieś zmiany w podejściu.
I wreszcie są klienci, którzy mają dużą wiedzę o uczenia maszynowego. zwykle mają już u siebie zespoły ML i szukają wsparcia w trudniejszych tematach albo nowych rozwiązań, które jeszcze podkręcą ich wyniki. Zainteresowanie takich klientów można zdobyć, pokazując im zaawansowane rozwiązania np. z obszaru Generative AI i wykorzystanie dużych modeli językowych, a także grafową reprezentację danych i grafowe sieci neuronowe.
Wybór algorytmu, trenowanie, walidacja, testowanie, deployment – to wszystko dotyczy modelu ML. Czy możesz pokrótce opisać nam, na czym te kroki polegają?
Wybór algorytmu to decyzja podejmowana przez Inżynierów Uczenia Maszynowego. Wybieramy wtedy algorytm, który zostanie użyty do trenowania modelu ML. Jest to ważne, ponieważ przyjmujemy pewne założenia co do natury zjawiska, które modelujemy. Na przykład, jeżeli wybierzemy regresję liniową, to zakładamy, iż dane zjawisko można zamodelować jako liniową kombinację danych wejściowych.
Trenowanie modelu to proces, w którym algorytmy ML uczą się na podstawie dostarczonych danych tak, aby zminimalizować wartość funkcji błędu. Naszym zadaniem jest przekształcenie danych do postaci, która będzie najłatwiejsza do nauczenia się przez model. Następnie wybieramy algorytm ML oraz hiperparametry danego modelu, które będziemy chcieli przetestować. Zwykle trenuje się wiele modeli z różnym zestawem hiperparametrów i wybiera ten, który ma najniższą wartość funkcji błędu.
Podczas walidacji sprawdzamy jakość modelu, zwykle tylko jednego lub kilku najlepszych. Konieczne jest dobranie odpowiedniej miary jakości. Przykładowo, jeżeli mamy za zadanie zbudować binarny model, który wykrywa rzadkie zdarzenia, to skuteczność (accuracy) może być myląca. Warto zaznaczyć, iż prawie nigdy nie udaje się za pierwszym razem wytrenować modelu, który przejdzie walidację, więc często wracamy do etapu trenowania modelu.
Kiedy model przejdzie wszystkie testy, może być przygotowany do zastosowania (deployment). Jest to opakowanie modelu w elementy umożliwiające komunikację z nim. Sam model jest zapisywany w postaci pliku, a potem opakowywany w mikroserwis, który komunikuje się dzięki interfejsu np. REST czy Kafka.
Jak skutecznie i zrozumiale definiować zadania przy tworzeniu modelu, aby komunikacja zarówno z osobą „techniczną”, jak i „nietechniczną” przebiegała sprawnie i skutecznie?
Z moich dotychczasowych doświadczeń wynika, iż na początku trzeba skupić się na rozmowach z biznesem i odpowiedzieć na kilka kluczowych pytań. Przede wszystkim trzeba dowiedzieć się, jaka jest potrzeba biznesowa, jaką klient chce rozwiązać. Chodzi o faktyczny problem klienta, a nie jego pomysł na model. Warto poznać jego oczekiwania i upewnić się, iż są one realne. W szczególności czy klient zdaje sobie sprawę, iż żaden model ML nie będzie miał stuprocentowej skuteczności. Ważne jest także, czy klient posiada dane, na których można nauczyć model i czy może je udostępnić.
Kiedy uzyskamy pozytywne odpowiedzi na wszystkie powyższe pytania, można przejść do rozmów z osobami technicznymi, które są odpowiedzialne za dostarczenie danych. Dużo czasu zwykle zajmuje analiza schematu danych i zrozumienie poszczególnych kolumn. Warto też upewnić się, iż dane są aktualne.
Jak zdobywać najbardziej wartościowe dane?
Dane są kluczowym elementem w działaniu i rozwoju ML. Szkoda, iż wiele osób o tym zapomina. Trzeba przekonać klienta, iż ich dostarczenie jest konieczne do wytrenowania modelu, zapewnić adekwatne umowy dotyczące przekazania danych i upewnić klienta, iż dane będą u nas bezpieczne. Aby maksymalnie ułatwić naszym klientom dostarczenie danych, pomagamy im w wyborze minimalnego zestawu danych potrzebnych do trenowania modelu, ich anonimizacji i eksporcie.
Masz ogromne doświadczenie w ML i opowiadasz o tym z wielką pasją. Lubisz dzielić się wiedzą?
Tak, lubię przekazywać wiedzę i prowadzić warsztaty. Miałem okazję prowadzić wykłady na Politechnice Krakowskiej oraz wystąpienia na różnych konferencjach. Firma, w której pracuję, wspiera mnie w organizacji tych działań, co bardzo sobie cenię.
Jakie są opcje pracy i możliwości rozwoju w obszarze ML w Ailleron?
W Ailleron jest wiele możliwości rozpoczęcia pracy w obszarze ML. Organizujemy praktyki w tej dziedzinie, a wielu pracowników zaczęło od nich. Istnieje również możliwość przebranżowienia się. W firmie pracują osoby, które wcześniej miały inne role, a teraz rozwijają się jako inżynierowie ML.
Jakub Porzycki. Machine Learning Team Leader w Ailleron, pasjonat i doświadczony praktyk w dziedzinie AI i uczenia maszynowego (ML). Swoją wiedzę wykorzystuje w biznesie, ale też często i chętnie dzieli się nią podczas eventów edukacyjnych.
Zdjęcie główne pochodzi z Unsplash.com.