Projetar dados de treinamento para cargas de trabalho de IA no Azure
Ao projetar dados para a funcionalidade de IA em aplicativos, considere os requisitos não funcionais, como operabilidade, custo e segurança, e os requisitos funcionais relacionados à ingestão, preparação e validação de dados.
O design de dados e o design de aplicativos não podem ser dissociados. O design do aplicativo requer que você compreenda casos de uso, padrões de consulta e requisitos de atualização. Para atender aos requisitos de negócios que impulsionam a necessidade de usar IA, o aplicativo pode precisar de saída de modelos discriminativos, modelos generativos ou uma combinação de tipos de modelo.
Para produzir resultados significativos, os modelos de IA precisam ser treinados. O treinamento de modelos envolve o ensino de um modelo para classificar ou prever situações novas ou invisíveis. Os dados de formação devem ser adaptados ao problema específico e ao contexto da carga de trabalho.
O treinamento supervisionado envolve fornecer amostras rotuladas ao modelo. Este tipo de treino é útil quando o resultado desejado é claro. Em contraste, a aprendizagem não supervisionada permite que o modelo identifique padrões e relações dentro dos dados sem orientação sobre o resultado esperado. Durante o treinamento, o tipo de algoritmo e seus parâmetros são ajustados para controlar como o modelo aprende. A abordagem varia dependendo do tipo de modelo, que pode incluir redes neurais, árvores de decisão e outros.
Por exemplo, os modelos de deteção de imagem são normalmente treinados em tarefas como deteção de objetos, reconhecimento facial ou compreensão de cenas. Eles aprendem com imagens anotadas para identificar objetos ou recursos específicos. Outros exemplos comuns incluem algoritmos de deteção de fraude e modelos de previsão de preço. Estes modelos aprendem com dados financeiros históricos para tomar decisões informadas.
Este artigo se concentra principalmente no caso de uso anterior, em que os modelos são treinados antes de poderem dar informações significativas ao aplicativo. O artigo inclui orientações sobre coleta, processamento, armazenamento, teste e manutenção de dados. O design de dados para ciência de dados exploratória ou business intelligence via IA não é coberto. O objetivo é apoiar as necessidades de treinamento por meio de estratégias alinhadas com os requisitos de carga de trabalho, fornecendo recomendações sobre o pipeline de dados de treinamento de uma carga de trabalho de IA.
Para obter informações sobre design de dados para modelos de IA que exigem contexto durante a inferência, consulte Aterramento do design de dados.
Importante
Espere que o design de dados seja um processo iterativo baseado em experimentação estatística. Para atingir um nível de qualidade aceitável, ajuste os dados de treinamento, seu processamento, o desenvolvimento de recursos de modelo e os hiperparâmetros do modelo (quando possível). Esse loop de experimentação normalmente acontece durante o treinamento inicial do modelo e durante os esforços contínuos de refinamento para lidar com dados e desvio do modelo ao longo da vida útil do recurso na carga de trabalho.
Recomendações
Aqui está o resumo das recomendações fornecidas neste artigo.
Recomendação | Description |
---|---|
Selecione fontes de dados com base nos requisitos de carga de trabalho. | Considere os recursos disponíveis e se a fonte de dados pode ajudá-lo a alcançar a qualidade de dados aceitável para treinamento de modelos. Abranja exemplos positivos e negativos. Combine diversos tipos de dados para obter a completude adequada para análise e modelagem. Considere técnicas como a Synthetic Minority Oversampling Technique (SMOTE) para escassez ou desequilíbrio de dados. ▪ Ingestão e análise de dados |
Realize a análise de dados sobre os dados coletados antecipadamente. | Execute processos de análise, como Análise Exploratória de Dados (EDA), offline. Considere os custos e as implicações em termos de segurança. Para conjuntos de dados pequenos sem restrições de recursos, você pode considerar a realização de análises na origem. ▪ Armazenamento de coleta de dados |
Mantenha a segmentação de dados, se os requisitos comerciais e técnicos exigirem. | Se você usar fontes de dados com requisitos de segurança distintos, crie pipelines separados para cada modelo. Estabeleça controles de acesso para limitar a interação com subconjuntos de dados específicos. ▪ Segmentação de dados |
Pré-processe os dados para torná-los significativos em relação às metas de treinamento. | Refine a qualidade dos dados ingeridos filtrando o ruído, redefinindo o escopo dos dados, abordando duplicatas e padronizando diversos formatos. ▪ Pré-processamento de dados |
Evite treinar dados obsoletos. | Monitore o desvio de dados e o desvio de conceito como parte de seus loops operacionais internos e externos para manter a precisão e a confiabilidade dos modelos ao longo do tempo. Atualize regularmente os dados de treinamento com novas observações. Defina condições que acionem o retreinamento do modelo e determine a frequência de atualização. ▪ Manutenção de dados |
Tipos de dados
Para criar poder preditivo em modelos, você precisa coletar dados, processá-los e alimentá-los para o modelo. Esse processo é geralmente conceituado como um pipeline que é dividido em etapas. Cada estágio do pipeline pode lidar com o mesmo conjunto de dados, mas pode servir a finalidades diferentes. Normalmente, você lida com dados destes tipos:
Os dados de origem são dados de observação point-in-time. Também podem ser dados que podem ser rotulados para servir como uma entrada potencial para o pipeline de dados.
Estes dados são geralmente obtidos a partir da produção ou de uma fonte externa. Essas fontes de dados podem estar em contas de armazenamento, bancos de dados, APIs ou outras fontes. Os dados podem estar em vários formatos de dados, como bancos de dados OLTP, documentos não estruturados ou arquivos de log. Esses dados servem como uma entrada potencial para o pipeline de dados.
Os dados de treinamento são um subconjunto de dados de origem usados para fornecer amostras ao modelo. As amostras são dados pré-calculados descritivos que ajudam o modelo a aprender padrões e relações. Sem esses dados, o modelo não pode gerar resultados relevantes.
Os dados de avaliação são um subconjunto dos dados de origem usados para monitorar e validar o desempenho de um modelo de aprendizado de máquina durante o treinamento. É diferente dos dados de treinamento e teste e é usado para avaliar periodicamente o desempenho do modelo durante a fase de treinamento e orientar o ajuste de hiperparâmetros. Para obter mais informações, consulte Avaliação de modelo.
Os dados de teste são usados para validar o poder preditivo de um modelo treinado. Esses dados são amostrados a partir de dados de origem que não foram usados para treinamento. Contém observações da produção para que o processo de ensaio seja conclusivo. Do ponto de vista do design de dados, você precisa armazenar esses dados. Para obter informações sobre modelos de teste, consulte a área Design de teste .
Em alguns casos, as informações fornecidas pelos usuários durante as interações com o aplicativo podem, eventualmente, se tornar dados de origem. Em geral, recomendamos que a entrada do usuário usada dessa maneira seja de alta qualidade. Caso contrário, a necessidade de lidar continuamente com questões de qualidade a jusante pode tornar-se problemática. As orientações sobre como lidar com dados do usuário não são abordadas neste artigo.
Ingestão e análise de dados
Os dados de treinamento são coletados dentro de uma janela predeterminada que tem representações suficientes para treinar o tipo de modelo selecionado. Por exemplo, quando você treina um modelo de classificação binária, os dados de treinamento devem incluir representações do que é o caso (exemplos positivos) e o que não é o caso (exemplos negativos). Para que os dados de treinamento sejam significativos, conduza o EDA logo no início durante o design do recurso.
O EDA ajuda a analisar os dados de origem para identificar características, relacionamentos, padrões e problemas de qualidade. Você pode conduzir o EDA diretamente no armazenamento de dados de origem ou replicar dados em armazenamentos centralizados, como um data lake ou data warehouse. O resultado do processo é informar a coleta e o processamento de dados para um treinamento de modelo eficaz.
Nota
Embora o EDA seja um processo de pré-produção, ele usa dados provenientes da produção. Aplique a este processo o mesmo nível de controlo que aplicaria para a produção.
Seguem-se algumas considerações para a recolha de dados em preparação para a formação de modelos.
Origens de dados
Os dados podem ser recolhidos a partir destas fontes:
Os dados proprietários são criados ou de propriedade da organização. Não se destina ao consumo público. Serve propósitos internos.
As fontes públicas são acessíveis a qualquer pessoa. Essas fontes incluem sites, documentos de pesquisa e bancos de dados compartilhados publicamente. Pode ser específico para uma área de nicho. Por exemplo, o conteúdo da Wikipédia e do PubMed é considerado acessível ao público.
Sua escolha de fontes de dados depende dos requisitos de carga de trabalho, dos recursos disponíveis e da qualidade dos dados aceitáveis para treinar o modelo. Conjuntos de dados desequilibrados podem levar a modelos tendenciosos, portanto, você precisa projetar a coleta de dados para obter amostras suficientes de dados representativos. Pode ser necessário fazer uma amostragem excessiva de dados de minorias ou de dados de maioria. Se os dados forem escassos ou desequilibrados, considere técnicas como SMOTE e geração de dados sintéticos.
Armazenamento de coleta de dados
Existem duas opções principais para a recolha de dados de origem:
- Consultando os dados na fonte de dados
- Copiando os dados para um armazenamento de dados localizado e, em seguida, consultando esse armazenamento
A escolha depende dos requisitos de carga de trabalho e do volume de dados. Se você tiver uma quantidade relativamente pequena de dados, o sistema de origem poderá lidar diretamente com suas consultas brutas. No entanto, a prática comum é consultar e analisar a partir do armazenamento localizado.
Compensação. Embora armazenamentos de dados localizados possam facilitar a análise e o processo de treinamento, você também precisa equilibrar custos, segurança e requisitos de modelo.
A duplicação de dados implica custos de armazenamento e computação. A manutenção de uma cópia separada requer recursos adicionais. As cópias locais podem conter informações confidenciais. Se isso acontecer, você precisa proteger os dados usando medidas de segurança regulares.
Se você usar dados de produção para dados de treinamento, eles deverão estar sujeitos a todas as restrições de classificação de dados originais desses dados.
Os dados podem ser fornecidos para o processo de treinamento (modo push) ou o próprio processo pode consultar a fonte de dados (modo pull). A escolha depende da propriedade, da eficiência e das restrições de recursos.
Quando os dados são enviados para a carga de trabalho, é responsabilidade do proprietário da fonte de dados fornecer dados novos. O proprietário da carga de trabalho fornece um local adequado em seu armazenamento de dados localizado para armazenar os dados. Essa abordagem se aplica a dados proprietários que pertencem à organização, não a fontes públicas.
Há duas abordagens que você pode usar para extrair dados. Em uma abordagem, a carga de trabalho consulta o armazenamento de dados, recupera os dados necessários e os coloca no armazenamento localizado. Outra maneira é realizar consultas em tempo real na memória. A decisão depende do volume de dados e dos recursos computacionais disponíveis. Para conjuntos de dados menores, a recuperação na memória pode ser suficiente para o treinamento do modelo.
Independentemente de você usar o modo push ou pull, evite treinar modelos em dados obsoletos. A frequência das atualizações de dados deve estar alinhada com os requisitos de carga de trabalho.
Segmentação de dados
Os requisitos específicos da carga de trabalho podem exigir a segmentação de dados. Aqui estão alguns casos de uso potenciais:
Os requisitos de segurança geralmente orientam decisões de segmentação. Por exemplo, restrições regulatórias podem impedir a exportação de dados entre regiões geopolíticas. Se o design do aplicativo permitir o uso de modelos separados, o design de dados incorporará pipelines de dados separados para cada modelo.
No entanto, se um único modelo for usado, as fontes de dados segmentadas serão alimentadas por esse modelo. Você precisa treinar o modelo em dados de ambas as geografias, o que potencialmente adiciona complexidade.
Quer a aplicação esteja a utilizar um único modelo ou vários modelos, preserve as medidas de segurança em cada segmento de dados para que seja protegida com o mesmo nível de rigor que os dados na origem.
A taxa de atualização dos dados pode ser um fator para separar os dados. Os dados de diferentes fontes podem ser atualizados em intervalos de tempo variáveis. Se os dados mudarem, torna-se necessária uma nova reciclagem. A segmentação permite o controle granular do ciclo de vida dos dados. Considere o uso de tabelas ou pipelines separados para diferentes segmentos de dados.
Independentemente do caso de uso, quando os dados são segmentados, os controles de acesso são fundamentais. Profissionais de dados, como engenheiros de dados e cientistas de dados, exploram os dados de origem disponíveis para entender padrões e relacionamentos. Seus insights contribuem para modelos de treinamento que preveem resultados. Estabeleça controles de acesso para garantir que apenas usuários autorizados possam interagir com subconjuntos de dados específicos. Aplique o menor privilégio aos dados considerados relevantes. Colabore com proprietários de dados para configurar as permissões apropriadas.
Pré-processamento de dados
Em um cenário do mundo real, os dados de origem não são simplesmente armazenados para cenários de IA. Há um processo intermediário que prepara os dados para o treinamento. Durante esta etapa, os dados são removidos do ruído, tornando-os úteis para o consumo. Ao lidar com dados de origem, os cientistas de dados se envolvem em um processo de exploração, experimentação e tomada de decisão. Seu principal objetivo é identificar e extrair partes dos dados de origem que possuem poder preditivo.
A lógica de pré-processamento depende do problema, do tipo de dados e dos resultados desejados. A seguir estão algumas técnicas comuns de pré-processamento. Esta lista não é exaustiva. Os critérios reais para sua carga de trabalho serão orientados pelos requisitos de negócios.
Qualidade. O pré-processamento pode ajudá-lo a garantir que os dados de treinamento sejam removidos do ruído. O objetivo é garantir que cada linha em seus dados de treinamento represente uma observação clara ou um bom exemplo que seja relevante para seu caso de uso e eliminar observações que carecem de qualidade ou poder preditivo. Por exemplo, se você agrupar avaliações de produtos, poderá optar por eliminar dados muito curtos. Você precisa descobrir qual qualidade de dados produz resultados preditivos significativos.
Redefinição do escopo. Os campos de dados de origem demasiado específicos podem restringir os poderes preditivos. Por exemplo, considere um campo de endereço. Ampliar o escopo do endereço completo (número da casa e nome da rua) para um nível mais alto, como cidade, estado ou país/região, pode ser mais relevante.
Desduplicação. A eliminação da redundância pode garantir que seus dados de treinamento permaneçam precisos e representativos. Em certos casos, a frequência com que uma observação é feita não é relevante. Por exemplo, quando você verifica logs, se uma entrada de log aparece 1.000 vezes, isso indica sua frequência. Isso não implica necessariamente que seja um erro mais grave do que um log que ocorreu apenas uma vez. Este tipo de redundância pode introduzir ruído.
Tratamento de dados sensíveis. Elimine dados pessoais, a menos que seja absolutamente vital para o poder preditivo do modelo de uma forma que não possa ser alcançada através da anonimização. Os dados de formação devem ser eficazes sem comprometer a privacidade. Se os dados fornecerem valor, você precisa estar ciente das considerações éticas do tratamento de dados confidenciais. Para obter mais informações, consulte a IA Responsável.
Transformação padronizada. Os especialistas do domínio consideram as técnicas anteriores como uma parte central da engenharia de recursos. Escopo amplo e dados de origem diversificados eventualmente precisam ser mesclados em repositórios de recursos onde os recursos são organizados (por exemplo, em tabelas de recursos) para o propósito explícito de modelos de treinamento. Depois de selecionar dados preditivos para treinamento, transforme os dados em um formato padronizado. A padronização também garante a compatibilidade com o modelo de treinamento.
Converter imagens em representações de texto é uma forma de transformação. Por exemplo, pode converter documentos ou imagens digitalizados em texto legível por máquina.
Para garantir a compatibilidade com os modelos, talvez seja necessário ajustar as orientações ou proporções das imagens para corresponder às expectativas do modelo.
Nota
A mistura de grandes quantidades de dados estruturados e não estruturados pode aumentar o tempo de processamento. As equipes de carga de trabalho devem medir o impacto do processamento de diversos formatos. À medida que a janela entre os esforços de retreinamento se torna mais curta, a quantidade de tempo gasto no pré-processamento torna-se mais crítica.
Retenção de dados
Depois de treinar um modelo, avalie se deseja excluir os dados usados para treinamento e reconstruir o modelo para a próxima janela de treinamento.
Se os dados permanecerem relativamente inalterados, o retreinamento pode não ser necessário, a menos que ocorra desvio do modelo. Se a precisão da previsão diminuir, você precisará treinar novamente o modelo. Você pode optar por ingerir os dados novamente, pré-processar e criar o modelo. Esse curso de ação é melhor se houver um delta significativo nos dados desde a última janela de treinamento. Se houver um grande volume de dados e ele não tiver mudado muito, talvez não seja necessário pré-processar e reconstruir o modelo. Nesse caso, retenha dados, faça atualizações in-loco e treine novamente o modelo. Decida por quanto tempo deseja reter os dados de treinamento.
Em geral, exclua dados de repositórios de recursos para reduzir os custos de desordem e armazenamento para recursos que têm baixo desempenho e que não são mais relevantes para modelos atuais ou futuros. Se você retiver dados, espere gerenciar custos e resolver problemas de segurança, que são preocupações típicas de duplicação de dados.
Rastreamento de linhagem
A linhagem de dados refere-se ao rastreamento do caminho dos dados desde sua origem até seu uso no treinamento de modelos. Manter o controle da linhagem de dados é essencial para a explicabilidade. Embora os usuários possam não precisar de informações detalhadas sobre as origens dos dados, essas informações são cruciais para as equipes internas de governança de dados. Os metadados da linhagem garantem transparência e responsabilidade, mesmo que não sejam usados diretamente pelo modelo. Isso é útil para fins de depuração. Ele também ajuda a determinar se vieses são introduzidos durante o pré-processamento de dados.
Use os recursos da plataforma para rastreamento de linhagem quando puder. Por exemplo, o Azure Machine Learning está integrado no Microsoft Purview. Essa integração oferece acesso a recursos para descoberta de dados, rastreamento de linhagem e governança como parte do ciclo de vida do MLOps.
Manutenção de dados
Todos os modelos podem tornar-se obsoletos ao longo do tempo, o que faz com que o poder preditivo ou a relevância de um modelo decaiam. Várias mudanças externas podem causar deterioração, incluindo mudança no comportamento do usuário, dinâmica do mercado ou outros fatores. Os modelos formados há algum tempo podem ser menos relevantes devido à mudança das circunstâncias. Para fazer previsões com melhor fidelidade, você precisa de dados recentes.
Adotando modelos mais novos. Para garantir a relevância, você precisa de um loop operacional que avalie continuamente o desempenho do modelo e considere modelos mais recentes, o que mantém o pipeline de dados minimamente perturbador. Como alternativa, você pode se preparar para uma mudança maior que envolva o redesenho do ciclo de vida e do pipeline de dados.
Quando você escolhe um novo modelo, não precisa necessariamente começar com um novo conjunto de dados. As observações existentes usadas para treinamento podem permanecer valiosas mesmo durante uma mudança de modelo. Embora novos modelos possam revelar cenários mais restritos, o processo fundamental permanece semelhante. Abordagens de gerenciamento de dados, como armazenamentos de recursos e malhas de dados, podem simplificar a adoção de novos modelos de aprendizado de máquina.
Operações baseadas em gatilhos versus operações de rotina. Ponderar se a reciclagem do modelo deve ser desencadeada por eventos ou condições específicos. Por exemplo, a disponibilidade de dados novos e mais relevantes ou uma diminuição da relevância abaixo de uma base de referência estabelecida podem desencadear uma reconversão profissional. As vantagens desta abordagem são a capacidade de resposta e atualizações oportunas.
A manutenção também pode ser programada em intervalos fixos regulares, como diários ou semanais. Para operações à prova de falhas, considere ambas as abordagens.
Remoção de dados. Remova os dados que não estão mais sendo usados para treinamento para otimizar o uso de recursos e minimizar o risco de usar dados desatualizados ou irrelevantes para treinamento de modelos.
O direito a ser esquecido refere-se ao direito de uma pessoa singular a que os seus dados pessoais sejam removidos das plataformas ou bases de dados em linha. Certifique-se de ter políticas em vigor para remover dados pessoais que são usados para treinamento.
Retenção de dados. Em algumas situações, você precisa reconstruir um modelo existente. Por exemplo, para recuperação de desastres, um modelo deve ser regenerado exatamente como era antes do evento catastrófico. Recomendamos que você tenha um pipeline de dados secundário que siga os requisitos de carga de trabalho do pipeline primário, como lidar com a deterioração do modelo, atualizações regulares por meio de operações de rotina ou baseadas em gatilhos e outras tarefas de manutenção.
Compensação. A manutenção de dados é cara. Envolve a cópia de dados, a criação de pipelines redundantes e a execução de processos de rotina. Tenha em mente que o treinamento regular pode não melhorar a qualidade da resposta. Apenas fornece garantias contra o estagnação. Avaliar a importância das alterações de dados como um sinal para determinar a frequência das atualizações.
Certifique-se de que a manutenção dos dados é feita como parte das operações do modelo. Você deve estabelecer processos para lidar com mudanças via automação, tanto quanto possível, e usar o conjunto certo de ferramentas. Para obter mais informações, consulte MLOps e GenAIOps para cargas de trabalho de IA no Azure.