Рэзідэнцкая праграма Яндэкса, або Як дасведчанаму бэкендэру стаць ML-інжынерам

Рэзідэнцкая праграма Яндэкса, або Як дасведчанаму бэкендэру стаць ML-інжынерам

Яндэкс адкрывае рэзідэнцкую праграму па машынным навучанні для вопытных бэкэнд-распрацоўшчыкаў. Калі вы шмат пісалі на C++/Python і жадаеце ўжыць гэтыя веды ў ML – то мы навучым вас займацца практычнымі даследаваннямі і вылучым дасведчаных куратараў. Вы папрацуеце над ключавымі сэрвісамі Яндэкса і атрымаеце навыкі ў такіх галінах, як лінейныя мадэлі і градыентны бустынг, рэкамендацыйныя сістэмы, нейрасеткі для аналізу малюнкаў, тэксту і гуку. Яшчэ вы даведаецеся, як правільна ацэньваць свае мадэлі з дапамогай метрык у афлайне і анлайне.

Працягласць праграмы - адзін год, на працягу якога ўдзельнікі будуць працаваць ва ўпраўленні машыннага інтэлекту і даследаванняў Яндэкса, а таксама наведваць лекцыі і семінары. Удзел аплачваецца і мяркуе поўную занятасць: 40 гадзін у тыдзень, пачынаючы з 1 ліпеня гэтага года. Прыём заявак ужо адкрыты і працягнецца да 1 траўня. 

А зараз падрабязней - аб тым, якую аўдыторыю мы чакаем, якім будзе працоўны працэс і ў цэлым, як бэкенд-спецыялісту пераключыцца на кар'еру ў ML.

Скіраванасць

Residency Programs ёсць у многіх кампаній, у тым ліку, напрыклад, Google і Facebook. Галоўным чынам яны накіраваны на адмыслоўцаў малодшага і сярэдняга ўзроўня, якія спрабуюць ступіць у бок ML-даследаванняў. Наша праграма - для іншай аўдыторыі. Мы запрашаем бэкэнд-распрацоўшчыкаў, якія ўжо набылі дастаткова вопыту і дакладна ведаюць, што ў сваіх кампетэнцыях ім трэба зрушвацца ў бок ML, атрымаць практычныя навыкі – а не навыкі вучонага – у вырашэнні прамысловых задач машыннага навучання. Гэта не значыць, што мы не падтрымліваем маладых даследнікаў. Для іх мы арганізавалі асобную праграму. прэмію імя Іллі Сегаловіча, якая таксама дазваляе папрацаваць у Яндэксе.

Дзе рэзідэнту трэба працаваць

Мы ва ўпраўленні машыннага інтэлекту і даследаванняў самі распрацоўваем ідэі праектаў. Асноўная крыніца натхнення - навуковая літаратура, артыкулы, трэнды супольнасці даследчыкаў. Я і мае калегі аналізуем прачытанае, глядзім, як можна палепшыць ці пашырыць метады, прапанаваныя навукоўцамі. Пры гэтым кожны з нас улічвае сваю галіну ведаў і інтарэсаў, фармулюе задачу зыходзячы з напрамкаў, якія лічыць важнымі. На стыку вынікаў вонкавых даследаванняў і ўласных кампетэнцый звычайна і нараджаецца ідэя праекту.

Такая сістэма добрая тым, што шмат у чым вырашае тэхналагічныя задачы сэрвісаў Яндэкса яшчэ да іх узнікнення. Калі перад сэрвісам устае праблема, яго прадстаўнікі прыходзяць да нас, каб, хутчэй за ўсё, узяць ужо падрыхтаваныя намі тэхналогіі, якія застаецца толькі правільна прымяніць у прадукце. Калі ж нешта не гатова - мы, прынамсі, хутка ўспомнім, адкуль можна «пачаць капаць», у якіх артыкулах шукаць рашэнне. Як вядома, навуковы падыход - гэта стаяць на плячах гігантаў.

Што трэба рабіць

У Яндэксе - і нават канкрэтна ў нашым кіраванні - развіваюцца ўсе актуальныя напрамкі ML. Наша задача - паляпшаць якасць самых разнастайных прадуктаў, і гэта служыць стымулам правяраць усё новае. Да таго ж, рэгулярна з'яўляюцца новыя сэрвісы. Так што ў лекцыйнай праграме ёсць усе ключавыя (добра сябе зарэкамендавалыя) напрамкі машыннага навучання ў прамысловай распрацоўцы. Пры складанні маёй часткі курса я выкарыстоўваў досвед выкладання ў Школе аналізу дадзеных, а таксама матэрыялы і напрацоўкі іншых выкладчыкаў ШАДа. Ведаю, што калегі рабілі гэтак жа.

У першыя месяцы навучанне па праграме курса будзе складаць прыкладна 30% вашага працоўнага часу, затым - каля 10%. Аднак важна разумець, што праца з самімі ML-мадэлямі працягне займаць прыкладна ў чатыры разы менш, чым усе спадарожныя працэсы. Да іх ставіцца падрыхтоўка бэкенда, атрыманне дадзеных, напісанне pipeline для іх перадапрацоўкі, аптымізацыя кода, адаптацыя пад спецыфічнае жалеза і т. д. ML-інжынер - гэта, калі жадаеце, fullstack-распрацоўнік (толькі з вялікім ухілам у машыннае навучанне), здольны вырашыць задачу ад пачатку і да канца. Нават з гатовай мадэллю напэўна запатрабуецца прарабіць яшчэ шэраг дзеянняў: распаралеліць яе выкананне па некалькіх машынам, падрыхтаваць рэалізацыю ў выглядзе ручкі, бібліятэкі ці кампаненты самога сэрвісу.

Выбар студэнта
Калі ў вас склалася ўражанне, што ў ML-інжынеры лепш ісці, спачатку папрацаваўшы распрацоўшчыкам бэкенда, – гэта не так. Паступіць у той жа ШАД без рэальнага вопыту распрацоўкі сэрвісаў, навучыцца і стаць вельмі запатрабаваным на рынку - выдатны варыянт. Многія спецыялісты ў Яндэксе апынуліся на цяперашніх пазіцыях менавіта такім шляхам. Калі ж якая-небудзь кампанія гатова прапанаваць вам працу ў вобласці ML адразу пасля інстытута – верагодна, таксама варта прыняць прапанову. Паспрабуйце патрапіць у добрую каманду да дасведчанага настаўніка і прыгатуйцеся шмат вучыцца.

Што звычайна замінае заняцца ML

Калі бэкендэр імкнецца стаць ML-інжынерам, ён - без уліку рэзідэнцкай праграмы - можа абраць з двух напрамкаў развіцця.

Па-першае - навучыцца ў рамках якой-небудзь адукацыйнага курсу. ўрокі на Coursera наблізяць вас да разумення базавых методык, але каб акунуцца ў прафесію ў дастатковай ступені, неабходна надаць ёй значна больш часу. Напрыклад, скончыць ШАД. У розныя гады ў ШАДе было рознае колькасць курсаў непасрэдна па машынным навучанні - у сярэднім, каля васьмі. Кожны з іх сапраўды важны і карысны, у тым ліку на думку выпускнікоў. 

Па-другое, можна паўдзельнічаць у баявых праектах, дзе патрабуецца рэалізаваць той ці іншы ML-алгарытм. Аднак на рынку IT-распрацоўкі такіх праектаў вельмі мала: у большасці задач машыннае навучанне не выкарыстоўваецца. Нават у банках, якія актыўна вывучаюць звязаныя з ML магчымасці, аналізам даных займаюцца адзінкі. Калі вам не ўдалося далучыцца да адной з падобных каманд, застаецца альбо завесці свой уласны праект (дзе, хутчэй за ўсё, дэдлайны вы будзеце ставіць сабе самі, а гэта мае мала агульнага з баявымі прадакшэн-задачамі), альбо пачаць спаборнічаць на Kaggle.

Сапраўды, аб'яднацца з іншымі ўдзельнікамі суполкі і спрабаваць сябе ў конкурсах. параўнальна нескладана - асабліва калі падмацаваць свае навыкі трэніроўкамі і згаданымі курсамі на Coursera. У кожнага конкурсу ёсць дэдлайн - ён будзе служыць для вас стымулам і рыхтаваць да падобнай сістэмы ў IT-кампаніях. Гэта добры шлях — які, зрэшты, таксама крыху адарваны ад рэальных працэсаў. На Kaggle вам даюць перадапрацаваныя, няхай і не заўсёды ідэальныя дадзеныя; не прапануюць думаць аб укладзе ў прадукт; а самае галоўнае - не патрабуюць рашэнняў, прыдатных для прадакшэна. Вашы алгарытмы, верагодна, апынуцца працаздольныя і будуць валодаць высокай дакладнасцю, але вашы мадэлі і код будуць падобныя на пашытага з розных частак Франкенштэйна - у баявым праекце ўся гэтая канструкцыя будзе працаваць занадта павольна, цяжка абнаўляцца і пашырацца (напрыклад, моўныя і галасавыя алгарытмы заўсёды часткова перапісваюцца па меры развіцця мовы). Кампаніі зацікаўлены ў тым, каб пералічаную працу маглі зрабіць не толькі вы самі (зразумела, што вам як аўтару рашэння гэта па сілах), але і хто заўгодна з калегаў. Пра розніцу паміж спартовым і прамысловым праграмаваннем сказанае шмат, і Kaggle выхоўвае менавіта спартсменаў хай і робіць гэта вельмі добра, дазваляючы набыць частку досведу.

Я апісаў дзве магчымыя лініі развіцця - навучанне праз адукацыйныя праграмы і навучанне "ў баі", напрыклад на Kaggle. Рэзідэнцкая праграма з'яўляецца спалучэннем гэтых двух спосабаў. Вас чакаюць лекцыі і семінары ўзроўню ШАДа, а таксама сапраўды баявыя праекты.

Крыніца: habr.com

Дадаць каментар