Yandex Resident Program, eller hur en erfaren backender kan bli en ML-ingenjör

Yandex Resident Program, eller hur en erfaren backender kan bli en ML-ingenjör

Yandex öppnar ett residencyprogram i maskininlärning för erfarna backend-utvecklare. Om du har skrivit mycket i C++/Python och vill tillämpa denna kunskap på ML, då lär vi dig hur du gör praktisk forskning och ger erfarna mentorer. Du kommer att arbeta med viktiga Yandex-tjänster och få färdigheter inom områden som linjära modeller och gradientförstärkning, rekommendationssystem, neurala nätverk för att analysera bilder, text och ljud. Du kommer också att lära dig hur du korrekt utvärderar dina modeller med hjälp av mätvärden offline och online.

Programmets varaktighet är ett år, under vilket deltagarna kommer att arbeta i maskinintelligens och forskningsavdelningen på Yandex, samt delta i föreläsningar och seminarier. Deltagande är betald och innebär heltidsarbete: 40 timmar per vecka med start 1 juli i år. Ansökningar är nu öppna och kommer att pågå till 1 maj. 

Och nu mer detaljerat - om vilken typ av publik vi väntar på, hur arbetsprocessen kommer att vara och i allmänhet hur en back-end-specialist kan byta till en karriär inom ML.

Fokus

Många företag har Residency Program, inklusive till exempel Google och Facebook. De riktar sig främst till specialister på junior- och mellannivå som försöker ta ett steg mot ML-forskning. Vårt program är för en annan publik. Vi bjuder in backend-utvecklare som redan har skaffat sig tillräckligt med erfarenhet och som säkert vet att de i sina kompetenser behöver växla mot ML, för att få praktiska färdigheter - och inte en forskares färdigheter - i att lösa industriella maskininlärningsproblem. Det betyder inte att vi inte stödjer unga forskare. Vi har organiserat ett separat program för dem - premie uppkallad efter Ilya Segalovich, vilket också låter dig arbeta i Yandex.

Var kommer den boende att arbeta?

På Institutionen för maskinintelligens och forskning utvecklar vi själva projektidéer. Den främsta inspirationskällan är vetenskaplig litteratur, artiklar och trender inom forskarvärlden. Jag och mina kollegor analyserar det vi läser och tittar på hur vi kan förbättra eller utöka de metoder som forskare föreslår. Samtidigt tar var och en av oss hänsyn till sitt kunskapsområde och intressen, formulerar uppgiften utifrån de områden som han anser vara viktiga. Idén till ett projekt föds vanligtvis i skärningspunkten mellan resultaten av extern forskning och den egna kompetensen.

Det här systemet är bra eftersom det till stor del löser de tekniska problemen med Yandex-tjänster redan innan de uppstår. När en tjänst står inför ett problem kommer dess representanter till oss, med största sannolikhet för att ta de tekniker vi redan har förberett, som allt som återstår är att tillämpas korrekt i produkten. Om något inte är klart kommer vi åtminstone snabbt ihåg var vi kan "börja gräva" och i vilka artiklar vi ska leta efter en lösning. Som vi vet är det vetenskapliga tillvägagångssättet att stå på jättarnas axlar.

Vad ska man göra

På Yandex – och även specifikt i vår ledning – utvecklas alla relevanta områden inom ML. Vårt mål är att förbättra kvaliteten på en mängd olika produkter, och detta tjänar som ett incitament att testa allt nytt. Dessutom dyker det upp nya tjänster regelbundet. Så föreläsningsprogrammet innehåller alla nyckelområden (väl beprövade) inom maskininlärning inom industriell utveckling. När jag sammanställde min del av kursen använde jag min undervisningserfarenhet på School of Data Analysis, samt andra SHAD-lärares material och arbete. Jag vet att mina kollegor gjorde detsamma.

De första månaderna kommer utbildning enligt kursprogrammet att utgöra cirka 30 % av din arbetstid, därefter cirka 10 %. Det är dock viktigt att förstå att arbetet med själva ML-modellerna kommer att fortsätta att ta ungefär fyra gånger mindre än alla associerade processer. Dessa inkluderar att förbereda backend, ta emot data, skriva en pipeline för att förbearbeta den, optimera kod, anpassa till specifik hårdvara etc. En ML-ingenjör är, om du så vill, en full-stack-utvecklare (endast med större tonvikt på maskininlärning) , som kan lösa ett problem från början till slut. Även med en färdig modell kommer du förmodligen att behöva göra ett antal fler åtgärder: parallellisera dess exekvering över flera maskiner, förbereda en implementering i form av ett handtag, ett bibliotek eller komponenter i själva tjänsten.

Elevens val
Om du hade intrycket att det är bättre att bli en ML-ingenjör genom att först arbeta som backend-utvecklare, är detta inte sant. Att anmäla sig till samma ShAD utan verklig erfarenhet av att utveckla tjänster, lära och bli extremt efterfrågad på marknaden är ett utmärkt alternativ. Många Yandex-specialister hamnade i sina nuvarande positioner på detta sätt. Om något företag är redo att erbjuda dig ett jobb inom ML-området direkt efter examen, bör du förmodligen också acceptera erbjudandet. Försök att komma in i ett bra team med en erfaren mentor och gör dig redo att lära dig mycket.

Vad brukar hindra dig från att göra ML?

Om en backender strävar efter att bli ML-ingenjör kan han välja mellan två utvecklingsområden – utan att ta hänsyn till residencyprogrammet.

För det första, studera som en del av någon utbildningskurs. Lektionerna Coursera kommer att föra dig närmare att förstå de grundläggande teknikerna, men för att fördjupa dig i yrket i tillräcklig utsträckning måste du ägna mycket mer tid åt det. Till exempel ta examen från ShAD. Under åren har ShAD haft ett annat antal kurser direkt om maskininlärning – i genomsnitt cirka åtta. Var och en av dem är verkligen viktig och användbar, även enligt akademiker. 

För det andra kan du delta i stridsprojekt där du behöver implementera en eller annan ML-algoritm. Det finns dock väldigt få sådana projekt på IT-utvecklingsmarknaden: maskininlärning används inte i de flesta uppgifter. Även i banker som aktivt utforskar ML-relaterade möjligheter är det bara ett fåtal som är engagerade i dataanalys. Om du inte kunde gå med i ett av dessa team är ditt enda alternativ att antingen starta ditt eget projekt (där du med största sannolikhet kommer att sätta dina egna deadlines, och detta har lite att göra med stridsproduktionsuppgifter), eller börja tävla på Kuggla.

Verkligen, slå dig ihop med andra community-medlemmar och prova dig fram i tävlingar relativt lätt - speciellt om du backar upp dina kunskaper med träning och de nämnda kurserna på Coursera. Varje tävling har en deadline - den kommer att fungera som ett incitament för dig och förbereda dig för ett liknande system i IT-företag. Detta är ett bra sätt – som dock också är lite skilt från verkliga processer. På Kaggle får du förbehandlad, om än inte alltid perfekt, data; Erbjud inte att tänka på bidraget till produkten; och viktigast av allt, de kräver inte lösningar som är lämpliga för produktion. Dina algoritmer kommer förmodligen att fungera och vara mycket exakta, men dina modeller och koden kommer att vara som Frankenstein hopfogade från olika delar - i ett produktionsprojekt kommer hela strukturen att fungera för långsamt, det kommer att vara svårt att uppdatera och expandera (till exempel, språk- och röstalgoritmer kommer alltid att delvis skrivas om när språket utvecklas). Företag är intresserade av att det listade arbetet inte bara kan utföras av dig själv (det är tydligt att du, som författare till lösningen, kan göra detta), utan också av någon av dina kollegor. Skillnaden mellan sport och industriell programmering diskuteras много, och Kaggle utbildar just "idrottare" - även om det gör det väldigt bra, vilket gör att de kan få lite erfarenhet.

Jag beskrev två möjliga utvecklingslinjer - träning genom utbildningsprogram och träning "i strid", till exempel på Kaggle. Residensprogrammet är en kombination av dessa två metoder. Föreläsningar och seminarier på ShAD-nivå, såväl som verkligt stridbara projekt, väntar på dig.

Källa: will.com

Lägg en kommentar