Modelowanie matematyczne objaśnia funkcjonowanie świata, choć nie każdy język się do tego nadaje
– Python jest dobry do klejenia różnych klocków w całość, ale nie nadaje się do implementacji nowych algorytmów, które liczą się zbyt wolno. W efekcie są one implementowane w C++, gdzie trzeba się dużo napracować, bo język ten nie jest przystosowany do analiz matematycznych. Alternatywą dla combo C++ i Python jest język Julia, która świetnie się sprawdza zarówno w modelowaniu procesów analitycznych, jak i wdrożeniu własnych algorytmów. Często jest dużo „szybsza” od innych języków.
O technologiach wspierających data scientistów, rozwijaniu niegdyś egzotycznego języka programowania, a także sposobach na zastosowanie zdobyczy data science przez przedsiębiorców rozmawiamy z dr. Przemysławem Szuflem – adiunktem w Zakładzie Wspomagania i Analizy Decyzji Szkoły Głównej Handlowej w Warszawie oraz współpracownikiem Laboratorium Badań nad Bezpieczeństwem Cybernetycznym w Ted Rogers School of Management na Uniwersytecie Ryersona w Toronto, partnerem zarządzającym funduszu VC Nunatak Capital. Dr Szufel jest też ekspertem i pasjonatem języka programowania Julia, współautorem książki pt. „Julia 1.0 Programming Cookbook”, a także jednym z najbardziej szanowanych ekspertów na portalu Stackoverflow.com, który rozwija język Julia.
Naukowo zajmuje się Pan obszarem analizy decyzji. Porozmawiajmy więc o analityce, ale w zakresie data science. O czym się teraz najczęściej mówi na świecie?
Głównie o narzędziach wykorzystujących szeroko pojętą sztuczną inteligencję. Chodzi o gotowe komponenty do rozpoznawania twarzy czy głosu, ale też zamieniające mowę na tekst i przetwarzające naturalny język. Jest teraz taki trend, by zamiast samodzielnie tworzyć algorytmy, wykorzystywać w zamian gotowe klocki. I tu trzeba wspomnieć o rozwijających się rozwiązaniach typu AutoML. Opierają się one na tym, że niejako same pobierają dane i automatycznie do nich przymierzane są modele. Dzieje się to bez konieczności zajmowania się procesem modelowania.
Zobrazujmy to sobie. Mogę wziąć historyczne dane z kampanii marketingowej, „wrzucić” je do tzw. czarnego pudełka, którym jest AutoML. W rezultacie otrzymam informacje oraz model prognostyczny, którzy klienci i w jaki sposób reagowali na daną kampanię reklamową oraz na dany produkt.
Albo inny przykład, tym razem z bankowości. Mamy dane o kredytach i zaciągniętych pożyczkach. Znajduje się tam także przekrój informacji na temat poszczególnych klientów. AutoML wygeneruje nam model, który jest w stanie oszacować, jakie jest prawdopodobieństwo, że dana osoba zwróci kredyt. Narzędzia AutoML pozwalają generować modele znacznie mniejszym nakładem pracy i w efekcie przyczyniać się do zmniejszania liczby zatrudnionych analityków danych. Niestety, nie ma róży bez kolców – nie każdy problem ma strukturę pozwalającą na jego rozwiązanie standardowym automatycznym narzędziem. I chyba dobrze, że tak jest, bo dzięki temu najciekawsze problemy trafiają ciągle do ludzi, a nie do maszyn.
Skoro modele matematyczne potrafią ułatwić wiele procesów, to czy wykorzystanie ich w pracy z Pana studentami jest możliwe i efektywne? Na przykład przy ocenach?
Ocena studenta to wyjątkowa materia, która wymaga często czegoś więcej niż system. Ale faktycznie, staram się korzystać z pewnego rodzaju automatycznego rozwiązania. Weryfikuje ono zadania z zakresu wykładanego przeze mnie przedmiotu Cloud Computing oraz to, czy zostały w odpowiedni sposób rozwiązanie i opublikowane w chmurze.
Stawiam na praktykę, choć jednocześnie wyznaję zasadę, że bez teorii nie ma mowy o praktyce, a znajomość podstawowych definicji, praw i zależności jest niezbędna, by dobrze wykonywać zadania.
No dobrze, chmura potrafi przetwarzać ogrom danych na niespotykaną wcześniej skalę. Mamy jednak pytanie o ich wartość – czy rzeczywiście da się ich wszystkich użyć z korzyścią dla użytkownika?
Dane mogą nam pomóc w znalezieniu odpowiedzi na wiele pytań i podjęciu właściwych decyzji. Jednak same w sobie nie dają wartości. Najpierw trzeba je przetworzyć. Od danych do informacji i wiedzy jest dość długa droga. Celem procesu analitycznego, a więc procesu data science jest to, by od punktu, gdzie mamy surowe dane, dojść do punktu, gdzie możemy podjąć jakąś decyzję, zamienić naszą wiedzę w konkretne działanie. Strasznie ciekawe w danych jest to, że można je modelować matematycznie. Modele te mogą być przedmiotem eksperymentów lub optymalizacji i w efekcie za ich pomocą można objaśniać, jak działa świat.
Czy język Julia, który Pan popularyzuje, też potrafi wytłumaczyć, dlaczego świat działa w taki sposób, a nie inny?
Oczywiście! Julia 1.0 miała premierę w 2018 roku, a więc jest to narzędzie stosunkowe młode. W data science zmieniło to, że wypełniło pewną lukę na rynku. Obecnie najpopularniejszym narzędziem do łączenia poszczególnych komponentów procesu analitycznego jest język Python. Ale jeśli te różne klocki musi stworzyć lub zaimplementować wymyślony przeze mnie algorytm, to Python nie jest już w stanie tego efektywnie zrobić. Inaczej ma język Julia.
Badacze z Massachusetts Institute of Technology w nauce numerycznej nazywają to problemem z dwujęzycznością. O ile Python jest dobry do klejenia kodu w jedną całość, o tyle tworzenie w nim poszczególnych algorytmów jest dość problematyczne. Alternatywą dla popularnego dotychczas combo języków C++ i Python jest język Julia. Dzięki swojej elastyczności pozwala używać dowolnej biblioteki Pythona, ma również podobną składnię. Python jest stosunkowo wolny – nawet 30 razy wolniejszy niż ten sam kod w języku C++, podczas gdy Julia kompiluje się bezpośrednio do kodu maszynowego rozumianego przez procesor komputera. Dokładnie tak samo jak szybki C++. Mogę więc korzystać z wielu efektywnych cech, którymi dysponuje ten język, a przy tym dysponować szybszym w działaniu narzędziem. I to jest właśnie Julia.
Pana dorobek w obszarze języka Julia to światowa klasa! Jak stał się Pan specjalistą w tym obszarze?
Do świata Julii trafiłem bardzo prosto, ponieważ zajmuję się analizami numerycznymi i wielkoskalowym przetwarzaniem danych. Znam Javę, ale nie jest ona przystosowana do analiz matematycznych. Mogłem wybrać Pythona, ale tam z kolei modele liczyły się bardzo wolno. Okazało się, że do implementowania własnych algorytmów idealny okazał się język Julia – wówczas jeszcze w wersji beta.
Wspólnie z kolegą z SGH, profesorem Bogumiłem Kamińskim, napisaliśmy też o niej książkę pt. „Julia 1.0 Programming Cookbook”, która została przetłumaczona na język japoński. Na co dzień prowadzę szkolenia. m.in. w ramach współpracy ze Szkołą Główną Handlową i z Narodowym Bankiem Polskim. Mogę też zdradzić, że NBP w tym momencie idzie śladem innych banków centralnych na świecie i wdraża język Julia do analiz makroekonomicznych. Co ciekawe, szkolenie z języka Julia dla polskiego banku centralnego współprowadziłem już w roku 2019, a więc kilkanaście miesięcy po ukazaniu się wersji 1.0 języka. Pokazuje to, jak bardzo innowacyjna i otwarta na nowe technologie jest ta instytucja.
Nawiązując do tytułu Pana książki o języku Julia – czy z algorytmami jest jak z gotowaniem?
Zdecydowanie. Mieliśmy zamysł skonstruować książkę o zaawansowanym języku programowania tak, jakbyśmy chcieli stworzyć książkę kucharską. To trochę wyjście naprzeciw zasadzie „learning by doing” – na podstawie przykładów pokazujemy, jak robić różnego rodzaju rzeczy. W ten sposób działa właśnie portal Stackoverflow.com, który zrzesza programistów, informatyków, analityków. Ludzie zadają pytania i dostają odpowiedzi. W przypadku informatyki pokazywanie rzeczy naocznie bardzo dobrze działa. Zaczynanie od teorii i omawianie wszystkich możliwych rzeczy, które da się zaprogramować, byłoby zwyczajnie nieefektywne.
Jest Pan zewnętrznym konsultantem w dziedzinie data science. Rozmawialiśmy o dużej firmie, która dzięki zaprojektowanemu rozwiązaniu na bazie języka Julia poprawiła funkcjonowanie podstawowych procesów biznesowych.
To dość banalne, ale prawdziwe: data science prawidłowo użyte łączy się z biznesem, a nieprawidłowo używane tego nie robi. W biznesie data science ma swój cel, którym najczęściej jest optymalizacja. Za optymalizacją idą konkretne pieniądze, które można zarobić lub zainwestować.
Wraz z profesorem Piotrem Ciżkowiczem miałem okazję zbudować pewien model dla jednego z największych w Europie producentów rowerów – firmy Kross. Swoją drogą, chyba najbardziej innowacyjnej firmy rodzinnej w Polsce. Celem było wyprodukowanie jak największej liczby rowerów przy utrudnionej dostępności poszczególnych części. Kłopoty wynikały z zaburzeń w logistyce – brakowało hamulców, amortyzatorów, a nawet farby do malowania. Jednocześnie był duży popyt, więc należało znaleźć receptę na biznes w rzeczywistości niedoborów.
W modelu, który zbudowaliśmy, zebrane zostały najpierw dane dostępne w spółce o procesach produkcyjnych, o liniach produkcyjnych, o tym, z czego się składają rowery, o możliwościach dostawcy… Łącznie ponad 4 mln zmiennych decyzyjnych i ponad 100 mln warunków ograniczających. Tutaj chodzi o dostępność i przepustowość linii produkcyjnej, możliwości zakładu czy pracowników. Ostatecznie powstał model, który wskazuje, kiedy, ile, jakich rowerów i dla kogo należy produkować. To, że ktoś jeździ teraz czerwonym lub zielonym rowerem wyprodukowanym przez Kross, jest efektem decyzji, którą podjął ten nasz model. Dzięki jego wdrożeniu wzrosła rentowność całej fabryki o 10 proc., co bez wątpienia przełożyło się na wynik finansowy spółki.
Ciekawe, w jakim stopniu podobne zakłady mogłyby obniżyć koszty produkcji i zwiększyć przychody, gdyby firma dysponowała podobnym modelem wcześniej… Choć pewnie takie, które już na starcie stawiają na data science, mogą się nie martwić o kwestię optymalizacji.
I takie właśnie spółki bierzemy pod swoje skrzydła w ramach funduszu VC Nunatak Capital, którego też jestem współwłaścicielem.
Jak wygląda obecnie inwestowanie w takie spółki?
W świecie start-upów technologicznych co drugi chce dziś być „data science”. W moim odczuciu jest to już pewnego rodzaju buzzword, czyli pojęcie bardzo modne, a czasami pewnie też nadużywane.
Dla nas cenne są firmy, które budują swoją wartość wokół data science. Mamy nietypowy model działalności, bo korzystamy jedynie z pieniędzy prywatnych. Dzięki temu pojawiają się nowe możliwości i znikają ograniczenia, które są np. przy korzystaniu z państwowego finansowania. W przypadku projektów data science często chodzi nie tylko o trafność, ale i szybkość podejmowania decyzji, w naszym przypadku inwestycyjnych. Tutaj trzeba wykazać się elastycznością, która jest nieodłącznym elementem procesu inwestycyjnego.
Czy obserwuje Pan trend, że fundusze VC przychylniej patrzą dziś na firmy oferujące produkty i rozwiązania z jakiegoś konkretnego obszaru?
Przede wszystkim opłaca się inwestować tam, gdzie oczekujemy szybkiego wzrostu. Start-upy, które obecnie dobrze się rozwijają, to takie, które pozwalają na automatyzację uciążliwych procesów. Chodzi o kwestie dotyczące zarówno ludzi, jak i ich codzienności, ale też procesów w firmach.
Podam przykład procesu zarządzania umowami. W naszym portfelu znajduje się start-up, który oferuje automatyzację tworzenia, konstruowania i gromadzenia plików z umowami w różnych działach firmy. Ich narzędzie pozwala na zarządzanie treścią umowy, dołączanie skomplikowanych klauzul i zapisów do umów. Ujednolica także formaty i sposoby podpisywania dokumentów. Wykonywanie tych czynności jest czasochłonne i nieefektywne, a z takim narzędziem wszystko jest w jednym miejscu i ułatwia działanie firmy.
Rosną także start-upy, które dostarczają oprogramowanie dla klientów moich klientów (ang. client of a client). Przykładem jest firma z naszego portfela tworząca aplikację dla żłobków i przedszkoli, z której realnie korzystają rodzice dzieci. Z jednej strony jest to system do zarządzania przedszkolem, który dyrektor i tak musiałby prowadzić, np. w Excelu. Z drugiej strony służy do komunikacji z rodzicami zamiast wysyłania wielu maili. Tu każdy rodzic dostaje informacje o dziecku w czasie rzeczywistym – o tym, że zjadło obiad czy zasnęło w porze drzemki.
Mówi Pan o realnym zastosowaniu data science w codziennym życiu. Tylko czy to nadal ma coś wspólnego z nauką? Gdzie w określeniu „data science” jest miejsce na „science”?
To jest właśnie najpiękniejsza rzecz w uprawianiu nauki. Bo wszystko polega na znajdowaniu zależności, jak poszczególne komponenty nachodzą na siebie, jak mogą na siebie wpływać i co ostatecznie można z nich stworzyć. Raz będzie to zaawansowany model, raz aplikacja, a raz – sposób na usprawnienie biznesu.
To nieodłączna właściwość data science, która daje całościowe spojrzenie na rzeczywistość dzięki przeplataniu się nauki i informacji, które finalnie prowadzą do wiedzy, wartości i lepszej rzeczywistości.