Skip to Content

O que é um fluxo de trabalho de aprendizado de máquina?

Um fluxo de trabalho de aprendizado de máquina é o processo sistemático de desenvolvimento, treinamento, avaliação e implantação de modelos de aprendizado de máquina. Ela engloba uma série de etapas que orientam os profissionais durante todo o ciclo de vida de um projeto de aprendizado de máquina, desde a definição do problema até a implantação da solução. 

Por que os fluxos de trabalho de aprendizado de máquina são importantes?

Os fluxos de trabalho de aprendizado de máquina ajudam com: 

  • Clareza e foco: Um fluxo de trabalho bem definido ajuda a definir claramente as metas, funções e responsabilidades do projeto para que todos os membros da equipe estejam alinhados e focados em alcançar os resultados desejados e pretendidos.
  • Eficiência e produtividade: Um fluxo de trabalho estruturado fornece uma abordagem sistemática para lidar com projetos complexos de aprendizado de máquina. Isso leva a uma melhor eficiência e produtividade, pois ajuda a organizar tarefas, gerenciar recursos e acompanhar o progresso com eficácia.
  • Garantia de qualidade: Usar um fluxo de trabalho estruturado ajuda a executar sistematicamente cada etapa do processo de aprendizado de máquina, o que ajuda a identificar e resolver possíveis problemas no início do ciclo de vida do projeto.
  • Reprodutibilidade e escalabilidade: Um fluxo de trabalho bem definido documenta todas as etapas realizadas durante o processo de desenvolvimento, facilitando a replicação dos resultados e fornecendo uma estrutura que você pode adaptar e reutilizar para projetos futuros.
  • Gerenciamento de riscos: Os fluxos de trabalho de aprendizado de máquina melhoram o gerenciamento de riscos identificando possíveis riscos e incertezas no início do ciclo de vida do projeto, permitindo implementar estratégias proativas de mitigação que reduzem as chances de falha do projeto.

Quais são as etapas típicas do fluxo de trabalho de aprendizado de máquina?

Um fluxo de trabalho típico de aprendizado de máquina envolve os seguintes estágios:

Definição do problema, onde você define claramente o problema a ser resolvido e estabelece as metas do projeto. Esta etapa envolve entender o contexto de negócios, identificar fontes de dados relevantes e definir métricas-chave de desempenho.

Coleta e pré-processamento de dados, onde você coleta os dados necessários de várias fontes e os pré-processa para garantir que estejam limpos, consistentes e prontos para análise. Essa etapa pode envolver tarefas como limpeza de dados, engenharia de recursos e transformação de dados.

Análise exploratória de dados (EDA ), onde você explora os dados para obter insights e identificar padrões, tendências e relacionamentos. A EDA ajuda a entender as características dos dados e a informar decisões sobre a seleção de recursos, seleção de modelos e estratégias de pré-processamento de dados.

Seleção e treinamento de modelos, onde você escolhe algoritmos e técnicas de aprendizado de máquina apropriados com base nos requisitos do problema e nas características dos dados, treina os modelos selecionados usando os dados preparados e avalia seu desempenho usando métricas de avaliação adequadas.

Avaliação e ajuste de modelos, onde você avalia o desempenho dos modelos treinados usando técnicas de validação, como validação cruzada e métodos de ajuste de hiperparâmetros para otimizar o desempenho do modelo.

Implantação e monitoramento de modelos, onde você implanta o modelo treinado no ambiente de produção, integra-o aos sistemas existentes, monitora o desempenho do modelo em cenários do mundo real e o atualiza conforme necessário para garantir a eficácia contínua.

Vamos nos aprofundar um pouco mais em cada uma dessas etapas. 

Definição do problema

Para definir o problema:

1. Entenda seus objetivos de negócios

O primeiro passo para definir o problema é entender os objetivos e metas de negócios mais amplos. Isso significa colaborar estreitamente com as partes interessadas para identificar os principais desafios ou oportunidades de negócios que você deseja abordar com aprendizado de máquina.

2. Formular uma declaração de problema

Com base nesses objetivos de negócios, crie uma declaração clara e concisa do problema. Esta declaração deve especificar o que precisa ser previsto, classificado ou otimizado e como ele se alinha às suas metas gerais de negócios. Ela também deve considerar fatores como disponibilidade de dados, viabilidade e impacto potencial.

3. Defina critérios de sucesso

Estabeleça critérios mensuráveis de sucesso ou indicadores-chave de desempenho (KPIs, Key Performance Indicators) que você pode usar para avaliar o desempenho da solução de aprendizado de máquina. Eles devem estar alinhados com a declaração do problema e os resultados comerciais desejados.

4. Identifique os requisitos e restrições de dados

Identifique os requisitos de dados para resolver o problema, incluindo tipos de dados (estruturados ou não), fontes, considerações de qualidade e quaisquer restrições regulatórias ou éticas relacionadas ao uso de dados. Entender as limitações e restrições de dados antecipadamente ajudará você a definir expectativas realistas e planejar estratégias de aquisição e pré-processamento de dados.

5. Avaliação de risco

Realize uma avaliação de risco preliminar para identificar possíveis riscos e desafios associados à definição do problema. Isso inclui riscos relacionados à qualidade dos dados, complexidade do modelo, interpretabilidade, conformidade regulatória e impacto nos negócios. Desenvolver estratégias de mitigação de riscos no início do projeto pode ajudar a enfrentar esses desafios de forma proativa.

6. Documente a definição do problema

Por fim, documente a definição do problema, incluindo a declaração do problema, os critérios de sucesso, os requisitos de dados, o escopo, as restrições e os resultados da avaliação de risco. Essa documentação será sua referência para todas as partes interessadas envolvidas e ajudará a garantir alinhamento durante todo o fluxo de trabalho de aprendizado de máquina.

Coleta de dados

Coletar dados relevantes para seu projeto de aprendizado de máquina é uma etapa importante que pode afetar significativamente o desempenho e os resultados do modelo. 

Veja o processo passo a passo para coletar dados e dicas para garantir sua confiabilidade e qualidade:

1. Defina objetivos

Defina claramente os objetivos do seu projeto de aprendizado de máquina. Entenda as perguntas que deseja responder e os problemas que deseja resolver. Isso orientará seus esforços de coleta de dados para coletar as informações mais relevantes.

2. Identifique fontes de dados

Determine onde você pode encontrar os dados necessários. As fontes de dados podem variar dependendo da natureza do seu projeto, mas as fontes comuns incluem: 

  • Sites como Kaggle, UCI Machine Learning Repository e bancos de dados governamentais. 

  • APIs: Muitas organizações oferecem APIs para acessar seus dados de maneira programática.

  • Sarja na Web: Extrair dados de sites usando ferramentas como Beautiful Soup ou Scrapy.

  • Bancos de dados internos: Se aplicável, use os dados armazenados nos bancos de dados da sua organização.

  • Pesquisas ou entrevistas: Colete dados diretamente de usuários ou especialistas do domínio por meio de pesquisas ou entrevistas.

3. Avalie a qualidade dos dados

Antes de coletar dados, avalie sua qualidade para garantir que sejam adequados para seu projeto. Considere os seguintes fatores:

  • Precisão: Os dados estão livres de erros ou inconsistências?

  • Integralidade: O conjunto de dados abrange todas as variáveis e registros necessários?

  • Consistência: Os valores de dados são consistentes em diferentes fontes ou períodos?

  • Relevância: Os dados incluem as informações necessárias para abordar seus objetivos?

  • Pontualidade: Os dados são atualizados e relevantes para sua análise?

  • Métodos de coleta de dados: Você escolheu os métodos apropriados para coletar seus dados de acordo com a fonte de dados?

4. Documente as fontes de dados e as etapas de processamento

Mantenha uma documentação abrangente das fontes de dados, métodos de coleta, etapas de pré-processamento e quaisquer transformações aplicadas aos dados. Essa documentação é essencial para transparência, reprodutibilidade e colaboração.

5. Iterar

A coleta de dados é um processo iterativo. À medida que analisa os dados e refina seu modelo, você pode precisar de dados adicionais ou ajustes em seus conjuntos de dados existentes. Avalie continuamente a relevância e a qualidade dos seus dados para melhorar a precisão e a eficácia do seu modelo de aprendizado de máquina.

Pré-processamento de dados

O pré-processamento de dados é o processo de preparação de dados brutos para análise em projetos de aprendizado de máquina e ciência de dados. Isso envolve limpar, transformar e organizar os dados para garantir que sejam adequados para modelagem e análise. Também ajuda na qualidade dos dados, engenharia de recursos, desempenho do modelo e compatibilidade de dados. 

Aqui estão alguns aspectos importantes do pré-processamento de dados e instruções sobre como lidar com dados ausentes, valores atípicos e normalização de dados:

1. Como lidar com dados ausentes

Comece identificando colunas ou recursos com valores ausentes no conjunto de dados. Em seguida, dependendo da natureza dos dados ausentes, escolha um método de imputação adequado, como média, mediana, modo ou usando modelos preditivos para preencher os valores ausentes. Nos casos em que os valores ausentes forem muito numerosos ou não puderem ser imputados de forma confiável, considere descartar linhas ou colunas com dados ausentes. Para variáveis categóricas, considere adicionar uma nova categoria para representar valores ausentes ou usar técnicas como imputação de modo para variáveis categóricas.

2. Lidar com valores atípicos

Para lidar com valores discrepantes:

  • Use métodos estatísticos como diagramas de caixa, pontuações Z ou IQR (intervalo interquartil) para identificar valores atípicos em dados numéricos.
  • Remova discrepâncias extremas do conjunto de dados.
  • Limite os valores extremos substituindo-os pelos valores não discrepantes mais próximos.
  • Aplique transformações como transformação logarítmica, raiz quadrada ou Box-Cox para tornar os dados mais normalmente distribuídos e reduzir o impacto de valores discrepantes.
  • Consulte especialistas em domínio para validar valores atípicos que possam representar anomalias ou erros genuínos nos dados.

3. Normalização de dados

As etapas da normalização de dados são:

a. Padronização (normalização da pontuação Z): Transforme as características numéricas para ter uma média de 0 e um desvio padrão de 1. Ele ajuda a dimensionar recursos para uma faixa semelhante, tornando-os comparáveis.

b. Dimensionamento mínimo e máximo: Expanda os recursos para um intervalo específico, normalmente entre 0 e 1, preservando as relações relativas entre os pontos de dados.

c. Escala robusta: Use técnicas de expansão robustas, como o RobustScaler, que dimensiona os dados com base na faixa mediana e interquartil, tornando-os menos sensíveis a discrepâncias.

Engenharia de recursos

A engenharia de recursos envolve transformar dados brutos em um formato mais adequado para modelagem. Ela se concentra em criar novos recursos, selecionar recursos importantes e transformar recursos existentes para melhorar o desempenho dos modelos de aprendizado de máquina. A engenharia de recursos é muito importante para a precisão do modelo, reduzindo o sobreajuste e melhorando a capacidade de generalização dos modelos.

Veja explicações e exemplos de algumas técnicas comuns de engenharia de recursos:

Codificação única

A codificação de um hot converte variáveis categóricas em um formato numérico que pode ser alimentado em algoritmos de aprendizado de máquina. Ele cria colunas binárias para cada categoria, com um 1 indicando a presença da categoria e um 0 de outra forma. Como exemplo, considere um recurso de "cor" com as categorias "Vermelho", "Verde" e "Azul". Após a codificação one-hot, esse recurso seria transformado em três recursos binários: "Is_Red", "Is_Green" e "Is_Blue", em que cada recurso representa a presença dessa cor.

Dimensionamento de recursos

O dimensionamento de recursos traz recursos numéricos para uma escala ou faixa semelhante. Ele ajuda os algoritmos a convergirem mais rapidamente e impede que recursos com magnitudes maiores dominem durante o treinamento. As técnicas comuns de expansão horizontal incluem a padronização mencionada acima e o mínimo e máximo. 

Redução de dimensionalidade

As técnicas de redução de dimensão reduzem o número de recursos enquanto mantêm a maioria das informações relevantes. Isso ajuda a reduzir a complexidade computacional, melhorar o desempenho do modelo e evitar a dimensionalidade.

Extração de recursos

A extração de recursos envolve criar novos recursos a partir dos existentes usando transformações matemáticas, conhecimento de domínio ou técnicas de processamento de texto. Gerar combinações polinomiais de recursos para capturar relações não lineares nos dados seria um exemplo. Converter dados de texto em recursos numéricos usando métodos como TF-IDF, incorporações de palavras ou representações de pacotes de palavras é outro exemplo. 

Seleção de modelos

Selecionar o modelo de aprendizado de máquina adequado para uma tarefa específica é uma etapa essencial nos fluxos de trabalho de aprendizado de máquina. Ela envolve considerar vários fatores, como a natureza do problema, os dados disponíveis, as características do modelo desejado (por exemplo, interpretabilidade, precisão) e os recursos computacionais. 

Aqui estão as principais etapas e considerações no processo de seleção de modelos:

1. Entender o problema

Primeiro, determine se o problema é uma classificação, regressão, clustering ou outro tipo de tarefa. Você precisa entender os recursos, variável(s) de destino, tamanho dos dados, distribuição de dados e quaisquer padrões ou complexidades inerentes aos dados.

2. Seleção de modelos candidatos 

Aproveite a experiência do domínio para identificar modelos que são comumente usados e adequados para tarefas semelhantes no domínio. Uma parte importante disso é considerar diferentes tipos de modelos de aprendizado de máquina, como modelos lineares, modelos baseados em árvore, máquinas de vetor de suporte (SVMs, Support Vector Machines), redes neurais, métodos de conjunto, etc., com base no tipo de problema e nas características dos dados.

3. Avaliação da complexidade e interpretabilidade do modelo

Considere a complexidade do modelo e sua capacidade de capturar relacionamentos complexos nos dados. Modelos mais complexos, como redes neurais de aprendizagem profunda, podem oferecer maior precisão preditiva, mas podem ser computacionalmente caros e propensos a ajustes excessivos. Dependendo do aplicativo e das necessidades das partes interessadas, decida se a interpretabilidade do modelo é crucial. Modelos simples, como regressão linear ou árvores de decisão, são mais interpretáveis em comparação com modelos complexos de caixa preta, como redes neurais profundas.

4. Considerar métricas de desempenho

Para tarefas de classificação, considere métricas como exatidão, precisão, recall, F1-score, ROC-AUC, etc., com base no desequilíbrio da classe e nos objetivos de negócios. Para tarefas de regressão, você pode usar métricas como erro quadrático médio (MSE, mean squared error), erro absoluto médio (MAE, mean absolute error), R-quadrado e outros para avaliar o desempenho do modelo. Use técnicas de validação adequadas, como validação cruzada, divisão de teste de trem ou validação baseada em tempo (para dados de série temporal) para avaliar completamente o desempenho do modelo.

5. Comparação e validação de modelos

Comece com modelos de linha de base simples para estabelecer uma referência de desempenho. Treine vários modelos de candidatos usando conjuntos de dados apropriados de treinamento/validação e avalie seu desempenho usando métricas escolhidas. Ajuste os hiperparâmetros de modelos usando técnicas como pesquisa de grade, pesquisa aleatória ou otimização bayesiana para melhorar o desempenho.

6. Seleção do melhor modelo

Considere as desvantagens entre a complexidade do modelo, a interpretabilidade, os recursos computacionais e as métricas de desempenho. Em seguida, avalie o modelo de melhor desempenho em um conjunto de dados de teste de holdout para garantir sua capacidade de generalização em dados invisíveis.

7. Iterar e refinar

A seleção de modelos é frequentemente um processo iterativo. Se o modelo escolhido não atender aos critérios desejados, faça iterações refinando a engenharia de recursos, hiperparâmetros ou tentando algoritmos diferentes até que resultados satisfatórios sejam alcançados.

Treinamento de modelo

O treinamento de um modelo de aprendizado de máquina envolve ajustar o algoritmo selecionado aos dados de treinamento para aprender padrões e relacionamentos nos dados. Esse processo inclui dividir os dados em conjuntos de treinamento e validação, otimizar parâmetros do modelo e avaliar o desempenho do modelo. 

Vamos dar uma olhada nas etapas:

1. Divisão de dados

Divida o conjunto de dados em conjuntos de treinamento e validação/teste. As taxas de divisão típicas são 70-30 ou 80-20 para treinamento/validação, garantindo que o conjunto de validação represente a distribuição de dados no mundo real.

2. Escolha do algoritmo

Com base no tipo de problema (classificação, regressão, clustering) e nas características dos dados, selecione o algoritmo ou conjunto de algoritmos de aprendizado de máquina adequado para treinar o modelo.

3. Instantaneizar o modelo

Crie uma instância do modelo escolhido inicializando seus parâmetros. Por exemplo, no Python com o Scikit-Learn, você pode usar códigos como:

de sklearn.linear_model importar LogisticRegression

modelo = LogisticRegression()

4. Treinamento do modelo

Ajuste o modelo aos dados de treinamento usando o método .fit(). Essa etapa envolve aprender os padrões e relacionamentos nos dados.

5. Otimização dos parâmetros do modelo

Execute ajustes de hiperparâmetro para otimizar o desempenho do modelo. As técnicas comuns incluem pesquisa em grade, pesquisa aleatória ou otimização bayesiana.

6. Avaliação do modelo

Avalie o desempenho do modelo treinado usando o conjunto de validação/teste. Calcule métricas relevantes, como precisão, recall, F1-score (para classificação) ou erro quadrático médio.

7. Seleção do modelo final

Depois de satisfeito com o desempenho do modelo no conjunto de validação, treine novamente o modelo final usando todo o conjunto de dados de treinamento (incluindo dados de validação) para maximizar o aprendizado antes da implantação.

Implantação do modelo

Depois de selecionar e treinar seu modelo, você estará pronto para implantá-lo. 

As etapas de implantação incluem:

1. serialização do modelo

Serialize o modelo treinado em um formato adequado para implantação. Os formatos comuns incluem pickle (Python), PMML (Predictive Model Markup Language), ONNX (Open Neural Network Exchange) ou formatos personalizados, dependendo da estrutura usada.

2. Integração com o ambiente de produção

Escolha um ambiente de implantação adequado, como plataformas de nuvem (AWS , Azure , Google Cloud), servidores locais ou soluções em contêiner (Docker, Kubernetes ). Integre o modelo ao ambiente de produção usando estruturas ou bibliotecas específicas para o ambiente de implantação escolhido (por exemplo, Flask para APIs da Web, TensorFlow Serving ou PyTorch serve para modelos de serviço).

3. Considerações sobre escalabilidade

Projete a arquitetura de implantação para lidar com cargas variadas e requisitos de escalabilidade. Considere fatores como usuários simultâneos, processamento em lote e utilização de recursos. Use recursos de expansão automática baseados em nuvem ou ferramentas de orquestração de contêineres para expansão dinâmica com base na demanda. Considere a modernização do datacenter para expandir a AI. 

4. Previsões em tempo real

Garanta que a implantação do modelo ofereça suporte a previsões em tempo real, se necessário. Isso envolve configurar endpoints ou serviços de baixa latência para lidar com solicitações de previsão recebidas rapidamente. Considere otimizar a velocidade de inferência do modelo por meio de técnicas como quantização do modelo, poda ou uso de aceleradores de hardware (por exemplo, GPUs, TPUs) com base no ambiente de implantação.

5. Monitoramento e métricas de desempenho

Implemente soluções de monitoramento para acompanhar o desempenho do modelo na produção. Monitore métricas como latência de previsão, taxa de transferência, taxas de erro e desvio de dados (mudanças na distribuição de dados de entrada ao longo do tempo). Configure alertas e limites para métricas críticas de desempenho para detectar e responder a problemas imediatamente.

6. Versões e atualizações de modelos

Estabeleça uma estratégia de versionamento para seus modelos implantados para rastrear mudanças e facilitar a reversão, se necessário. Implemente um processo para implantar atualizações de modelo ou ciclos de reciclagem com base em novos dados ou algoritmos aprimorados. Considere técnicas como teste A/B para comparar versões de modelo em produção antes da implantação completa.

7. Segurança e conformidade

Implemente medidas de segurança para proteger o modelo, os dados e os endpoints implantados contra acesso, ataques e violações de dados não autorizados. Garanta a conformidade com requisitos regulatórios, como GDPR, HIPAA ou padrões específicos do setor relacionados à privacidade de dados e implantação de modelos.

8. Documentação e colaboração

Mantenha documentação detalhada para o modelo implantado, incluindo sua arquitetura, APIs, dependências e configurações. Promova a colaboração entre cientistas de dados, engenheiros e partes interessadas para iterar sobre melhorias de modelo, resolver problemas e incorporar feedback do uso do mundo real.

Conclusão

Agora você conhece os componentes essenciais de um fluxo de trabalho estruturado de aprendizado de máquina, incluindo etapas importantes, como definir o problema, pré-processamento de dados, engenharia de recursos, seleção de modelos, treinamento e avaliação. 

Cada etapa desempenha um papel crucial no sucesso geral de um projeto de aprendizado de máquina. Definir o problema prepara com precisão o cenário para o desenvolvimento de uma solução direcionada, enquanto o pré-processamento de dados garante a qualidade e a adequação dos dados para análise. A engenharia de recursos melhora o desempenho do modelo extraindo informações significativas dos dados. A seleção do modelo envolve escolher o algoritmo mais adequado com base em fatores como complexidade, interpretabilidade e métricas de desempenho, seguidas por treinamento, otimização e avaliação completos para garantir um desempenho robusto do modelo.

Ao seguir um fluxo de trabalho estruturado, os cientistas de dados podem melhorar a eficiência, manter a integridade do modelo e tomar decisões informadas durante todo o ciclo de vida do projeto, levando a modelos de aprendizado de máquina mais precisos, confiáveis e impactantes que agregam valor verdadeiro às organizações e partes interessadas.

No entanto, um dos principais desafios com todos os fluxos de trabalho de aprendizado de máquina são os gargalos. Os conjuntos de dados de treinamento de aprendizado de máquina normalmente excedem muito a capacidade de DRAM em um servidor. A melhor maneira de estar preparado para esses gargalos é preveni-los completamente com uma infraestrutura pronta para AI e ML, como AIRI® ou FlashStack®. Saiba mais sobre como a Pure Storage ajuda a acelerar suas iniciativas de AI e ML.

09/2024
Seven Key Storage Considerations for Digital Pathology
Explore 7 key considerations your organization should consider when choosing data storage for digital pathology.
Whitepaper
4 páginas
ENTRE EM CONTATO
Dúvidas ou comentários?

Tem dúvidas ou comentários sobre produtos ou certificações da Pure?  Estamos aqui para ajudar.

Agende uma demonstração

Agende uma demonstração ao vivo e veja você mesmo como a Pure pode ajudar a transformar seus dados em resultados poderosos. 

Telefone: 55-11-2844-8366

Imprensa: pr@purestorage.com

 

Sede da Pure Storage

Av. Juscelino Kubitschek, 2041

Torre B, 5º andar - Vila Olímpia

São Paulo, SP

04543-011 Brasil

info@purestorage.com

FECHAR
Seu navegador não é mais compatível.

Navegadores antigos normalmente representam riscos de segurança. Para oferecer a melhor experiência possível ao usar nosso site, atualize para qualquer um destes navegadores mais atualizados.