Yandexov rezidenčni program ali kako lahko izkušen backender postane inženir ML

Yandexov rezidenčni program ali kako lahko izkušen backender postane inženir ML

Yandex odpira rezidenčni program strojnega učenja za izkušene zaledne razvijalce. Če ste veliko pisali v C++/Python in želite to znanje uporabiti v ML, vas bomo naučili izvajati praktične raziskave in vam zagotovili izkušene mentorje. Delali boste na ključnih storitvah Yandex in pridobili veščine na področjih, kot so linearni modeli in povečanje gradientov, sistemi priporočil, nevronske mreže za analizo slik, besedila in zvoka. Naučili se boste tudi, kako pravilno ovrednotiti svoje modele z uporabo meritev brez povezave in na spletu.

Trajanje programa je eno leto, v katerem bodo udeleženci delali v Yandexovem oddelku za strojno inteligenco in raziskave ter obiskovali predavanja in seminarje. Udeležba je plačana in vključuje polni delovni čas: 40 ur na teden, od 1. julija letos. Prijave so zdaj odprte in bo trajalo do 1. maja. 

In zdaj podrobneje - o tem, kakšno občinstvo čakamo, kakšen bo delovni proces in na splošno, kako lahko back-end specialist preide na kariero v ML.

Direktivnost

Številna podjetja imajo rezidenčne programe, med njimi sta na primer Google in Facebook. Namenjeni so predvsem nižjim in srednjim specialistom, ki poskušajo narediti korak k raziskovanju strojnega jezika. Naš program je namenjen drugačnemu občinstvu. Vabimo backend razvijalce, ki so že pridobili dovolj izkušenj in zagotovo vedo, da se morajo v svojih kompetencah preusmeriti v ML, pridobiti praktične veščine – in ne veščine znanstvenika – pri reševanju problemov industrijskega strojnega učenja. To ne pomeni, da ne podpiramo mladih raziskovalcev. Za njih smo organizirali poseben program - nagrada po imenu Ilya Segalovich, ki vam omogoča tudi delo v Yandexu.

Kje bo stanovalec delal?

Na Oddelku za strojno inteligenco in raziskave sami razvijamo projektne ideje. Glavni vir navdiha je znanstvena literatura, članki in trendi v raziskovalni skupnosti. S kolegi analiziramo prebrano in iščemo, kako lahko izboljšamo ali razširimo metode, ki jih predlagajo znanstveniki. Hkrati pa vsak od nas upošteva svoje področje znanja in interesov, oblikuje nalogo na podlagi področij, ki se mu zdijo pomembna. Ideja za projekt se običajno porodi na presečišču rezultatov zunanjih raziskav in lastnih kompetenc.

Ta sistem je dober, ker v veliki meri rešuje tehnološke težave storitev Yandex, še preden se pojavijo. Ko se servis sooči s problemom, pridejo k nam njegovi predstavniki, ki najverjetneje prevzamejo že pripravljene tehnologije, ki jih je treba le še pravilno aplicirati v produkt. Če kaj ni pripravljeno, se bomo vsaj hitro spomnili, kje lahko »začnemo kopati« in v katerih člankih iskati rešitev. Kot vemo, je znanstveni pristop stati na ramenih velikanov.

Kaj storiti

V Yandexu - in celo posebej v našem vodstvu - se razvijajo vsa pomembna področja ML. Naš cilj je izboljšati kakovost najrazličnejših izdelkov, kar nam služi kot spodbuda za testiranje vsega novega. Poleg tega se redno pojavljajo nove storitve. Program predavanj torej vsebuje vsa ključna (dobro dokazana) področja strojnega učenja v industrijskem razvoju. Pri sestavljanju svojega dela tečaja sem uporabil svoje pedagoške izkušnje na Šoli analize podatkov ter materiale in delo drugih učiteljev SHAD. Vem, da so moji kolegi storili enako.

V prvih mesecih bo usposabljanje po programu tečaja predstavljalo približno 30% vašega delovnega časa, nato približno 10%. Vendar je pomembno razumeti, da bo delo s samimi modeli ML še naprej trajalo približno štirikrat manj kot vsi povezani procesi. Ti vključujejo pripravo ozadja, prejemanje podatkov, pisanje cevovoda za njihovo predhodno obdelavo, optimizacijo kode, prilagajanje določeni strojni opremi itd. Inženir ML je, če želite, razvijalec celotnega sklada (le z večjim poudarkom na strojnem učenju) , ki lahko reši problem od začetka do konca. Tudi z že pripravljenim modelom boste verjetno morali narediti več dejanj: vzporediti njegovo izvajanje na več strojih, pripraviti izvedbo v obliki ročaja, knjižnice ali komponent same storitve.

Študentska izbira
Če ste bili pod vtisom, da je bolje postati inženir ML tako, da najprej delate kot zaledni razvijalec, to ne drži. Vpis v isti ShAD brez pravih izkušenj z razvojem storitev, učenjem in postati izjemno povpraševanje na trgu je odlična možnost. Številni Yandexovi strokovnjaki so na ta način končali na svojih trenutnih položajih. Če vam je katero podjetje pripravljeno takoj po diplomi ponuditi zaposlitev na področju ML, bi verjetno morali to ponudbo sprejeti tudi vi. Poskusite priti v dobro ekipo z izkušenim mentorjem in se pripravite, da se boste veliko naučili.

Kaj vas običajno ovira pri ML?

Če backender želi postati inženir ML, lahko izbira med dvema področjema razvoja – brez upoštevanja rezidenčnega programa.

Prvič, študij kot del nekega izobraževalnega tečaja. Lekcije Coursera vam bo približala razumevanje osnovnih tehnik, a da bi se v zadostni meri poglobili v poklic, mu morate posvetiti veliko več časa. Na primer, diplomirajte iz ShAD. Skozi leta je imel ShaAD različno število tečajev neposredno o strojnem učenju – v povprečju približno osem. Vsak od njih je res pomemben in koristen, tudi po mnenju diplomantov. 

Drugič, lahko sodelujete v bojnih projektih, kjer morate implementirati enega ali drugega algoritma ML. Vendar pa je takih projektov na trgu razvoja IT zelo malo: strojno učenje se ne uporablja pri večini nalog. Celo v bankah, ki aktivno raziskujejo priložnosti, povezane z ML, se le redke ukvarjajo z analizo podatkov. Če se niste mogli pridružiti eni od teh ekip, je vaša edina možnost, da začnete svoj projekt (kjer boste najverjetneje določili svoje roke in to nima veliko skupnega z bojnimi produkcijskimi nalogami) ali pa začnete tekmovati na Kaggle.

Dejansko se združite z drugimi člani skupnosti in se preizkusite v tekmovanjih razmeroma enostavno - še posebej, če svoje veščine podkrepite z usposabljanjem in omenjenimi tečaji na Courseri. Vsak natečaj ima rok – služil vam bo kot spodbuda in vas pripravil na podoben sistem v IT podjetjih. To je dober način - ki pa je tudi malo ločen od realnih procesov. Na Kaggleju dobite vnaprej obdelane, čeprav ne vedno popolne podatke; ne ponujajte razmišljanja o prispevku k izdelku; in kar je najpomembnejše, ne zahtevajo rešitev, primernih za proizvodnjo. Vaši algoritmi bodo verjetno delovali in bodo zelo natančni, vendar bodo vaši modeli in koda kot Frankenstein, sestavljeni iz različnih delov – v produkcijskem projektu bo celotna struktura delovala prepočasi, težko jo bo posodobiti in razširiti (npr. jezik in glasovni algoritmi bodo vedno delno prepisani, ko se jezik razvija). Podjetja zanima, da lahko našteto delo opravite ne le vi sami (jasno je, da to zmorete vi kot avtor rešitve), ampak tudi kdorkoli od vaših sodelavcev. Obravnavana je razlika med športnim in industrijskim programiranjem много, in Kaggle izobražuje prav »športnike« - čeprav to počne zelo dobro, saj jim omogoča, da pridobijo nekaj izkušenj.

Opisal sem dve možni smeri razvoja - usposabljanje skozi izobraževalne programe in usposabljanje "v boju", na primer na Kaggle. Rezidenčni program je kombinacija teh dveh metod. Čakajo vas predavanja in seminarji na ravni ShAD ter resnično borbeni projekti.

Vir: www.habr.com

Dodaj komentar