Uma biblioteca de dados sintéticos permissiva de Gretel.ai
Se você quiser descobrir rapidamente os sintéticos gretel, basta clicar no botão abaixo e seguir os tutoriais!
Confira exemplos adicionais aqui.
Esta seção irá guiá-lo através da instalação de gretel-synthetics
e dependências que não são instaladas diretamente pelo gerenciador de pacotes Python.
Por padrão, não instalamos determinados requisitos básicos; as dependências a seguir devem ser instaladas externamente à instalação do gretel-synthetics
, dependendo do(s) modelo(s) que você planeja usar.
Essas dependências podem ser instaladas fazendo o seguinte:
pip install tensorflow==2.12.1 # for LSTM
pip install sdv<0.18 # for ACTGAN
pip install torch==2.0 # for Timeseries DGAN
Para instalar o pacote gretel-synthetics
real, primeiro clone o repositório e depois...
pip install -U .
ou
pip install gretel-synthetics
então...
pip install jupyter
jupyter notebook
Quando a IU for iniciada em seu navegador, navegue até examples/synthetic_records.ipynb
e comece a gerar!
Se você deseja instalar gretel-synthetics
localmente e usar uma GPU (recomendado):
conda
) conda create --name tf python=3.9
conda activate tf
./setup-utils/setup-gretel-synthetics-tensorflow24-with-gpu.sh
A última etapa instalará todos os pacotes de software necessários para uso da GPU, tensorflow=2.8
e gretel-synthetics
. Observe que este script funciona apenas para Ubuntu 18.04. Pode ser necessário modificá-lo para outras versões do sistema operacional.
O módulo DGAN de série temporal contém uma implementação PyTorch de um modelo DoppelGANger que é otimizado para dados de série temporal. Semelhante ao tensorflow, você precisará instalar manualmente o pytorch:
pip install torch==1.13.1
Este notebook mostra o uso básico em um pequeno conjunto de dados de leituras de sensores domésticos inteligentes.
ACTGAN (Anyway CTGAN) é uma extensão da popular implementação CTGAN que fornece algumas funcionalidades adicionais para melhorar o uso de memória, autodetecção e transformação de colunas e muito mais.
Para usar este modelo, você precisará instalar o SDV manualmente:
pip install sdv<0.18
Tenha em mente que isso também instalará várias dependências como PyTorch das quais o SDV depende, o que pode entrar em conflito com as versões do PyTorch instaladas para uso com outros modelos como Timeseries DGAN.
A interface ACTGAN é um superconjunto da interface CTGAN. Para ver os recursos adicionais, dê uma olhada no notebook de demonstração ACTGAN no diretório de examples
deste repositório.
Este pacote permite que os desenvolvedores mergulhem rapidamente na geração de dados sintéticos por meio do uso de redes neurais. As partes mais complexas do trabalho com bibliotecas como Tensorflow e privacidade diferencial são agrupadas em classes e funções Python amigáveis. Existem dois modos de alto nível que podem ser utilizados.
O modo simples treinará linha por linha em um arquivo de entrada de texto. Ao gerar dados, o gerador produzirá um objeto personalizado que pode ser usado de várias maneiras diferentes com base no seu caso de uso. Este notebook demonstra esse modo.
Esta biblioteca suporta CSV/DataFrames nativamente usando o modo "lote" do DataFrame. Este módulo forneceu um wrapper em torno do nosso modo simples, voltado para trabalhar com dados tabulares. Além disso, ele é capaz de lidar com um grande número de colunas, dividindo o DataFrame de entrada em “lotes” de colunas e treinando um modelo em cada lote. Este notebook mostra uma visão geral do uso desta biblioteca com DataFrames nativamente.
Existem quatro componentes principais que você deve conhecer ao usar esta biblioteca.
Configurações. Configurações são classes específicas de um mecanismo de ML subjacente usado para treinar e gerar dados. Um exemplo seria usar TensorFlowConfig
para criar todos os parâmetros necessários para treinar um modelo baseado em TF. LocalConfig
tem o alias de TensorFlowConfig
para compatibilidade retroativa com versões mais antigas da biblioteca. Um modelo é salvo em um diretório designado, que pode opcionalmente ser arquivado e utilizado posteriormente.
Tokenizadores. Os tokenizadores convertem o texto de entrada em IDs baseados em números inteiros que são usados pelo mecanismo de ML subjacente. Esses tokenizers podem ser criados e enviados para a entrada de treinamento. Isso é opcional e, se nenhum tokenizador específico for especificado, um token padrão será usado. Você pode encontrar aqui um exemplo que usa um tokenizer simples caractere por caractere para construir um modelo a partir de um CSV de entrada. Ao treinar em um modo privado não diferencial, sugerimos usar o tokenizer SentencePiece
padrão, um tokenizer não supervisionado que aprende unidades de subpalavras (por exemplo, codificação de par de bytes (BPE) [Sennrich et al.]) e modelo de linguagem unigrama [Kudo. ]) para treinamento mais rápido e maior precisão do modelo sintético.
Treinamento. O treinamento de um modelo combina a configuração e o tokenizer e constrói um modelo, que é armazenado no diretório designado, que pode ser usado para gerar novos registros.
Geração. Depois que um modelo é treinado, qualquer número de novas linhas ou registros pode ser gerado. Opcionalmente, um validador de registro pode ser fornecido para garantir que os dados gerados atendam a quaisquer restrições necessárias. Veja nossos notebooks para exemplos de validadores.
Além dos quatro componentes principais, o pacote gretel-synthetics
também vem com um conjunto de utilitários que são úteis para treinar modelos sintéticos avançados e avaliar conjuntos de dados sintéticos.
Algumas dessas funcionalidades carregam grandes dependências, por isso são enviadas como um extra chamado utils
. Para instalar essas dependências, você pode executar
pip install gretel-synthetics[utils]
Para obter detalhes adicionais, consulte a documentação da API do módulo Utilitário.
O suporte diferencial à privacidade para nosso modo TensorFlow é baseado no excelente trabalho realizado pela equipe do Google TF e sua biblioteca TensorFlow Privacy.
Ao utilizar o DP, atualmente recomendamos o uso do tokenizador de caracteres, pois ele criará apenas um vocabulário de tokens únicos e eliminará o risco de dados confidenciais serem memorizados como tokens reais que podem ser reproduzidos durante a geração.
Existem também algumas opções de configuração notáveis, como:
predict_batch_size
deve ser definido como 1dp
deve estar habilitadolearning_rate
, dp_noise_multiplier
, dp_l2_norm_clip
e dp_microbatches
podem ser ajustados para atingir vários valores épsilon.reset_states
deve ser desabilitadoConsulte nosso exemplo de Notebook para treinar um modelo DP com base no conjunto de dados do Prêmio Netflix.