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.
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 -
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.
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
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