Une bibliothèque de données synthétiques permissives de Gretel.ai
Si vous souhaitez découvrir rapidement les gretel-synthetics, cliquez simplement sur le bouton ci-dessous et suivez les tutoriels !
Découvrez des exemples supplémentaires ici.
Cette section vous guidera dans l'installation de gretel-synthetics
et de dépendances qui ne sont pas directement installées par le gestionnaire de packages Python.
Par défaut, nous n'installons pas certaines exigences de base, les dépendances suivantes doivent être installées en dehors de l'installation de gretel-synthetics
, selon le(s) modèle(s) que vous envisagez d'utiliser.
Ces dépendances peuvent être installées en procédant comme suit :
pip install tensorflow==2.12.1 # for LSTM
pip install sdv<0.18 # for ACTGAN
pip install torch==2.0 # for Timeseries DGAN
Pour installer le package gretel-synthetics
actuel, clonez d'abord le dépôt, puis...
pip install -U .
ou
pip install gretel-synthetics
alors...
pip install jupyter
jupyter notebook
Lorsque l'interface utilisateur se lance dans votre navigateur, accédez à examples/synthetic_records.ipynb
et commencez à générer !
Si vous souhaitez installer gretel-synthetics
localement et utiliser un GPU (recommandé) :
conda
) conda create --name tf python=3.9
conda activate tf
./setup-utils/setup-gretel-synthetics-tensorflow24-with-gpu.sh
La dernière étape installera tous les packages logiciels nécessaires à l'utilisation du GPU, tensorflow=2.8
et gretel-synthetics
. Notez que ce script ne fonctionne que pour Ubuntu 18.04. Vous devrez peut-être le modifier pour d'autres versions du système d'exploitation.
Le module timeseries DGAN contient une implémentation PyTorch d'un modèle DoppelGANger optimisé pour les données de séries temporelles. Semblable à Tensorflow, vous devrez installer manuellement pytorch :
pip install torch==1.13.1
Ce carnet montre l'utilisation de base d'un petit ensemble de données de lectures de capteurs de maison intelligente.
ACTGAN (Anyway CTGAN) est une extension de l'implémentation populaire CTGAN qui fournit des fonctionnalités supplémentaires pour améliorer l'utilisation de la mémoire, la détection automatique et la transformation des colonnes, et bien plus encore.
Pour utiliser ce modèle, vous devrez installer manuellement SDV :
pip install sdv<0.18
Gardez à l'esprit que cela installera également plusieurs dépendances comme PyTorch sur lesquelles SDV s'appuie, ce qui peut entrer en conflit avec les versions de PyTorch installées pour être utilisées avec d'autres modèles comme Timeseries DGAN.
L'interface ACTGAN est un surensemble de l'interface CTGAN. Pour voir les fonctionnalités supplémentaires, veuillez jeter un œil au bloc-notes de démonstration ACTGAN dans le répertoire examples
de ce référentiel.
Ce package permet aux développeurs de s'immerger rapidement dans la génération de données synthétiques grâce à l'utilisation de réseaux de neurones. Les éléments les plus complexes du travail avec des bibliothèques telles que Tensorflow et la confidentialité différentielle sont regroupés dans des classes et des fonctions Python conviviales. Il existe deux modes de haut niveau qui peuvent être utilisés.
Le mode simple entraînera ligne par ligne sur un fichier de texte d'entrée. Lors de la génération de données, le générateur génère un objet personnalisé qui peut être utilisé de différentes manières en fonction de votre cas d'utilisation. Ce portable illustre ce mode.
Cette bibliothèque supporte nativement les CSV/DataFrames en utilisant le mode "batch" DataFrame. Ce module a fourni un wrapper autour de notre mode simple conçu pour travailler avec des données tabulaires. De plus, il est capable de gérer un nombre élevé de colonnes en divisant le DataFrame d'entrée en « lots » de colonnes et en entraînant un modèle sur chaque lot. Ce bloc-notes présente un aperçu de l'utilisation native de cette bibliothèque avec DataFrames.
Il y a quatre composants principaux à prendre en compte lors de l'utilisation de cette bibliothèque.
Configurations. Les configurations sont des classes spécifiques à un moteur ML sous-jacent utilisé pour entraîner et générer des données. Un exemple serait d'utiliser TensorFlowConfig
pour créer tous les paramètres nécessaires pour former un modèle basé sur TF. LocalConfig
est un alias de TensorFlowConfig
pour une compatibilité descendante avec les anciennes versions de la bibliothèque. Un modèle est enregistré dans un répertoire désigné, qui peut éventuellement être archivé et utilisé ultérieurement.
Tokeniseurs. Les tokenizers convertissent le texte saisi en identifiants basés sur des nombres entiers qui sont utilisés par le moteur ML sous-jacent. Ces tokenizers peuvent être créés et envoyés à l’entrée de formation. Ceci est facultatif, et si aucun tokenizer spécifique n’est spécifié, celui par défaut sera utilisé. Vous pouvez trouver ici un exemple qui utilise un simple tokenizer char par char pour créer un modèle à partir d'un CSV d'entrée. Lors de l'entraînement dans un mode privé non différentiel, nous suggérons d'utiliser le tokenizer SentencePiece
par défaut, un tokenizer non supervisé qui apprend les unités de sous-mots (par exemple, le codage par paire d'octets (BPE) [Sennrich et al.]) et le modèle de langage unigramme [Kudo. ]) pour un entraînement plus rapide et une précision accrue du modèle synthétique.
Entraînement. La formation d'un modèle combine la configuration et le tokenizer et crée un modèle, qui est stocké dans le répertoire désigné, qui peut être utilisé pour générer de nouveaux enregistrements.
Génération. Une fois qu'un modèle est formé, n'importe quel nombre de nouvelles lignes ou enregistrements peuvent être générés. En option, un validateur d'enregistrement peut être fourni pour garantir que les données générées répondent à toutes les contraintes nécessaires. Consultez nos cahiers pour des exemples sur les validateurs.
En plus des quatre composants principaux, le package gretel-synthetics
est également livré avec un ensemble d'utilitaires utiles pour former des modèles synthétiques avancés et évaluer des ensembles de données synthétiques.
Certaines de ces fonctionnalités comportent de grandes dépendances, elles sont donc fournies en tant que supplément appelé utils
. Pour installer ces dépendances, vous pouvez exécuter
pip install gretel-synthetics[utils]
Pour plus de détails, veuillez consulter la documentation de l'API du module utilitaire.
La prise en charge différentielle de la confidentialité pour notre mode TensorFlow s'appuie sur l'excellent travail effectué par l'équipe Google TF et sa bibliothèque TensorFlow Privacy.
Lors de l'utilisation de DP, nous recommandons actuellement d'utiliser le tokenizer de caractères, car il ne créera qu'un vocabulaire de jetons uniques et supprimera le risque que des données sensibles soient mémorisées en tant que jetons réels pouvant être rejoués pendant la génération.
Il existe également quelques options de configuration notables telles que :
predict_batch_size
doit être défini sur 1dp
devrait être activélearning_rate
, dp_noise_multiplier
, dp_l2_norm_clip
et dp_microbatches
peuvent être ajustés pour atteindre différentes valeurs epsilon.reset_states
devrait être désactivéVeuillez consulter notre exemple de bloc-notes pour former un modèle DP basé sur l'ensemble de données du prix Netflix.