Una biblioteca de datos sintéticos permisiva de Gretel.ai
Si desea descubrir rápidamente los sintéticos de Gretel, ¡simplemente haga clic en el botón a continuación y siga los tutoriales!
Vea ejemplos adicionales aquí.
Esta sección lo guiará a través de la instalación de gretel-synthetics
y las dependencias que no instala directamente el administrador de paquetes de Python.
De forma predeterminada, no instalamos ciertos requisitos básicos; las siguientes dependencias deben instalarse externamente a la instalación de gretel-synthetics
, según los modelos que planee usar.
Estas dependencias se pueden instalar haciendo lo siguiente:
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 el paquete gretel-synthetics
real, primero clone el repositorio y luego...
pip install -U .
o
pip install gretel-synthetics
entonces...
pip install jupyter
jupyter notebook
Cuando se inicie la interfaz de usuario en su navegador, navegue hasta examples/synthetic_records.ipynb
y comience a generar.
Si desea instalar gretel-synthetics
localmente y usar una GPU (recomendado):
conda
) conda create --name tf python=3.9
conda activate tf
./setup-utils/setup-gretel-synthetics-tensorflow24-with-gpu.sh
El último paso instalará todos los paquetes de software necesarios para el uso de GPU, tensorflow=2.8
y gretel-synthetics
. Tenga en cuenta que este script solo funciona para Ubuntu 18.04. Es posible que deba modificarlo para otras versiones del sistema operativo.
El módulo DGAN de series temporales contiene una implementación PyTorch de un modelo DoppelGANger que está optimizado para datos de series temporales. De manera similar a tensorflow, deberá instalar pytorch manualmente:
pip install torch==1.13.1
Este cuaderno muestra el uso básico de un pequeño conjunto de datos de lecturas de sensores domésticos inteligentes.
ACTGAN (De todos modos CTGAN) es una extensión de la popular implementación CTGAN que proporciona algunas funciones adicionales para mejorar el uso de la memoria, la autodetección y transformación de columnas, y más.
Para utilizar este modelo, deberá instalar SDV manualmente:
pip install sdv<0.18
Tenga en cuenta que esto también instalará varias dependencias como PyTorch en las que se basa SDV, lo que puede entrar en conflicto con las versiones de PyTorch instaladas para usar con otros modelos como Timeseries DGAN.
La interfaz ACTGAN es un superconjunto de la interfaz CTGAN. Para ver las funciones adicionales, consulte el cuaderno de demostración de ACTGAN en el directorio examples
de este repositorio.
Este paquete permite a los desarrolladores sumergirse rápidamente en la generación de datos sintéticos mediante el uso de redes neuronales. Las partes más complejas del trabajo con bibliotecas como Tensorflow y privacidad diferencial se agrupan en clases y funciones amigables de Python. Hay dos modos de alto nivel que se pueden utilizar.
El modo simple entrenará línea por línea en un archivo de entrada de texto. Al generar datos, el generador generará un objeto personalizado que se puede utilizar de diferentes maneras según su caso de uso. Este cuaderno demuestra este modo.
Esta biblioteca admite CSV/DataFrames de forma nativa utilizando el modo "por lotes" de DataFrame. Este módulo proporcionó un contenedor para nuestro modo simple que está diseñado para trabajar con datos tabulares. Además, es capaz de manejar una gran cantidad de columnas dividiendo el DataFrame de entrada en "lotes" de columnas y entrenando un modelo en cada lote. Este cuaderno muestra una descripción general del uso de esta biblioteca con DataFrames de forma nativa.
Hay cuatro componentes principales que se deben tener en cuenta al utilizar esta biblioteca.
Configuraciones. Las configuraciones son clases específicas de un motor de aprendizaje automático subyacente que se utiliza para entrenar y generar datos. Un ejemplo sería usar TensorFlowConfig
para crear todos los parámetros necesarios para entrenar un modelo basado en TF. LocalConfig
tiene un alias para TensorFlowConfig
para lograr compatibilidad con versiones anteriores de la biblioteca. Un modelo se guarda en un directorio designado, que opcionalmente se puede archivar y utilizar más adelante.
Tokenizadores. Los tokenizadores convierten el texto de entrada en ID basados en números enteros que utiliza el motor de aprendizaje automático subyacente. Estos tokenizadores se pueden crear y enviar a la entrada de capacitación. Esto es opcional y, si no se especifica ningún tokenizador específico, se utilizará uno predeterminado. Puede encontrar un ejemplo aquí que utiliza un tokenizador simple de carácter por carácter para crear un modelo a partir de un CSV de entrada. Al entrenar en un modo privado no diferencial, sugerimos utilizar el tokenizador SentencePiece
predeterminado, un tokenizador no supervisado que aprende unidades de subpalabras (por ejemplo, codificación de pares de bytes (BPE) [Sennrich et al.]) y el modelo de lenguaje unigrama [Kudo. ]) para un entrenamiento más rápido y una mayor precisión del modelo sintético.
Capacitación. El entrenamiento de un modelo combina la configuración y el tokenizador y crea un modelo, que se almacena en el directorio designado, que se puede utilizar para generar nuevos registros.
Generación. Una vez que se entrena un modelo, se puede generar cualquier cantidad de líneas o registros nuevos. Opcionalmente, se puede proporcionar un validador de registros para garantizar que los datos generados cumplan con las restricciones necesarias. Consulte nuestros cuadernos para ver ejemplos de validadores.
Además de los cuatro componentes principales, el paquete gretel-synthetics
también incluye un conjunto de utilidades que son útiles para entrenar modelos sintéticos avanzados y evaluar conjuntos de datos sintéticos.
Algunas de estas funciones conllevan grandes dependencias, por lo que se envían como un extra llamado utils
. Para instalar estas dependencias, puede ejecutar
pip install gretel-synthetics[utils]
Para obtener detalles adicionales, consulte los documentos API del módulo de utilidad.
El soporte de privacidad diferencial para nuestro modo TensorFlow se basa en el excelente trabajo realizado por el equipo de Google TF y su biblioteca de privacidad de TensorFlow.
Al utilizar DP, actualmente recomendamos usar el tokenizador de personajes, ya que solo creará un vocabulario de tokens individuales y elimina el riesgo de que se memoricen datos confidenciales como tokens reales que se pueden reproducir durante la generación.
También hay algunas opciones de configuración que son notables, como:
predict_batch_size
debe establecerse en 1dp
debería estar habilitadolearning_rate
, dp_noise_multiplier
, dp_l2_norm_clip
y dp_microbatches
se pueden ajustar para lograr varios valores épsilon.reset_states
debe estar deshabilitadoConsulte nuestro Cuaderno de ejemplo para entrenar un modelo DP basado en el conjunto de datos del Premio Netflix.