Criar 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 do aplicativo não podem ser dissociados. O design do aplicativo requer que você entenda os casos de uso, os padrões de consulta e os 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 modelo envolve ensinar um modelo a classificar ou prever situações novas ou invisíveis. Os dados de treinamento devem ser adaptados ao problema específico e ao contexto da carga de trabalho.
O treinamento supervisionado envolve fornecer ao modelo amostras rotuladas. Esse tipo de treinamento é útil quando o resultado desejado é claro. Por outro lado, o aprendizado não supervisionado permite que o modelo identifique padrões e relacionamentos nos dados sem orientação sobre a saída esperada. 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 detecção de imagem geralmente são treinados em tarefas como detecção de objetos, reconhecimento facial ou compreensão de cena. Eles aprendem com imagens anotadas para identificar objetos ou recursos específicos. Outros exemplos comuns incluem algoritmos de detecção de fraudes e modelos de previsão de preços. Esses 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 fornecer informações significativas para o aplicativo. O artigo inclui diretrizes sobre coleta, processamento, armazenamento, teste e manutenção de dados. O design de dados para ciência de dados exploratória ou inteligência de negócios via IA não é coberto. O objetivo é apoiar as necessidades de treinamento por meio de estratégias alinhadas aos 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 o design de dados para modelos de IA que exigem contexto durante a inferência, consulte Design de dados de aterramento.
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 do modelo e os hiperparâmetros do modelo (quando possível). Esse loop de experimentação normalmente ocorre durante o treinamento inicial do modelo e durante os esforços contínuos de refinamento para lidar com dados e descompasso de 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 | Descrição |
---|---|
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 o treinamento do modelo. Cubra exemplos positivos e negativos. Combine diversos tipos de dados para obter integridade adequada para análise e modelagem. Considere técnicas como a Técnica de Superamostragem de Minorias Sintéticas (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 com antecedência. | Realizar processos de análise, como Análise Exploratória de Dados (EDA), offline. Considere os custos e as implicações de segurança. Para pequenos conjuntos de dados sem restrições de recursos, você pode considerar a execução da análise na origem. ▪ Armazenamento de coleta de dados |
Mantenha a segmentação de dados, se os requisitos técnicos e de negócios 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 em 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 as condições que acionam 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 no modelo. Esse processo geralmente é conceituado como um pipeline dividido em etapas. Cada estágio do pipeline pode lidar com o mesmo conjunto de dados, mas pode servir a propósitos diferentes. Normalmente, você lida com dados destes tipos:
Os dados de origem são dados de observação pontual. Também podem ser dados que podem ser rotulados para servir como uma entrada potencial para o pipeline de dados.
Esses dados geralmente são obtidos 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 exemplos ao modelo. As amostras são dados descritivos pré-calculados que ajudam o modelo a aprender padrões e relacionamentos. Sem esses dados, o modelo não pode gerar uma saída relevante.
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 do modelo.
Os dados de teste são usados para validar o poder preditivo de um modelo treinado. Esses dados são amostrados de dados de origem que não foram usados para treinamento. Ele contém observações da produção para que o processo de teste 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 problemas de qualidade downstream pode se tornar problemática. As diretrizes 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 em 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 do que não é o caso (exemplos negativos). Para que os dados de treinamento sejam significativos, conduza o EDA antecipadamente durante o design do recurso.
O EDA ajuda a analisar 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 eficaz do modelo.
Observação
Embora o EDA seja um processo de pré-produção, ele usa dados provenientes da produção. Aplique o mesmo nível de controle a esse processo que você faria para a produção.
A seguir estão algumas considerações para coletar dados em preparação para o treinamento do modelo.
Fontes de dados
Os dados podem ser coletados destas fontes:
Os dados proprietários são criados ou de propriedade da organização. Não se destina ao consumo público. Serve a propósitos internos.
As fontes públicas são acessíveis a qualquer pessoa. Essas fontes incluem sites, trabalhos de pesquisa e bancos de dados compartilhados publicamente. Pode ser específico para uma área de nicho. Por exemplo, o conteúdo da Wikipedia 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. Talvez seja necessário fazer uma sobreamostragem de dados minoritários ou subamostrar dados majoritários. Se os dados forem escassos ou desequilibrados, considere técnicas como SMOTE e geração de dados sintéticos.
Armazenamento de coleta de dados
Há duas opções principais para coletar dados de origem:
- Consultando os dados na fonte de dados
- Copiar os dados para um armazenamento de dados localizado e, em seguida, consultar 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 repositório localizado.
Troca. Embora os 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 incorre em 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. Em caso afirmativo, 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 ao processo de treinamento (modo push) ou o próprio processo pode consultar a fonte de dados (modo pull). A escolha depende da propriedade, eficiência e 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 atualizados. 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 de propriedade da 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 repositório localizado. Outra maneira é realizar consultas em tempo real na memória. A decisão depende do volume de dados e dos recursos de computação 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 segmentação de dados. Aqui estão alguns casos de uso potenciais:
Os requisitos de segurança geralmente orientam as 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 alimentarão esse modelo. Você precisa treinar o modelo em dados de ambas as geografias, o que potencialmente adiciona complexidade.
Se o aplicativo estiver usando um único modelo ou vários modelos, preserve as medidas de segurança em cada segmento de dados para que ele seja protegido com o mesmo nível de rigor que os dados na origem.
A taxa de atualização de dados pode ser um fator para separar os dados. Os dados de diferentes fontes podem ser atualizados em intervalos de tempo variados. Se os dados forem alterados, será necessário um novo treinamento. 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 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 privilégios mínimos aos dados considerados relevantes. Colabore com os proprietários dos 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 treinamento. Durante esse estágio, os dados são despojados de ruído, tornando-os úteis para 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 objetivo principal é identificar e extrair partes dos dados de origem que detêm 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 para pré-processamento. Essa lista não é completa. 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 de ruído. O objetivo é garantir que cada linha em seus dados de treinamento represente uma observação clara ou um bom exemplo relevante para seu caso de uso e eliminar observações que não tenham 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. Campos de dados de origem muito 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 aparecer 1.000 vezes, isso indica sua frequência. Isso não implica necessariamente que seja um erro mais sério do que um log que ocorreu apenas uma vez. Esse tipo de redundância pode introduzir ruído.
Tratamento de dados confidenciais. Elimine os dados pessoais, a menos que sejam absolutamente vitais para o poder preditivo do modelo de uma forma que não possa ser alcançada por meio da anonimização. Os dados de treinamento devem ser eficazes sem comprometer a privacidade. Se os dados agregam valor, você precisa estar ciente das considerações éticas do tratamento de dados confidenciais. Para obter mais informações, consulte Uso Responsável de IA.
Transformação padronizada. Os especialistas de domínio consideram as técnicas anteriores como uma parte essencial da engenharia de recursos. O escopo amplo e os dados de origem diversos eventualmente precisam ser mesclados em repositórios de recursos onde os recursos são organizados (por exemplo, em tabelas de recursos) para a finalidade explícita de modelos de treinamento. Depois de selecionar dados preditivos para treinamento, transforme-os 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, você pode converter documentos ou imagens digitalizados em texto legível por máquina.
Para garantir a compatibilidade com modelos, talvez seja necessário ajustar as orientações ou as taxas de proporção das imagens para corresponder às expectativas do modelo.
Observação
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 se torna mais crítica.
Retenção de dados
Depois de treinar um modelo, avalie se deseja excluir os dados usados para treinamento e recompilar o modelo para a próxima janela de treinamento.
Se os dados permanecerem relativamente inalterados, o novo treinamento pode não ser necessário, a menos que ocorra um 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 você não precise pré-processar e recompilar o modelo. Nesse caso, retenha os dados, faça atualizações in-loco e treine novamente o modelo. Decida por quanto tempo você deseja reter os dados de treinamento.
Em geral, exclua dados de repositórios de recursos para reduzir a desordem e os custos de armazenamento de 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 da duplicação de dados.
Acompanhamento de linhagem
A linhagem de dados refere-se ao rastreamento do caminho dos dados desde sua fonte até seu uso no treinamento do modelo. 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 de linhagem garantem transparência e responsabilidade, mesmo que não sejam usados diretamente pelo modelo. Isso é útil para depuração. Também ajuda a determinar se os desvios 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 é integrado ao Microsoft Purview. Essa integração fornece 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 se tornar obsoletos com o tempo, o que faz com que o poder preditivo ou a relevância de um modelo decaia. Várias mudanças externas podem causar decadência, incluindo mudança no comportamento do usuário, dinâmica do mercado ou outros fatores. Modelos treinados há algum tempo podem ser menos relevantes devido à mudança de 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 os 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 envolve o redesenho do ciclo de vida e do pipeline de dados.
Ao escolher um novo modelo, você 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 troca de modelo. Embora novos modelos possam revelar cenários mais restritos, o processo fundamental permanece semelhante. Abordagens de gerenciamento de dados, como repositórios de recursos e malhas de dados, podem simplificar a adoção de novos modelos de aprendizado de máquina.
Operações baseadas em gatilho vs. operações de rotina. Considere se o retreinamento do modelo deve ser acionado por eventos ou condições específicas. Por exemplo, a disponibilidade de dados novos e mais relevantes ou uma queda na relevância abaixo de uma linha de base estabelecida pode desencadear o retreinamento. As vantagens dessa abordagem são a capacidade de resposta e as atualizações oportunas.
A manutenção também pode ser agendada em intervalos fixos regulares, como diária ou semanal. 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 modelo.
O direito ao esquecimento refere-se ao direito de um indivíduo de ter seus dados pessoais removidos de plataformas ou bancos de dados online. Certifique-se de ter políticas em vigor para remover dados pessoais 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 abordar a deterioração do modelo, atualizações regulares por meio de operações de rotina ou baseadas em gatilho e outras tarefas de manutenção.
Troca. A manutenção de dados é cara. Envolve copiar dados, criar pipelines redundantes e executar processos de rotina. Lembre-se de que o treinamento regular pode não melhorar a qualidade da resposta. Ele apenas fornece garantia contra a obsolescência. Avalie 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 de dados seja feita como parte das operações do modelo. Você deve estabelecer processos para lidar com mudanças por meio da 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.