Uma equipe de IA

Imagem estilizada de uma equipe.
(Fonte: Pixelbay, liberada para reuso)

Para terminar essa série de artigos sobre Inteligência Artificial Para Gente Não Técnica, vamos falar um pouco sobre equipes e papéis. Se está chegando agora, recomendo fortemente olhar os 2 primeiros artigos, começando aqui. Esse artigo será bem curtinho em comparação aos outros, apenas para fechar o tema.


Uma equipe de software, só que não

Um erro, ou pelo menos uma decisão não ótima, que vejo em alguns projetos é tentar criar sistemas baseados em Inteligência Artificial usando as mesmas equipes e metodologias de um projeto de software padrão. Talvez dê certo, claro, especialmente com gente competente, mas dá pra fazer melhor.

Em tempo: se uma empresa quer realmente criar valor de negócio com IA, toda a empresa, incluindo (e talvez especialmente) a liderança, devem conhecer um pouco sobre essa tecnologia. Se as diretoras ou diretores de sua empresa ainda não pensam assim, mostre essa série de artigo para essas pessoas. O Andrew Ng, talvez o maior nome em Inteligência Artificial na atualidade, tem um conceito de Artificial Intelligence Transformation (artigo em inglês), onde ele fala um pouco sobre isso e sobre como uma empresa se transformar através da IA.

Na empresa onde trabalho hoje, a Thoughtworks, e especialmente no escritório onde estou atuando, temos duas “ofertas” relacionadas à Inteligência Artificial. Ofertas nesse caso seriam como que uma base a partir da qual criamos soluções e propostas diferentes para cada novo cliente. Essas duas ofertas são (ambas com nomes em inglês): Intelligent Empowerment (projetos que utilizam IAs para melhorar o negócio de clientes, ou de quem usa os sistemas de clientes); e Data Driven Product Innovation (projetos nos quais se utiliza IA para a melhora contínua do produto em si). Esses detalhes não vem muito ao caso, mas é com base em especialistas para essas ofertas que descrevo alguns possíveis papéis.

Comentei acima que esse texto seria curto, e é por um motivo simples: todo esse tema á bastante novo, e ainda não há prática o suficiente para trazer consenso ou mesmo receitas super antigas (como por exemplo, se falássemos de desenvolvimento de software através de práticas ágeis, que é algo que fazemos há cerca de 20 anos).

Finalmente, não significa que todo projeto tem pessoas específicas para todos esses papéis que vou listar abaixo, nem tampouco que essas pessoas estão 100% do tempo alocadas nos projetos. Ainda é uma arte que vai muito no caso a caso. Pense nessa lista muito mais como arquétipos que trazem consigo alguma informação sobre conhecimentos e práticas necessárias, muito mais que em papéis formais.


Cientista de Dados (Data Scientists): Pessoas que podem analisar massas de dados de diversas fontes e então limpar, tratar, organizar e preparar os dados; também são pessoas com alguma habilidade em matemática e estatística, e alguma visão de negócios, para ajudar a descobrir insights de negócio (epifanias?) ocultos e gerar inteligência a partir de dados. Em um brainstorming inicial, essas pessoas conseguem trazer possibilidades de valor através dos dados que talvez outras pessoas não possam. Também, ao analisar um possível projeto, essas pessoas podem analisar tecnicamente se há dados suficientes, se será necessário coletar mais, qual a qualidade dos mesmos, etc. Mesmo sem Inteligência Artificial, cientistas de dados podem executar projetos “manuais” para a empresa. A ciência de dados é um campo que já existe há 30 anos, porém ganhou mais destaque nos últimos anos devido a alguns fatores como Big Data e Inteligência Artificial.


Engenheira ou engenheiro de dados (Data Engineer): A pessoa com as habilidades de engenharia de dados é aquela que constrói, mantém e disponibiliza dados. Com ambientes cada vez mais complexos, essa pessoa deve conhecer diversas estruturas e tecnologias de dados. Não estamos falando apenas de bases de dados (relacionais, dimensionais, estruturadas, semi-estruturadas, etc. etc. etc) mas também de criação de pipelines que transformam dados brutos que estão nos mais variados formatos (arquivos de texto, áudio, vídeos) em um formato que permita à equipe começar seu trabalho. Também deve-se levar em conta segurança desses dados. Lembre-se de que estamos falando de quantidades absurdas de dados, há casos em que a simples leitura ou transferência de um único arquivo pode levar horas ou dias se não for otimizada.


Profissional de Infraestrutura (ou devops) com foco em IA: Colocar um software em produção, especialmente em tempo curto, e idealmente chegando à prática de Entrega Continua (Continuous Delivery) não é um trabalho trivial. Quando se trata de um projeto de Inteligência Artificial baseada em machine learning, a coisa se complica mais. Especialmente devido à quantidade de artefatos e, de novo, ao seu tamanho. Os dados para treinamento e os modelos de aprendizado de máquina geralmente vêm em volumes que são muitas ordens de magnitude maiores que o tamanho de um código do software. Manter isso funcionando e aprendendo mesmo depois de estar em produção é um processo árduo. Nesse sentido, hoje se fala de uma prática chamada Continuous Delivery for Machine Learning (CD4ML), e que requerem profissionais de infra ou com conhecimentos em devops diferenciados.


Especialista em Machine Learning (Machine Learning Specialist): Como vimos até agora nesses 3 artigos dessa série, há muito trabalho em se treinar algoritmos de machine learning, definir a arquitetura de uma Pipeline de AI, quebrar o problema em pedaços menores, etc. Há muitas opções de software existente para isso, mas sua utilização requer prática. Além disso é muito provável que seu caso necessite de criação de componentes específicos. Por fim, técnicas de redução de vieses inconscientes e preconceitos existem hoje em dia (ainda não são perfeitas, mas se pode fazer algo), mas exigem conhecimento especializado. Assim sendo, essa pessoa é uma pessoa que desenvolve software (engenheira, arquiteta, etc.) mas especializada em algoritmos de pacotes de Machine Learning.


Pessoa de produto/negócio com foco em IA: Como em toda equipe de software, é desejável ter habilidades em negócios e em produtos (as vezes concentradas em uma mesma pessoa, outras vezes não). Em última instância essa pessoa vai definir os resultados esperados para orientar a equipe, e os KPIs (ou equivalentes) para avaliar se o sistema de aprendizado de máquina está atingindo os resultados desejados com os níveis de qualidade necessários para gerar valor de negócio. Podemos pensar em gerentes de produto, ou em analistas de negócio, mas com conhecimento um pouco mais profundo em inteligência artificial já que a natureza do produto sendo criado é essencialmente diferente da natureza de um software padrão inclusive, mas não somente por, falarmos muito em porcentagem de sucesso depois de um treinamento (raramente chegamos a 100%).


Equipe de desenvolvimento de software: Finalmente, um projeto de Inteligência Artificial é um projeto de software. É um tipo especializado e bem peculiar de software, mas software ainda assim. Em muitos casos a maior parte da equipe será uma equipe padrão, como as que já existem, acrescidas de uma combinação dos perfis acima (que podem participar de mais de um projeto, escalando essas habilidades).


Equipes diversas

Conforme vimos no primeiro artigo dessa série, as tecnologias de Inteligência Artificial e de Aprendizagem de Máquina trazem a possibilidade de sistemas que repliquem vieses inconscientes e preconceitos. Há maneiras de minimizar isso, e devemos sempre atuar nesse sentido. No tocante ao tema desse artigo, ou seja, equipes de desenvolvimento, uma das maneiras é termos equipes diversas, com representatividade em relação a vários grupos de pessoas: sexo, cor, etc. Equipes diversas criam produtos diversos e inclusivos.


Com isso chego ao fim a série de Inteligência Artificial Para Gente Não Técnica. Se chegou até aqui, obrigado, e espero ter contribuído um pouquinho.


Esse post também está no meu Linkedin, se quiser comentar, dar sugestões, etc. é só seguir o link abaixo:


Fontes: