Yandex Resident Program, eller hvordan en erfaren backender kan bli en ML-ingeniør

Yandex Resident Program, eller hvordan en erfaren backender kan bli en ML-ingeniør

Yandex åpner et residency-program i maskinlæring for erfarne backend-utviklere. Hvis du har skrevet mye i C++/Python og ønsker å bruke denne kunnskapen til ML, så vil vi lære deg hvordan du gjør praktisk forskning og gir erfarne mentorer. Du vil jobbe med sentrale Yandex-tjenester og få ferdigheter innen områder som lineære modeller og gradientforsterkning, anbefalingssystemer, nevrale nettverk for å analysere bilder, tekst og lyd. Du vil også lære hvordan du kan evaluere modellene dine på riktig måte ved å bruke beregninger offline og online.

Varigheten av programmet er ett år, hvor deltakerne vil jobbe i maskinintelligens og forskningsavdelingen til Yandex, samt delta på forelesninger og seminarer. Deltakelse er lønnet og innebærer fulltidsarbeid: 40 timer per uke med oppstart 1. juli i år. Søknader er nå åpne og varer til 1. mai. 

Og nå mer detaljert - om hva slags publikum vi venter på, hvordan arbeidsprosessen vil være og generelt hvordan en back-end-spesialist kan bytte til en karriere i ML.

Fokus

Mange bedrifter har Residency Programs, inkludert for eksempel Google og Facebook. De er hovedsakelig rettet mot spesialister på junior- og mellomnivå som prøver å ta et steg mot ML-forskning. Programmet vårt er for et annet publikum. Vi inviterer backend-utviklere som allerede har fått nok erfaring og vet med sikkerhet at de i sin kompetanse trenger å skifte mot ML, for å få praktiske ferdigheter - og ikke ferdighetene til en forsker - i å løse industrielle maskinlæringsproblemer. Det betyr ikke at vi ikke støtter unge forskere. Vi har organisert et eget program for dem - premie oppkalt etter Ilya Segalovich, som også lar deg jobbe i Yandex.

Hvor skal beboeren jobbe?

I Institutt for maskinintelligens og forskning utvikler vi selv prosjektideer. Hovedinspirasjonskilden er vitenskapelig litteratur, artikler og trender i forskningsmiljøet. Mine kolleger og jeg analyserer det vi leser, og ser på hvordan vi kan forbedre eller utvide metodene foreslått av forskere. Samtidig tar hver av oss hensyn til sitt kunnskapsområde og interesser, formulerer oppgaven basert på områdene han anser som viktige. Ideen til et prosjekt er vanligvis født i skjæringspunktet mellom resultatene av ekstern forskning og egen kompetanse.

Dette systemet er bra fordi det i stor grad løser de teknologiske problemene til Yandex-tjenester selv før de oppstår. Når en tjeneste står overfor et problem, kommer dens representanter til oss, mest sannsynlig for å ta teknologiene vi allerede har forberedt, som alt som gjenstår er å bli brukt riktig i produktet. Hvis noe ikke er klart, vil vi i det minste raskt huske hvor vi kan "begyne å grave" og i hvilke artikler vi skal se etter en løsning. Som vi vet, er den vitenskapelige tilnærmingen å stå på skuldrene til kjemper.

Hva å gjøre

Hos Yandex – og til og med spesifikt i vår ledelse – utvikles alle relevante områder av ML. Målet vårt er å forbedre kvaliteten på et bredt utvalg av produkter, og dette tjener som et insentiv til å teste alt nytt. I tillegg kommer nye tjenester jevnlig. Så forelesningsprogrammet inneholder alle de viktigste (velprøvde) områdene innen maskinlæring i industriell utvikling. Ved sammenstillingen av min del av kurset brukte jeg min undervisningserfaring ved School of Data Analysis, samt materialet og arbeidet til andre SHAD-lærere. Jeg vet at kollegene mine gjorde det samme.

De første månedene vil opplæring etter kursopplegget utgjøre ca 30 % av arbeidstiden din, deretter ca 10 %. Det er imidlertid viktig å forstå at arbeidet med selve ML-modellene vil fortsette å ta omtrent fire ganger mindre enn alle de tilknyttede prosessene. Disse inkluderer klargjøring av backend, mottak av data, skriving av en pipeline for forhåndsbehandling, optimalisering av kode, tilpasning til spesifikk maskinvare osv. En ML-ingeniør er, om du vil, en fullstack-utvikler (bare med større vekt på maskinlæring). , i stand til å løse et problem fra start til slutt. Selv med en ferdig modell, vil du sannsynligvis trenge å gjøre en rekke flere handlinger: parallellisere utførelsen på tvers av flere maskiner, forberede en implementering i form av et håndtak, et bibliotek eller komponenter av selve tjenesten.

Elevens valg
Hvis du var under inntrykk av at det er bedre å bli en ML-ingeniør ved først å jobbe som backend-utvikler, er dette ikke sant. Å registrere seg i samme ShAD uten reell erfaring med å utvikle tjenester, lære og bli ekstremt etterspurt på markedet er et utmerket alternativ. Mange Yandex-spesialister endte opp i sine nåværende stillinger på denne måten. Hvis et selskap er klar til å tilby deg en jobb innen ML umiddelbart etter endt utdanning, bør du sannsynligvis også akseptere tilbudet. Prøv å komme inn i et godt team med en erfaren mentor og gjør deg klar til å lære mye.

Hva hindrer deg vanligvis i å gjøre ML?

Hvis en backender ønsker å bli ML-ingeniør, kan han velge mellom to utviklingsområder – uten å ta hensyn til residency-programmet.

For det første, studer som en del av et eller annet utdanningsløp. Leksjoner Coursera vil bringe deg nærmere forståelsen av de grunnleggende teknikkene, men for å fordype deg i yrket i tilstrekkelig grad, må du bruke mye mer tid til det. For eksempel, uteksaminert fra ShAD. Gjennom årene hadde ShAD et annet antall kurs direkte om maskinlæring – i gjennomsnitt rundt åtte. Hver av dem er veldig viktig og nyttig, inkludert etter nyutdannedes mening. 

For det andre kan du ta del i kampprosjekter der du trenger å implementere en eller annen ML-algoritme. Det er imidlertid svært få slike prosjekter på IT-utviklingsmarkedet: maskinlæring brukes ikke i de fleste oppgaver. Selv i banker som aktivt utforsker ML-relaterte muligheter, er det bare noen få som er engasjert i dataanalyse. Hvis du ikke var i stand til å bli med i et av disse lagene, er det eneste alternativet ditt enten å starte ditt eget prosjekt (hvor du mest sannsynlig setter dine egne tidsfrister, og dette har lite med kampproduksjonsoppgaver å gjøre), eller begynne å konkurrere på Kaggle.

Faktisk, slå deg sammen med andre fellesskapsmedlemmer og prøv deg selv i konkurranser relativt enkelt - spesielt hvis du sikkerhetskopierer ferdighetene dine med trening og de nevnte kursene på Coursera. Hver konkurranse har en frist – den vil tjene som et insentiv for deg og forberede deg på et lignende system i IT-selskaper. Dette er en god måte – som imidlertid også er litt skilt fra reelle prosesser. På Kaggle får du forhåndsbehandlede, om enn ikke alltid perfekte, data; ikke tilby å tenke på bidraget til produktet; og viktigst av alt, de krever ikke løsninger som egner seg for produksjon. Algoritmene dine vil sannsynligvis fungere og være svært nøyaktige, men modellene og koden vil være som Frankenstein sydd sammen fra forskjellige deler - i et produksjonsprosjekt vil hele strukturen fungere for sakte, det vil være vanskelig å oppdatere og utvide (f.eks. språk- og stemmealgoritmer vil alltid delvis omskrives etter hvert som språket utvikler seg). Bedrifter er interessert i det faktum at arbeidet som er oppført ikke bare kan gjøres av deg selv (det er tydelig at du, som forfatteren av løsningen, kan gjøre dette), men også av noen av kollegene dine. Forskjellen mellom sport og industriell programmering diskuteres много, og Kaggle utdanner nettopp "idrettsutøvere" - selv om det gjør det veldig bra, slik at de kan få litt erfaring.

Jeg beskrev to mulige utviklingslinjer - trening gjennom utdanningsprogrammer og trening "i kamp", for eksempel på Kaggle. Residensprogrammet er en kombinasjon av disse to metodene. Forelesninger og seminarer på ShAD-nivå, så vel som virkelig stridbare prosjekter, venter på deg.

Kilde: www.habr.com

Legg til en kommentar