Afinal, o que faz o engenheiro de Machine Learning?

9 mins read

O papel do engenheiro de Machine Learning

A imprensa e a comunidade acadêmica têm falado sobre ciência de dados e cientistas de dados há pouco mais de uma década. Embora sempre tenha havido algum debate sobre o que “cientista de dados” significa, chegamos ao ponto em que muitas universidades oferecem programas de ciência de dados: mestrados, certificações etc. O mundo era um lugar mais simples quando tudo o que nós conhecíamos eram estatísticas. Mas a simplicidade nem sempre é saudável, e a diversidade dos programas de ciência de dados demonstra que existe uma ampla demanda por profissionais da área.

À medida que o campo da ciência de dados se desenvolveu, surgiram várias especialidades que podem ser confundidas. As empresas usam os termos “cientista de dados” e “equipe de ciência de dados” para descrever uma variedade de funções, incluindo:

  • indivíduos que realizam análises e relatórios ad hoc, incluindo BI (business Intelligence) e análise de negócios;
  • pessoas responsáveis pela análise estatística e modelagem, que, em muitos casos, envolve experimentos e testes formais;
  • modeladores de aprendizado de máquina.

Esses cientistas de dados são mais parecidos com os modeladores de machine learning (aprendizado de máquina, em tradução livre), exceto pelo fato de estarem construindo algo: eles são centrados no produto, em vez de pesquisadores.

Por isso, podemos dizer que, até certo ponto, os engenheiros de machine learning fazem o que engenheiros de software (e os bons engenheiros de dados) fizeram o tempo todo: eles têm habilidades de engenharia de software mais fortes do que os cientistas de dados típicos; podem trabalhar com engenheiros que mantêm sistemas de produção e entendem as metodologias de desenvolvimento de software, práticas ágeis e toda a gama de ferramentas que os desenvolvedores de software modernos usam.

Como seu foco está em fazer com que os produtos de dados funcionem no contexto da produção, os engenheiros de machine learning pensam de forma holística e levam em consideração componentes como o registro ou a infraestrutura de testes. Eles estão preparados para problemas específicos de monitoramento de produtos de dados em produção. Existem muitos recursos no monitoramento de aplicativos, mas o machine learning tem requisitos que vão ainda mais longe.

Engenheiros de machine learning estão envolvidos em algo chamado de deep learning (aprendizagem profunda) que explora a arquitetura e design de software, além de práticas com testes A / B — mais importante, eles não apenas “entendem” o teste A / B, eles sabem como fazer testes A / B em sistemas de produção. Eles entendem problemas relacionados a registro e segurança e sabem como tornar os dados de registro úteis para os engenheiros de dados.

Machine learning e data science

Como o aprendizado de máquina é diferente da “ciência de dados”? A ciência de dados é claramente o termo mais abrangente. Mas há algo significativamente diferente na maneira como a aprendizagem profunda funciona. Sempre foi conveniente pensar em um cientista de dados explorando os dados: procurando abordagens alternativas e modelos diferentes para encontrar um que funcionasse. Clássicos como a Análise Exploratória de Dados de Tukey dão o tom para o que muitos cientistas de dados têm feito: explorar e analisar grandes quantidades de dados para encontrar o valor que está escondido neles.

A deep learning muda significativamente este modelo, pois os cientistas não se debruçam diretamente sobre os dados: você sabe o resultado que deseja, mas está permitindo que o software o descubra. Você quer criar uma máquina que supere os campeões do xadrez, que codifique as fotos corretamente ou que traduza áudios entre diferentes idiomas? No machine learning, esses objetivos não são atingidos através de uma exploração cuidadosa; em muitos casos, há muitos dados para explorar em qualquer sentido significativo e muitas dimensões. A ideia do aprendizado de máquina é exatamente essa: ela constrói o próprio modelo, fazendo sua própria exploração e ajuste de dados para alcançar os objetivos propostos.

Como resultado, os cientistas de dados não exploram tanto. Seu objetivo não é encontrar significância nos dados: eles acreditam que o significado já está presente. Em vez disso, seu objetivo é construir uma máquina que possa analisar os dados e produzir resultados sozinha, rede neural que funcione e possa ser ajustada para produzir resultados confiáveis.

Há menos ênfase na estatística – na verdade, o santo graal do machine learning é a “democratização”, atingindo um ponto em que os sistemas de aprendizado de máquina podem ser feitos por especialistas no assunto, não por doutores e PhDs. O objetivo é que um jogador de xadrez construa a próxima geração do Deep Blue, não um pesquisador, e que uma linguista construa o mecanismo que faz a tradução automática para o espanhol.

Essa alteração tem um efeito correspondente na profissão de engenheiro de machine learning. No aprendizado de máquina, os modelos não são estáticos. Modelos podem se tornar obsoletos com o tempo. Alguém precisa monitorar o sistema, retreinando a máquina quando necessário. Esse não é um trabalho que os desenvolvedores que inicialmente criaram o sistema acharão atraente, mas é profundamente técnico. Além disso, exige um entendimento das ferramentas de monitoramento, que não foram projetadas com aplicativos de dados em mente.

A segurança dos processos

Qualquer desenvolvedor de software praticante ou funcionário de TI deve entender a segurança que os processos de machine learning exigem. Até onde sabemos, ainda não vimos ataques significativos em sistemas de aprendizado de máquina. Mas eles serão alvos cada vez mais tentadores. Que novos tipos de vulnerabilidades o aprendizado de máquina apresenta? É possível “envenenar” os dados nos quais o sistema é treinado, ou forçar um sistema a ter um viés quando não deveria? O fato é que este é um sistema novo e precisamos esperar uma classe inteiramente nova de vulnerabilidades.

À medida que as ferramentas melhoram, veremos mais cientistas de dados que podem fazer a transição para sistemas de produção. Mas ainda precisaremos de engenheiros de dados e engenheiros de machine learning: engenheiros que sejam alfabetizados em ciência de dados e aprendizado de máquina, que entendam como implantar e executar sistemas em produção e que estejam à altura dos desafios de oferecer suporte a produtos de aprendizado de máquina.

 

Deixe um comentário

Your email address will not be published.