Rozwiązania analityczne komplikują się. Co na to Julia?
— Julia łączy w jednym dwie rzeczy. Można tworzyć wysokowydajne i skalowalne modele, a równocześnie praca z tym językiem jest równie prosta, jak z popularnymi językami w rodzaju R czy Pythona — przekonuje prof. Bogumił Kamiński ze Szkoły Głównej Handlowej w Warszawie.
Profesor Bogumił Kamiński specjalizuje się w obliczeniowych naukach społecznych, badaniach operacyjnych i zarządzaniu ilościowym. Interesuje go stosowanie metod obliczeniowych w ekonomii, finansach i zarządzaniu. Jest autorem książki pt. “Julia for Data Analysis”. Na SGH kieruje Zakładem Wspomagania i Analizy Decyzji.
Na czym polega dziś rola analityki decyzyjnej w biznesie?
W życiu podejmujemy wiele decyzji — często intuicyjnie lub na bazie jakiegoś doświadczenia. Jednak czasem mamy do podjęcia decyzję ważną, jak np. w biznesie, która może przesądzić o być lub nie być firmy. Kluczowe jest zrozumienie, w jaki sposób podejmujemy tę decyzję. Należy zauważyć, że człowiek nie zawsze decyzję podejmuje dobrze, czasem nasze wybory są niespójne. Nawet jeśli chcielibyśmy postępować w sposób uporządkowany i systematyczny, to natłok informacji, które mamy do przetworzenia, jest tak duży, że przekracza nasze możliwości percepcyjne. I tu pojawia się analityka decyzyjna. Żeby rozwiązać problem, mamy zestaw metod i narzędzi, które pomagają podejmować decyzje w sposób racjonalny i efektywny.
A jakie jest miejsce danych w procesie decyzyjnym?
Jeśli mamy sytuację decyzyjną i chcemy decydenta w tej sytuacji wspomóc, po pierwsze musimy stworzyć model sytuacji, który będzie ją w adekwatny sposób opisywał. Dopiero kiedy ten model stworzymy, jednym z jego komponentów będą dane. Wyobraźmy sobie, że musimy podjąć decyzję o projekcie nowo budowanego lotniska. Od razu widać, że jest to niezwykle złożony proces. Mamy szereg czynników i zmiennych, które trzeba brać pod uwagę. Podstawą budowy modelu matematycznego będzie zrozumienie, jakie są kryteria w podejmowaniu decyzji, na czym nam zależy. Tym samym pojawia się funkcja celu. Następnie definiujemy warunki ograniczające, czyli w jakim zakresie możemy się poruszać, a trzecia rzecz to zmienne decyzyjne, czyli o czym mogę decydować.
Jak ustrukturyzujemy problem, jednym z elementów, aby to lotnisko dobrze zaprojektować będą dane. Jednak nie jest efektywne rozpoczynanie jego rozwiązywania od danych. Punktem wyjścia powinno być dobre zdiagnozowanie i opisanie na poziomie jakościowym, a potem na poziomie matematycznym problemu decyzyjnego, który chcemy rozwiązać. Dane są jednym z komponentów, które potem wykorzystamy do wsparcia dobrego podejmowania decyzji. Myślenie to jest, dla przykładu, wyraźnie zawarte w metodyce CRISP-DM, która podkreśla, że pierwszym etapem procesu analitycznego powinno być zrozumienie uwarunkowań biznesowych.
W jakich obszarach w firmach używa się analityki decyzyjnej?
Każda firma przed implementacją jakiegoś rozwiązania analitycznego patrzy przede wszystkim pod kątem kosztów i korzyści. Takie narzędzia i metody są przez firmy stosowane zazwyczaj w sytuacjach, w których skala oczekiwanych korzyści uzasadnia, żeby ponosić koszt związany z wdrożeniem i późniejszym utrzymaniem tego typu rozwiązań. Niezależnie od branży, zaawansowana analityka jest wykorzystywana przez firmy coraz powszechniej. Ciekawym trendem jest tworzenie tzw. cyfrowych bliźniaków, czyli digital twins.
Pozwolę sobie zilustrować go na przykładzie polskiego startupu VersaBox, który oferuje roboty przemysłowe dla firm produkcyjnych. Maszyny zastępują pracę ludzką i oczywiście dysponują modelami analitycznymi, które sterują ich działaniem. Natomiast klient, zanim jeszcze zdecyduje się na zakup rozwiązania do swojej fabryki, chce sprawdzić, czy mu się to opłaca. VersaBox ma symulator, który potrafi wirtualnie odwzorować fabrykę i ocenić, jak robotyzacja procesów wpłynie na efektywność funkcjonowania danego przedsiębiorstwa.
Wykonanie bliźniaka wirtualnego jest dużo tańsze, szybsze i bezpieczniejsze niż podejmowanie decyzji w ciemno. W wielkiej skali, jak w przypadku projektowania lotnisk, o którym wspomniałem wcześniej, tworzenie cyfrowych bliźniaków to obecnie standard. Natomiast zwiększenie dostępności efektywnych narzędzi analitycznych, z którym mamy do czynienia w ostatnich latach, powoduje, że coraz częściej takie podejście jest obecne również w mniejszych przedsiębiorstwach.
Jak rozumiem, postęp technologiczny obniżył barierę wejścia dla firm?
Zdecydowanie tak. Proszę zauważyć, że wszystkie technologie, o których dziś piszemy czy mówimy, nie są nowe. Wiele rozwiązań stosujemy od dziesiątków lat. Natomiast to, co się zmienia, to koszt ich wykorzystania. To, co było w przeszłości zarezerwowane dla największych inwestycji, coraz częściej jest dostępne już dla wielu przedsiębiorstw. Próg rentowności znacznie się obniżył, pozwalając większej liczbie podmiotów na korzystanie z innowacji. A koszt warto rozpatrywać w dwóch aspektach. Pierwszym z nich jest bezpośredni koszt wykorzystania tworzonego rozwiązania, np. koszt licencji czy serwerów. Natomiast drugim aspektem są bariery w zakresie umiejętności opracowania takiego rozwiązania. Obecnie na rynku jest coraz więcej analityków, którzy potrafią nie tylko wykorzystać proste, gotowe modele dostępne np. jako pakiety w językach Python czy R, ale również stworzyć bardziej złożone specjalne rozwiązanie. Jak wynika z mojej praktyki, biznes, poczynając od firm średniej wielkości, czyli ok. 100 mln zł przychodów, wykorzystuje w jakimś zakresie analitykę decyzyjną. Oczywiście mniejsze przedsiębiorstwa też, wszystko zależy od ich specyfiki. Jeśli jest to biznes cyfrowy, analityka adaptowana jest dużo szybciej.
W ostatnich miesiącach wielu analityków emocjonuje się tym, że światowi giganci technologiczni tworzą wielkie modele generatywne. I rzeczywiście dziś jest wąska grupa ekspertów, która jest w stanie to zrobić, ponieważ ma dostęp do dostatecznie dużych zasobów, które jej to umożliwiają. Jednak w mojej ocenie, tworzenie pionierskich rozwiązań na poziomie światowym nadal pozostaje poza zasięgiem przeciętnej firmy. Natomiast należy się spodziewać, że wykorzystanie praktyczne gotowych rozwiązań będzie coraz bardziej powszechne.
A jakie są ryzyka? Gdzie analityka decyzyjna może się nie sprawdzić?
Widzę wyzwania dwojakiego rodzaju. Eksperci zaczynają wykorzystywać analitykę decyzyjną w coraz większym stopniu, niemal masowo. Do tego potrzeba dwóch rzeczy — po pierwsze, musimy wiedzieć, jak ją dobrze robić, a po drugie, musimy mieć dostęp do danych i technologii, które pozwolą nam analizować efektywnie. O pierwszym aspekcie już wspomniałem — najczęstszym błędem jest realizacja projektu analitycznego bez odpowiedniego zrozumienia potrzeb biznesowych. Co do drugiego aspektu, często jest tak, że analitycy tworzą rozwiązanie prototypowe, które działa w środowisku developerskim, natomiast pojawiają się duże wyzwania związane z jego wdrożeniem produkcyjnym, często wręcz kończące się na tym, że wstępnie stworzone rozwiązanie musi zostać przepisane w innej technologii na potrzeby wdrożenia. Środowisko analityków stara się realizować te cele poprzez wypracowanie dobrych praktyk, zwanych MLOps (red. ang. Machine Learning Operations), które mają pomóc uniknąć podobnych sytuacji.
Panie profesorze, w książce „Julia for Data Analysis” przekonuje pan, że ten język programowania może być przyszłością analityki. A co z Pythonem?
Większość prostych rozwiązań analitycznych wykorzystywanych w biznesie jest raczej standardowa. W takiej sytuacji nie ma wielkiego znaczenia, czy tworzę proste modele w języku Julia, Python czy R. We wszystkich tych technologiach standardowe, proste modele są dostępne i łatwe do wykorzystania.
Kiedy zatem data scientist powinien sięgnąć po język Julia, zamiast R czy Pythona?
Jak już wspomniałem, coraz częściej tworzone przez firmy rozwiązania analityczne są bardzo złożone. Z jednej strony ilość kodu, który trzeba napisać, aby powstało takie rozwiązanie, powiększa się. Jest to bezpośrednia konsekwencja złożoności od strony logiki takiego rozwiązania analitycznego. Z drugiej strony, złożone rozwiązania napotykają na barierę wydajności. Potrzebujemy większych środowisk obliczeniowych do tego, aby te obliczenia realizować, szczególnie jeśli przechodzimy od rozwiązania prototypowego do produkcyjnego.
Zilustruję to zagadnienie przykładem firmy Timeline, którą jakiś czas temu wspomagałem w migracji jej rozwiązania do języka Julia. Jedną z usług, które firma oferuje, jest tworzenie symulacji finansowych dla portfela inwestycji jej klientów, które są dostępne on-line przez przeglądarkę. Jak łatwo się domyślić, klienci, po wysłaniu zapytania o wykonanie analizy, nie lubią długo czekać na odpowiedź. Przed przeniesieniem rozwiązania do języka Julia system potrzebował około 40 sekund na wykonanie wszystkich wymaganych obliczeń. Po zakończeniu projektu migracyjnego czas ten spadł do 0,6 sekundy. Dodatkowo firma zauważyła, że wykorzystanie języka Julia wymagało mniejszej ilości kodu oraz ułatwiło komunikację między zespołami developerskim i wdrożeniowym, ponieważ komponenty tworzone przez analityków można po przetestowaniu od razu wdrażać produkcyjnie. Przedstawiciele firmy wskazują, że pozwoliło to oszczędzić wiele tysięcy dolarów w samym procesie wytworzenia oprogramowania.
Mówi Pan o złożonej architekturze, a jak Julia sprawdza się w prostszych środowiskach?
Często kiedy koledzy mówią mi, że do wykonania jakiegoś projektu stawiają Sparka na klastrze obliczeniowym, to różnica jest taka, że ja na Julii jestem w stanie analogiczne zadanie wykonać na laptopie, o ile będę miał dostęp do przetwarzanych danych. Oczywiście w Pythonie te zadania również da się wykonać, jednak często analityk stoi wtedy przed dylematem: albo wybrane komponenty systemu będą tworzone w innym języku, np. w C++, i Python będzie je tylko wywoływał, albo wymagane jest tworzenie środowisk o znacznie bardziej złożonej architekturze. Taka złożona architektura niesie za sobą nie tylko koszt zarządzania nią, ale również bezpośredni wyższy koszt samego sprzętu i energii elektrycznej, które są niezbędne, aby je uruchamiać. Zagadnienie to ilustruję we wstępie do książki „Julia for Data Analysis”. Większość podstawowych pakietów tworzonych dla Pythona nie jest pisana w tym języku z powodów wydajnościowych. Inaczej jest w języku Julia, gdzie analogiczne pakiety są również pisane w Julii.
Może Pan podać przykład tego rodzaju wdrożenia?
Dr Przemysław Szufel z SGH wprowadził w firmie Kross rozwiązanie służące optymalizacji produkcji rowerów. Ze względu na bardzo dużą skalę procesu zdecydowano się na skorzystanie z języka Julia. Rozwiązanie pozwala na bardzo wydajne planowanie i optymalizację procesu. Udało się to zrobić w krótkim czasie, na w miarę małym środowisku obliczeniowym. Bazując na moim doświadczeniu, muszę stwierdzić, że w innych technologiach koszt i czas, stworzenia i wdrożenia produkcyjnego finalnego rozwiązania byłby znacznie większy.
Atrakcyjność Pythona charakteryzuje się dużą dostępnością bibliotek. Jak jest w przypadku Julii?
Dowolna biblioteka, która jest dostępna w Pythonie, jest też w Julii. Każdy data scientist z poziomu Julii może bardzo łatwo wywoływać biblioteki zarówno pythonowe, jak i r-owe, jeśli ma taką potrzebę. Łatwość integracji jest jedną z istotnych zalet języka Julia, która bywa niezauważana przez osoby, które dopiero go poznają.
Jak Pan Profesor wyobraża sobie przyszłość wykorzystywania analityki decyzji w biznesie?
Generalny trend, który widzę, a który jeszcze 10 lat temu nie był tak mocno zauważalny, to coraz większe wykorzystywanie wspomnianych wcześniej digital twins. Oczywiście analityka, tak dziś, jak i w przyszłości będzie wykorzystywana na bardzo różne sposoby. Jednak coraz więcej firm się orientuje, że aby dobrze wspomagać podejmowanie decyzji, nie wystarczy zrobić punktowy model, który będzie prognozował jedną zmienną, i już mamy zagadnienie analityczne rozwiązane. Nie wystarczy, aby przedsiębiorstwo handlowe prognozowało sobie np. tylko popyt i na podstawie tej prognozy realizowało procesy operacyjne. Firma oczywiście potrzebuje prognoz popytu, ale potrzebuje także zoptymalizować zatowarowanie, transport czy grafiki pracy. Aby te wszystkie komponenty działały efektywnie, powinny być zintegrowane w jeden ekosystem analityczny. A zatem przedsiębiorstwa będą chciały tworzyć rozwiązania, które w sposób kompleksowy zamodelują proces biznesowy i pozwolą go optymalizować oraz prowadzić analizy scenariuszowe.