Skip to content

Engenharia de Dados – Parte 2

Esta é a segunda parte do artigo sobre Engenharia de Dados iniciado aqui.

Aumento e síntese de dados

Tem sido um objetivo de longo prazo de todo o setor poder gerar dados programaticamente. Dois processos comumente usados ​​são o aumento e a síntese de dados:

  • Aumento de dados cria novos dados a partir de dados existentes (que são reais).
  • A síntese de dados gera dados que imitam as propriedades de dados reais.

Em outras palavras, os dados aumentados são derivados de dados reais, enquanto os dados sintéticos não são reais. No entanto, visto que o objetivo tanto do aumento quanto da síntese é automatizar a criação de dados, às vezes os dois termos são usados ​​de forma intercambiável.

Por que a síntese de dados

Os dados sintéticos são atraentes por muitos motivos. Você pode sintetizar dados para melhorar o trio dos dados dourados: quantidade, cobertura e qualidade. Você pode também sintetizar dados para mitigar preocupações de privacidade e destilar modelos:

  • Para aumentar a quantidade de dados: O principal motivo para a síntese de dados é que ela permite a produção de dados em escala, prometendo um suprimento abundante de dados para treinamento e teste de modelos de IA.
  • Para aumentar a cobertura de dados: Você pode gerar dados com características específicas para melhorar o desempenho do modelo ou fazer com que um modelo expresse comportamentos específicos.
  • Para aumentar a qualidade dos dados: Embora a percepção comum seja de que dados sintéticos geralmente são de qualidade inferior aos dados gerados por humanos, às vezes, o inverso pode ser verdadeiro.
  • Para mitigar preocupações com privacidade: Dados sintéticos costumam ser a única opção para casos de uso em que não é possível usar dados gerados por humanos devido a preocupações com privacidade.
  • Para destilar modelos: Às vezes, você pode querer treinar um modelo para imitar o comportamento de outro modelo.

Técnicas tradicionais de síntese de dados

Tradicionalmente, duas abordagens para síntese e aumento de dados foram baseadas em regras e simulação. Um método mais recente possibilitado por modelos avançados de IA consiste em usar a própria IA para sintetizar os dados.

A maneira mais simples de gerar dados é usar regras e modelos predefinidos.

É comum usar modelos para gerar documentos que seguem uma estrutura específica, como faturas, currículos, formulários fiscais, extratos bancários, agendas de eventos, catálogos de produtos, contratos, arquivos de configuração etc. Os modelos também podem ser usados ​​para gerar dados que seguem uma certa gramática e sintaxe, como expressões regulares e equações matemáticas.

Você pode gerar novos dados processualmente a partir de dados existentes aplicando transformações simples. Para imagens, você pode girar, cortar, dimensionar ou apagar parte de uma imagem aleatoriamente.

Simulação

Em vez de executar experimentos para coletar dados no mundo real, que podem ser caros e perigosos, você pode simular esses experimentos virtualmente. Por exemplo, para testar como um carro autônomo reage ao encontrar um cavalo na estrada, seria perigoso lançar um cavalo real na estrada. Em vez disso, você simula essa situação em um ambiente virtual.

As simulações permitem executar várias experiências com custos mínimos, evitando acidentes e danos físicos. Simulações são comuns para gerar dados para ensinar modelos a usar ferramentas.

Dada uma consulta, você pode simular diferentes seqüências de ação, executar essas seqüências e validar seus resultados. A sequência de ação mais eficiente é então usada como resposta anotada para a consulta.

As simulações são particularmente valiosas para gerar dados para eventos raros. Por exemplo, em finanças, os pesquisadores podem simular cenários como uma empresa tendo êxito na abertura de seu capital ou uma falência significativa para entender seus impactos no mercado.

Síntese de dados movida a IA

Modelos poderosos de IA abrem muitas novas possibilidades para simulações. A IA pode simular os resultados dos programas arbitrários. Por exemplo, “StableToolbench” demonstra como usar a IA para simular APIs sem ter que evocá-las.

IA pode simular humanos. Por exemplo, imagine que você deseja treinar um bot para jogar xadrez. Um jogo jogado por humanos pode demorar muito. Partidas com jogadores da IA seriam muito mais rápidas.

As habilidades de parafrasear e traduzir da IA ​​podem ser usadas para aumentar os conjuntos de dados existentes. Por exemplo, dada a consulta “Como redefinir minha senha? ”, a IA pode parafraseá-la para criar três novas consultas:

  • “Esqueci minha senha.”
  • “Como posso alterar minha senha?”
  • “Etapas para redefinir senhas.”

É comum usar a IA para traduzir dados de idiomas de alto recurso (mais disponíveis online) em idiomas de baixo recurso para ajudar a treinar modelos em idiomas de baixo recurso.

A IA pode traduzir não apenas linguagens naturais, mas também linguagens de programação. Você pode usar a IA para traduzir o código escrito em um idioma para outro.

A IA pode gerar dados para pré-treinamento e pós-treinamento, embora dados sintéticos sejam intencionalmente incluídos com muito mais frequência no pós-treinamento.

No entanto, à medida que a Internet é inundada com conteúdo gerado pela IA, os modelos que dependem dos dados da Internet provavelmente já são pré-treinados em dados sintéticos.

Síntese de dados de instruções

Durante o finetuning de instrução, cada exemplo inclui uma instrução e uma resposta. A IA pode ser usada para sintetizar as instruções, as respostas, ou ambas.

Verificação de dados

Dada a importância da qualidade dos dados no desempenho do modelo, é crucial que tenhamos uma maneira de verificar a qualidade dos dados. A qualidade dos dados gerados por IA pode ser medida da mesma maneira que você avalia outras saídas de IA – por correção funcional e juízes de IA.

Para dados sintéticos que não podem ser verificados pela correção funcional, é comum o uso de verificadores de IA. Um verificador de IA pode ser um juiz de IA de uso geral ou um marcador especializado.

Se você se preocupa com a consistência factual dos dados, pode usar as técnicas de detecção de inconsistência factuais já discutidas para filtrar exemplos que provavelmente conterão alucinações.

Dependendo do caso de uso e dos dados gerados, você também pode ser criativo. Por exemplo, se você deseja que dados sintéticos imitem dados reais, sua qualidade pode ser medida pela dificuldade em distinguir entre os dois.

Assim como dados reais, os dados sintéticos também podem ser filtrados usando heurísticas. Em geral, você pode querer remover exemplos vazios ou muito pequenos de sua aplicação. Se um exemplo for muito longo, convém truncá-lo ou removê-lo.

Limitações para dados gerados pela IA

Embora o papel dos dados sintéticos certamente continue a crescer em importância ao longo do tempo, os dados gerados pela IA podem nunca substituir completamente os dados gerados por humanos. Há muitas razões para isso, mas as quatro principais são: a diferença de qualidade, as limitações de imitação, o potencial colapso do modelo e a maneira como a geração de dados da IA ​​obscurece sua linhagem.

Controle de qualidade

Os dados gerados pela IA podem ser de baixa qualidade. Ser capaz de desenvolver métodos e métricas confiáveis ​​para avaliar dados será essencial para criar dados sintéticos mais úteis.

Imitação superficial

O desempenho percebido alcançado por imitar pode ser superficial. Pesquisas mostram que os modelos de imitação são bons em imitar o estilo dos modelos professores, mas podem ter dificuldades com a precisão e generalização factuais para tarefas fora dos dados de treinamento.

Potencial colapso do modelo

Também não está claro quantos dados gerados por IA podem ser treinados por um modelo. Alguns estudos mostraram que usar recursivamente os dados gerados pela IA em treinamento causa defeitos irreversíveis nos modelos resultantes, degradando seu desempenho ao longo do tempo.

Em “O colapso de modelo é inevitável?” Gerstgrasser et al. (2024) argumentam que, embora o colapso do modelo seja inevitável se todo o conjunto de dados de treinamento for sintético, ele pode ser evitado misturando dados sintéticos com dados reais. Bertrand et al. (2023) e Dohmatob et al. (2024) mostram resultados semelhantes. No entanto, nenhum desses documentos tem uma recomendação definitiva para a proporção entre dados sintéticos e dados reais.

Linhagem de dados obscuros

Essa limitação de dados gerados pela IA é mais sutil. A geração de IA obscurece a linhagem de dados. Os modelos de IA são influenciados por seus dados de treinamento e podem, às vezes, regurgitá-los sem o conhecimento do usuário. Isso cria riscos. Digamos que você use o Modelo X para gerar dados para treinar seu modelo. Se modelo X foi treinado em dados com violações de direitos autorais, seu modelo também pode violar direitos autorais.

Destilação de Modelos

A destilação do modelo (também chamada de destilação de conhecimento) é um método no qual um pequeno modelo (aluno) é treinado para imitar um modelo maior (professor). O conhecimento do grande modelo é destilado no modelo pequeno, daí o termo destilação.

Tradicionalmente, o objetivo da destilação do modelo é produzir modelos menores para implantação. A implantação de um grande modelo pode ser intensiva em recursos. A destilação pode produzir um modelo “aluno” menor e mais rápido que retém o desempenho comparável ao professor.

O modelo do aluno pode ser treinado do zero, como o DistilBERT, ou ajustado (finetuning) a partir de um modelo pré-treinado, como o Alpaca.

Os dados de instrução sintética são comumente usados ​​juntamente com técnicas baseadas em adaptador, como o LoRA.

O artigo Llama 3 observa que, enquanto o treinamento em dados gerados por um modelo mais competente pode melhorar significativamente o desempenho de um modelo, treinar indiscriminadamente em dados auto-gerados não melhora o desempenho do modelo e pode até degradá-los. No entanto, introduzindo mecanismos para verificar a qualidade dos dados sintéticos e usando apenas dados sintéticos verificados, eles foram capazes de melhorar continuamente um modelo usando seu dados gerados.

Na terceira parte do artigo, fecharemos o tema Engenharia de Dados cobrindo o tópico de Processamento de Dados. Até lá!

Referências

Huyen, Chip. AI Engineering: Building Applications with Foundation Models

Comments

Comments (0)

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Previous
Next
Back To Top