Z Pawłem Nogą, konsultantem ds. deep learning, rozmawia Malwina Szopa



Pawle, posiadasz szerokie doświadczenie w branży IT, poświęciłeś się całkowicie pracy w obszarze AI. Czy możesz przybliżyć naszym Czytelnikom, co skłoniło Cię do zainteresowania się tą dziedziną? 

Przypadek. Zajmowałem się głównie testowaniem oprogramowania i budowaniem zespołów odpowiedzialnych za szeroko pojęte QA. Pewnego dnia otrzymałem propozycję stworzenia od zera zespołu testującego sprzęt i oprogramowanie do deep learningu. Skorzystałem z tej oferty i tak zaczęła się moja już pięcioletnia przygoda z AI, a w szczególności z testowaniem jego wydajności.

Machine learning czy deep learning potrzebują ogromnych mocy technologicznych, co wymaga zapewnienia doskonałego, często bardzo kosztownego sprzętu. Duże, dobrze prosperujące firmy stać na nowe technologie i odpowiedni sprzęt. Czy małe firmy i start-upy również mogą sobie pozwolić na rozpoczęcie przygody z tworzeniem rozwiązań AI?

I tak, i nie. Z jednej strony tym, co generuje najwięcej przełomów w AI, jest podejście brute force  – czyli wykorzystanie potężnych superkomputerów i ogromne inwestycje. Sam rachunek za prąd przy wytrenowaniu największych sieci neuronowych może wynieść kilka milionów dolarów. W takim wypadku duże korporacje mogą więcej i intensywnie walczą o pozycję lidera. Firm konkurujących ze sobą przez takie inwestycje jest mniej niż tuzin na całym świecie.

Natomiast czym innym jest korzystanie z osiągnięć tych firm. Stworzenie prototypu jest kosztowne – wykorzystanie go masowo jest o rzędy wielkości tańsze. Dobrym przykładem jest sieć GPT-3. Po jej wytrenowaniu, które trwało kilka miesięcy, została ona upubliczniona i każdy może z niej skorzystać oraz odpowiednio ją dostosować do swoich potrzeb biznesowych za ułamek początkowego kosztu. Takie podejście nazywamy fine tuningiem i jest ono głównie wykorzystywane przez start-upy czy mniejsze firmy. Biorą one dostępne sieci neuronowe i nie „trenują” od zera – ale „dotrenowują” na specyficznych dla swojego biznesu danych. 

To podejście nie sprawi, że będzie się lepszym od tych stosujących metody brute force, ale i tak pozwala na optymalizację swojego biznesu i generowanie zysków czy redukcję kosztów. 

Fot. Pixabay.com


A teraz zapytam z drugiej strony. Duże nakłady potrzebne na tworzenie rozwiązań AI mogą odstraszać potencjalnych inwestorów. Czy istnieją czynniki mogące przyspieszyć zwrot z inwestycji?

Takich czynników jest całkiem dużo. Wśród najważniejszych na pierwszym miejscu należy wymienić sprzęt do AI. W większości wypadków wystarczy wynająć moc obliczeniową w usługach chmurowych. Trenowanie sieci jest często jednorazowym kosztem, a późniejsze jej wykorzystanie (tzw. inferencja) wymaga tylko ułamka mocy. Nie ma więc potrzeby budowania dużego centrum obliczeniowego. 

Po drugie – dobre zrozumienie jakie ma się dane i do czego chcemy je wykorzystać. Prowadząc konsultacje dla wielu firm widzę, że na tym etapie jest najwięcej problemów. Najskuteczniejszym sposobem na wykorzystanie AI przez małe i średnie firmy jest zastosowanie jej do usprawnienia procesów obsługiwanych przez ludzi – a nie całkowitego ich zastąpienia. Przykładem niech będą usługi telemarketingowe. Możemy użyć już istniejących rozwiązań AI do nawiązania połączenia i przeprowadzenia pierwszych sekund konwersacji, aby zorientować się, czy klient w ogóle chce z nami rozmawiać – jeśli tak, to przekierujemy go do człowieka. Te kilkanaście sekund jest gigantycznym zyskiem, gdy przemnożymy je przez tysiące przypadków dziennie, kiedy większość rozmów jest nieudana – ludzie nie są zainteresowani, a czasem nawet nieuprzejmi. Tych bierze na siebie AI. W ten sposób nasi telemarketerzy skupiają się na sprzedawaniu, a nie wykonywaniu 95% nieefektywnych połączeń. 

Po trzecie – skorzystanie z wiedzy zewnętrznej i z istniejących narzędzi czy sieci neuronowych. Technologie AI rozwijają się tak szybko, że nawet inżynierom ciężko za nimi nadążyć, jeśli nie pracuje się bezpośrednio w tej branży. Wdrażanie takich rozwiązań może wiązać się z wieloma ślepymi ścieżkami czy zastosowaniem starych technologii (gdzie przez stare rozumiem takie mające rok czy dwa). Często jeden dzień konsultacji zespołu w firmie z kimś z zewnątrz może zaoszczędzić tygodnie rozpoznawania technologii i prototypowania.  


Kogo tak naprawdę potrzebujemy do stworzenia deep learningu i machine learningu? Czy obecnie ciężko jest zdobyć specjalistów na rynku? Jakie kompetencje są wymagane od specjalisty na poziomie regulara?

Inżynierowie od deep learningu to aktualnie chyba najlepiej zarabiający specjaliści w IT. Jest ich mało, uczelnie nie kształcą w tym kierunku (albo na zajęciach jest teoria sprzed dekady), a tempo rozwoju sprawia, że przebranżowienie wymaga sporego szczęścia w trafieniu na dobry projekt lub firmę. Natomiast kwestie finansowe zachęcają wielu inżynierów do spróbowania, do czego zawsze mocno zachęcam. 

Co ciekawe, podstawowe umiejętności techniczne nie są wcale duże. Dwa języki programowania dominują w deep learningu. Jest to C++ i Python. Do tego podstawy Linuxa i praktyka w korzystaniu z takich narzędzi jak Docker czy AWS. Niestety dochodzi do tego bardzo specyficzna wiedza domenowa – czyli znajomość frameworków do deep learningu (jak TensorFlow czy PyTorch), zrozumienie matematyki sieci neuronowych i tego, jak podnosić ich skuteczność oraz wszelka wiedza optymalizacyjna (performance: równoległość obliczeń, latencja, sieci). 

Warto przy okazji wspomnieć o pewnym błędnym przekonaniu panującym w tej branży – mianowicie roli stanowiska określanego jako ‘deep learning scientist’. Wielu ludzi myśli, że to pasjonująca praca polegająca na wymyślaniu nowych sieci neuronowych – w praktyce przy wdrożeniach korzysta się z istniejących sieci i praca człowieka skupia się na danych: odpowiednim ich zebraniu, przygotowaniu i optymalizacji procesu treningu. Jest to bardzo mozolny proces. 

Skuteczny zespół wdrożeniowy powinien mieć przynajmniej jednego takiego specjalistę od danych. Będzie on kluczem do sukcesu czy skutecznego pokonania zakrętów w projekcie – natomiast deweloperzy będą wciąż główną siłą napędową.  

Fot. stock.adobe.com


Firmy chętnie przyklejają sobie łatkę tych tworzących rozwiązania AI – co z pewnością dodaje im punktów w rankingu innowacyjności i po prostu „fajności”, choć nie we wszystkich przypadkach jest to prawda. Co doradziłbyś kandydatom, którzy szukają zatrudnienia w tym obszarze? Jak rozpoznać firmę rzeczywiście doświadczoną w dziedzinie AI, od tych tylko aspirujących? Jakie pytania w trakcie rozmowy kwalifikacyjnej mogą nam w tym pomóc?

Proponuję zadać im dwa proste pytania. Po pierwsze, z jakich frameworków do deep learningu korzystają i z jakich sieci neuronowych. Zdecydowanie uważałbym na firmy, które odpowiedzą w stylu „jeszcze nie wiemy”, „dopiero się nad tym zastanawiamy”, „rozważamy różne opcje”. Jeśli chcemy zacząć przygodę z AI, powinniśmy dołączyć do firmy o już dojrzałych projektach. 

Zapytałbym również o dane jakie posiada firma, jak je przetwarzają i co na ich podstawie generują za pomocą sieci neuronowych? I znowu, uważałbym na firmy odpowiadające w stylu „mamy dużo danych i zastanawiamy się jak ich użyć”, „twoją rolą będzie właśnie rozpoznać ten temat”, „mamy dużo procesów do zautomatyzowania za pomocą AI”, „dopiero tworzymy zbiór danych i to będzie twoje zadanie.”  

Podsumowując: doświadczona firma ma określone technologie, cele i kierunek w projektach AI. Aspirująca będzie chciała dopiero rozeznać temat i będzie to sprzedawała kandydatowi jako okazję, otwartość wyboru narzędzi itp. Taka firma to dobre miejsce dla seniorów, którzy będą potrafili zaproponować konkretne rozwiązania. Juniorom i regularom polecałbym jednak pracę w projektach bardziej dojrzałych.


Jakie kompetencje managerskie są potrzebne do zarządzania w firmie tworzącej rozwiązania w AI? Jak postęp w tworzeniu AI wpłynie na zapotrzebowanie na Project Managerów i Product Ownerów? Widzisz ryzyko ich zastąpienia przez sztuczną inteligencję?

Każdy zawód wykorzystujący dane może być prędzej czy później zastąpiony przez AI. Chociaż ja jestem zwolennikiem teorii nie całkowitego zastąpienia, ale znacznej redukcji przez narzędzia AI. Przykładowo w HR i analizie pracowników – bardzo łatwo przekazać do AI większość procesu zbierania, przetwarzania danych i wyszukiwania anomalii, a ludziom pozostawić tylko ostatni aspekt, czyli kontakt z pracownikami. 

To samo dotyczy Project Managerów czy Product Ownerów – narzędzia do analizy ryzyka czy zarządzania wymaganiami będą jednymi z pierwszych, które najwięcej zyskają na stosowaniu AI. Warto zaznaczyć, że jesteśmy właśnie w okresie pojawiania się i wytwarzania takich narzędzi. Będzie to znacznie większa zmiana niż przejście w zarządzaniu z Excela do narzędzi jak Jira. 

Natomiast jeśli chodzi o kompetencje do używania AI w firmie, poza znajomością technologii raczej niczym to nie różni się od kompetencji wymaganych przy wdrażaniu innych narzędzi. To zawsze jest oparte na jakieś analizie kosztów, ryzyk i zysków. Wróćmy do przykładu telemarketingu – jeśli AI wykonuje początkową fazę połączeń telefonicznych i odsiewa 95% niezainteresowanych, to zyskiem będzie to, ile więcej połączeń będziemy mogli wykonać, o ile lżejszą pracę będą mieć nasi telemarketerzy, ile zaoszczędzimy na psychologach dla nich itp. Taka analiza jest kluczem do rozpoczęcia wdrożenia. 

Warto również pomyśleć o AI jako narzędziu do podnoszenia skuteczności (od prostych prac jak sortowanie jabłek, do skomplikowanych jak trafność reklam). Jeśli Google potrafi dzięki zastosowaniu deep learningu podnieść klikalność w swoje reklamy o jeden procent, to zarobi na tym miliardy. Jeśli ma taką wizję, to może wydać te miliardy na technologię. 


Twierdzisz, że w przyszłości nie będą potrzebni developerzy  –  ich miejsce zajmie deep learning. A co z DevOpsami? Jak prognozujesz ewolucję ich roli?

Twierdzę, że każdy zawód, gdzie są dane, zostanie znacznie zredukowany przez skuteczne narzędzia oparte na AI. Tak jak rola lekarza zredukuje się do roli pośrednika odpytującego o objawy i odczytującego wynik diagnozy z ekranu – tak samo deweloperzy staną się bardziej architektami mówiącymi AI, jakich klocków potrzebują. Już teraz są narzędzia, gdzie możemy sobie narysować jak ma wyglądać strona WWW, a AI stworzy z tego właściwy kod. 

DevOps to całkiem nowy zawód (ewolucja z połączenia człowieka od IT, admina i testera przemnożona przez skomplikowanie naszych technologii). Jednak jego rola to w większości architektura i nadzór nad systemami. Część z nadzorem łatwo przekazać do automatycznych systemów opartych na AI; jeśli chodzi o architekturę – to zależy. Jak zawsze spodziewam się, że najpierw powstaną narzędzia ułatwiające, a z czasem przejmujące tę rolę.