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

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

Yandex åbner et opholdsprogram i maskinlæring for erfarne backend-udviklere. Hvis du har skrevet meget i C++/Python og ønsker at anvende denne viden til ML, så vil vi lære dig, hvordan du laver praktisk research og giver erfarne mentorer. Du vil arbejde på centrale Yandex-tjenester og få færdigheder inden for områder som lineære modeller og gradientboosting, anbefalingssystemer, neurale netværk til analyse af billeder, tekst og lyd. Du vil også lære, hvordan du korrekt evaluerer dine modeller ved hjælp af metrics offline og online.

Varigheden af ​​programmet er et år, hvor deltagerne vil arbejde i maskinintelligens- og forskningsafdelingen i Yandex samt deltage i forelæsninger og seminarer. Deltagelse er betalt og indebærer fuldtidsarbejde: 40 timer om ugen med start 1. juli i år. Ansøgninger er nu åbne og varer indtil 1. maj. 

Og nu mere detaljeret - om hvilken slags publikum vi venter på, hvad arbejdsprocessen bliver og i det hele taget hvordan en back-end specialist kan skifte til en karriere i ML.

Fokus

Mange virksomheder har Residency Programs, herunder for eksempel Google og Facebook. De er hovedsageligt rettet mod specialister på junior- og mellemniveau, der forsøger at tage et skridt i retning af ML-forskning. Vores program er for et andet publikum. Vi inviterer backend-udviklere, der allerede har fået nok erfaring og ved med sikkerhed, at de i deres kompetencer skal skifte mod ML, for at opnå praktiske færdigheder - og ikke en videnskabsmands færdigheder - i at løse industrielle maskinlæringsproblemer. Det betyder ikke, at vi ikke støtter unge forskere. Vi har tilrettelagt et separat program for dem - præmie opkaldt efter Ilya Segalovich, som også giver dig mulighed for at arbejde i Yandex.

Hvor skal beboeren arbejde?

I afdelingen for maskinintelligens og forskning udvikler vi selv projektideer. Den primære inspirationskilden er videnskabelig litteratur, artikler og tendenser i forskningsmiljøet. Mine kolleger og jeg analyserer, hvad vi læser, og ser på, hvordan vi kan forbedre eller udvide de metoder, som videnskabsmænd foreslår. Samtidig tager hver af os hensyn til sit videns- og interesseområde, formulerer opgaven ud fra de områder, som han anser for vigtige. Idéen til et projekt fødes normalt i krydsfeltet mellem resultaterne af ekstern forskning og egne kompetencer.

Dette system er godt, fordi det stort set løser de teknologiske problemer med Yandex-tjenester, selv før de opstår. Når en tjeneste står over for et problem, kommer dens repræsentanter til os, højst sandsynligt for at tage de teknologier, vi allerede har forberedt, som det eneste, der er tilbage, er at blive anvendt korrekt i produktet. Hvis noget ikke er klar, husker vi i hvert fald hurtigt, hvor vi kan "begynde at grave", og i hvilke artikler vi skal lede efter en løsning. Som vi ved, er den videnskabelige tilgang at stå på skuldrene af giganter.

Hvad skal man gøre

Hos Yandex - og endda specifikt i vores ledelse - udvikles alle relevante områder af ML. Vores mål er at forbedre kvaliteten af ​​en lang række produkter, og dette tjener som et incitament til at teste alt nyt. Derudover dukker der løbende nye tjenester op. Så forelæsningsprogrammet indeholder alle de centrale (velafprøvede) områder inden for maskinlæring i industriel udvikling. Ved sammenstillingen af ​​min del af forløbet brugte jeg min undervisningserfaring på Dataanalyseskolen samt andre SHAD-læreres materialer og arbejde. Jeg ved, at mine kolleger gjorde det samme.

I de første måneder vil uddannelse efter kursusprogrammet udgøre cirka 30 % af din arbejdstid, derefter cirka 10 %. Det er dog vigtigt at forstå, at arbejdet med selve ML-modellerne fortsat vil tage cirka fire gange mindre end alle de tilknyttede processer. Disse omfatter forberedelse af backend, modtagelse af data, skrivning af en pipeline til forbehandling af det, optimering af kode, tilpasning til specifik hardware osv. En ML-ingeniør er, om du vil, en fuldstack-udvikler (kun med større vægt på maskinlæring). , i stand til at løse et problem fra start til slut. Selv med en færdiglavet model skal du sandsynligvis udføre en række flere handlinger: parallelisere dens udførelse på tværs af flere maskiner, forberede en implementering i form af et håndtag, et bibliotek eller komponenter af selve tjenesten.

Elevens valg
Hvis du var under indtryk af, at det er bedre at blive ML-ingeniør ved først at arbejde som backend-udvikler, er dette ikke sandt. At tilmelde sig den samme ShAD uden reel erfaring med at udvikle tjenester, lære og blive ekstremt efterspurgt på markedet er en glimrende mulighed. Mange Yandex-specialister endte i deres nuværende stillinger på denne måde. Hvis en virksomhed er klar til at tilbyde dig et job inden for ML umiddelbart efter endt uddannelse, skal du nok også tage imod tilbuddet. Prøv at komme ind i et godt team med en erfaren mentor og gør dig klar til at lære en masse.

Hvad forhindrer dig normalt i at lave ML?

Hvis en backender stræber efter at blive ML-ingeniør, kan han vælge mellem to udviklingsområder – uden at tage hensyn til residency-programmet.

For det første, læs som en del af et uddannelsesforløb. Lektionerne Coursera vil bringe dig tættere på at forstå de grundlæggende teknikker, men for at fordybe dig i faget i tilstrækkeligt omfang, skal du bruge meget mere tid på det. For eksempel uddannes fra ShAD. Gennem årene havde ShAD et andet antal kurser direkte om maskinlæring - i gennemsnit omkring otte. Hver af dem er virkelig vigtig og nyttig, også efter kandidaternes mening. 

For det andet kan du deltage i kampprojekter, hvor du skal implementere en eller anden ML-algoritme. Der er dog meget få sådanne projekter på it-udviklingsmarkedet: maskinlæring bruges ikke i de fleste opgaver. Selv i banker, der aktivt udforsker ML-relaterede muligheder, er det kun få, der er involveret i dataanalyse. Hvis du ikke var i stand til at deltage i et af disse hold, er din eneste mulighed enten at starte dit eget projekt (hvor du højst sandsynligt vil sætte dine egne deadlines, og det har ikke meget at gøre med kampproduktionsopgaver), eller begynde at konkurrere på Kaggle.

Faktisk hold dig sammen med andre fællesskabsmedlemmer og prøv dig selv i konkurrencer relativt nemt - især hvis du bakker op om dine kompetencer med træning og de nævnte kurser på Coursera. Hver konkurrence har en deadline - den vil tjene som et incitament for dig og forberede dig til et lignende system i it-virksomheder. Det er en god måde – som dog også er lidt skilt fra rigtige processer. På Kaggle får du forudbehandlede, omend ikke altid perfekte, data; Tilbyd ikke at tænke på bidraget til produktet; og vigtigst af alt, de kræver ikke løsninger, der er egnede til produktion. Dine algoritmer vil sandsynligvis fungere og være meget nøjagtige, men dine modeller og kode vil være ligesom Frankenstein syet sammen fra forskellige dele - i et produktionsprojekt vil hele strukturen arbejde for langsomt, det vil være svært at opdatere og udvide (f.eks. sprog- og stemmealgoritmer vil altid blive delvist omskrevet, efterhånden som sproget udvikler sig). Virksomheder er interesserede i, at det anførte arbejde ikke kun kan udføres af dig selv (det er klart, at du som forfatter til løsningen kan gøre dette), men også af enhver af dine kolleger. Forskellen mellem sport og industriel programmering diskuteres много, og Kaggle uddanner netop "atleter" - selvom det gør det meget godt, så de kan få noget erfaring.

Jeg beskrev to mulige udviklingslinjer - træning gennem uddannelsesprogrammer og træning "i kamp", for eksempel på Kaggle. Residency-programmet er en kombination af disse to metoder. Forelæsninger og seminarer på ShAD-niveau såvel som virkelig kamplystne projekter venter på dig.

Kilde: www.habr.com

Tilføj en kommentar