Zespół AI jest o tyle trudny do stworzenia, że wymaga wielu kompetencji. Devdebata
Budowanie zespołu złożonego ze specjalistów o wszechstronnych kompetencjach może wydawać się niezwykle trudnym zadaniem. W rozmowie z zespołem MX Labs zapytaliśmy o proces tworzenia ekipy od AI, prowadzone aktualnie ciekawe projekty oraz wpływ machine learningu na jakość ludzkiego życia.
Spis treści
Od jak dawna zajmujecie się w MX Labs sztuczną inteligencją w widzeniu maszynowym, a dokładniej w pozyskiwaniu sygnałów witalnych człowieka? Czy ten temat odkryliście dopiero po jakimś czasie, czy swoje kompetencje w tym zakresie wzmacniacie od samego początku ?
Olek: Myślę, że algorytmy sztucznej inteligencji były w zasadzie nieodłącznym elementem naszego projektu już od samego początku jego istnienia. Część sygnałów witalnych takich jak tętno, jego zmienność, czy częstotliwość oddechu, jesteśmy w stanie pozyskać bez uczenia algorytmów na podstawie danych, gdyż są to zjawiska bezpośrednio mierzalne. Z drugiej strony, w bardziej złożonych przypadkach, jak na przykład ciśnienie krwi, od razu wiedzieliśmy, że musimy zwrócić się ku uczeniu maszynowemu, zatem wejście w posiadanie takich kompetencji było kluczowe i nasz biznes jest z nimi fundamentalnie związany już od samego początku.
Przemek: Drugim ważnym tematem, który bez modeli uczenia maszynowego i sztucznej inteligencji nie byłby możliwy do zrealizowania, jest wykrywanie i śledzenie twarzy, oraz jej szczególnych cech takich jak punkty kluczowe. Z tym w naturalny sposób byliśmy również związani od pierwszych chwil. Dzisiaj rozbudowujemy te modele o zaawansowane sposoby przetwarzania obrazu i widzimy tutaj olbrzymi potencjał rozwojowy na przyszłość.
Czy trudno jest zbudować dobry team zajmujący się AI ? Czym Wasze podejście do budowania takiego zespołu się wyróżnia?
Piotr: Zespół AI jest o tyle trudny do stworzenia, że wymaga wielu kompetencji. Od osoby zajmującej się sztuczną inteligencją oczekuje się nie tylko solidnych podstaw matematycznych, ale również umiejętności i dobrych praktyk programowania. Zajmujemy się dość niszowym obszarem w Data Science. Jest już na rynku sporo specjalistów z zakresu wizji komputerowej, dźwięku czy przetwarzania języka naturalnego (NLP). Wciąż jednak trudno o dobrego specjalistę z zakresu wykorzystania algorytmów sztucznej inteligencji w sygnałach biomedycznych. Staramy się więc podejmować również współpracę z osobami, które niekoniecznie mają doświadczenie w przetwarzaniu sygnałów, ale mają wysoko rozwinięte kompetencje w pozostałych domenach np. NLP czy wizji komputerowej.
Przemek : Zdecydowanie nie jest to łatwe zadanie, ale na naszą korzyść działa to, że podejmujemy się tematów, które są znaczące dla większości społeczeństwa. Każda osoba, która jest w naszym teamie, jest więc świadoma, że (bez żadnej przesady) pomaga zmieniać świat na lepsze, co pomaga w budowaniu teamu.
Kompetencje są bardzo ważne, ale jak upewnić się, że team działa efektywnie? Czy macie w tym zakresie jakieś własne rozwiązania lub kulturę pracy dostosowaną do programistów AI? Jak zarządzacie zespołem?
Przemek : Od samego początku przyświeca nam idea transparentności i szczerości. Bardzo blisko jest nam do stwierdzenia ‘kultura zjada strategię na śniadanie’, więc przywiązujemy do niej dużą wagę. Tak więc mamy solidne podstawy, aby kształtować ‘mindset’ zespołu, który wpływa na jakość tego, co robimy. A poza tym stosujemy oczywiście wszystkie nowoczesne techniki prowadzenia projektów takie jak Agile, Kanban, OKR, a nawet chcemy spróbować Shape Up.
Ninja Scrum Master: Tak, dokładnie. Biorąc pod uwagę na to, że poruszamy się po bardzo innowacyjnym i zmiennym środowisku, musimy dostosować narzędzia do naszej charakterystyki pracy. Bardzo często wkraczamy w nieodkryte obszary, gdzie nie do końca wiemy jakiego wyniku możemy się spodziewać, jak nowe odkrycie wpłynie na pozostałą pracę oraz ile pracy mamy jeszcze do wykonania. Nie zmienia to faktu, że nawet pracę odkrywczo-badawczą można spróbować podzielić na mniejsze kroki tak, aby na bieżąco sprawdzać, czy nie weszliśmy ” w krzaki”. Obecnie do prowadzenia projektów w zespołach wykorzystujemy podejście Scrumowe, do planowania wysokopoziomowego wykorzystujemy technikę OKRów. Połączenie zwinnego realizowania kolejnych sprintów z wcześniejszym określeniem celów oraz kluczowych rezultatów, jakie chcemy osiągnąć, pokazuje nam, gdzie w danej chwili życia projektu się znajdujemy. Dodatkowo OKRy wspomagają nas w podejmowaniu skutecznych decyzji biznesowych.
Oczywiście nie zamykamy się na inne techniki. Uważamy, że jeśli inne podejście ma nam ułatwić pracę, przyspieszyć proces delivery, umożliwi lepsze skupienie na pracy — just do it. Stąd idea przygotowania się i wypróbowania w praktyce techniki Shape up.
Olek: Osobiście, zwróciłbym również uwagę na mocno badawczy charakter tego, czym się zajmujemy. Myślę, że zarządzanie zespołem badawczym różni się od zarządzania tradycyjnym zespołem deweloperskim, chociażby ze względu na mniej przewidywalny charakter pracy. Można to porównać do różnicy pomiędzy przemieszczaniem się po znanej mapie z punktu A do punktu B, a odkrywaniem obszarów, które znajdują się poza nią. Oczywiście, podczas dodawania nawet prostej funkcjonalności w aplikacji mobilnej, mogą pojawić się nieoczekiwane problemy, jednak mamy tutaj do czynienia z zupełnie inną skalą tego zjawiska. Dlatego w naszych działaniach badawczych, staramy się stawiać na elastyczność, kreatywność i otwartość. Oczywiście, musimy trzymać się pewnych założeń i hipotez, ale też być gotowi na zmianę podejścia, w miarę jak odkrywamy nowe aspekty naszego zagadnienia. Myślę, że charakterystycznym elementem naszej kultury, są częste spotkania typu hackathon, burze mózgów, a nawet dyskusje na szlakach górskich.
Natalia: W MX Labs pracujemy nad innowacyjnymi rozwiązaniami, co z założenia wymaga od nas stworzenie warunków pracy, które sprzyjają kreatywnym zespołom. Przede wszystkim jest to zaufanie do członków zespołu i danie im czasu na zmierzenie się z problemami, które stawia przed nim projekt. Stawiamy na szczery feedback, by na bieżąco weryfikować jakość naszej pracy lub sposób jej wykonania. Wszyscy też wiemy, że gramy do jednej bramki, a to ułatwia nam realizowanie swoich zadań nawet, gdy ścieramy się o różne punkty widzenia.
Czy możecie się w tej chwili pochwalić jakimiś ciekawymi projektami, nad którymi aktualnie pracujecie? Czy tematyka tych projektów jest czymś, co zachęca nowych programistów do dołączenia do Was?
Olek: Jako przykład z naszego zespołu (AI), ciekawym zagadnieniem była praca nad estymacją niepewności związaną z wynikami dostarczanymi przez nasze modele. O ile temat jest stosunkowo “modny” w środowisku naukowym, to przeniesienie tych zagadnień na grunt praktyczny okazuje się często zadaniem niełatwym. Z tego względu sporo organizacji, często tych większych, nie decyduje się na takie projekty, uznając je za zbyt ”ryzykowne”. Z kolei, wielu inżynierów szuka właśnie takich ciekawych wyzwań. Myślę, że dając przestrzeń na tego typu działania, tworzy się miejsce, w którym zdolni ludzie będą chcieli pracować.
Przemek: Ogólnie rzecz ujmując, tworzenie naszego SDK to złożone i multidyscyplinarne zadanie, które umożliwia innym firmom budowanie produktów pomagających we wczesnej diagnostyce zdrowia. Przykładem są zastosowania w telekonsultacjach z lekarzami, łatwych pomiarach pracy serca z aplikacji na smartphonie lub projektach wykorzystujących wizualny bio-feedback.
Współpracujemy przy tym z Uniwersytetami z Polski i całego świata (np. Uniwersytetem Medycznym we Wrocławiu lub University of California San Diego – UCSD), rozwijając własne podejścia software’owe i hardware’owe do ekstrakcji i procesowaniu sygnałów biologicznych. Praca w MX Labs jest pełna takich wyzwań, w których trudno doszukiwać się rutyny.