Programma residente Yandex o come un backender esperto può diventare un ingegnere ML

Programma residente Yandex o come un backender esperto può diventare un ingegnere ML

Yandex sta aprendo un programma di residenza nell'apprendimento automatico per sviluppatori backend esperti. Se hai scritto molto in C++/Python e desideri applicare queste conoscenze al machine learning, ti insegneremo come fare ricerca pratica e forniremo mentori esperti. Lavorerai sui principali servizi Yandex e acquisirai competenze in aree quali modelli lineari e potenziamento del gradiente, sistemi di raccomandazione, reti neurali per l'analisi di immagini, testo e suono. Imparerai anche come valutare correttamente i tuoi modelli utilizzando le metriche offline e online.

La durata del programma è di un anno, durante il quale i partecipanti lavoreranno nel dipartimento di ricerca e intelligenza artificiale di Yandex, oltre a frequentare lezioni e seminari. La partecipazione è retribuita e prevede un lavoro a tempo pieno: 40 ore settimanali, a partire dal 1 luglio di quest'anno. Le candidature sono ora aperte e durerà fino al 1 maggio. 

E ora più in dettaglio: che tipo di pubblico stiamo aspettando, quale sarà il processo di lavoro e, in generale, come uno specialista di back-end può passare a una carriera nel ML.

direzionalità

Molte aziende hanno programmi di residenza, tra cui, ad esempio, Google e Facebook. Si rivolgono principalmente a specialisti di livello junior e medio che stanno cercando di fare un passo avanti verso la ricerca sul machine learning. Il nostro programma è per un pubblico diverso. Invitiamo gli sviluppatori backend che hanno già acquisito sufficiente esperienza e sanno con certezza che nelle loro competenze devono passare al ML, per acquisire competenze pratiche - e non competenze di uno scienziato - nella risoluzione dei problemi di machine learning industriale. Ciò non significa che non sosteniamo i giovani ricercatori. Abbiamo organizzato un programma separato per loro - il premio prende il nome da Ilya Segalovich, che ti consente anche di lavorare in Yandex.

Dove lavorerà il residente?

Nel Dipartimento di intelligenza artificiale e ricerca sviluppiamo noi stessi idee progettuali. La principale fonte di ispirazione è la letteratura scientifica, gli articoli e le tendenze nella comunità di ricerca. Io e i miei colleghi analizziamo ciò che leggiamo, cercando come possiamo migliorare o espandere i metodi proposti dagli scienziati. Allo stesso tempo, ognuno di noi tiene conto della propria area di conoscenza e di interessi, formula il compito in base alle aree che ritiene importanti. L’idea di un progetto nasce solitamente dall’intersezione tra i risultati della ricerca esterna e le proprie competenze.

Questo sistema è buono perché risolve in gran parte i problemi tecnologici dei servizi Yandex ancor prima che si presentino. Quando un servizio affronta un problema, i suoi rappresentanti vengono da noi, molto probabilmente per portare con sé le tecnologie che abbiamo già preparato, che non resta che applicarle correttamente nel prodotto. Se qualcosa non è pronto, almeno ricorderemo velocemente dove possiamo “iniziare a scavare” e in quali articoli cercare una soluzione. Come sappiamo, l’approccio scientifico è stare sulle spalle dei giganti.

Cosa fare

In Yandex, e anche specificamente nel nostro management, vengono sviluppate tutte le aree rilevanti del ML. Il nostro obiettivo è migliorare la qualità di un'ampia varietà di prodotti e questo serve da incentivo per testare tutto ciò che è nuovo. Inoltre, nuovi servizi appaiono regolarmente. Quindi il programma delle lezioni contiene tutte le aree chiave (ben collaudate) dell'apprendimento automatico nello sviluppo industriale. Durante la compilazione della mia parte del corso, ho utilizzato la mia esperienza di insegnamento presso la School of Data Analysis, nonché i materiali e il lavoro di altri insegnanti SHAD. So che i miei colleghi hanno fatto lo stesso.

Nei primi mesi la formazione secondo il programma del corso rappresenterà circa il 30% del vostro tempo lavorativo, poi circa il 10%. Tuttavia, è importante comprendere che il lavoro con i modelli ML stessi continuerà a richiedere circa quattro volte meno di tutti i processi associati. Questi includono la preparazione del backend, la ricezione dei dati, la scrittura di una pipeline per la preelaborazione, l'ottimizzazione del codice, l'adattamento a hardware specifico, ecc. Un ingegnere ML è, se preferisci, uno sviluppatore full-stack (solo con una maggiore enfasi sull'apprendimento automatico) , capace di risolvere un problema dall'inizio alla fine. Anche con un modello già pronto, probabilmente dovrai eseguire una serie di azioni aggiuntive: parallelizzare la sua esecuzione su più macchine, preparare un'implementazione sotto forma di handle, libreria o componenti del servizio stesso.

Scelta dello studente
Se avevi l'impressione che fosse meglio diventare un ingegnere ML lavorando prima come sviluppatore backend, questo non è vero. Iscriversi allo stesso ShAD senza una reale esperienza nello sviluppo di servizi, nell'apprendimento e nel diventare estremamente richiesti sul mercato è un'ottima opzione. Molti specialisti Yandex sono finiti in questo modo nelle loro posizioni attuali. Se qualche azienda è pronta a offrirti un lavoro nel campo del ML subito dopo la laurea, probabilmente dovresti accettare anche tu l'offerta. Cerca di entrare in una buona squadra con un mentore esperto e preparati a imparare molto.

Cosa di solito ti impedisce di fare ML?

Se un backender aspira a diventare un ingegnere ML, può scegliere tra due aree di sviluppo, senza tener conto del programma di residenza.

In primo luogo, studia come parte di un corso educativo. Lezioni Coursera ti avvicinerà alla comprensione delle tecniche di base, ma per immergerti sufficientemente nella professione è necessario dedicarvi molto più tempo. Ad esempio, diplomati alla ShAD. Nel corso degli anni, ShAD ha tenuto un numero diverso di corsi direttamente sull'apprendimento automatico: in media circa otto. Ognuno di essi è davvero importante e utile, anche secondo l'opinione dei laureati. 

In secondo luogo, puoi prendere parte a progetti di combattimento in cui è necessario implementare l'uno o l'altro algoritmo ML. Tuttavia, nel mercato dello sviluppo IT, esistono pochissimi progetti di questo tipo: nella maggior parte dei compiti l’apprendimento automatico non viene utilizzato. Anche nelle banche che stanno esplorando attivamente le opportunità legate al machine learning, solo poche sono impegnate nell’analisi dei dati. Se non sei riuscito a unirti a uno di questi team, la tua unica opzione è avviare il tuo progetto (dove, molto probabilmente, fisserai le tue scadenze, e questo ha poco a che fare con le attività di produzione del combattimento), o iniziare a competere su Kaggle.

Infatti, fai squadra con altri membri della comunità e mettiti alla prova nelle competizioni relativamente facile - soprattutto se supporti le tue capacità con la formazione e i corsi menzionati su Coursera. Ogni concorso ha una scadenza: ti servirà da incentivo e ti preparerà per un sistema simile nelle aziende IT. Questo è un buon modo, che però è anche un po' separato dai processi reali. Su Kaggle ti vengono forniti dati pre-elaborati, anche se non sempre perfetti; non offrire di pensare al contributo al prodotto; e, soprattutto, non richiedono soluzioni adatte alla produzione. I tuoi algoritmi probabilmente funzioneranno e saranno estremamente accurati, ma i tuoi modelli e il tuo codice saranno come Frankenstein cuciti insieme da parti diverse: in un progetto di produzione, l'intera struttura funzionerà troppo lentamente, sarà difficile da aggiornare ed espandere (ad esempio, gli algoritmi del linguaggio e della voce verranno sempre parzialmente riscritti man mano che il linguaggio si sviluppa). Le aziende sono interessate al fatto che il lavoro elencato possa essere svolto non solo da te stesso (è chiaro che tu, come autore della soluzione, puoi farlo), ma anche da qualsiasi tuo collega. Viene discussa la differenza tra programmazione sportiva e industriale много, e Kaggle educa proprio gli “atleti” – anche se lo fa molto bene, permettendo loro di acquisire una certa esperienza.

Ho descritto due possibili linee di sviluppo: l'addestramento attraverso programmi educativi e l'addestramento “in combattimento”, ad esempio su Kaggle. Il programma di residenza è una combinazione di questi due metodi. Ti aspettano conferenze e seminari a livello ShAD, nonché progetti veramente combattivi.

Fonte: habr.com

Aggiungi un commento