Yandexov rezidentni program ili kako iskusan backender može postati ML inženjer

Yandexov rezidentni program ili kako iskusan backender može postati ML inženjer

Yandex otvara program stažiranja u strojnom učenju za iskusne backend programere. Ako ste puno pisali u C++/Pythonu i želite to znanje primijeniti na ML, naučit ćemo vas kako provoditi praktično istraživanje i pružiti vam iskusne mentore. Radit ćete na ključnim uslugama Yandexa i steći vještine u područjima kao što su linearni modeli i povećanje gradijenta, sustavi preporuka, neuronske mreže za analizu slika, teksta i zvuka. Također ćete naučiti kako ispravno procijeniti svoje modele pomoću metrike izvan mreže i na mreži.

Trajanje programa je jedna godina, tijekom koje će polaznici raditi u odjelu strojne inteligencije i istraživanja Yandexa, te pohađati predavanja i seminare. Participacija je plaćena i uključuje puno radno vrijeme: 40 sati tjedno, počevši od 1. srpnja ove godine. Prijave su sada otvorene i trajat će do 1. svibnja. 

A sada detaljnije - o tome kakvu publiku čekamo, kakav će biti proces rada i, općenito, kako back-end stručnjak može prijeći na karijeru u ML-u.

usmjerenost

Mnoge tvrtke imaju Residency Programs, uključujući, na primjer, Google i Facebook. Uglavnom su namijenjeni mlađim i srednjim stručnjacima koji pokušavaju napraviti korak prema ML istraživanju. Naš program je za drugačiju publiku. Pozivamo backend programere koji su već stekli dovoljno iskustva i sigurno znaju da se u svojim kompetencijama moraju okrenuti prema ML-u, kako bi stekli praktične vještine – a ne vještine znanstvenika – u rješavanju problema industrijskog strojnog učenja. To ne znači da ne podržavamo mlade istraživače. Za njih smo organizirali poseban program - nagrada nazvan po Ilyi Segalovichu, što vam također omogućuje rad u Yandexu.

Gdje će specijalizant raditi?

U Odjelu za strojnu inteligenciju i istraživanje sami razvijamo projektne ideje. Glavni izvor inspiracije je znanstvena literatura, članci i trendovi u istraživačkoj zajednici. Moji kolege i ja analiziramo ono što čitamo, gledajući kako možemo poboljšati ili proširiti metode koje predlažu znanstvenici. Pritom svatko od nas uzima u obzir svoje područje znanja i interesa, formulira zadatak na temelju područja koja smatra važnima. Ideja za projekt obično se rađa na presjeku rezultata vanjskog istraživanja i vlastitih kompetencija.

Ovaj sustav je dobar jer uvelike rješava tehnološke probleme Yandex servisa i prije nego što nastanu. Kada se servis suoči s problemom, njegovi predstavnici dolaze kod nas, najvjerojatnije kako bi preuzeli tehnologije koje smo već pripremili, a koje preostaje samo ispravno primijeniti u proizvodu. Ako nešto nije spremno, barem ćemo se brzo sjetiti gdje možemo “početi kopati” i u kojim člancima tražiti rješenje. Kao što znamo, znanstveni pristup je stajati na ramenima divova.

Što uraditi

U Yandexu - pa čak i posebno u našem menadžmentu - razvijaju se sva relevantna područja ML-a. Cilj nam je poboljšati kvalitetu najrazličitijih proizvoda, a to nam je poticaj za testiranje svega novog. Osim toga, redovito se pojavljuju nove usluge. Dakle, program predavanja sadrži sva ključna (dobro dokazana) područja strojnog učenja u industrijskom razvoju. Prilikom sastavljanja svog dijela kolegija koristio sam se svojim iskustvom u nastavi u Školi analize podataka, kao i materijalima i radom drugih SHAD nastavnika. Znam da su moji kolege radili isto.

U prvim mjesecima obuka prema programu tečaja činit će otprilike 30% vašeg radnog vremena, zatim oko 10%. Međutim, važno je razumjeti da će rad sa samim ML modelima i dalje trajati otprilike četiri puta manje od svih povezanih procesa. To uključuje pripremu pozadine, primanje podataka, pisanje cjevovoda za prethodnu obradu, optimiziranje koda, prilagođavanje specifičnom hardveru itd. ML inženjer je, ako želite, full-stack programer (samo s većim naglaskom na strojno učenje) , sposobni riješiti problem od početka do kraja. Čak i sa gotovim modelom, vjerojatno ćete trebati napraviti niz dodatnih radnji: paralelizirati njegovo izvođenje na nekoliko strojeva, pripremiti implementaciju u obliku ručke, biblioteke ili komponenti same usluge.

Studentski izbor
Ako ste bili pod dojmom da je bolje postati ML inženjer tako što ćete prvo raditi kao backend developer, to nije točno. Upisati se u isti ShaD bez stvarnog iskustva u razvoju usluga, učenju i postati iznimno tražen na tržištu izvrsna je opcija. Mnogi Yandex stručnjaci su na ovaj način završili na svojim trenutnim pozicijama. Ako vam je neka tvrtka spremna ponuditi posao u području ML-a odmah nakon diplome, vjerojatno biste i vi trebali prihvatiti ponudu. Pokušajte ući u dobar tim s iskusnim mentorom i pripremite se puno naučiti.

Što vas obično sprječava u ML-u?

Ako backender želi postati inženjer ML-a, može birati između dva područja razvoja – ne uzimajući u obzir rezidencijalni program.

Prvo, učite u sklopu nekog obrazovnog tečaja. Lekcije Coursera će vas približiti razumijevanju osnovnih tehnika, ali da biste u dovoljnoj mjeri uronili u profesiju, morate joj posvetiti mnogo više vremena. Na primjer, diplomirati na ShAD. Tijekom godina ShaAD je imao različit broj tečajeva izravno o strojnom učenju – u prosjeku oko osam. Svaki od njih je zaista važan i koristan, pa tako i po mišljenju maturanata. 

Drugo, možete sudjelovati u borbenim projektima u kojima trebate implementirati jedan ili drugi ML algoritam. Međutim, vrlo je malo takvih projekata na tržištu IT razvoja: strojno učenje se ne koristi u većini zadataka. Čak iu bankama koje aktivno istražuju prilike povezane s ML-om, samo ih je nekoliko uključeno u analizu podataka. Ako niste bili u mogućnosti pridružiti se jednom od ovih timova, vaša jedina opcija je ili pokrenuti vlastiti projekt (gdje ćete, najvjerojatnije, sami postavljati svoje rokove, a to nema mnogo veze sa zadacima borbene proizvodnje), ili se početi natjecati na Kaggle.

Doista, udružite se s ostalim članovima zajednice i okušajte se u natjecanjima relativno lako - pogotovo ako svoje vještine potkrijepite treninzima i spomenutim tečajevima na Courseri. Svaki natječaj ima rok – poslužit će vam kao poticaj i pripremiti vas za sličan sustav u IT tvrtkama. Ovo je dobar način - koji je, međutim, također malo odvojen od stvarnih procesa. Na Kaggleu dobivate unaprijed obrađene, iako ne uvijek savršene podatke; ne nudite razmišljanje o doprinosu proizvodu; i što je najvažnije, ne zahtijevaju rješenja prikladna za proizvodnju. Vaši algoritmi će vjerojatno raditi i biti vrlo precizni, ali vaši modeli i kod bit će poput Frankensteina spojenog iz različitih dijelova - u proizvodnom projektu cijela će struktura raditi presporo, bit će je teško ažurirati i proširiti (na primjer, jezik i glasovni algoritmi uvijek će se djelomično prepisivati ​​kako se jezik razvija). Tvrtkama je u interesu da navedene poslove možete obaviti ne samo vi sami (jasno je da to možete učiniti vi kao autor rješenja), već i bilo tko od vaših kolega. Razmatra se razlika između sportskog i industrijskog programiranja много, a Kaggle obrazuje upravo “sportaše” - čak i ako to čini vrlo dobro, dopuštajući im da steknu određeno iskustvo.

Opisao sam dvije moguće linije razvoja - obuku kroz obrazovne programe i obuku "u borbi", na primjer na Kaggleu. Rezidencijalni program je kombinacija ove dvije metode. Očekuju vas predavanja i seminari na razini ShAD-a, ali i istinski borbeni projekti.

Izvor: www.habr.com

Dodajte komentar