Como identificar um problema de ML

Depois de verificar se o problema é melhor resolvido usando um ML preditivo ou uma abordagem de IA generativa, você pode enquadrar seu problema em termos de ML. Você enquadra um problema em termos de ML concluindo as seguintes tarefas:

  • Defina o resultado ideal e a meta do modelo.
  • Identifique a saída do modelo.
  • Definir métricas de sucesso.

Definir o resultado ideal e a meta do modelo

Independentemente do modelo de ML, qual é o resultado ideal? Em outras palavras, qual é a tarefa exata que você quer que seu produto ou recurso realize? Essa é a mesma instrução que você definiu anteriormente na seção Declarar a meta.

Conecte a meta do modelo ao resultado ideal definindo explicitamente o que você quer que o modelo faça. A tabela a seguir indica os resultados ideais e a meta do modelo para apps hipotéticos:

App Resultado ideal Meta do modelo
App Weather Calcular a precipitação em incrementos de seis horas para uma região geográfica. Preveja quantidades de precipitação de seis horas para regiões geográficas específicas.
App de moda Gerar uma variedade de designs de camisa. Gere três variedades de um design de camisa a partir do texto e de uma imagem, em que o texto indica o estilo e a cor, e a imagem é o tipo de camisa (camiseta, botões ou polo).
App de vídeo Recomende vídeos úteis. Prever se um usuário clicará em um vídeo.
App Mail Detectar spam. prever se um e-mail é ou não spam.
App financeiro Resumir informações financeiras de várias fontes de notícias. Gere resumos de 50 palavras das principais tendências financeiras dos últimos sete dias.
App Mapa Calcule o tempo de viagem. Preveja quanto tempo levará para viajar entre dois pontos.
App de bancos Identifique transações fraudulentas. Prever se uma transação foi feita pelo titular do cartão.
App de jantar Identificar a culinária pelo cardápio de um restaurante. Prever o tipo de restaurante.
Aplicativo de e-commerce Gerar respostas de suporte ao cliente sobre os produtos da empresa. Gere respostas usando a análise de sentimento e a base de conhecimento da organização.

Identifique a saída necessária

A escolha do tipo de modelo depende do contexto específico e das restrições do problema. A saída do modelo precisa realizar a tarefa definida no resultado ideal. Assim, a primeira pergunta a ser respondida é "Que tipo de saída preciso para resolver meu problema?"

Se você precisar classificar algo ou fazer uma previsão numérica, provavelmente usará o ML preditivo. Se você precisar gerar conteúdo novo ou produzir resultados relacionados ao processamento de linguagem natural, provavelmente vai usar a IA generativa.

As tabelas a seguir listam as saídas preditivas de ML e de IA generativa:

Tabela 1. ML preditivo
Sistema de ML Exemplo de saída
Classificação Binário classificar um e-mail como spam ou não spam;
Rótulo único multiclasse Classifique um animal em uma imagem.
Rótulo multiclasse Classifique todos os animais em uma imagem.
Numérico Regressão unidimensional Prever o número de visualizações que um vídeo vai ter.
Regressão multidimensional Preveja a pressão arterial, a frequência cardíaca e os níveis de colesterol de uma pessoa.
Tabela 2. IA generativa
Tipo de modelo Exemplo de saída
Texto
Resumir um artigo.

responder às avaliações dos clientes;

Traduza documentos do inglês para o mandarim.

Escreva descrições de produtos.

Analise documentos jurídicos.
Imagem
Produza imagens de marketing.

Aplique efeitos visuais às fotos.

Gerar variações de design do produto.
Áudio
Gerar diálogos com um sotaque específico.

Gere uma composição musical curta de um gênero específico, como jazz.
Video
Gere vídeos realistas.

Analise filmagens e aplique efeitos visuais.
Multimodal Produza vários tipos de saída, como um vídeo com legendas em texto.

Classificação

Um modelo de classificação (em inglês) prevê a que categoria os dados de entrada pertencem, por exemplo, se uma entrada precisa ser classificada como A, B ou C.

Um modelo de classificação está fazendo previsões.

Figura 1. Um modelo de classificação fazendo previsões.

Com base na previsão do modelo, seu app pode tomar uma decisão. Por exemplo, se a previsão for da categoria A, faça X. Se for da categoria B, faça, Y. Se for da categoria C, faça Z. Em alguns casos, a previsão é a saída do app.

O código do produto usa a saída do modelo para tomar uma decisão.

Figura 2. A saída de um modelo de classificação sendo usada no código do produto para tomar uma decisão.

Regressão

Um modelo de regressão prevê um valor numérico.

Um modelo de regressão está fazendo uma previsão.

Figura 3. Um modelo de regressão que faz uma previsão numérica.

Com base na previsão do modelo, seu app pode tomar uma decisão. Por exemplo, se a previsão estiver dentro do intervalo A, faça X; se estiver dentro do intervalo B, faça Y; se estiver dentro do intervalo C, faça Z. Em alguns casos, a previsão é a saída do app.

O código do produto usa a saída do modelo para tomar uma decisão.

Figura 4. A saída de um modelo de regressão sendo usada no código do produto para tomar uma decisão.

Pense no seguinte cenário:

Você quer armazenar em cache os vídeos com base na popularidade prevista deles. Em outras palavras, se o modelo prevê que um vídeo será popular, é preciso exibi-lo rapidamente aos usuários. Para fazer isso, você vai usar o cache mais eficaz e caro. Para outros vídeos, você usará um cache diferente. Seus critérios de armazenamento em cache são:

  • Se a previsão for de que o vídeo vai ter 50 ou mais visualizações, você usará o cache caro.
  • Se a previsão for de que o vídeo vai ter entre 30 e 50 visualizações, você usará o cache barato.
  • Se a previsão for de que o vídeo tenha menos de 30 visualizações, ele não vai ser armazenado em cache.

Você acha que um modelo de regressão é a abordagem certa porque vai prever um valor numérico, o número de visualizações. No entanto, ao treinar o modelo de regressão, você percebe que ele produz a mesma perda para uma previsão de 28 e 32 para vídeos com 30 visualizações. Em outras palavras, embora seu aplicativo tenha um comportamento muito diferente se a previsão for 28 versus 32, o modelo considera as duas previsões igualmente boas.

Um modelo que está sendo treinado e a perda dele será avaliada.

Figura 5. Como treinar um modelo de regressão.

Os modelos de regressão não reconhecem os limites definidos pelo produto. Portanto, se o comportamento do seu aplicativo mudar significativamente devido a pequenas diferenças nas previsões de um modelo de regressão, considere implementar um modelo de classificação.

Nesse cenário, um modelo de classificação produziria o comportamento correto, porque um modelo de classificação produziria uma perda maior para uma previsão de 28 do que 32. De certa forma, os modelos de classificação produzem limiares por padrão.

Esse cenário destaca dois pontos importantes:

  • Preveja a decisão. Quando possível, preveja a decisão que seu app tomará. No exemplo de vídeo, um modelo de classificação preveria a decisão se as categorias em que ele classificou os vídeos fossem "sem cache", "cache barato" e "cache caro". Ocultar o comportamento do seu app do modelo pode fazer com que ele produza o comportamento errado.

  • Entenda as restrições do problema. Se o app executar ações diferentes com base em diferentes limites, determine se esses limites são fixos ou dinâmicos.

    • Limites dinâmicos: se os limites forem dinâmicos, use um modelo de regressão e defina-os no código do aplicativo. Isso permite atualizar facilmente os limites, mantendo o modelo fazendo previsões razoáveis.
    • Limites fixos: se os limites forem fixos, use um modelo de classificação e rotule os conjuntos de dados com base nos limites.

    Em geral, a maior parte do provisionamento de cache é dinâmico e os limites mudam ao longo do tempo. Portanto, como esse é um problema específico de armazenamento em cache, um modelo de regressão é a melhor escolha. No entanto, para muitos problemas, os limites serão corrigidos, tornando o modelo de classificação a melhor solução.

Vejamos outro exemplo. Se você estiver criando um app meteorológico cujo resultado ideal é informar aos usuários quanto vai chover nas próximas seis horas, é possível usar um modelo de regressão que preveja o rótulo precipitation_amount.

Resultado ideal Rótulo ideal
Diga aos usuários quanto vai chover na área nas próximas seis horas. precipitation_amount

No exemplo do app de previsão do tempo, o rótulo aborda diretamente o resultado ideal. No entanto, em alguns casos, uma relação um para um não é aparente entre o resultado ideal e o rótulo. Por exemplo, no app de vídeo, o resultado ideal é recomendar vídeos úteis. No entanto, não há rótulo no conjunto de dados chamado useful_to_user.

Resultado ideal Rótulo ideal
Recomende vídeos úteis. ?

Portanto, você precisa encontrar um identificador de proxy.

Identificadores de proxy

Os rótulos de proxy substituem os que não estão no conjunto de dados. Os rótulos de proxy são necessários quando não é possível medir diretamente o que você quer prever. No app de vídeo, não podemos medir diretamente se um usuário vai considerar um vídeo útil. Seria ótimo se o conjunto de dados tivesse um recurso useful e os usuários tivessem marcado todos os vídeos que consideraram úteis. No entanto, como o conjunto de dados não tem, precisaremos de um rótulo de proxy que substitua a utilidade.

Um rótulo de proxy para utilidade pode ser se o usuário vai ou não compartilhar ou gostar do vídeo.

Resultado ideal Rótulo do proxy
Recomende vídeos úteis. shared OR liked

Tenha cuidado com rótulos de proxy, porque eles não medem diretamente o que você quer prever. Por exemplo, a tabela a seguir descreve problemas com possíveis rótulos de proxy em Recomendar vídeos úteis:

Rótulo do proxy Problema
Prever se o usuário clicará no botão "Gostei". A maioria dos usuários nunca clica em "gostei".
Prever se um vídeo vai fazer sucesso. Sem personalização. Alguns usuários talvez não gostem de vídeos populares.
Prever se o usuário vai compartilhar o vídeo. Alguns usuários não compartilham vídeos. Às vezes, as pessoas compartilham vídeos porque não gostam deles.
Prever se o usuário clicará em "Reproduzir". Maximiza indutores de cliques.
Estime por quanto tempo elas passam assistindo o vídeo. Favorece vídeos longos de maneira diferenciada em relação aos vídeos curtos.
Preveja quantas vezes o usuário vai assistir novamente ao vídeo. Dá preferência a vídeos que podem ser assistidos várias vezes em vez de gêneros que não podem ser assistidos várias vezes.

Nenhum identificador de proxy pode ser um substituto perfeito para o resultado ideal. Todos terão problemas potenciais. Escolha o que tem menos problemas para seu caso de uso.

Teste seu conhecimento

Uma empresa quer usar ML em um app de saúde e bem-estar para ajudar as pessoas a se sentirem melhores. Você acha que eles vão precisar usar rótulos de proxy para atingir as metas?
Sim, a empresa precisará encontrar marcadores de proxy. Categorias como felicidade e bem-estar não podem ser medidas diretamente. Em vez disso, elas precisam ser aproximadas em relação a algum outro recurso, como horas gastas se exercitando por semana ou tempo gasto envolvido em hobbies ou com amigos.
Não, a empresa não precisa usar marcadores de proxy. Felicidade e bem-estar podem ser medidos diretamente.

Geração

Na maioria dos casos, você não treinará seu próprio modelo generativo porque isso requer grandes quantidades de dados de treinamento e recursos computacionais. Em vez disso, você vai personalizar um modelo generativo pré-treinado. Para que um modelo generativo produza a saída desejada, pode ser necessário usar uma ou mais das seguintes técnicas:

  • Destilação. Para criar uma versão menor de um modelo maior, gere um conjunto de dados rotulado sintético a partir do modelo maior usado para treinar o modelo menor. Os modelos generativos costumam ser gigantes e consomem recursos significativos, como memória e eletricidade. A destilação permite que o modelo menor e que consome menos recursos se aproxime do desempenho do modelo maior.

  • Ajuste ou da eficiência de parâmetros. Para melhorar o desempenho de um modelo em uma tarefa específica, é necessário treiná-lo em um conjunto de dados que contenha exemplos do tipo de saída que você quer produzir.

  • Engenharia de prompts. Para que o modelo execute uma tarefa específica ou produza uma saída em um formato específico, você informa ao modelo a tarefa que quer que ele faça ou explica como quer que a saída seja formatada. Em outras palavras, o prompt pode incluir instruções de linguagem natural sobre como executar a tarefa ou exemplos ilustrativos com os resultados desejados.

    Por exemplo, se você quiser resumos curtos de artigos, insira o seguinte:

    Produce 100-word summaries for each article.
    

    Se quiser que o modelo gere texto para um nível de leitura específico, insira o seguinte:

    All the output should be at a reading level for a 12-year-old.
    

    Se você quiser que o modelo forneça a saída em um formato específico, explique como a saída precisa ser formatada, por exemplo, "formatar os resultados em uma tabela", ou demonstre a tarefa fornecendo exemplos. Por exemplo, você pode inserir o seguinte:

    Translate words from English to Spanish.
    
    English: Car
    Spanish: Auto
    
    English: Airplane
    Spanish: Avión
    
    English: Home
    Spanish:______
    

A destilação e o ajuste atualizam os parâmetros do modelo. A engenharia de prompts não atualiza os parâmetros do modelo. Em vez disso, a engenharia de prompts ajuda o modelo a aprender a produzir a saída desejada a partir do contexto do prompt.

Em alguns casos, você também vai precisar de um conjunto de dados de teste para avaliar a saída de um modelo generativo em relação a valores conhecidos, por exemplo, verificar se os resumos do modelo são semelhantes aos gerados por humanos ou se humanos classificam os resumos do modelo como bons.

A IA generativa também pode ser usada para implementar uma solução de ML preditiva, como classificação ou regressão. Por exemplo, devido ao profundo conhecimento da linguagem natural, os modelos de linguagem grandes (LLMs) (link em inglês) geralmente realizam tarefas de classificação de texto melhor do que o ML preditivo treinado para a tarefa específica.

Defina as métricas de sucesso

Defina as métricas que você usará para determinar se a implementação de ML foi bem-sucedida ou não. As métricas de sucesso definem o que é importante para você, como engajamento ou ajudar os usuários a tomar as medidas adequadas, como assistir a vídeos que podem ser úteis. As métricas de sucesso são diferentes das métricas de avaliação do modelo, como acurácia, precisão, recall ou AUC.

Por exemplo, as métricas de sucesso e falha do app de clima podem ser definidas da seguinte maneira:

Sucesso Os usuários abrem o recurso "Vai chover?" com 50% mais frequência do que antes.
Falha Os usuários abrem o recurso "Vai chover?" com a mesma frequência de antes.

As métricas do app de vídeo podem ser definidas da seguinte maneira:

Sucesso Os usuários passam, em média, 20% mais tempo no site.
Falha Em média, os usuários não passam mais tempo no site do que antes.

Recomendamos definir métricas de sucesso ambiciosas. No entanto, grandes ambições podem causar lacunas entre sucesso e fracasso. Por exemplo, usuários que passam em média 10% mais tempo no site do que antes não são sucesso nem fracasso. A lacuna indefinida não é importante.

O que importa é a capacidade do modelo de se aproximar ou ultrapassar a definição de sucesso. Por exemplo, ao analisar o desempenho do modelo, considere a seguinte pergunta: melhorar o modelo deixaria você mais perto dos critérios de sucesso definidos? Por exemplo, um modelo pode ter ótimas métricas de avaliação, mas não aproximar você dos critérios de sucesso. Isso indica que, mesmo com um modelo perfeito, você não atenderia aos critérios definidos. Por outro lado, um modelo pode ter métricas de avaliação ruins, mas aproxime-se dos seus critérios de sucesso, indicando que melhorá-lo o aproxime do sucesso.

Confira a seguir as dimensões a serem consideradas ao determinar se vale a pena melhorar o modelo:

  • Não é bom o suficiente, mas continue. Esse modelo não pode ser usado em um ambiente de produção, mas pode ser significativamente aprimorado ao longo do tempo.

  • Tudo certo e continuar. O modelo pode ser usado em um ambiente de produção e pode ser ainda melhor.

  • Bom o suficiente, mas não é possível melhorar. O modelo está em um ambiente de produção, mas provavelmente é o melhor possível.

  • Não é bom o suficiente, e nunca será. O modelo não pode ser usado em um ambiente de produção e, provavelmente, nenhuma quantidade de treinamento vai fazer isso.

Ao decidir melhorar o modelo, reavalie se o aumento nos recursos, como tempo de engenharia e custos de computação, justifica a melhoria prevista do modelo.

Depois de definir as métricas de sucesso e falha, você precisa determinar com que frequência as medirá. Por exemplo, você pode medir suas métricas de sucesso seis dias, seis semanas ou seis meses após a implementação do sistema.

Ao analisar as métricas de falha, tente determinar por que o sistema falhou. Por exemplo, o modelo pode prever em quais vídeos os usuários vão clicar, mas ele pode começar a recomendar títulos de indução de cliques que causem a queda no engajamento do usuário. No exemplo do app meteorológico, o modelo pode prever com precisão quando vai chover, mas por uma região geográfica muito grande.

Teste seu conhecimento

Uma empresa de moda quer vender mais roupas. Alguém sugere o uso de ML para determinar quais roupas a empresa deve fabricar. Ela acham que pode treinar um modelo para determinar que tipo de roupa está na moda. Depois de treinar o modelo, ele quer aplicá-lo ao catálogo para decidir quais roupas fazer.

Como o cliente deve abordar o problema em termos de ML?

Resultado ideal: determinar quais produtos fabricar.

Meta do modelo: prever quais peças de vestuário estão na moda.

Saída do modelo: classificação binária, in_fashion, not_in_fashion

Métricas de sucesso: vender 70% ou mais das roupas feitas.

Resultado ideal: determine a quantidade de tecido e suprimentos a comprar.

Meta do modelo: prever a quantidade de cada item a ser fabricada.

Saída do modelo: classificação binária, make, do_not_make

Métricas de sucesso: vender 70% ou mais das roupas feitas.

O resultado ideal não é determinar a quantidade de tecido e suprimentos para encomendar. Ela serve para determinar se um item precisa ser fabricado. Assim, a meta do modelo aborda o objetivo errado.