
O que você precisa saber, como cliente, antes de iniciar um projeto de aprendizado de máquina
Você está pensando em usar o Machine Learning (ML) em sua organização, mas não sabe para quê nem como? Ou talvez você esteja apenas contornando a ideia de ML e tenha percebido que não sabe o suficiente sobre ela para tomar uma decisão informada? Se sim, esta postagem do blog é para você. Aviso para técnicos: desculpe, rapazes e moças... Não vou entrar em detalhes técnicos aqui! Esta postagem é especialmente destinada a pessoas não técnicas. Além disso, talvez vocês, técnicos, queiram me perdoar algumas licenças poéticas que eu tirei por uma questão de clareza. Neste post, abordarei algumas das perguntas e tópicos que surgem quando os clientes começam a considerar seriamente o uso de ML em suas organizações, com base em nossa experiência aqui na Marvik e nas coisas que você deve saber antes de iniciar um projeto de ML. Primeiro, abordaremos algumas noções básicas sobre ML e casos de uso, bem como algumas diferenças importantes entre projetos de ML e projetos de software “tradicionais”. Aprendizado de máquina 101 Vamos começar com alguns elementos fundamentais e contextuais. Em primeiro lugar, o ML não é mais um exagero. De acordo com o Gartner (veja a figura abaixo), basta entrar no “Vale da Desilusão”, que é a última fase antes de entrar na “Inclinação da Iluminação”. Considerando que esse gráfico é de meados de 2020 e que o patamar de produtividade deve ser alcançado em 2 a 5 anos, o cenário está pronto para que o ML se torne popular em breve.

Outro ângulo dessa mesma análise é que a janela de oportunidade ainda está aberta para entrar no ML desde o início e, à medida que essa janela se fecha, mais popular ela se tornará, o que significa que seus concorrentes estarão à sua frente. Agora que eu (espero) tenha chamado sua atenção, vamos refletir um pouco sobre o que é ML da maneira mais leiga possível. Uma das características fundamentais é que o ML muda a forma como costumávamos pensar em algoritmos. Simplificando, um algoritmo é um conjunto de regras que transformam entradas em saídas acionáveis. Portanto, as regras estão embutidas no algoritmo (regras como SE X ACONTECER, ENTÃO FAÇA Y). Esse modelo teve um ótimo desempenho por décadas, embora tivesse uma limitação fundamental que reconhecemos recentemente: você tinha que ser capaz de incorpore totalmente todas as regras no algoritmo de antemão. Ou seja, o algoritmo era muito estúpido e precisava conhecer todas as possibilidades de antemão e não era capaz de aprender nada de novo. E então surgiu o ML... propondo uma abordagem bem diferente e ousada: e se não inseríssemos as regras no algoritmo, mas deixássemos que o algoritmo as deduza? Isso é bastante inovador, pois significa que o algoritmo será capaz de realmente criar as regras. como saída em vez de algo embutido nele. Isso também significa que ele poderá aprender, pois agora as regras podem mudar (porque são uma saída). Como isso pode ser? Onde está o truque? Nos dados. Tudo gira em torno dos dados. Agora, o algoritmo de ML pegará milhares e milhares de, digamos, rostos humanos e deduzirá internamente quais regras são necessárias para determinar quando uma pessoa parece feliz ou triste. Essas regras serão deduzidas com a ajuda da metáfora da cenoura e do bastão: devemos treinar o modelo de ML com muitos dados (rostos humanos neste exemplo) que devem ser anotado para que ele saiba quando alguém parece feliz ou triste, então o modelo ML pode começar a deduzir as regras para determinar quando alguém está feliz ou triste. Após esse treinamento, o modelo continuará funcionando. autonomamente, aprendendo ainda mais e melhorando por si só, o que é conhecido como aprendizado supervisionado.

Caso você esteja se perguntando por que demorou tanto (décadas) para chegar a essa descoberta, não é que os cientistas da computação fossem idiotas. Como indiquei, a chave está nos dados, o que significa, primeiro, a disponibilidade de muitos dadose, em segundo lugar, a capacidade de processo todos esses dados. Se não tivermos milhares ou mesmo milhões de imagens para analisar, os modelos de ML produzirão resultados não confiáveis; ou se levarmos dois dias para dizer se uma pessoa está feliz ou triste por causa de toda a computação pesada, isso provavelmente prejudicará a chance de o ML ajudar problemas e negócios do mundo real. Então, hoje, graças aos avanços na produção de dados (por exemplo: IoT, câmeras, ferramentas de análise), armazenamento e processamento (por exemplo: computação em nuvem), somos capazes de implementar modelos de ML que consomem e processam grandes quantidades de dados em segundos. Ok agora, mas para que serve? Como posso usá-lo para melhorar meus negócios? Que bom que você perguntou! Agora vamos ver alguns dos problemas típicos que ajudamos nossos clientes a resolver com o ML. Antes disso, apenas um aviso rápido: o ML pode ajudar em problemas e situações muito específicos, portanto, não tome isso como uma explicação exaustiva dos casos de uso:
- Melhore um processo: as organizações são basicamente um grupo de pessoas executando processos da melhor maneira possível. Qualquer melhoria em um processo-chave resultará em um enorme ganho comercial. Esse é o caso quando trabalhar no nível operacional ajuda a melhorar o negócio como um todo. Seja para reduzir o tempo e/ou a precisão de determinados processos-chave ou até mesmo para aproveitar os dados não utilizados que a organização está produzindo, mas não sabe como usá-los, melhorar um processo com modelos de ML é sempre um bom ponto de partida. Como exemplo, desenvolvemos um mecanismo de recomendação para um cliente que recomenda o melhor candidato para uma vaga de emprego entre milhares, o que reduz consideravelmente o tempo necessário para fazer uma recomendação significativa.
- Automatize tarefas manuais: Andrew Ng, um dos gurus mais respeitados da IA, disse que se uma pessoa leva menos de um segundo para fazer alguma coisa, provavelmente essa coisa pode ser automatizada com a IA. A automação (total ou parcial) foi o santo graal do desenvolvimento tradicional de software por décadas. Agora, esse impulso recupera força, pois os modelos de ML são capazes de automatizar tarefas que não eram possíveis com os algoritmos tradicionais. Um exemplo aqui é um projeto de visão computacional que implementamos para um cliente de varejo que escaneia as prateleiras e analisa a participação de certos produtos na loja, substituindo o olho humano que era necessário anteriormente.
- Obtenha vantagem competitiva: esse é o caso quando trabalhamos no nível da estratégia de negócios em vez de no nível operacional (como foi o caso nas melhorias de processos). Aqui, o ML permite novos modelos de negócios e diferenciais que permitirão que sua empresa obtenha uma vantagem competitiva. Como discutimos anteriormente, a janela de oportunidade ainda está aberta. Como exemplo desse tipo de solução, ajudamos uma empresa de educação a obter uma vantagem competitiva ao gerar vídeos em vários idiomas a um custo quase zero, um recurso exclusivo (portanto, que ajuda a diferenciar) nosso cliente em seu segmento.
Esses foram casos de uso típicos que vemos em vários de nossos clientes na Marvik, mas, conforme observado, não devem ser consideradas todas as formas possíveis pelas quais o ML pode ajudar sua empresa. Além disso, em muitos casos, nossos clientes não sabem realmente como o ML pode (ou não) melhorar seus negócios. E essa é uma pergunta perfeitamente válida, já que não é você que precisam saber como (se for o caso) o ML pode ajudar. Nessas situações, propomos uma fase de descoberta de produtos na qual nos aprofundamos em seus negócios, dores e ganhos, a fim de aprender como você pode aproveitar o ML a seu favor. Algumas considerações importantes sobre ML Agora que você sabe do que se trata o ML e como ele pode ajudar sua empresa, vamos abordar algumas considerações importantes a serem lembradas antes de iniciar seu primeiro projeto de ML:
- Dados: como vimos antes, os dados são provavelmente a coisa mais importante a se ter em mente ao considerar um projeto de ML. Seja a disponibilidade dos dados ou a necessidade de anotá-los (por exemplo: para determinar se a pessoa na foto está feliz ou triste e fazendo isso milhares de vezes!) os dados são definitivamente uma consideração importante. Em alguns casos, a anotação de dados também pode ser realizada por um modelo de ML (é como aplicar ML antes de aplicar ML), mas às vezes o trabalho manual é a melhor opção, portanto, focar nos dados é uma das primeiras coisas a fazer.
- Incerteza: em alguns projetos, não podemos saber de antemão se conseguiremos obter a precisão e o tempo que nosso cliente gostaria. Isso pode acontecer porque podemos estar procurando por um padrão que não existe nos dados do nosso cliente, ou pode ser que não haja dados suficientes para procurar padrões nele.
- Humanos: O ML nem sempre se trata de substituir pessoas. Em muitos casos, é apenas uma ferramenta fenomenal para aprimorar o que nós humanos fazemos, assumindo todo o trabalho repetitivo e deixando para os especialistas (humanos) apenas os casos em que eles são realmente necessários. Isso pode assumir a forma, por exemplo, de automatizar 80% das tarefas que um trabalhador qualificado realiza, para que ele possa se concentrar nos outros 20% para realmente agregar valor e ser capaz de processar mais dessas tarefas por unidade de tempo (já que 80% estão sendo atendidas pelo modelo de ML).
- Agilidade: felizmente, o ML não mudou todas as regras tradicionais de software. Felizmente, o desenvolvimento ágil de software está ativo e está dentro do reino do ML. Ser capaz de criar protótipos rápidos para validar/refutar hipóteses e questões comerciais é fundamental, como já foi apresentado. Às vezes, sugerimos que nossos clientes comecem com algo pequeno e testem as águas (seja um produto mínimo viável ou uma prova de conceito), aprendam com essa experiência e, se adequado, continuem construindo o produto. Isso é especialmente verdadeiro (embora não seja exclusivo) ao introduzir o ML para obter uma vantagem competitiva para sua empresa, já que o tempo (ou seja, o tempo de lançamento no mercado) é essencial.
Essas considerações são comumente chamadas de “DUHA” e você pode encontrar muitas informações na Internet. Na verdade, não. Acabei de inventar esse termo. Dizem que o humor é uma boa ferramenta para manter seu público engajado, certo?

Algumas diferenças entre ML e desenvolvimento de software tradicional Supondo que você tenha uma compreensão básica do desenvolvimento de software tradicional, aqui estão algumas diferenças importantes entre isso e o desenvolvimento de ML. A propósito... você pode usá-los como um meio de julgar quando alguém do setor de TI tenta lhe vender algo sobre ML (você é bem-vindo):
- Dados: sim... mais uma vez.. dados! Se você não passa muito tempo falando sobre dados na primeira conversa sobre ML, provavelmente não está indo na direção certa.
- Consultores: consultores (incluindo desenvolvedores) do mundo do ML geralmente têm perfis diferentes dos consultores e desenvolvedores de software regulares. Eles não precisam apenas conhecer a disciplina (por exemplo, sobre diferentes arquiteturas de ML, seus prós e contras, como implementá-las, treiná-las e implantá-las), mas também precisam entender as metas e os objetivos de negócios; devem ser capazes de preencher a lacuna entre as necessidades comerciais e as alternativas de software e trabalhar em estreita colaboração com o cliente para medir com precisão essas alternativas e o impacto que elas têm nos negócios.
- Recursos: no desenvolvimento tradicional de software, a maioria dos recursos de computação é usada depois o produto é colocado em produção. No ML, geralmente é o oposto: precisamos de mais poder e recursos de computação para treinar os modelos, e não tanto depois que os modelos são implantados na produção.
- Ciclo de vida: os dados são incorporados ao ciclo de vida do sistema. Você geralmente treina com dados coletados no passado, mas às vezes os usuários mudam seu comportamento e seu modelo de ML precisa aprender constantemente com isso. Pense no comportamento do usuário antes e depois do COVID e como ele acelerou as tendências do comércio eletrônico. A nova palavra publicitária que leva isso em consideração para o desenvolvimento é MLOps, e você pode ler mais sobre isso. aqui.
Não, não há piada de sigla aqui, eu odeio me repetir. Algumas considerações finais Sim, estamos chegando ao final desta postagem, então espero que agora você entenda melhor esse admirável mundo novo de ML e IA. Particularmente, o ML não é mais um exagero, mas uma alternativa muito real para quase todas as organizações e setores. Além disso, o ML é de fato um animal diferente do desenvolvimento de software tradicional (e espero que agora você entenda por que isso acontece) e que a janela ainda está aberta, mas não por muito tempo. Portanto, se você não quiser ficar atrás de seus concorrentes, comece agora, pelo menos aprendendo como o ML pode melhorar seus negócios e talvez reservando um pequeno orçamento para executar alguns protótipos e aprender como avançar com confiança nessa nova era. Ah... e dados... não se esqueça de tudo o que conversamos sobre isso!