Yandex Resident Program, o Paano Maaaring Maging isang ML Engineer ang Sanay na Backender

Yandex Resident Program, o Paano Maaaring Maging isang ML Engineer ang Sanay na Backender

Ang Yandex ay nagbubukas ng isang residency program sa machine learning para sa mga may karanasang backend developer. Kung marami kang naisulat sa C++/Python at gusto mong ilapat ang kaalamang ito sa ML, tuturuan ka namin kung paano gumawa ng praktikal na pananaliksik at magbigay ng mga may karanasang mentor. Gagawin mo ang mga pangunahing serbisyo ng Yandex at magkakaroon ng mga kasanayan sa mga lugar tulad ng mga linear na modelo at gradient boosting, mga sistema ng rekomendasyon, mga neural network para sa pagsusuri ng mga imahe, teksto at tunog. Matututuhan mo rin kung paano suriin nang maayos ang iyong mga modelo gamit ang mga sukatan offline at online.

Ang tagal ng programa ay isang taon, kung saan ang mga kalahok ay magtatrabaho sa machine intelligence at research department ng Yandex, pati na rin ang dadalo sa mga lecture at seminar. Ang paglahok ay binabayaran at nagsasangkot ng full-time na trabaho: 40 oras bawat linggo, simula Hulyo 1 ng taong ito. Bukas na ang mga aplikasyon at tatagal hanggang Mayo 1. 

At ngayon nang mas detalyado - tungkol sa kung anong uri ng madla ang hinihintay natin, kung ano ang magiging proseso ng trabaho at, sa pangkalahatan, kung paano maaaring lumipat ang isang back-end na espesyalista sa isang karera sa ML.

Directivity

Maraming kumpanya ang mayroong Residency Programs, kabilang ang, halimbawa, Google at Facebook. Pangunahing nakatuon ang mga ito sa mga junior at mid-level na espesyalista na nagsisikap na gumawa ng hakbang patungo sa pananaliksik sa ML. Ang aming programa ay para sa ibang madla. Inaanyayahan namin ang mga backend developer na nakakuha na ng sapat na karanasan at siguradong alam nila na sa kanilang mga kakayahan kailangan nilang lumipat patungo sa ML, upang makakuha ng mga praktikal na kasanayan - at hindi ang mga kasanayan ng isang siyentipiko - sa paglutas ng mga problema sa pagkatuto sa industriya ng makina. Hindi ito nangangahulugan na hindi namin sinusuportahan ang mga batang mananaliksik. Nag-organisa kami ng isang hiwalay na programa para sa kanila - premyo pinangalanang Ilya Segalovich, na nagpapahintulot din sa iyo na magtrabaho sa Yandex.

Saan magtatrabaho ang residente?

Sa Department of Machine Intelligence and Research, kami mismo ang bumuo ng mga ideya sa proyekto. Ang pangunahing pinagmumulan ng inspirasyon ay siyentipikong panitikan, artikulo, at uso sa komunidad ng pananaliksik. Sinusuri namin ng aking mga kasamahan ang aming nabasa, tinitingnan kung paano namin mapapabuti o mapapalawak ang mga pamamaraan na iminungkahi ng mga siyentipiko. Kasabay nito, isinasaalang-alang ng bawat isa sa atin ang kanyang lugar ng kaalaman at interes, bumubuo ng gawain batay sa mga lugar na itinuturing niyang mahalaga. Ang ideya para sa isang proyekto ay karaniwang ipinanganak sa intersection ng mga resulta ng panlabas na pananaliksik at sariling kakayahan.

Ang sistemang ito ay mabuti dahil higit sa lahat ay nalulutas nito ang mga teknolohikal na problema ng mga serbisyo ng Yandex bago pa man lumitaw ang mga ito. Kapag ang isang serbisyo ay nahaharap sa isang problema, ang mga kinatawan nito ay lalapit sa amin, malamang na kunin ang mga teknolohiyang inihanda na namin, na ang natitira na lang ay mailapat nang tama sa produkto. Kung ang isang bagay ay hindi handa, hindi bababa sa mabilis na maaalala natin kung saan tayo maaaring "magsimulang maghukay" at kung aling mga artikulo ang hahanapin ng solusyon. Tulad ng alam natin, ang siyentipikong diskarte ay ang tumayo sa mga balikat ng mga higante.

Anong gagawin

Sa Yandex - at kahit na partikular sa aming pamamahala - ang lahat ng nauugnay na lugar ng ML ay binuo. Ang aming layunin ay pahusayin ang kalidad ng isang malawak na iba't ibang mga produkto, at ito ay nagsisilbing isang insentibo upang subukan ang lahat ng bago. Bilang karagdagan, ang mga bagong serbisyo ay regular na lumalabas. Kaya ang lecture program ay naglalaman ng lahat ng susi (well-proven) na mga lugar ng machine learning sa industriyal na pag-unlad. Sa pagsasama-sama ng aking bahagi ng kurso, ginamit ko ang aking karanasan sa pagtuturo sa School of Data Analysis, pati na rin ang mga materyales at gawain ng iba pang mga guro ng SHAD. Alam kong ganoon din ang ginawa ng mga kasamahan ko.

Sa mga unang buwan, ang pagsasanay ayon sa programa ng kurso ay kukuha ng humigit-kumulang 30% ng iyong oras ng pagtatrabaho, pagkatapos ay mga 10%. Gayunpaman, mahalagang maunawaan na ang pagtatrabaho sa mismong mga modelo ng ML ay patuloy na kukuha ng humigit-kumulang apat na beses na mas mababa kaysa sa lahat ng nauugnay na proseso. Kabilang dito ang paghahanda ng backend, pagtanggap ng data, pagsusulat ng pipeline para sa paunang pagproseso nito, pag-optimize ng code, pag-adapt sa partikular na hardware, atbp. Ang isang ML engineer ay, kung gusto mo, isang full-stack na developer (nang may higit na diin sa machine learning) , kayang lutasin ang isang problema mula simula hanggang matapos. Kahit na may isang handa na modelo, malamang na kailangan mong gumawa ng ilang higit pang mga aksyon: parallelize ang pagpapatupad nito sa ilang mga machine, maghanda ng isang pagpapatupad sa anyo ng isang handle, isang library, o mga bahagi ng serbisyo mismo.

Pagpili ng mag-aaral
Kung nasa ilalim ka ng impresyon na mas mabuting maging isang ML engineer sa pamamagitan ng unang pagtatrabaho bilang isang backend developer, hindi ito totoo. Ang pag-enroll sa parehong ShAD na walang tunay na karanasan sa pagbuo ng mga serbisyo, pag-aaral at pagiging lubhang in demand sa merkado ay isang mahusay na opsyon. Maraming mga espesyalista sa Yandex ang napunta sa kanilang mga kasalukuyang posisyon sa ganitong paraan. Kung ang anumang kumpanya ay handa na mag-alok sa iyo ng trabaho sa larangan ng ML kaagad pagkatapos ng graduation, malamang na tanggapin mo rin ang alok. Subukang makapasok sa isang mahusay na koponan na may karanasang tagapagturo at maghanda upang matuto ng maraming.

Ano ang kadalasang pumipigil sa iyo sa paggawa ng ML?

Kung ang isang backender ay naghahangad na maging isang ML engineer, maaari siyang pumili mula sa dalawang bahagi ng pag-unlad - nang hindi isinasaalang-alang ang programa ng paninirahan.

Una, mag-aral bilang bahagi ng ilang kursong pang-edukasyon. Ang mga aralin Dadalhin ka ng Coursera na mas malapit sa pag-unawa sa mga pangunahing pamamaraan, ngunit upang isawsaw ang iyong sarili sa propesyon sa isang sapat na lawak, kailangan mong maglaan ng mas maraming oras dito. Halimbawa, nagtapos sa ShAD. Sa paglipas ng mga taon, nagkaroon ng ibang bilang ng mga kurso ang ShAD nang direkta sa machine learning - sa karaniwan, mga walo. Ang bawat isa sa kanila ay talagang mahalaga at kapaki-pakinabang, kabilang ang sa opinyon ng mga nagtapos. 

Pangalawa, maaari kang makilahok sa mga proyekto ng labanan kung saan kailangan mong ipatupad ang isa o isa pang algorithm ng ML. Gayunpaman, kakaunti ang mga ganoong proyekto sa IT development market: hindi ginagamit ang machine learning sa karamihan ng mga gawain. Kahit sa mga bangko na aktibong nag-e-explore ng mga pagkakataong nauugnay sa ML, iilan lang ang nakikibahagi sa pagsusuri ng data. Kung hindi ka makasali sa isa sa mga pangkat na ito, ang tanging pagpipilian mo ay ang magsimula ng sarili mong proyekto (kung saan, malamang, magtatakda ka ng sarili mong mga deadline, at wala itong kinalaman sa mga gawain sa paggawa ng labanan), o magsimulang makipagkumpitensya sa Kaggle.

Sa katunayan, makipagtulungan sa iba pang miyembro ng komunidad at subukan ang iyong sarili sa mga kumpetisyon medyo madali - lalo na kung i-back up mo ang iyong mga kasanayan sa pagsasanay at mga nabanggit na kurso sa Coursera. Ang bawat kumpetisyon ay may deadline - ito ay magsisilbing isang insentibo para sa iyo at maghahanda sa iyo para sa isang katulad na sistema sa mga kumpanya ng IT. Ito ay isang mahusay na paraan - na, gayunpaman, ay medyo diborsiyado mula sa mga tunay na proseso. Sa Kaggle bibigyan ka ng pre-processed, kahit na hindi palaging perpekto, data; huwag mag-alok na isipin ang tungkol sa kontribusyon sa produkto; at higit sa lahat, hindi sila nangangailangan ng mga solusyon na angkop para sa produksyon. Malamang na gagana at magiging tumpak ang iyong mga algorithm, ngunit ang iyong mga modelo at code ay magiging tulad ng Frankenstein na pinagsama-sama mula sa iba't ibang bahagi - sa isang proyekto sa produksyon, ang buong istraktura ay gagana nang masyadong mabagal, ito ay magiging mahirap na i-update at palawakin (halimbawa, ang mga algorithm ng wika at boses ay palaging bahagyang muling isusulat habang umuunlad ang wika). Ang mga kumpanya ay interesado sa katotohanan na ang gawaing nakalista ay maaaring gawin hindi lamang ng iyong sarili (malinaw na ikaw, bilang may-akda ng solusyon, ay magagawa ito), kundi pati na rin ng sinuman sa iyong mga kasamahan. Ang pagkakaiba sa pagitan ng sports at pang-industriya na programming ay tinalakay ΠΌΠ½ΠΎΠ³ΠΎ, at tiyak na tinuturuan ni Kaggle ang "mga atleta" - kahit na ginagawa nito nang napakahusay, na nagbibigay-daan sa kanila na makakuha ng ilang karanasan.

Inilarawan ko ang dalawang posibleng linya ng pag-unlad - pagsasanay sa pamamagitan ng mga programang pang-edukasyon at pagsasanay "sa labanan", halimbawa sa Kaggle. Ang programa ng paninirahan ay kumbinasyon ng dalawang pamamaraang ito. Naghihintay sa iyo ang mga lektura at seminar sa antas ng ShAD, gayundin ang mga tunay na palaban na proyekto.

Pinagmulan: www.habr.com

Magdagdag ng komento