Różne oblicza naszych #AilleronExperts – Rozdział 8
Poznajcie Jakuba Porzyckiego (kierownika zespołu ds. uczenia maszynowego) – pełnego pasji i doświadczonego specjalistę w dziedzinie sztucznej inteligencji i uczenia maszynowego. Kuba wykorzystuje swoją wiedzę w biznesie, ale także często i chętnie dzieli się nią podczas wydarzeń edukacyjnych. Przekonajcie się sami, jak wielką pasją i zaangażowaniem się wyróżnia.

1 . Kuba, jesteś dla nas ważnym ogniwem w dziedzinie sztucznej inteligencji i uczenia maszynowego na wielu płaszczyznach, a ponadto aktywnie angażujesz się w różne inicjatywy związane z rozwojem i rekrutacją. Za chwilę porozmawiamy o kwestiach „technicznych”, ale najpierw chciałbym Ci serdecznie podziękować za poświęcenie czasu na ten wywiad.
Dziękuję za miłe słowa; to dla mnie przyjemność. 🙂
2. Zacznijmy więc. 😊 Od wielu lat działasz w dziedzinie uczenia maszynowego (ML). Kiedy wpadłeś na pomysł, by obrać taką ścieżkę kariery?
Przez kilka lat pracowałem w AGH, gdzie zajmowałem się badaniami nad symulacjami komputerowymi. Jest to również rodzaj sztucznej inteligencji, ale tzw. symbolicznej, w której modele tworzy się inaczej niż w przypadku uczenia maszynowego. Dlatego też, kiedy postanowiłem przejść do sektora biznesowego, poszukiwanie pracy w dziedzinie sztucznej inteligencji wydawało się naturalnym krokiem.
Patrząc z szerszej perspektywy, wydaje mi się, że zawsze chciałem robić coś, co wywołuje „efekt wow”. Coś, co przypomina trochę „magię”. Dlatego najpierw zainteresowałem się informatyką i programowaniem, potem pracą naukową, a w końcu sztuczną inteligencją. Mimo kilku lat pracy w tej branży nadal fascynuje mnie, gdy model zaczyna działać i „tak po prostu” podaje prawidłowe odpowiedzi.
3. Czym jest dla Ciebie ML (uczenie maszynowe)? Jak rozumiesz tę koncepcję?
Jeśli się nad tym dobrze zastanowić, to całkiem trudne pytanie. O uczeniu maszynowym mówi się na wiele sposobów – m.in. jako o sposobie automatyzacji zadań, rozszerzeniu analizy danych, zestawie algorytmów służących do „szkolenia” komputerów czy metodzie zdobywania wiedzy biznesowej.
Moim zdaniem najprościej można to wyjaśnić, mówiąc, że uczenie maszynowe polega na automatycznym tworzeniu modeli świata przyrody na podstawie danych. Model ten stanowi pewien matematyczny opis rzeczywistości, który tworzymy za pomocą algorytmów uczenia maszynowego i danych. Oczywiście model ten zawsze stanowi uproszczenie rzeczywistości.
Na przykład, analizując historię zakupów, możemy stworzyć model (np. sieć neuronową). Na podstawie danych sieć neuronowa uczy się preferencji zakupowych klientów (tj. relacji między parametrami klienta a parametrami produktu) i koduje te informacje w postaci wag – połączeń między neuronami w sieci. Dzięki takiemu modelowi możemy obliczyć, jakie produkty kupi konkretny użytkownik.
4. W jaki sposób wykorzystuje się uczenie maszynowe w firmie Ailleron?
Ailleron tworzy modele uczenia maszynowego dla banków, firm z branży fintech oraz firm leasingowych. Często opracowujemy modele oparte na danych transakcyjnych, takie jak klasyfikatory rodzajów transakcji, klasyfikatory subskrypcji, klasyfikatory akceptantów oraz systemy wykrywania transakcji cyklicznych. Oprócz bezpośredniej wartości biznesowej modele te dostarczają również dodatkowych informacji o klientach, które można wykorzystać w innych modelach.
W ostatnich latach (2023) opracowaliśmy szereg rozwiązań opartych na generatywnej sztucznej inteligencji i LLM (dużych modelach językowych). Dobrym przykładem jest AI Prompter – narzędzie, które pomaga pracownikom centrów obsługi klienta znaleźć trafne odpowiedzi na pytania klientów. Wiem, że może się to wydawać kolejną kiepską kopią ChatGPT, ale jestem naprawdę dumny z tego, co mój zespół osiągnął w zakresie przetwarzania skomplikowanych dokumentów i zapobiegania „halucynacjom” dużych modeli językowych.
Oferujemy również rozwiązania takie jak rekomendacje produktów, prognozowanie zachowań klientów, wykrywanie anomalii, segmentacja klientów czy ulepszenia chatbotów. Oczywiście nie ograniczamy się wyłącznie do tej listy. Nasza firma świadczy usługi z zakresu technologii finansowych, wykorzystując uczenie maszynowe do rozwiązywania problemów zgłaszanych przez naszych klientów i partnerów.
5. Opisz, jak to wygląda w praktyce. Jak przekonać klienta do wdrożenia rozwiązania opartego na uczeniu maszynowym i wykazać, że jest ono właściwe i bezpieczne.
W rozmowach z klientami wiele zależy od ich wiedzy na temat uczenia maszynowego. Jeszcze do niedawna wielu klientów podchodziło do rozwiązań opartych na uczeniu maszynowym z dużą nieufnością. W rozmowach z nimi kluczowe znaczenie miało wykazanie, że uczenie maszynowe pozwala nam rozwiązywać niektóre problemy znacznie taniej niż w przypadku klasycznego programowania, a jednocześnie daje możliwość udowodnienia wysokiej jakości i niezawodności modeli. Między innymi dlatego zaczęliśmy intensywnie pracować nad testowaniem modeli. Oprócz standardowej walidacji modeli podczas uczenia i dostrajania hiperparametrów wprowadziliśmy tzw. „testy po zakończeniu uczenia” – serię testów, które weryfikują jakość modelu z punktu widzenia biznesowego. Nawiązaliśmy również współpracę z firmą NannyML, specjalizującą się w monitorowaniu modeli po ich wdrożeniu do produkcji.
Rozmowy przebiegają inaczej, gdy klient jest zafascynowany uczeniem maszynowym. Zazwyczaj w takiej sytuacji nasz klient lub partner ma już pomysł na pożądany system. Naszym zadaniem jest wówczas upewnienie się, że wizja klienta jest wykonalna, ewentualnie sugerując pewne zmiany w podejściu. Niestety, obecny szum wokół sztucznej inteligencji, jeszcze bardziej wzmocniony po premierze ChatGPT, sprawia, że wiele osób traktuje uczenie maszynowe jako „półmagiczne” panaceum na wszystko.
I wreszcie są klienci i partnerzy, którzy posiadają bardzo dużą wiedzę na temat uczenia maszynowego. Zazwyczaj dysponują już własnymi zespołami zajmującymi się uczeniem maszynowym i szukają wsparcia w bardziej złożonych zagadnieniach lub nowych rozwiązaniach, które pozwolą im poprawić wyniki. Możemy wzbudzić zainteresowanie takich klientów, prezentując im zaawansowane rozwiązania, np. w obszarze: generatywnej sztucznej inteligencji i dużych modeli językowych, a także reprezentacji danych w postaci grafów oraz sieci neuronowych opartych na grafach.
6. Wybór algorytmu, uczenie, walidacja, testowanie i wdrożenie to etapy tworzenia modelu uczenia maszynowego. Czy mógłbyś nam pokrótce opisać, na czym polegają te etapy?
Wybór algorytmu to decyzja, którą podejmujemy my – inżynierowie uczenia maszynowego. Następnie wybieramy algorytm, który zostanie wykorzystany do trenowania modelu uczenia maszynowego. Jest to ważne, ponieważ w ten sposób formułujemy pewne założenia dotyczące charakteru zjawiska, które modelujemy. Załóżmy na przykład, że decyduję się na zastosowanie regresji liniowej. W takim przypadku dany problem lub zjawisko można modelować jako liniową kombinację danych wejściowych. Załóżmy, że wybieram sieć rekurencyjną. Wówczas zakładam, że istotną cechą tego problemu lub zjawiska jest sekwencyjność, czyli fakt, że poprzednie wartości wpływają na wartości następne. Oczywiście w trakcie pracy można przetestować wiele różnych algorytmów uczenia maszynowego, ale wybór odpowiednich z nich znacznie skraca czas pracy.
Z drugiej strony, uczenie modelu to proces, który przebiega automatycznie; algorytmy uczenia maszynowego uczą konkretne modele na podstawie dostarczonych danych, aby zminimalizować wartość funkcji straty. Naszym zadaniem jest wcześniejsze przekształcenie danych do postaci, która będzie najłatwiejsza do opanowania przez model. Następnie wybieramy algorytm uczenia maszynowego oraz hiperparametry konkretnego modelu, który chcemy przetestować. Hiperparametrem może być na przykład liczba warstw w sieci neuronowej, liczba/typ neuronów w danej warstwie lub maksymalna głębokość drzewa decyzyjnego. Potem nadchodzi moment, w którym uruchamiamy uczenie modelu, algorytm uczenia działa, a my możemy spokojnie pójść na kawę. Zazwyczaj trenujemy wiele modeli z różnymi zestawami hiperparametrów i wybieramy ten, który ma najniższą wartość funkcji błędu.
Podczas walidacji sprawdzamy jakość modelu – zazwyczaj tylko tych najlepszych. W tym przypadku konieczne jest wybranie odpowiedniej miary jakości. Ponownie posłużę się przykładem: załóżmy, że musimy zbudować model binarny wykrywający rzadkie zdarzenia, takie jak oszustwo występujące raz na 1000 transakcji. Dla każdej transakcji model ma zwracać wartość „prawda”, jeśli uzna, że transakcja jest oszustwem, a w przeciwnym razie – „fałsz”. Jeśli jako miarę jakości podczas walidacji przyjmiemy dokładność – czyli procent poprawnych wskazówek – to beznadziejny model, który zawsze zwraca wartość „fałsz”, co oznacza, że nie wykrywa żadnych oszustw, będzie miał oszałamiającą skuteczność na poziomie 99,9%. Warto zauważyć, że prawie nigdy nie udaje się wytrenować modelu, który za pierwszym razem przejdzie walidację, dlatego po walidacji często wracamy do etapu trenowania modelu.
Po wyszkoleniu modelu przechodzimy do szczegółowego testowania. Następnie analizujemy błędne odpowiedzi, aby sprawdzić, czy w działaniu modelu występują jakieś błędy systematyczne. W firmie Ailleron testujemy również model pod kątem wymagań biznesowych (tzw. test po szkoleniu). Sprawdzamy takie kwestie, jak poprawność działania modelu we wszystkich przypadkach bazowych, np. brak wpływu cech nieistotnych z punktu widzenia biznesu na wynik modelu (np. imię i nazwisko osoby nie wpływa na wysokość oferowanego kredytu) lub spełnienie podstawowych założeń (np. cena mieszkania rośnie wraz ze wzrostem powierzchni). Na tym etapie model jest również sprawdzany pod kątem ewentualnych stronniczości związanych z cechami społecznymi, znanych jako stronniczość społeczna.
Gdy model przejdzie wszystkie testy, można go przygotować do wdrożenia. W praktyce polega to na spakowaniu modelu wraz z dodatkowymi elementami umożliwiającymi komunikację z nim. Sam model jest po prostu zapisywany jako plik (zwykle zawierający opis struktury i wag sieci neuronowej). Aby model mógł działać w środowisku produkcyjnym, jest on opakowywany w mikrousługę, która komunikuje się za pośrednictwem określonego interfejsu (takiego jak REST lub Kafka). Do takiej mikrousługi możemy następnie wysyłać dane, które muszą mieć tę samą postać, jaka została użyta do szkolenia modelu, a następnie otrzymywać odpowiedź.
Wyszła dość długa odpowiedź. 🙂 Ale myślę, że to wszystko.
7. To, o czym mówisz, jest dość skomplikowane, ale też fascynujące. Opowiedz nam więcej o tym, jak skutecznie i zrozumiale definiować zadania podczas tworzenia modelu, tak aby komunikacja zarówno z osobami „technicznymi”, jak i „nietchnicznymi” przebiegała sprawnie i efektywnie.
Ponownie wracamy do kluczowego aspektu naszej pracy, czyli rozmów z klientami i warsztatów. Z mojego doświadczenia wynika, że na początku należy skupić się na rozmowach z przedstawicielami „biznesu” i udzieleniu odpowiedzi na kilka kluczowych pytań. Przede wszystkim trzeba ustalić, jaką potrzebę biznesową klient chce zaspokoić. Należy pamiętać, że chodzi tu o rzeczywisty problem klienta, a nie o jego wyobrażenie na temat uczenia maszynowego. Być może lepsze okaże się podejście inne niż to, które zaproponował klient. Warto poznać jego oczekiwania i upewnić się, że są one realistyczne. W szczególności należy sprawdzić, czy klient zdaje sobie sprawę, że żaden model uczenia maszynowego nie będzie miał 100% dokładności. Ważne jest również ustalenie, czy klient dysponuje danymi, na podstawie których można wyszkolić model, oraz czy może się nimi z nami podzielić. I wreszcie, co prawdopodobnie najważniejsze, należy sprawdzić, czy stworzenie modelu uczenia maszynowego rozwiązującego taki problem jest w ogóle możliwe.
Gdy uzyskasz pozytywne odpowiedzi na wszystkie powyższe pytania, możesz przejść do rozmowy z osobami z działu technicznego. Zazwyczaj są to osoby odpowiedzialne za dostarczanie danych. Możemy porozmawiać z nimi o systemie, z którego będą pochodzić dane (musi to być ten sam system, który później będzie korzystał z modelu). Analiza schematu danych i zrozumienie poszczególnych kolumn zawsze zajmuje dużo czasu. Warto również upewnić się, że dane są aktualne. Trenowanie modelu na danych rynkowych sprzed kilku lat mija się z celem.
8. Dane stanowią kluczowy element operacji i rozwoju w dziedzinie uczenia maszynowego. Jak pozyskać te najbardziej wartościowe?
Bez wątpienia dane są najważniejsze. Szkoda, że wiele osób o tym zapomina. Trudno zliczyć, ile razy słyszałem propozycje w stylu: „Stwórzmy model na podstawie danych testowych”. Jest to jednak bezsensowne działanie; jedyne, czego model może się nauczyć, to reguły, które wykorzystaliśmy do wygenerowania tych danych, a nie rzeczywiste reguły biznesowe*.
Dane, z którymi pracujemy, to dane klientów, więc aby je „uzyskać”, konieczne jest przekonanie naszego klienta lub partnera, że ich udostępnienie jest niezbędne do wyszkolenia modelu, a następnie zapewnienie odpowiednich umów regulujących przekazywanie danych oraz wreszcie zapewnienie klienta, że dane będą u nas bezpieczne. Aby maksymalnie ułatwić naszym klientom udostępnianie danych, pomagamy im wybrać minimalny zestaw danych niezbędny do wyszkolenia modelu, zanonimizować je i wyeksportować.
9. Poważnym zagrożeniem jest wyciek danych. Jak temu zapobiec? Jak chronić siebie i swojego klienta?
W tym przypadku wyciek danych można rozumieć na dwa sposoby; ogólnie rzecz biorąc, oba wiążą się ze znacznym ryzykiem. Prawdopodobnie większość osób, słysząc o wycieku danych, pomyśli o wydostaniu się poza firmę informacji, których używamy do szkolenia modeli. Takie zdarzenie byłoby oczywiście bardzo poważnym incydentem, przede wszystkim dlatego, że zazwyczaj pracujemy na danych finansowych. Dlatego też stosujemy się do zestawu procedur podczas pracy z danymi. Ponadto ograniczamy ryzyko poprzez wspólne warsztaty z klientami, podczas których ustalamy minimalną ilość danych potrzebną do szkolenia modelu.
Z kolei uczenie maszynowe wiąże się z innym rodzajem wycieku danych. Sytuacja ta ma miejsce, gdy w zbiorze danych szkoleniowych znajdują się informacje, które nie powinny się tam znaleźć. Najczęściej dane te nie będą dostępne dla modelu w środowisku produkcyjnym. Na przykład gdy otrzymujemy eksport z hurtowni danych od klienta, ale model ma ostatecznie działać w systemie transakcyjnym. Najlepszym sposobem zapobiegania takiej sytuacji są warsztaty techniczne z klientem, podczas których szczegółowo omawiamy dane, które nam przesyła. Kluczowa jest tu współpraca z zespołem po stronie klienta.
Innym przypadkiem wycieku danych jest sytuacja, w której w zbiorach szkoleniowym i walidacyjnym występują identyczne przykłady. W takim razie, zamiast uogólniać wiedzę, model uczenia maszynowego uczy się na pamięć poszczególnych przykładów. Prawdopodobnie każdy z nas miał kiedyś egzamin, na który dostaliśmy listę pytań. Wtedy, aby udzielić prawidłowej odpowiedzi, nie trzeba rozumieć tematu, a jedynie zapamiętać, że „jeśli pojawia się pytanie z tym rysunkiem, należy wybrać odpowiedź B”. Podobna sytuacja może mieć miejsce w przypadku modelu, który świetnie radzi sobie podczas walidacji, ale całkowicie zawodzi po wdrożeniu do środowiska produkcyjnego. Takie przypadki są zazwyczaj wynikiem błędów w przetwarzaniu wstępnym, dlatego należy poświęcić dużo uwagi weryfikacji kodu. Organizujemy również wewnętrzne warsztaty podczas spotkań zespołów w firmie, demonstrując etapy pracy z najważniejszymi danymi.
10. Masz bogate doświadczenie w dziedzinie uczenia maszynowego i opowiadasz o nim z wielką pasją. Prowadzisz też warsztaty i zajęcia na uczelniach. Czy lubisz dzielić się swoją wiedzą?
Tak, lubię dzielić się wiedzą i rozmawiać na różne tematy. Był taki okres, kiedy pracowałem w AGH i jednocześnie prowadziłem zajęcia z programowania dla dzieci i młodzieży. Wtedy uczyłem niemal codziennie. Teraz jest to raczej kilka – kilkanaście spotkań w roku, ale nadal sprawia mi to ogromną satysfakcję. Z sentymentem wspominam wykład na tegorocznym Studenckim Festiwalu IT. Po prezentacji sporo osób zostało, a ja jeszcze przez 45 minut odpowiadałem na szereg pytań.
11. Czy firma wspiera cię we wszystkich tych działaniach?
Tak, przygotowanie się do wykładu lub warsztatów zajmuje sporo czasu. Na szczęście firma Ailleron przeznacza znaczne środki na rozwój pracowników i promocję firmy poprzez inicjatywy edukacyjne, dzięki czemu mam wystarczająco dużo czasu na przygotowania. Firma, głównie dzięki wsparciu kolegów z działów marketingu i budowania wizerunku pracodawcy, bardzo pomaga w organizacji, redagowaniu materiałów i ich promowaniu. Było to widoczne na przykład podczas webinarium poświęconego uczeniu maszynowemu i chatbotom, które przeprowadziliśmy wspólnie z BNP Paribas.
Obecnie wraz z całym zespołem pracujemy również nad serią artykułów poświęconych uczeniu maszynowemu. Seria ta powinna ukazać się w ostatnim kwartale tego roku. Zachęcam oczywiście do śledzenia naszych publikacji i zapoznania się z nimi.
12. Czy miałeś okazję podzielić się swoim doświadczeniem również wewnątrz firmy?
Tak, ostatnio prowadzę głównie szkolenia dla pracowników naszej firmy. Niedawno odbyliśmy bardzo ciekawe spotkanie z handlowcami, podczas którego omówiliśmy szczegóły dotyczące naszych modeli, aby mogli jeszcze lepiej przedstawiać je klientom.
13. Obecnie dziedzina uczenia maszynowego rozwija się naprawdę dynamicznie. Wielu młodych ludzi chce podążać tą ścieżką. Jakie są możliwości zatrudnienia i rozwoju zawodowego w dziedzinie uczenia maszynowego w firmie Ailleron?
To prawda. Obecnie uczenie maszynowe to bardzo perspektywiczna dziedzina, w której można zajmować się fascynującymi problemami i szybko się rozwijać. Z drugiej strony nie przychodzi mi do głowy żadna inna dziedzina, która w ostatnich latach zmieniałaby się tak szybko jak uczenie maszynowe. Trzeba być gotowym na ciągły rozwój i naukę.
W Ailleron istnieje wiele możliwości rozpoczęcia pracy w tej dziedzinie. Organizujemy między innymi staże z zakresu uczenia maszynowego. Mam w zespole świetnych pracowników, którzy dołączyli do nas właśnie dzięki stażom. Ponadto istnieje również możliwość zmiany ścieżki kariery. Niektórzy członkowie naszego zespołu pełnili wcześniej inne funkcje, a obecnie świetnie sprawdzają się jako inżynierowie ds. uczenia maszynowego.
Temat uczenia maszynowego jest rozległy i dość skomplikowany, ale za to jakże intrygujący. Tym bardziej, Kuba, dziękujemy Ci za to, że w tak praktyczny sposób przybliżyłeś nam ten fascynujący temat i po raz kolejny podzieliłeś się swoją imponującą wiedzą. Jak widać, jest to branża, w której rozwój zawodowy przebiega błyskawicznie. To szansa zarówno dla młodych ludzi, którzy interesują się nowymi technologiami, jak i dla osób, które chcą spróbować czegoś nowego i ekscytującego w swojej pracy.
*Możliwe jest tworzenie modeli na podstawie danych wygenerowanych sztucznie – istnieją nawet całe start-upy zajmujące się generowaniem takich danych, jednak dane sztuczne są generowane w oparciu o dane rzeczywiste, aby odzwierciedlić występujące w nich zależności.