Wywiad z firmą Datarabbit – partnerem Olimpiady Sztucznej Inteligencji
Wszystkich odpowiedzi udzielił Michał Mikołajczak.
Bio: Ekspert technologiczny ze specjalizacją AI/ML, zmuszony przez życie do założenia garnituru i prowadzenia biznesu.
Ma background przede wszystkim w branżach medtech i healthcare. Był członkiem-założycielem wielu startupów w tej domenie, przede wszystkim koncentrujących się na wspieraniu lekarzy w diagnozowaniu chorób – wliczając to bycie CTO jednego z nich, pomyślnie przejętego z wartością transakcji na 80 milionów dolarów.
Obecnie założyciel i główny architekt rozwiązań w datarabbit, firmie specjalizującej się w projektowaniu i wdrażaniu najnowocześniejszych rozwiązań opartych na sztucznej inteligencji i danych – przede wszystkim dla dostawców usług medycznych, firm farmaceutycznych i organizacji zajmujących się technologiami medycznymi.
Współpracujecie z różnymi branżami – od opieki zdrowotnej po księgowość. Jakie największe wyzwania napotykacie przy wdrażaniu rozwiązań AI w tak różnych sektorach? I jak sobie z nimi radzicie?
Odpowiedź: Wyzwania i specyfika projektów i rozwiązań bardzo różni się, w zależności od konkretnej branży – ale istnieje też zbiór wręcz uniwersalnych problemów, które pojawiają się właściwie w każdej.
Największym z nich jest to, że użytkownicy czy stakeholderzy w projekcie często nie do końca precyzyjnie wiedzą czego chcą. Tzn. wiedzą, że chcą dodać jakąś funkcjonalność, czy chcą coś zautomatyzować, ale zazwyczaj dość ogólnikowo, i bez szczegółów – a one często są kluczowe dla zaprojektowania i wdrożenia rozwiązania z sukcesem. Dlatego zazwyczaj zaczynamy od bardzo dokładnego badania potrzeb i wymagań (funkcjonalnych i niefunkcjonalnych dla rozwiązania) – mówiąc kolokwialnie, identyfikujemy gdzie tak naprawdę leży problem, jak można go rozwiązać, i co naprawdę pomoże firmie w danym scenariuszu. Paradoksalnie, mimo, że naszą specjalizacją są wszelkie rozwiązania data-driven/bazujące na AI, i właśnie z tym na myśli firmy do nas przychodzą, to często okazuje się, że AI wcale nie jest potrzebna, a problem da się często rozwiązać szybciej, prościej, a czasem nawet bez kodu – po prostu usprawniając czy modyfikując pewne procesy czy sposoby działania w danej organizacji. Często takie odpowiednie zbadanie sytuacji (i sporo rozmów), pozwala potem zaoszczędzić tygodnie pracy technicznej.
Jeśli jednak mamy do czynienia z problemem, który jest kandydatem do rozwiązania przy pomocy AI/ML, to kluczowym aspektem są tu dane. Musimy je mieć na potrzeby zarówno rozwoju, jak i ewaluacji algorytmów – zebrane, i odpowiednio oznaczone. O czym zazwyczaj organizacje w ogóle nie myślą. Dlatego naszą domyślną wręcz rekomendacją jest: “zbierajcie wszystko, co się da (i jest prawnie możliwe)”. Samo zbieranie danych, jest w obecnych czasach bardzo tanie, są to wręcz dosłownie groszowe sprawy, a nigdy nie wiemy, kiedy one będą potrzebne. Natomiast lepiej zadbać o nie od początku, niż później musieć czekać pół roku, żeby móc w ogóle zacząć projekt. Niektóre zbiory danych mogą mieć w dzisiejszych czasach sporą wartość nawet jeśli nie wykorzystujemy ich bezpośrednio. Regularnie zdarza nam się przygotowywać specyficzne zbiory danych (związanych z medycyną), które są potem po prostu wypożyczane czy kupowane przez inne podmioty.
To chyba najważniejsze z uniwersalnych zasad: przede wszystkim dobrze zidentyfikować problemy i ustalić jak dostarczyć wyniki / co w zasadzie dostarczy wartość użytkownikom końcowym, a jeśli to AI – to zadbać o dane. Może to brzmieć trochę dziwnie od kogoś, kto specjalizuje się w najnowocześniejszych i innowacyjnych rozwiązaniach, ale mimo wszystko jest to coś, czego nie mogę bardziej podkreślić. Ponieważ technologia to tylko narzędzie – a chodzi o to, żeby rozwiązać problem (de facto czy prostym “klasycznym” programem składającym się z ifów, czy wielkim LLMem zazwyczaj mało użytkownika obchodzi).
Potem już każda branża różni się między sobą swoimi specyficznymi wyzwaniami. My specjalizujemy się w healthcare/medtechu, który znamy bardzo dobrze. Specjalizacja bardzo pomaga, ale realizujemy też projekty dla wielu innych branż – w obu przypadkach (nawet jeśli znamy coś prawie perfekcynie) warto zawsze zasięgnąć po wiedzę ekspertów domenowych: faktycznych użytkowników, zespółu klienta, prawników, etc. i ustalić jakie jeszcze specyficzne wymagania branżowe musimy spełnić w danym sektorze. Przykładowo, we wspomnianej już medycynie, w której najczęściej działamy, kluczowe jest bezpieczeństwo i prywatność danych, oraz spełnienie powiązanych z nimi wymagań regulacyjnych – z tego powodu np. bardzo często rozwiązania muszą działać w całości on-premise, bez wysyłania do chmury (ponieważ np. z punktu widzenia prawnego, dane wrażliwe nie powinny fizycznie opuszczać placówek). Wymagania te różnią się w zależności od sektora, ale w zasadzie każdy ma jakieś swoje “smaczki” – które trzeba zaadresować.
Czy możecie podzielić się przykładem projektu, który – Waszym zdaniem – miał realny wpływ na społeczeństwo lub konkretną branżę? Co sprawiło, że był dla Was szczególnie ważny?
Odpowiedź: Jakkolwiek by to nie brzmiało, to myślę, że mamy bardzo dużo takich projektów, ponieważ naszą specjalizacją jest branża healthcare. Do każdego projektu, który realizujemy podchodzimy z najwyższą starannością, ale nie da się ukryć, że działając w tym obszarze, jest w nim też pewien wymiar misyjny. Regularnie przygotowujemy algorytmy, które pozwalają zaoszczędzić setki tysięcy dolarów miesięcznie, ale w projektach dla tej branży jednocześnie mamy świadomość, że w jakimś stopniu mogą przyczynić się do uratowania komuś życia – i to naprawdę działa bardzo motywująco.
Ciężko tu wybrać konkretny pojedynczy przykład. Ze względu na różne umowy poufności, nie mogę zdradzać sporej ilości szczegółów, ale realizowaliśmy między innymi system, który wspiera diagnozowanie chorób mózgu. Dla mnie osobiście chyba był to najbliższy sercu projekt, ponieważ swego czasu te same choroby, które pomagaliśmy wspomóc zwalczać, dotkneły osoby z mojej najbliższej rodziny.
Natomiast nie wszystkie projekty muszą być też bardzo “medialne”. Gdy ktoś słyszy o diagnozowaniu przy pomocy AI chorób mózgu, robi to takie efekt “wow”, ale obecnie mamy też wdrożenia, które nie wspierają diagnostyki bezpośrednio, a skupiają się na usprawnieniu codziennej pracy lekarzy w szpitalach, na przykład odciążając ich z rutynowych zadań poprzez ich automatyzacje. Niektóre z tych zadań, to dosłownie bardzo przyziemne rzeczy, ale nadal przy rozwiązaniu ich potrafimy zaoszczędzić nawet dziesiątki godzin pracy pojedynczych lekarzy miesięcznie, co pozwala im skupić się na pacjentach. Czasem to, co wydaje się rutynowe i mało atrakcyjne, może mieć w rzeczywistości naprawdę bardzo duży impact.
Z punktu widzenia ucznia czy studenta AI to często abstrakcyjny temat. Jak wygląda codzienna praca specjalisty ds. sztucznej inteligencji w Datarabbit? Czy jest w niej więcej kodowania, eksperymentowania, czy może pracy zespołowej?
Odpowiedź: oczywiście wszystko zależy od branży i wielkości firmy. Inaczej sytuacja będzie wyglądała w takich firmach jak nasza, a zupełnie inaczej w dużych korporacjach. Natomast na pewno warto przyswoić sobie jedną rzecz: trzeba nastawić się na bardziej holistyczne, całościowe podejście – faktyczna praca nie będą już prosty flow typu: gotowe dane, odpalić coś w Jupyter Notebooku i gotowe.
Trzeba będzie ustalić potrzeby użytkowników i jak rozwiązanie w zasadzie ma działać – o czym już wspominałem, a co często nie jest oczywiste. Potem może się okazać, że danych w ogóle nie ma i trzeba będzie przygotować narzędzia do ich akwizycji. A jeśli dane są, to wymagają sporo czyszczenia, czy ich późniejszego oznaczania. Samo stworzenie algorytmu czy modelu też często okazuje się znacznie trudniejsze niż w tutorialach czy popularnych, laboratoryjnych przykładach.
A to dopiero początek – później trzeba taki algorytm wdrożyć (zdeployować) tak, by działał z odpowiednią skalą. Zabezpieczyć się przed jego błędami czy niepoprawnym działaniem, zintegrować z jakąś aplikacją która dostarczy wyniki użytkownikom, zapewnić stabilność, monitorowanie... i tak dalej.
Nie każdy oczywiście musi się zajmować wszystkimi tymi aspektami, ale sama praca nad modelem to często tylko 10, 20, no może 30% całego projektu – zależnie od przypadku i podziału ról. Ogromna część natomiast to działania "dookoła", które są często mniej “medialne” i widoczne niż AI, ale w praktycznych wdrożeniach często są ważniejsze niż sam algorytm. Bo jeśli nie dostarczymy finalnie jego wyników w użytecznej formie, w ramach kompletnego rozwiązania – to nikt z niego nie skorzysta.
Dużo w tym jest pracy z zespołem i związanej z tym komunikacji. Czasem zbyt dużo – u mnie na przykład część dnia spędzana na koordynacji projektów czy pisaniu maili jest zdecydowanie większa niż bym chciał (śmiech). Natomiast jeśli ktoś ma nastawienie, że nie po to zainteresowałem się informatyką/technologią/AI żeby teraz rozmawiać z ludźmi, to mam dość brutalne wiadomości, że w dzisiejszych czasach takie nastawienie nie zadziała, i trzeba się go jak najszybciej pozbyć.
Gdybyście mieli doradzić młodym osobom, które dopiero zaczynają swoją przygodę z AI – od czego warto zacząć? Jakie są typowe błędy początkujących i co można zrobić, by ich uniknąć?
Odpowiedź: Powiedzmy, że nie jestem najlepszą osobą, żeby doradzać konkretne kursy – one zmieniają się z kwartału na kwartał, i to, co ja przerabiałem kilkanaście lat temu, prawdopodobnie zostało już zastąpione przez lepsze, bardziej przystępne materiały. Dlatego skupię się raczej na ogólnym podejściu i pewnych kierunkach w nim, które uważam za kluczowe.
Jednym z najczęstszych błędów, które widzę, jest zbyt mocne skupienie się na samych algorytmach, bez zrozumienia, co właściwie można dzięki nim osiągnąć. A przecież to są tylko narzędzia – potężne, ale jednak narzędzia do rozwiązywania konkretnych problemów. Dlatego nie polecałbym uczyć się na pamięć wszystkich możliwych algorytmów czy formuł matematycznych, a skupić się na ich praktycznym zastosowaniu. Oczywiście teoria też jest ważna, ale jedno zarówno nie wyklucza, jak i wręcz nie istnieje bez drugiego.
Przykładowo, gdyby ktoś teraz przyszedł do mnie na rozmowę rekrutacyjną i powiedział, że zna na pamięć wszystkie algorytmy z scikit learna, czy zrobił klasyfikator przetrenowany na Imagenecie – ok, fajnie, ale to nie będzie to dla mnie zbyt interesujące – bo takich tutoriali są setki. Co innego, jeśli ktoś samodzielnie rozwiązał realny problem. I to wcale nie musi być coś spektakularnego jak jakiś odpowiednik wysyłania rakiety na księżyc. Mieliśmy na przykład kandydata, który podłączył kamerkę do Raspberry Pi i zbudował system wykrywający, czy kot wchodzi na stół, bo nie mogli go tego oduczyć. Gdy kot się pojawiał, rejestrowało to “incydent” razem ze zdjęciem winowajcy do chmury (koty były dwa, więc żeby jeden nie oberwał za niewinność) a na płytce uruchamiała się syrena alarmowa.
Czy było to rocket science? Nie. Ale było to własne, przemyślane i doprowadzone do końca. Świetny projekt! (i od razu dopisanie na listę tych, z którymi chcemy porozmawiać) Takie rzeczy robią różnicę. Im szybciej ktoś zacznie myśleć i pokazywać realne zastosowania, tym lepiej.
Ale też trzeba pamiętać, że dziś nie są to już czasy, w których jedna osoba pisze całe systemy – jak Linus Torvalds piszący pierwsze jądro Linuxa. Dziś większość projektów jest zbyt złożona, żeby działać w pojedynkę, a współpraca jest koniecznością. Dlatego ogromnym plusem jest, jeśli ktoś potrafi pokazać, że umie pracować zespołowo – na przykład przez udział w projektach grupowych, które potem można gdzieś zobaczyć na Githubie, i sprawdzić, że ktoś faktycznie umiał z kimś innym współpracować, i równolegle działać nad kodem. Jeśli nie ma się jeszcze znajomych do takiego współdziałania – polecam hackatony. Ostatnio podobną rekomendację dałem na gościnnym wykładzie dla studentów, proste wyszukanie, i wyszło nam, że praktycznie co tydzień coś się dzieje. Świetna okazja, żeby stworzyć coś ciekawego do portfolio.
Na koniec – jak patrzycie na przyszłość? Jakie zmiany w rozwoju AI przewidujecie w nadchodzących latach i w których branżach spodziewacie się, że ta technologia wywrze największy wpływ?
Odpowiedź: W dzisiejszych czasach wszystko rozwija się w takim tempie, że trudno o długoterminowe prognozy. Oczywiście od wielu lat szliśmy z postępem konsekwentnie do przodu – ale są momenty jak np. 2012 gdy zastosowano GPU przy uczeniu głębokich sieci konwolucyjnych, 2022 i wypuszczenie Chata GPT, gdzie tempo zmian i postępu nagle bardzo drastycznie przyśpieszyło. Obecnie mamy do czynienia z kolejnym takim okresem przyśpieszenia z uwagi na postępy przy LLMach i kolejną falę związanego z tym hype’u.
Z jednej strony słyszymy opinie – zwłaszcza od firm dostarczających te modele – że za rok czy dwa będziemy mieli AGI, które rozwiąże wszystkie problemy ludzkości. W bardziej pesymistycznych głosach, mamy ludzi wieszczących że też lada moment powstanie Skynet z terminatora, i przejmie kontrolę nad światem. Osobiście uważamy, że żaden z tych scenariuszy nie jest prawdopodobny.
Nie ma natomiast wątpliwości, że ta technologia już teraz wpływa na świat, i szerokie spektrum dziedzin i branż – i ten wpływ będzie się tylko pogłębiał.
Jeśli chodzi o konkretne branże – nie wskazywałbym tu jakichś konkretnych. Mamy do czynienia ze zmianą raczej zmianą przekrojową, która dotknie w jakimś stopniu praktycznie każdej, choć do różnego stopnia. W niektórych przypadkach, jak każda dotychczasowa rewolucja technologiczna w historii, zastąpi nawet konkretne zawody. W innych – znacząco je zmieni. Samo AI nie będzie tu wyjątkiem – już teraz widać, jak wpływa ono na zmianę samego programowania czy developmentu.
Najlepsze, co można zrobić, to nieustannie się dokształcać i trzymać rękę na pulsie. To dziś w zasadzie konieczność.