Program rezydenta Yandex, czyli jak doświadczony backender może zostać inżynierem ML

Program rezydenta Yandex, czyli jak doświadczony backender może zostać inżynierem ML

Yandex otwiera program rezydencji w zakresie uczenia maszynowego dla doświadczonych programistów backendowych. Jeśli dużo pisałeś w C++/Pythonie i chcesz zastosować tę wiedzę w ML, nauczymy Cię, jak przeprowadzić praktyczne badania i zapewnimy doświadczonych mentorów. Będziesz pracować nad kluczowymi usługami Yandex i zdobywać umiejętności w obszarach takich jak modele liniowe i wzmacnianie gradientu, systemy rekomendacji, sieci neuronowe do analizy obrazów, tekstu i dźwięku. Dowiesz się także, jak prawidłowo oceniać modele przy użyciu metryk offline i online.

Program trwa jeden rok i podczas którego uczestnicy będą pracować w dziale inteligencji maszyn i badań Yandex, a także uczestniczyć w wykładach i seminariach. Udział w programie jest płatny i obejmuje pracę w pełnym wymiarze godzin: 40 godzin tygodniowo, począwszy od 1 lipca br. Zgłoszenia są już otwarte i potrwa do 1 maja. 

A teraz bardziej szczegółowo - o tym, na jakiego rodzaju odbiorców czekamy, jaki będzie proces pracy i ogólnie, jak specjalista back-end może przejść do kariery w ML.

Kierunkowość

Wiele firm posiada Programy Rezydencyjne, m.in. Google i Facebook. Skierowane są głównie do specjalistów młodszego i średniego szczebla, którzy próbują zrobić krok w kierunku badań nad ML. Nasz program jest skierowany do innego odbiorcy. Zapraszamy programistów backendowych, którzy zdobyli już wystarczające doświadczenie i wiedzą na pewno, że w swoich kompetencjach muszą przejść w stronę ML, aby zdobyć praktyczne umiejętności - a nie umiejętności naukowca - w rozwiązywaniu problemów przemysłowego uczenia maszynowego. Nie oznacza to, że nie wspieramy młodych naukowców. Zorganizowaliśmy dla nich osobny program – premia nazwany na cześć Ilyi Segalovich, co pozwala również pracować w Yandex.

Gdzie mieszkaniec będzie pracował?

W Dziale Inteligencji i Badań Maszyn sami opracowujemy pomysły projektowe. Głównym źródłem inspiracji jest literatura naukowa, artykuły i trendy w środowisku naukowym. Ja i moi koledzy analizujemy to, co czytamy, szukając możliwości ulepszenia lub rozszerzenia metod proponowanych przez naukowców. Jednocześnie każdy z nas bierze pod uwagę swój obszar wiedzy i zainteresowań, formułuje zadanie w oparciu o obszary, które uważa za ważne. Pomysł na projekt rodzi się zazwyczaj na styku wyników badań zewnętrznych i własnych kompetencji.

System ten jest dobry, ponieważ w dużej mierze rozwiązuje problemy technologiczne usług Yandex jeszcze zanim one powstaną. Gdy jakiś serwis staje przed problemem, zgłaszają się do nas jego przedstawiciele, najprawdopodobniej przejmując przygotowane przez nas technologie, pozostaje tylko odpowiednie zastosowanie w produkcie. Jeśli coś nie jest gotowe, przynajmniej szybko przypomnimy sobie, od czego możemy „zacząć kopać” i w jakich artykułach szukać rozwiązania. Jak wiemy, podejście naukowe polega na staniu na ramionach gigantów.

Co robić

W Yandex – a nawet w naszym zarządzie – rozwijane są wszystkie istotne obszary ML. Naszym celem jest poprawa jakości szerokiej gamy produktów, co stanowi zachętę do testowania wszystkiego, co nowe. Ponadto regularnie pojawiają się nowe usługi. Zatem program wykładów obejmuje wszystkie kluczowe (dobrze sprawdzone) obszary uczenia maszynowego w rozwoju przemysłu. Przygotowując moją część kursu, korzystałam z doświadczeń dydaktycznych Szkoły Analizy Danych, a także materiałów i prac innych nauczycieli SHAD. Wiem, że moi koledzy zrobili to samo.

W pierwszych miesiącach szkolenie według programu kursu będzie stanowić około 30% Twojego czasu pracy, później około 10%. Należy jednak pamiętać, że praca z samymi modelami uczenia maszynowego będzie w dalszym ciągu zajmowała około cztery razy mniej niż wszystkie powiązane procesy. Należą do nich przygotowanie backendu, odebranie danych, napisanie potoku do ich wstępnego przetwarzania, optymalizacja kodu, dostosowanie do konkretnego sprzętu itp. Inżynier ML to, jeśli wolisz, programista full-stack (tylko z większym naciskiem na uczenie maszynowe) , potrafiący rozwiązać problem od początku do końca. Nawet mając gotowy model, prawdopodobnie będziesz musiał wykonać szereg dodatkowych działań: zrównoleglić jego wykonanie na kilku maszynach, przygotować implementację w postaci uchwytu, biblioteki lub komponentów samej usługi.

Wybór studenta
Jeśli miałeś wrażenie, że lepiej zostać inżynierem ML, pracując najpierw jako backend developer, to nie jest to prawdą. Zapisanie się do tego samego ShAD bez prawdziwego doświadczenia w rozwijaniu usług, nauce i zdobywaniu ogromnego popytu na rynku to doskonała opcja. Wielu specjalistów Yandex znalazło się w ten sposób na swoich dotychczasowych stanowiskach. Jeśli jakakolwiek firma jest gotowa zaoferować Ci pracę w obszarze ML od razu po ukończeniu studiów, prawdopodobnie Ty też powinieneś przyjąć tę ofertę. Postaraj się dostać do dobrego zespołu z doświadczonym mentorem i przygotuj się na wiele nauki.

Co zwykle powstrzymuje Cię od stosowania ML?

Jeżeli backender aspiruje do roli inżyniera ML, ma do wyboru dwa obszary rozwoju – bez uwzględnienia programu rezydencji.

Po pierwsze, ucz się w ramach jakiegoś kursu edukacyjnego. Lekcje Coursera przybliży Cię do zrozumienia podstawowych technik, jednak aby w wystarczającym stopniu zanurzyć się w zawodzie, trzeba poświęcić mu znacznie więcej czasu. Na przykład ukończ studia ShAD. Na przestrzeni lat ShAD prowadził różną liczbę kursów bezpośrednio poświęconych uczeniu maszynowemu – średnio około ośmiu. Każdy z nich jest naprawdę ważny i przydatny, także w opinii absolwentów. 

Po drugie, możesz brać udział w projektach bojowych, w których musisz wdrożyć ten lub inny algorytm ML. Jednak na rynku rozwoju IT takich projektów jest bardzo mało: uczenie maszynowe nie jest wykorzystywane w większości zadań. Nawet w bankach, które aktywnie eksplorują możliwości związane z ML, tylko nieliczne zajmują się analizą danych. Jeśli nie udało Ci się dołączyć do żadnego z tych zespołów, jedyną opcją jest albo rozpoczęcie własnego projektu (w którym najprawdopodobniej ustalisz własne terminy i nie ma to wiele wspólnego z zadaniami produkcji bojowej), albo rozpoczęcie rywalizacji na Kaggle.

Rzeczywiście, połącz siły z innymi członkami społeczności i spróbuj swoich sił w konkursach relatywnie łatwy - zwłaszcza jeśli swoje umiejętności poprzesz szkoleniami i wspomnianymi kursami na Courserze. Każdy konkurs ma swój termin realizacji - będzie dla Ciebie motywacją i przygotuje do pracy na podobnym systemie w firmach IT. To dobry sposób - który jednak też jest trochę oderwany od rzeczywistych procesów. Na Kaggle otrzymujesz wstępnie przetworzone, choć nie zawsze doskonałe, dane; nie proponuj przemyślenia wkładu w produkt; a co najważniejsze, nie wymagają rozwiązań odpowiednich do produkcji. Twoje algorytmy prawdopodobnie będą działać i będą bardzo dokładne, ale Twoje modele i kod będą jak Frankenstein zszyty z różnych części - w projekcie produkcyjnym cała struktura będzie działać zbyt wolno, trudno będzie ją aktualizować i rozszerzać (np. algorytmy języka i głosu będą zawsze częściowo przepisywane w miarę rozwoju języka). Firmy interesuje fakt, że wymienioną pracę możesz wykonać nie tylko sam (jasno, że możesz to zrobić jako autor rozwiązania), ale także którykolwiek z Twoich współpracowników. Omówiono różnicę między programami sportowymi i przemysłowymi много, a Kaggle kształci właśnie „sportowców” – nawet jeśli robi to bardzo dobrze, pozwalając im zdobyć trochę doświadczenia.

Opisałem dwie możliwe linie rozwoju – szkolenie poprzez programy edukacyjne oraz szkolenie „w walce”, np. na Kaggle. Program rezydencji jest połączeniem tych dwóch metod. Czekają na Ciebie wykłady i seminaria na poziomie ShAD oraz projekty iście bojowe.

Źródło: www.habr.com

Dodaj komentarz