Jak wygląda popularność wykorzystywania rozwiązań AI w Polsce? Jakie zastosowanie może mieć Machine Learning? Między innymi o tym dowiecie się w wywiadzie z Bartłomiejem Wegnerem, CEO w firmie IT Predict.
Czytaj także – Cosmose AI – polski startup i jego kosmiczny sukces
Bartku, na co dzień zajmujesz się tworzeniem innowacyjnych rozwiązań w oparciu o AI/machine learning, takich jak Cognitive Computing oraz Neural Style Transfer. Dlaczego zdecydowałeś się na rozwój swoich kompetencji w tym obszarze?
Pracując przez wiele lat w globalnych firmach consultingowych jako doradca strategiczny zauważyłem, że standardowe podejście do transformacji cyfrowej skupia się przede wszystkim na dwóch obszarach: na optymalizacji procesów oraz na wdrażaniu klasycznych narzędzi IT.
Oczywiście w wielu przypadkach to wystarcza, a firmy, szczególnie te mniej wymagające, są zadowolone ze zrealizowanych projektów. Często jednak możliwość realizacji klasycznych optymalizacji, „opakowanych” marketingowym slangiem staje się coraz bardziej ograniczona.
Dodatkowo, klientom przestaje już wystarczać logo renomowanych firm i coraz częściej mówią „sprawdzam” – weryfikując dokładnie czy w ramach kupowanych usług doradczych, za które płacą niemałe pieniądze, otrzymują wartość dodaną z korzystnym stosunkiem „value for money”.
Około 4 lata temu, obserwując zachodzące zmiany, postanowiłem wyprzedzić rynek i zbudować kompetencje w obszarze, który stanie się przysłowiowym „game changerem”, który zmieni sposób w jaki będą realizowane projekty IT. Dla mnie AI to technologia która zmienia nasze postrzeganie do czego można wykorzystać komputery.
Wpływa ona na sposób, w jaki analizujemy i wyciągamy wnioski z przetwarzanych danych. Uważam, że jest to ten obszar, który docelowo zrewolucjonizuje sposób, w jaki będą w przyszłości świadczone usługi doradcze. I właśnie wtedy, gdy zdałem sobie z tego sprawę, postanowiłem skupić się na technologiach z obszaru AI, które wykazują duży potencjał w zastosowaniach biznesowych, to znaczy Cognitive Computing, Neural Style Transfer oraz Computer Vision.
Czy posiadasz gotowy przepis, sprawdzone rozwiązanie, które wykorzystujesz do realizacji projektów innowacyjnych?
Cała sztuka tworzenia innowacyjnych rozwiązań skupia się na wypracowaniu optymalnej koncepcji rozwiązania. Potrzeba świeżego, nieszablonowego spojrzenia na problem, a jednocześnie podejścia, które jest bardzo pragmatyczne. Nie jest to łatwe zadanie, również dlatego, że często nie ma punktu odniesienia w postaci wcześniejszych, analogicznych projektów. Trzeba spróbować czegoś autentycznie nowego i to w IT. Jest to trudne, ale zarazem ekscytujące.
W IT Predict opracowaliśmy autorską metodykę, dzięki której jesteśmy w stanie bardzo szybko zaproponować rozwiązania, które wykorzystują przełomowe technologie, często takie, które zostały opublikowane przez wiodące uczelnie na świecie zaledwie kilka miesięcy wcześniej. Śledzimy również najnowsze doniesienia w dziedzinie uczenia maszynowego od technologicznych gigantów takich jak Google, Nvidia, IBM czy też Microsoft.
Projektując rozwiązania opieramy się na konceptach, które nazywamy „enablerami”- są to gotowe elementy (tzw. „building blocks”), które mamy przetestowane i sprawdzone. Do nich dodajemy te, dla których wiemy że sprawdziły się w innych branżach i wiemy, że uda się je „przeszczepić” na nowe pola działalności. Dodatkowo działamy poza samym obszarem Machine Learningu, realizujemy projekty które łączą korzyści Uczenia Maszynowego z Symulacjami Cyfrowymi (nazywanymi często Cyfrowym Bliźniakiem).
W rezultacie często zdarza się, że proponujemy klientowi zrobienie czegoś, czego prawdopodobnie nikt wcześniej nie próbował zrobić. Bardzo często nie można dać gwarancji sukcesu, ponieważ wynik projektu nie zależy tylko od Ciebie i Twojego zespołu, od samego pomysłu i jego implementacji, ale przede wszystkim od danych które otrzymasz od klienta. A na jakość i wolumen danych zwykle nie mamy wpływu.
Jakie języki programowania wykorzystywane są w tworzeniu tych innowacyjnych rozwiązań?
Prawdę mówiąc wybór języka programowania z perspektywy rezultatów projektu ma drugorzędne znaczenie. To tak samo, gdy chcesz napisać książkę lub artykuł. Czy zastanawiasz się, w jakim edytorze tekstu będziesz pracować? Czy pisząc dokument w Ms Office jego treść będzie ciekawsza niż gdyby napisać go w Open Office? Raczej nikt tak na to nie patrzy. Podobnie jest z językami programowania. Bierzesz po prostu to, co masz najwygodniejsze pod ręką i piszesz, ale robisz to dopiero wtedy, kiedy masz już w głowie projekt rozwiązania który chcesz zaimplementować.
Ale jednak musisz się zdecydować na konkretny język programowania…
Podobnie jak wielu ekspertów na świecie, do zagadnień związanych z uczeniem maszynowym używam Pythona, którego rozbudowuję, w zależności od potrzeb, o pakiety (biblioteki) takie jak np.: NumPy, Pandas, Scikit, pyQt5, Tensorflow, OpenCV i inne.
Python to stosunkowo prosty język, który umożliwia bardzo sprawne pisanie kodu i szybkie sprawdzanie uzyskiwanych rezultatów. Wiem, że nazwy które wymieniłem dla osób spoza branży, brzmią jak czarna magia i sugerują, że potrzeba wielu lat by to opanować. Nic bardziej mylnego. W praktyce korzystanie z tego typu pakietów jest proste i przyjemne.
Nikt nie jest Supermanem, nikt nie zna wszystkiego. Po prostu jeśli projekt wymaga wykorzystania pakietu, z którego nie korzystałeś wcześniej to potrzebujesz kilka dni (a czasem wieczorów) aby go opanować.
Do tego nie jest to czas zupełnie stracony, bo w ramach pracy poświęconej na naukę przygotowujesz już kod (program), który wykorzystasz w Twoim projekcie. Relatywnie dużo czasu zajmuje jednak weryfikacja, czy wykorzystując poszczególne pakiety, na pewno nie naruszamy cudzej własności intelektualnej i praw autorskich. Aspekt ten jest dla mnie szczególnie ważny.
Do oprogramowania komponentów rozwiązania, do których potrzebuję najwyższej możliwej wydajności, wykorzystuję jednak język C++, który niezmiennie uważam za najlepszy język programowania, jaki kiedykolwiek powstał.
Jak z Twojego doświadczenia wygląda popularność zastosowania Machine Learning wśród w firm w Polsce?
Uważam, że w Polsce jesteśmy na bardzo wczesnym etapie, jeśli chodzi o wdrażanie rozwiązań opartych na Sztucznej Inteligencji. Firmy nie wiedzą jeszcze w jakich obszarach można zastosować te technologie i gdzie konkretnie przyniosą one korzyści.
Podam prosty przykład: wystarczy ściągnąć na komórkę apkę Aliexpress lub Amazon i okaże się, że produkty, które chcemy kupić można wyszukiwać na podstawie zdjęcia. Świetna funkcja, kto skorzysta raz, będzie korzystać już zawsze.
A jak to wygląda w przypadku polskich odpowiedników? Cóż, zwykle (aczkolwiek są też wyjątki) nie jest z tym najlepiej. A pamiętajmy, że mówimy tu o bardzo typowych zastosowaniach Machine Learningu.
Z drugiej strony trzeba pamiętać, że spora część rozwiązań z obszaru AI/ML, które można wdrożyć w firmach zwykle nie jest tak oczywista i trudno oczekiwać od klientów, że będą wiedzieć, co jest możliwe do zrobienia.
Dlatego właśnie w IT Predict jednym z przedsięwzięć które realizujemy, są projekty typu discovery. Polegają one na tym, że prowadzimy warsztaty z klientem podczas których, wspólnie wypracowujemy koncepcje nowych produktów, usług oraz optymalizacji, które wykorzystują Sztuczną Inteligencję.
My ze swojej strony pokazujemy, co umożliwiają nowe technologie, a klient pokazuje swoje know-how w ramach branży w której działa. W ten sposób powstają naprawdę dobre pomysły.
Czy chciałbyś się pochwalić jakimś autorskim ciekawym projektem z wykorzystaniem Machine Learning?
Bardzo interesujący jest projekt, który wykonaliśmy ostatnio dla jednego z największych laboratoriów w Polsce. Opracowaliśmy narzędzie do automatyzacji pracy przy wykonywaniu analiz z wykorzystaniem mikroskopu laboratoryjnego.
Dzięki wdrożonemu narzędziu ograniczyliśmy żmudną i powtarzalną pracę pracownika laboratorium. Praca która dotychczas zajmowała pracownikowi około 30-45 minut dla jednej analizowanej próbki, obecnie jest analizowana przez komputer, któremu zajmuje to zaledwie kilka minut.
Dla naszego klienta najważniejszy jest nie tyle sam czas wykonywanej analizy, co możliwość przekierowania laboranta do innych zadań. Na uwagę zasługuje również jakość otrzymanych wyników.
Średnie odchylenie wyniku otrzymanego automatycznie z narzędzia od wyniku wykonanego manualnie przez człowieka wynosi mniej niż 3 punkty procentowe i jest porównywalne ze średnim odchyleniem pomiędzy dwoma pracownikami laboratorium. Co więcej, nasze wyniki są około 3x bardziej precyzyjne w porównaniu z najlepszymi wynikami dotychczas opublikowanymi w pracach naukowych dla analizowanego zagadnienia.
Jak (najprościej ?) wytłumaczyłbyś czym jest Cognitive Computing oraz Neural Style Transfer?
Cognitive Computing to obszar, który skupia się na tym, aby interakcja z komputerem przebiegała w sposób jak najbardziej podobny do interakcji pomiędzy ludźmi. Przez lata przyzwyczailiśmy się do tego, aby efektywnie pracować z komputerem należy stosować się do reguł gry, które on nam narzuca.
Przykładowo: dane do analizy wprowadzamy w tabelach, w kolejności określonej w specyfikacji programu komputerowego, pojemność zapamiętujemy w bitach, bajtach czy też megabajtach, które nie są dla nas intuicyjne. Jednym słowem, to ludzie dostosowują się do oczekiwań komputera.
W Cognitive Computing następuje odwrócenie ról. Od teraz to my oczekujemy, aby komputer dostosował się do naszych reguł współdziałania. Przykładowo, dzięki Cognitive Computing (a dokładniej Natural Language Processing), analizie poddajemy artykuł napisany np. przez dziennikarza i oczekujemy od komputera, aby zrozumiał o czym jest tekst, jakie nastawienie miał autor pracy do tematu, który analizował, jakiego rodzaju zagadnienia zostały tam poruszone, o jakich osobach, firmach, produktach była mowa.
Od teraz komputer pracuje z danymi, które są dużo bliższe człowiekowi, w których występują dwuznaczności, niuanse językowe, a często także ironia. Oczekujemy, że komputer się w tym wszystkim połapie. Najbardziej zaskakujący jest fakt, że wbrew pozorom to działa.
Neural Style Transfer to również bardzo interesujący obszar rozwoju sztucznej inteligencji. Pozwala on na przeniesienie cech charakterystycznych z jednej grupy obiektów na drugą. Tymi obiektami mogą być zdjęcia, na przykład zdjęcia ludzi. Wykorzystując Neural Style Transfer możemy wygenerować zdjęcia osób, które nie istnieją.
Osoby te wyglądają na zdjęciach w taki sposób, że żaden człowiek (i żaden komputer) nie może określić czy zdjęcie przedstawia rzeczywistą osobę, czy też przedstawia postać fikcyjną.
Przykład przedstawiam na zdjęciu poniżej. Portrety w pierwszym rzędzie i w pierwszej kolumnie to autentyczne osoby. Wszystkie osoby, które znajdują się na przecięciu kolumn i wierszy są nierzeczywiste, a powstały dzięki temu, że udało się przetransferować styl, czyli cechy charakterystyczne twarzy, które pochodziły od rzeczywistych osób.
Źródło pracy: https://research.nvidia.com/publication/2019-06_A-Style-Based-Generator