來自 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。您可能需要針對其他作業系統版本修改它。
時間序列 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 類別和函數中。有兩種可以使用的高級模式。
簡單模式將在文字輸入檔上逐行訓練。生成資料時,生成器將產生一個自訂對象,可以根據您的用例以多種不同的方式使用該對象。本筆記本示範了這種模式。
本函式庫使用 DataFrame「批次」模式原生支援 CSV / DataFrame。此模組為我們的簡單模式提供了一個包裝器,適合處理表格資料。此外,它還能夠透過將輸入 DataFrame 分解為「批次」列並在每個批次上訓練模型來處理大量列。本筆記本展示如何將此程式庫與 DataFrame 原生結合使用的概述。
使用此庫時需要注意四個主要元件。
配置。配置是特定於用於訓練和產生資料的底層 ML 引擎的類別。一個例子是使用TensorFlowConfig
建立所有必要的參數來訓練基於 TF 的模型。 LocalConfig
是TensorFlowConfig
的別名,以向後相容舊版本的庫。模型被儲存到指定目錄,可以選擇存檔並在以後使用。
分詞器。分詞器將輸入文字轉換為基礎 ML 引擎所使用的基於整數的 ID。可以建立這些標記器並將其發送到訓練輸入。這是可選的,如果沒有指定特定的分詞器,則將使用預設的分詞器。您可以在此處找到一個範例,該範例使用簡單的逐字分詞器從輸入 CSV 建立模型。在非差分私有模式下進行訓練時,我們建議使用預設的SentencePiece
分詞器,這是一種無監督分詞器,可以學習子詞單元(例如,位元組對編碼 (BPE) [Sennrich 等人])和一元語言模型[Kudo。
訓練。訓練模型結合了配置和分詞器並建立模型,該模型儲存在指定目錄中,可用於產生新記錄。
一代。一旦模型經過訓練,就可以產生任意數量的新行或記錄。可選地,可以提供記錄驗證器以確保產生的資料滿足任何必要的限制。有關驗證器的範例,請參閱我們的筆記本。
除了四個主要組件之外, gretel-synthetics
套件還附帶了一組實用程序,有助於訓練高級合成模型和評估合成資料集。
其中一些功能具有很大的依賴性,因此它們作為額外的utils
提供。若要安裝這些依賴項,您可以執行
pip install gretel-synthetics[utils]
有關更多詳細信息,請參閱實用程式模組 API 文件。
對 TensorFlow 模式的差分隱私支援建立在 Google TF 團隊及其 TensorFlow 隱私庫所做的出色工作的基礎上。
在使用 DP 時,我們目前建議使用字元標記產生器,因為它只會建立單一標記的詞彙表,並消除敏感資料被儲存為可以在生成過程中重播的實際標記的風險。
還有一些值得注意的配置選項,例如:
predict_batch_size
應設定為 1dp
learning_rate
、 dp_noise_multiplier
、 dp_l2_norm_clip
和dp_microbatches
可以調整以實現各種 epsilon 值。reset_states
請參閱我們的範例筆記本,用於基於 Netflix 獎資料集訓練 DP 模型。