来自 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 模型。