Gretel.ai の寛容な合成データ ライブラリ
gretel-synthetics をすぐに知りたい場合は、下のボタンをクリックしてチュートリアルに従ってください。
ここでその他の例を確認してください。
このセクションでは、 gretel-synthetics
と、Python パッケージ マネージャーによって直接インストールされない依存関係のインストールについて説明します。
デフォルトでは、特定のコア要件はインストールされません。使用する予定のモデルに応じて、次の依存関係をgretel-synthetics
のインストールの外部にインストールする必要があります。
これらの依存関係は、次の手順でインストールできます。
pip install tensorflow==2.12.1 # for LSTM
pip install sdv<0.18 # for ACTGAN
pip install torch==2.0 # for Timeseries DGAN
実際のgretel-synthetics
パッケージをインストールするには、まずリポジトリのクローンを作成してから...
pip install -U .
または
pip install gretel-synthetics
それから...
pip install jupyter
jupyter notebook
ブラウザで UI が起動したら、 examples/synthetic_records.ipynb
に移動して生成を開始します。
gretel-synthetics
ローカルにインストールし、GPU を使用する場合 (推奨):
conda
使用) conda create --name tf python=3.9
conda activate tf
./setup-utils/setup-gretel-synthetics-tensorflow24-with-gpu.sh
を実行します。最後のステップでは、GPU の使用に必要なすべてのソフトウェア パッケージ、 tensorflow=2.8
およびgretel-synthetics
をインストールします。このスクリプトは Ubuntu 18.04 でのみ機能することに注意してください。他の OS バージョンでは変更が必要になる場合があります。
timeseries DGAN モジュールには、時系列データ用に最適化された DoppelGANger モデルの PyTorch 実装が含まれています。 tensorflow と同様に、pytorch を手動でインストールする必要があります。
pip install torch==1.13.1
このノートブックでは、スマート ホーム センサーの読み取り値の小さなデータ セットに関する基本的な使用法を示します。
ACTGAN (Anyway CTGAN) は、一般的な CTGAN 実装の拡張機能であり、メモリ使用量、列の自動検出と変換などを改善するための追加機能を提供します。
このモデルを使用するには、SDV を手動でインストールする必要があります。
pip install sdv<0.18
これにより、SDV が依存する PyTorch などのいくつかの依存関係もインストールされるため、Timeseries DGAN などの他のモデルで使用するためにインストールされた PyTorch バージョンと競合する可能性があることに注意してください。
ACTGAN インターフェイスは、CTGAN インターフェイスのスーパーセットです。追加機能を確認するには、このリポジトリのexamples
ディレクトリにある ACTGAN デモ ノートブックを参照してください。
このパッケージを使用すると、開発者はニューラル ネットワークを使用した合成データ生成にすぐに取り組むことができます。 Tensorflow や差分プライバシーなどのライブラリを操作するより複雑な部分は、使いやすい Python クラスと関数にバンドルされています。利用できる 2 つの高レベル モードがあります。
シンプル モードでは、テキストの入力ファイルに対して 1 行ずつトレーニングします。データを生成するとき、ジェネレーターは、ユースケースに基づいてさまざまな方法で使用できるカスタム オブジェクトを生成します。このノートブックはこのモードを示しています。
このライブラリは、DataFrame の「バッチ」モードを使用して CSV / DataFrame をネイティブにサポートします。このモジュールは、表形式データの操作に適したシンプル モードのラッパーを提供しました。さらに、入力 DataFrame を列の「バッチ」に分割し、各バッチでモデルをトレーニングすることにより、多数の列を処理できます。このノートブックでは、このライブラリを DataFrame でネイティブに使用する概要を示します。
このライブラリを使用する際に注意すべき主要なコンポーネントが 4 つあります。
構成。構成は、データのトレーニングと生成に使用される基盤となる ML エンジンに固有のクラスです。例としては、 TensorFlowConfig
使用して、TF に基づいてモデルをトレーニングするために必要なパラメーターをすべて作成することが挙げられます。 LocalConfig
、ライブラリの古いバージョンとの下位互換性のためにTensorFlowConfig
のエイリアスになります。モデルは指定されたディレクトリに保存され、オプションでアーカイブして後で利用することができます。
トークナイザー。トークナイザーは、入力テキストを、基盤となる ML エンジンで使用される整数ベースの ID に変換します。これらのトークナイザーを作成してトレーニング入力に送信できます。これはオプションであり、特定のトークナイザーが指定されていない場合は、デフォルトのトークナイザーが使用されます。ここでは、単純な char-by-char トークナイザーを使用して入力 CSV からモデルを構築する例を見つけることができます。非差分プライベート モードでトレーニングする場合、デフォルトのSentencePiece
トークナイザー、サブワード単位 (バイト ペア エンコーディング (BPE) [Sennrich et al.] など) およびユニグラム言語モデルを学習する教師なしトークナイザーを使用することをお勧めします。 ]) トレーニングを高速化し、合成モデルの精度を向上させます。
トレーニング。モデルのトレーニングでは、構成とトークナイザーを組み合わせてモデルを構築します。モデルは、指定されたディレクトリに保存され、新しいレコードの生成に使用できます。
世代。モデルがトレーニングされると、任意の数の新しい行またはレコードを生成できます。オプションで、生成されたデータが必要な制約を満たしていることを確認するために、レコード検証機能を提供できます。バリデーターの例については、ノートブックを参照してください。
gretel-synthetics
パッケージには、4 つの主要コンポーネントに加えて、高度な合成モデルのトレーニングや合成データセットの評価に役立つ一連のユーティリティも付属しています。
この機能の一部には大きな依存関係があるため、 utils
という追加機能として出荷されます。これらの依存関係をインストールするには、次のコマンドを実行します。
pip install gretel-synthetics[utils]
詳細については、ユーティリティ モジュール API ドキュメントを参照してください。
TensorFlow モードの差分プライバシー サポートは、Google TF チームとその TensorFlow プライバシー ライブラリによって行われた優れた作業に基づいて構築されています。
DP を利用する場合、現在、文字トークナイザーを使用することをお勧めします。これは、単一トークンのボキャブラリーのみを作成し、機密データが生成中に再生できる実際のトークンとして記憶されるリスクを排除するためです。
次のような注目すべき構成オプションもいくつかあります。
predict_batch_size
1 に設定する必要がありますdp
有効にする必要がありますlearning_rate
、 dp_noise_multiplier
、 dp_l2_norm_clip
、およびdp_microbatches
さまざまなイプシロン値を達成するように調整できます。reset_states
無効にする必要がありますNetflix 賞データセットに基づいて DP モデルをトレーニングするためのサンプル ノートブックを参照してください。