Yandex Resident-programma, of hoe een ervaren backender een ML-ingenieur kan worden

Yandex Resident-programma, of hoe een ervaren backender een ML-ingenieur kan worden

Yandex opent een residentieprogramma in machine learning voor ervaren backend-ontwikkelaars. Als je veel in C++/Python hebt geschreven en deze kennis wilt toepassen op ML, dan leren we je praktijkgericht onderzoek doen en zorgen we voor ervaren mentoren. Je werkt aan belangrijke Yandex-services en verwerft vaardigheden op gebieden zoals lineaire modellen en gradiëntversterking, aanbevelingssystemen, neurale netwerken voor het analyseren van afbeeldingen, tekst en geluid. U leert ook hoe u uw modellen op de juiste manier kunt evalueren met behulp van statistieken, zowel offline als online.

De duur van het programma is een jaar, waarin deelnemers zullen werken op de machine-intelligentie- en onderzoeksafdeling van Yandex, en lezingen en seminars zullen bijwonen. Deelname is betaald en betreft een fulltime dienstverband: 40 uur per week, vanaf 1 juli van dit jaar. Toepassingen zijn nu geopend en zal duren tot 1 mei. 

En nu in meer detail - over op wat voor soort publiek we wachten, wat het werkproces zal zijn en, in het algemeen, hoe een back-endspecialist kan overstappen naar een carrière in ML.

gerichtheid

Veel bedrijven hebben Residency-programma's, waaronder bijvoorbeeld Google en Facebook. Ze zijn vooral gericht op junior- en mid-level specialisten die een stap in de richting van ML-onderzoek proberen te zetten. Ons programma is voor een ander publiek. We nodigen backend-ontwikkelaars uit die al voldoende ervaring hebben opgedaan en zeker weten dat ze qua competenties moeten overschakelen naar ML, om praktische vaardigheden te verwerven – en niet de vaardigheden van een wetenschapper – bij het oplossen van industriële machine learning-problemen. Dit betekent niet dat wij jonge onderzoekers niet steunen. We hebben voor hen een apart programma georganiseerd - prijs vernoemd naar Ilya Segalovich, waarmee je ook in Yandex kunt werken.

Waar gaat de bewoner werken?

Bij de afdeling Machine Intelligence and Research ontwikkelen wij zelf projectideeën. De belangrijkste inspiratiebron zijn wetenschappelijke literatuur, artikelen en trends in de onderzoeksgemeenschap. Mijn collega's en ik analyseren wat we lezen en kijken hoe we de door wetenschappers voorgestelde methoden kunnen verbeteren of uitbreiden. Tegelijkertijd houdt ieder van ons rekening met zijn kennis- en interessegebied en formuleert de taak op basis van de gebieden die hij belangrijk acht. Het idee voor een project ontstaat doorgaans op het kruispunt van de resultaten van extern onderzoek en de eigen competenties.

Dit systeem is goed omdat het de technologische problemen van Yandex-services grotendeels oplost, nog voordat ze zich voordoen. Wanneer een dienst met een probleem wordt geconfronteerd, komen zijn vertegenwoordigers naar ons toe, hoogstwaarschijnlijk met de technologieën die we al hebben voorbereid, en het enige dat overblijft is de juiste toepassing in het product. Als iets nog niet klaar is, onthouden we in ieder geval snel waar we kunnen ‘gaan graven’ en in welke artikelen we een oplossing moeten zoeken. Zoals we weten bestaat de wetenschappelijke benadering uit het staan ​​op de schouders van reuzen.

Wat moeten we doen

Bij Yandex - en zelfs specifiek in ons management - worden alle relevante gebieden van ML ontwikkeld. Ons doel is om de kwaliteit van een grote verscheidenheid aan producten te verbeteren, en dit dient als een stimulans om al het nieuwe te testen. Daarnaast verschijnen er regelmatig nieuwe diensten. Het lezingenprogramma omvat dus alle belangrijke (bewezen) gebieden van machinaal leren in de industriële ontwikkeling. Bij het samenstellen van mijn deel van de cursus heb ik gebruik gemaakt van mijn leservaring aan de School of Data Analysis, evenals van de materialen en het werk van andere SHAD-docenten. Ik weet dat mijn collega's hetzelfde deden.

De eerste maanden zal de opleiding volgens het cursusprogramma ongeveer 30% van je werktijd in beslag nemen, daarna ongeveer 10%. Het is echter belangrijk om te begrijpen dat het werken met de ML-modellen zelf ongeveer vier keer minder zal blijven duren dan alle bijbehorende processen. Denk hierbij aan het voorbereiden van de backend, het ontvangen van data, het schrijven van een pipeline om deze voor te verwerken, het optimaliseren van code, het aanpassen aan specifieke hardware, etc. Een ML-engineer is, als je wilt, een full-stack developer (alleen met een grotere nadruk op machine learning) , in staat een probleem van begin tot eind op te lossen. Zelfs met een kant-en-klaar model zul je waarschijnlijk nog een aantal acties moeten uitvoeren: de uitvoering ervan op verschillende machines parallelliseren, een implementatie voorbereiden in de vorm van een handle, een bibliotheek of componenten van de service zelf.

Keuze van de student
Als je de indruk had dat je beter ML-engineer kunt worden door eerst als backend-ontwikkelaar te werken, is dit niet waar. Inschrijven voor dezelfde ShAD zonder echte ervaring met het ontwikkelen van diensten, leren en extreem veel gevraagd worden op de markt is een uitstekende optie. Veel Yandex-specialisten zijn op deze manier in hun huidige positie terechtgekomen. Als een bedrijf bereid is om je onmiddellijk na je afstuderen een baan op het gebied van ML aan te bieden, moet je het aanbod waarschijnlijk ook accepteren. Probeer in een goed team terecht te komen met een ervaren mentor en bereid je voor om veel te leren.

Wat weerhoudt u er doorgaans van om aan ML te doen?

Als een backender ML-ingenieur wil worden, kan hij kiezen uit twee ontwikkelingsgebieden - zonder rekening te houden met het residentieprogramma.

Ten eerste, studeer als onderdeel van een educatieve cursus. ervaring Coursera brengt je dichter bij het begrijpen van de basistechnieken, maar om je voldoende te verdiepen in het vak, moet je er veel meer tijd aan besteden. Studeer bijvoorbeeld af aan ShAD. In de loop der jaren heeft ShAD een verschillend aantal cursussen direct over machine learning gegeven: gemiddeld ongeveer acht. Elk van hen is erg belangrijk en nuttig, ook naar de mening van afgestudeerden. 

Ten tweede kun je deelnemen aan gevechtsprojecten waarbij je een of ander ML-algoritme moet implementeren. Er zijn echter maar heel weinig van dergelijke projecten op de IT-ontwikkelingsmarkt: machinaal leren wordt bij de meeste taken niet gebruikt. Zelfs van de banken die actief de mogelijkheden op het gebied van ML verkennen, houden slechts enkele banken zich bezig met data-analyse. Als u zich niet bij een van deze teams kunt aansluiten, is uw enige optie om óf uw eigen project te starten (waarbij u hoogstwaarschijnlijk uw eigen deadlines bepaalt, en dit heeft weinig te maken met gevechtsproductietaken), óf te gaan concurreren op Kaggle.

Werk samen met andere communityleden en probeer jezelf uit in wedstrijden relatief makkelijk - vooral als je je vaardigheden ondersteunt met trainingen en de genoemde cursussen op Coursera. Elke wedstrijd heeft een deadline - deze zal als stimulans voor u dienen en u voorbereiden op een soortgelijk systeem bij IT-bedrijven. Dit is een goede manier, die echter ook een beetje losstaat van echte processen. Op Kaggle krijgt u voorbewerkte, zij het niet altijd perfecte, gegevens; bied niet aan om na te denken over de bijdrage aan het product; en het allerbelangrijkste: ze vereisen geen oplossingen die geschikt zijn voor productie. Uw algoritmen zullen waarschijnlijk werken en zeer nauwkeurig zijn, maar uw modellen en code zullen als Frankenstein uit verschillende delen aan elkaar zijn geplakt - in een productieproject zal de hele structuur te langzaam werken, het zal moeilijk zijn om bij te werken en uit te breiden (bijvoorbeeld taal- en stemalgoritmen zullen altijd gedeeltelijk herschreven worden naarmate de taal zich ontwikkelt). Bedrijven zijn geïnteresseerd in het feit dat het genoemde werk niet alleen door u zelf kan worden gedaan (het is duidelijk dat u, als auteur van de oplossing, dit kunt doen), maar ook door een van uw collega's. Het verschil tussen sport- en industriële programmering wordt besproken много, en Kaggle leidt precies ‘atleten’ op – ook al doet het dat heel goed, waardoor ze wat ervaring kunnen opdoen.

Ik beschreef twee mogelijke ontwikkelingslijnen: training via educatieve programma's en training 'in de strijd', bijvoorbeeld op Kaggle. Het residentieprogramma is een combinatie van deze twee methoden. Lezingen en seminars op ShAD-niveau, maar ook werkelijk strijdbare projecten, wachten op u.

Bron: www.habr.com

Voeg een reactie