RPG — research po godzinach

Jan Czechowski
4 min readMay 24, 2021

Jak pogodzić zainteresowanie AI oraz chęć zdobycia nowych umiejętności z ograniczoną ilością czasu, na przykład przy pracy na pełen etat? W ostatnich miesiącach zadaję sobie to pytanie coraz częściej. Zagadnienie postanowiłem przedyskutować z moim kolegą z czasów Samsungowych Piotrem Niewińskim. Najciekawsze wątki z rozmowy streściliśmy poniżej, aby były dostępne dla każdego, kto interesuje się tematem.

Piotr Niewiński zajmuje się sztuczną inteligencją od 2018 roku, zarówno profesjonalnie w czasie pracy jak i po godzinach. Obecnie pracuje jako specjalista AI w firmie Edrone. Jest autorem projektu pypoks, którego celem jest użycie metod Reinforcement Learning do nauczenia sztucznej inteligencji gry w pokera. Wyniki swoich badań umieszcza na githubie oraz w formie wpisów na Medium.

Od czego zacząć? Jak najlepiej się doszkolić z podstaw AI — polecasz jakieś aktualne kursy?

PN: To pewnie zależy od obszaru zainteresowań, ale też od indywidualnych preferencji.

Ja ostatnio zgłębiałem głównie zagadnienia budowy i zasad działania sieci neuronowych, programowania w Python, TensorFlow, Reinforcement Learning. Nie służą mi kursy typu Coursera. Zazwyczaj zaczynam od Google i szybki przegląd top-linków z danego tematu, Medium, blogi itp. Jeśli jest to bardziej konkretny temat to oczywiście też Stackoverflow, jeśli jakieś szersze zagadnienie to na przykład wykłady z dobrych uczelni na YouTube (np. ze Stanford).

Jak utrzymać motywację i dyscyplina do dodatkowej pracy po godzinach? Jak zachować przy tym “work — research — life” balance?

PN: Na pewno ważna jest pewna systematyczność. Pewnie przychodzi to łatwiej jeśli znajdziemy jakiś temat, który samoczynnie nas wciąga. Jeśli będziemy taką pracę wykonywać z dużymi (kilkutygodniowym) przerwami to prawdopodobnie dużo czasu stracimy na odświeżenie tematu i postępy będą słabe. Prawdopodobnie też oznacza to, że temat jest niezbyt pasjonujący i może warto to przemyśleć. Podstawą jest dobra samoorganizacja i sposób kontroli i planowania takiego procesu nauki — to jest coś czego uczymy się długo i nie da się tego zmienić jednym postanowieniem.

Na pewno warto przyjąć na początek przynajmniej jakieś minimalne założenie, np. postanowić, że 2x w tygodniu poświęcimy chwilę na to zadanie, choćby to miało być nawet 10 min tuż przed spaniem — to naprawdę działa i zazwyczaj owocuje rozkręceniem tematu. U mnie to działa, ale każdy musi znaleźć własne sposoby na systematyczność i motywację.

Co robisz, żeby być na bieżąco z najnowszymi badaniami, trendami w AI? Na przykład regularne czytanie dwóch artykułów naukowych tygodniowo?

PN: Może tak, ale ja tak nie robię. Obserwuję kilka grup poświęconych AI i Machine Learning na FB, blogi firm typu Google (research), DeepMind, newsletter od Andrew Ng, tweeter ale głównie z USA, czasem coś ciekawego z polskiego obszaru pojawia się na Linkedin, czasem dokopię się do czegoś ciekawego na YouTube. Osobiście też uważam, że śledzenie wszystkiego co najnowsze może nie do końca jest dobrym pomysłem — pojawia się tego dużo, czasem można wpaść w pułapkę ładnej formy ze słabą treścią — czas dobrze przefiltruje takie treści, to co przetrwa i będzie się o tym mówić trochę dłużej prawdopodobnie oznacza dobry materiał.

Czy myślałeś kiedyś, żeby zamiast takiego swobodnego researchu robić phd z ai? Masz jakieś przemyślenia na ten temat?

PN: Nie. Może dlatego, że zazwyczaj interesują mnie bardziej praktyczne, biznesowe problemy, mniej “naukowe”.

Po jakim czasie porzucasz projekt jeśli widzisz, że nie ma postępów? Czy zawsze starasz się zakończyć projekt jakąś publikacją, wpisem na blogu, czy tylko jak wyjdzie coś ciekawego?

PN: Nigdy za wiele blogowania. Ale wracając do podstawowego pytania to jeszcze chyba nie miałem tak, żeby jakiś projekt nie przyniósł ciekawych obserwacji, wypracowania jakiegoś ciekawego kodu, nawet w jakiś małych podobszarach. Nie koniecznie cały projekt musi wypalić. Kiedy przerwać temat i zmienić zainteresowanie — myślę, że wtedy kiedy zaczyna męczyć i już nie angażuje.

Pisanie może być wyzwaniem, szczególnie po angielsku. Jak ulepszać swój warsztat?

PN: To jest kwestia czasu i praktyki. Z czasem robi się to coraz lepiej. W tym tamacie można znaleźć dużo dobrych porad w internecie. Osobiście polecam też wesprzeć się pomocą osoby która na koniec sprawdzi nasze wypociny. Jeśli jednak chodzi o pasjonujący artykuł i dobry flow to chyba nie ma uniwersalnych sposobów — trzeba pracować, dać sobie czas.

Jak zarządzać pomysłami — spisywać, grupować, wybierać do dalszych badań?

PN: To jest temat dobrej samoorganizacji i przychodzi z czasem. Są narzędzia pomagające zarządzać linkami, pomysłami, zadaniami — myślę, że każdy musi znaleźć sobie swoje ulubione. Na pewno trzeba notować, czasem bardzo szybko, np. w telefonie, na brudno, żeby później to przepisać na czysto.

Przy nadmiernym napływie pomysłów może warto dać się im odleżeć — kilka dni potrafi dobrze zweryfikować co jest faktycznie dobrym konceptem, a co było tylko chwilowym zauroczeniem.

Czy masz jakieś bardziej techniczne porady? Np. jakich narzędzi używać do badań, wizualizacji?

PN: Kwestia warsztatu jest zależna na pewno od konkretnego zadania. Narzędzia, których najczęściej używam to (w przypadkowej kolejności): Pycharm, Tensorflow + TensorBoard, Google Drive, python z wieloma bibliotekami do ML i dobrymi do wizualizacji. Nie sprawdzają mi się: Colab, Notebooki.

To co może jest tu też bardzo ważne — uważam, że warto rozwijać też swoje biblioteki, wrzucać, organizować i rozwijać kod, którego “często” używamy, np funkcje do processingu tekstu, statystyk, wizualizacji itp. Z czasem pewnie będą tam coraz większe bloki kodu, z których będziemy korzystać coraz częściej. W moim przypadku sprawdziło się to niesamowicie. Moja biblioteka ptools to już wiele tysięcy linii kodu rozwijanych od kilku lat z kilkoma potężnymi narzędziami do budowy sieci neuronowych, multiprocessingu, optymalizacji, statystyk, reinforcementu. Używam jej w projektach prywatnych jaki i komercyjnych.

Podsumowanie

Rozmowa z Piotrem była dla mnie bardzo inspirująca. Nawet dysponując ograniczonym czasem, z odrobiną dyscypliny i kreatywności można przeprowadzić wiele projektów i dużo się nauczyć. Warto postarać się, aby zainwestować w ten sposób w swoją karierę, szczególnie w dziedzinie takiej jak AI.

--

--

Jan Czechowski

Interested in AI, Quantum Computing, DevOps and any mix of the three