Programa residente Yandex ou como um backender experiente pode se tornar um engenheiro de ML

Programa residente Yandex ou como um backender experiente pode se tornar um engenheiro de ML

Yandex está abrindo um programa de residência em aprendizado de máquina para desenvolvedores de back-end experientes. Se você escreveu muito em C++/Python e deseja aplicar esse conhecimento ao ML, ensinaremos como fazer pesquisas práticas e forneceremos mentores experientes. Você trabalhará nos principais serviços Yandex e adquirirá habilidades em áreas como modelos lineares e aumento de gradiente, sistemas de recomendação, redes neurais para análise de imagens, texto e som. Você também aprenderá como avaliar adequadamente seus modelos usando métricas offline e online.

A duração do programa é de um ano, durante o qual os participantes trabalharão no departamento de inteligência de máquinas e pesquisa da Yandex, além de assistir a palestras e seminários. A participação é remunerada e envolve trabalho em tempo integral: 40 horas semanais, a partir de 1º de julho deste ano. As inscrições já estão abertas e durará até 1º de maio. 

E agora com mais detalhes - sobre que tipo de público estamos esperando, qual será o processo de trabalho e, em geral, como um especialista back-end pode mudar para uma carreira em ML.

Diretividade

Muitas empresas possuem Programas de Residência, incluindo, por exemplo, Google e Facebook. Destinam-se principalmente a especialistas juniores e médios que estão tentando dar um passo em direção à pesquisa de ML. Nosso programa é para um público diferente. Convidamos desenvolvedores de back-end que já adquiriram experiência suficiente e sabem com certeza que em suas competências eles precisam mudar para o ML, para adquirir habilidades práticas - e não as habilidades de um cientista - na solução de problemas de aprendizado de máquina industrial. Isto não significa que não apoiemos jovens investigadores. Organizamos um programa separado para eles - o prêmio em homenagem a Ilya Segalovich, que também permite que você trabalhe no Yandex.

Onde o residente trabalhará?

No Departamento de Inteligência e Pesquisa de Máquinas, nós mesmos desenvolvemos ideias de projetos. A principal fonte de inspiração é a literatura científica, artigos e tendências da comunidade de pesquisa. Meus colegas e eu analisamos o que lemos, procurando como podemos melhorar ou expandir os métodos propostos pelos cientistas. Ao mesmo tempo, cada um de nós leva em consideração a sua área de conhecimento e interesses, formula a tarefa com base nas áreas que considera importantes. A ideia de um projeto normalmente nasce do cruzamento dos resultados de pesquisas externas e das próprias competências.

Este sistema é bom porque resolve em grande parte os problemas tecnológicos dos serviços Yandex, antes mesmo de eles surgirem. Quando um serviço enfrenta um problema, seus representantes vêm até nós, muito provavelmente para levar as tecnologias que já preparamos, restando apenas aplicá-las corretamente no produto. Se algo não estiver pronto, pelo menos lembraremos rapidamente onde podemos “começar a cavar” e em quais artigos procurar uma solução. Como sabemos, a abordagem científica consiste em apoiar-se nos ombros de gigantes.

O que fazer

Na Yandex - e mesmo especificamente na nossa gestão - todas as áreas relevantes do ML estão sendo desenvolvidas. Nosso objetivo é melhorar a qualidade dos mais diversos produtos, e isso serve de incentivo para testar tudo que há de novo. Além disso, novos serviços aparecem regularmente. Portanto, o programa de palestras contém todas as áreas-chave (comprovadas) do aprendizado de máquina no desenvolvimento industrial. Ao compilar minha parte do curso, utilizei minha experiência docente na Escola de Análise de Dados, bem como os materiais e trabalhos de outros professores do SHAD. Eu sei que meus colegas fizeram o mesmo.

Nos primeiros meses, a formação de acordo com o programa do curso representará cerca de 30% do seu tempo de trabalho, depois cerca de 10%. No entanto, é importante compreender que trabalhar com os próprios modelos de ML continuará a demorar aproximadamente quatro vezes menos do que todos os processos associados. Isso inclui preparar o back-end, receber dados, escrever um pipeline para pré-processá-los, otimizar código, adaptar-se a hardware específico, etc. Um engenheiro de ML é, se preferir, um desenvolvedor full-stack (apenas com maior ênfase em aprendizado de máquina) , capaz de resolver um problema do início ao fim. Mesmo com um modelo pronto, você provavelmente precisará realizar mais uma série de ações: paralelizar sua execução em diversas máquinas, preparar uma implementação na forma de um identificador, uma biblioteca ou componentes do próprio serviço.

Escolha do aluno
Se você tem a impressão de que é melhor se tornar um engenheiro de ML trabalhando primeiro como desenvolvedor back-end, isso não é verdade. Inscrever-se no mesmo ShAD sem experiência real em desenvolver serviços, aprender e ser extremamente requisitado no mercado é uma excelente opção. Muitos especialistas do Yandex acabaram em seus cargos atuais dessa forma. Se alguma empresa estiver pronta para lhe oferecer um emprego na área de ML imediatamente após a formatura, você provavelmente também deverá aceitar a oferta. Tente formar uma boa equipe com um mentor experiente e prepare-se para aprender muito.

O que geralmente impede você de fazer ML?

Se um backender deseja se tornar um engenheiro de ML, ele pode escolher entre duas áreas de desenvolvimento – sem levar em conta o programa de residência.

Em primeiro lugar, estude como parte de algum curso educacional. Уроки O Coursera o aproximará da compreensão das técnicas básicas, mas para mergulhar o suficiente na profissão, você precisa dedicar muito mais tempo a ela. Por exemplo, forme-se no ShAD. Ao longo dos anos, o ShAD teve um número diferente de cursos diretamente sobre aprendizado de máquina – em média, cerca de oito. Cada um deles é realmente importante e útil, inclusive na opinião dos formandos. 

Em segundo lugar, você pode participar de projetos de combate onde precisa implementar um ou outro algoritmo de ML. No entanto, existem muito poucos projetos desse tipo no mercado de desenvolvimento de TI: o aprendizado de máquina não é usado na maioria das tarefas. Mesmo nos bancos que exploram ativamente oportunidades relacionadas com o BC, apenas alguns estão envolvidos na análise de dados. Se você não conseguiu ingressar em uma dessas equipes, sua única opção é iniciar seu próprio projeto (onde, muito provavelmente, você definirá seus próprios prazos, e isso tem pouco a ver com tarefas de produção de combate) ou começar a competir em Kaggle.

Na verdade, junte-se a outros membros da comunidade e experimente competições relativamente fácil - especialmente se você respaldar suas habilidades com treinamentos e cursos mencionados no Coursera. Cada competição tem um prazo - servirá de incentivo para você e irá prepará-lo para um sistema semelhante em empresas de TI. Este é um bom caminho - que, no entanto, também está um pouco divorciado dos processos reais. No Kaggle você recebe dados pré-processados, embora nem sempre perfeitos; não se ofereça para pensar na contribuição para o produto; e o mais importante, não requerem soluções adequadas para produção. Seus algoritmos provavelmente funcionarão e serão altamente precisos, mas seus modelos e códigos serão como Frankenstein costurados a partir de diferentes partes - em um projeto de produção, toda a estrutura funcionará muito lentamente, será difícil atualizar e expandir (por exemplo, algoritmos de linguagem e voz sempre serão parcialmente reescritos à medida que a linguagem se desenvolve). As empresas estão interessadas no fato de que o trabalho listado pode ser feito não apenas por você (é claro que você, como autor da solução, pode fazer isso), mas também por qualquer um de seus colegas. A diferença entre programação esportiva e industrial é discutida muitos, e o Kaggle educa justamente “atletas” – mesmo que o faça muito bem, permitindo-lhes ganhar alguma experiência.

Descrevi duas possíveis linhas de desenvolvimento - treinamento por meio de programas educacionais e treinamento “em combate”, por exemplo, no Kaggle. O programa de residência é uma combinação desses dois métodos. Palestras e seminários no nível ShAD, bem como projetos verdadeiramente combativos, esperam por você.

Fonte: habr.com

Adicionar um comentário