Eine freizügige synthetische Datenbibliothek von Gretel.ai
Wenn Sie Gretel-Synthetics schnell entdecken möchten, klicken Sie einfach auf die Schaltfläche unten und folgen Sie den Tutorials!
Weitere Beispiele finden Sie hier.
Dieser Abschnitt führt Sie durch die Installation von gretel-synthetics
und Abhängigkeiten, die nicht direkt vom Python-Paketmanager installiert werden.
Standardmäßig installieren wir bestimmte Kernanforderungen nicht. Die folgenden Abhängigkeiten sollten außerhalb der Installation von gretel-synthetics
installiert werden, je nachdem, welche Modelle Sie verwenden möchten.
Diese Abhängigkeiten können wie folgt installiert werden:
pip install tensorflow==2.12.1 # for LSTM
pip install sdv<0.18 # for ACTGAN
pip install torch==2.0 # for Timeseries DGAN
Um das eigentliche gretel-synthetics
Paket zu installieren, klonen Sie zuerst das Repo und dann ...
pip install -U .
oder
pip install gretel-synthetics
Dann...
pip install jupyter
jupyter notebook
Wenn die Benutzeroberfläche in Ihrem Browser startet, navigieren Sie zu examples/synthetic_records.ipynb
und beginnen Sie mit der Generierung!
Wenn Sie gretel-synthetics
lokal installieren und eine GPU verwenden möchten (empfohlen):
conda
) conda create --name tf python=3.9
conda activate tf
./setup-utils/setup-gretel-synthetics-tensorflow24-with-gpu.sh
aus Im letzten Schritt werden alle notwendigen Softwarepakete für die GPU-Nutzung installiert, tensorflow=2.8
und gretel-synthetics
. Beachten Sie, dass dieses Skript nur für Ubuntu 18.04 funktioniert. Möglicherweise müssen Sie es für andere Betriebssystemversionen ändern.
Das Zeitreihen-DGAN-Modul enthält eine PyTorch-Implementierung eines DoppelGANger-Modells, das für Zeitreihendaten optimiert ist. Ähnlich wie bei Tensorflow müssen Sie Pytorch manuell installieren:
pip install torch==1.13.1
Dieses Notebook zeigt die grundlegende Verwendung eines kleinen Datensatzes von Smart-Home-Sensormesswerten.
ACTGAN (Anyway CTGAN) ist eine Erweiterung der beliebten CTGAN-Implementierung, die einige zusätzliche Funktionen zur Verbesserung der Speichernutzung, der automatischen Erkennung und Transformation von Spalten und mehr bietet.
Um dieses Modell verwenden zu können, müssen Sie SDV manuell installieren:
pip install sdv<0.18
Beachten Sie, dass dadurch auch mehrere Abhängigkeiten wie PyTorch installiert werden, auf die SDV angewiesen ist, was zu Konflikten mit PyTorch-Versionen führen kann, die für die Verwendung mit anderen Modellen wie Timeseries DGAN installiert wurden.
Die ACTGAN-Schnittstelle ist eine Obermenge der CTGAN-Schnittstelle. Um die zusätzlichen Funktionen zu sehen, werfen Sie bitte einen Blick auf das ACTGAN-Demo-Notebook im examples
dieses Repos.
Dieses Paket ermöglicht Entwicklern einen schnellen Einstieg in die Generierung synthetischer Daten durch den Einsatz neuronaler Netze. Die komplexeren Teile der Arbeit mit Bibliotheken wie Tensorflow und Differential Privacy werden in benutzerfreundlichen Python-Klassen und -Funktionen gebündelt. Es gibt zwei High-Level-Modi, die genutzt werden können.
Im einfachen Modus wird Zeile für Zeile anhand einer Eingabetextdatei trainiert. Beim Generieren von Daten liefert der Generator ein benutzerdefiniertes Objekt, das je nach Anwendungsfall auf verschiedene Arten verwendet werden kann. Dieses Notebook demonstriert diesen Modus.
Diese Bibliothek unterstützt CSV/DataFrames nativ im DataFrame-„Batch“-Modus. Dieses Modul stellte einen Wrapper für unseren einfachen Modus bereit, der auf die Arbeit mit Tabellendaten ausgerichtet ist. Darüber hinaus ist es in der Lage, eine große Anzahl von Spalten zu verarbeiten, indem der Eingabe-DataFrame in „Batches“ von Spalten aufgeteilt und für jeden Batch ein Modell trainiert wird. Dieses Notizbuch zeigt einen Überblick über die native Verwendung dieser Bibliothek mit DataFrames.
Bei der Verwendung dieser Bibliothek sind vier Hauptkomponenten zu beachten.
Konfigurationen. Konfigurationen sind Klassen, die spezifisch für eine zugrunde liegende ML-Engine sind, die zum Trainieren und Generieren von Daten verwendet wird. Ein Beispiel wäre die Verwendung TensorFlowConfig
zum Erstellen aller notwendigen Parameter zum Trainieren eines Modells basierend auf TF. LocalConfig
ist aus Gründen der Abwärtskompatibilität mit älteren Versionen der Bibliothek ein Alias für TensorFlowConfig
. Ein Modell wird in einem bestimmten Verzeichnis gespeichert, das optional archiviert und später verwendet werden kann.
Tokenisierer. Tokenizer konvertieren Eingabetext in ganzzahlige IDs, die von der zugrunde liegenden ML-Engine verwendet werden. Diese Tokenizer können erstellt und an die Trainingseingabe gesendet werden. Dies ist optional. Wenn kein spezifischer Tokenizer angegeben ist, wird ein Standard-Tokenizer verwendet. Hier finden Sie ein Beispiel, das einen einfachen Char-by-Char-Tokenizer verwendet, um ein Modell aus einer Eingabe-CSV zu erstellen. Beim Training in einem nicht differenziell privaten Modus empfehlen wir die Verwendung des standardmäßigen SentencePiece
-Tokenizers, eines unbeaufsichtigten Tokenizers, der Unterworteinheiten (z. B. Byte-Pair-Encoding (BPE) [Sennrich et al.]) und das Unigram-Sprachmodell [Kudo] lernt. ]) für schnelleres Training und erhöhte Genauigkeit des synthetischen Modells.
Ausbildung. Das Training eines Modells kombiniert die Konfiguration und den Tokenizer und erstellt ein Modell, das im angegebenen Verzeichnis gespeichert wird und zum Generieren neuer Datensätze verwendet werden kann.
Generation. Sobald ein Modell trainiert ist, können beliebig viele neue Zeilen oder Datensätze generiert werden. Optional kann ein Datensatzvalidator bereitgestellt werden, um sicherzustellen, dass die generierten Daten alle erforderlichen Einschränkungen erfüllen. Beispiele für Validatoren finden Sie in unseren Notizbüchern.
Zusätzlich zu den vier Hauptkomponenten enthält das gretel-synthetics
-Paket auch eine Reihe von Dienstprogrammen, die beim Training fortgeschrittener Synthetikmodelle und der Auswertung synthetischer Datensätze hilfreich sind.
Einige dieser Funktionen weisen große Abhängigkeiten auf und werden daher als Extra namens utils
ausgeliefert. Um diese Abhängigkeiten zu installieren, können Sie ausführen
pip install gretel-synthetics[utils]
Weitere Einzelheiten finden Sie in den API-Dokumenten zum Utility-Modul.
Die differenzielle Datenschutzunterstützung für unseren TensorFlow-Modus basiert auf der großartigen Arbeit des Google TF-Teams und seiner TensorFlow-Datenschutzbibliothek.
Bei der Verwendung von DP empfehlen wir derzeit die Verwendung des Zeichen-Tokenizers, da dieser nur ein Vokabular aus einzelnen Token erstellt und das Risiko beseitigt, dass sensible Daten als tatsächliche Token gespeichert werden, die während der Generierung wiedergegeben werden können.
Es gibt auch einige bemerkenswerte Konfigurationsoptionen, wie zum Beispiel:
predict_batch_size
sollte auf 1 gesetzt werdendp
sollte aktiviert seinlearning_rate
, dp_noise_multiplier
, dp_l2_norm_clip
und dp_microbatches
können angepasst werden, um verschiedene Epsilon-Werte zu erreichen.reset_states
sollte deaktiviert seinBitte sehen Sie sich unser Beispiel-Notebook für das Training eines DP-Modells basierend auf dem Netflix-Prize-Datensatz an.