具有可选差异隐私的合成数据生成
gretel-synthetics的Python项目详细描述
格雷特合成纤维
文件
现在就试试吧!在
如果您想快速发现gretel synthetics,只需单击下面的按钮并按照教程进行操作!在
查看其他示例here。在
入门
默认情况下,我们不通过pip安装Tensorflow,因为很多开发人员和云服务,比如googlecolab 为他们的硬件运行定制版本。如果您希望pip安装Tensorflow和gretel synthetics, 请改用下面的[tf]命令。在
pip install -U . # Do not install Tensorflow by default (assuming you have built a distro for your hardware)
pip install -U -e ".[tf]" # Install a pinned version of Tensorflow"
或
^{pr2}$然后。。。
$ pip install jupyter
$ jupyter notebook
当UI在浏览器中启动时,导航到examples/synthetic_records.ipynb
并开始生成!在
概述
这个软件包允许开发人员通过使用神经网络快速沉浸在合成数据生成中。像Python和更友好的privacy或flow这样的复杂的函数被绑定到Python中。有两种高级模式可以利用。在
简单模式
简单模式将在文本的输入文件上对每一行进行训练。生成数据时,生成器将生成一个自定义对象,该对象可以根据您的用例以各种不同的方式使用。This notebook演示了这种模式。在
数据帧模式
此库使用DataFrame“批处理”模式以本机方式支持CSV/DataFrames。这个模块为我们的简单模式提供了一个包装器,用于处理表格数据。此外,它还能够处理大量的列,方法是将输入数据帧分解为列的“批处理”并在每个批中训练一个模型。This notebook显示了将此库与数据帧本机一起使用的概述。在
组件
使用此库时,需要注意四个主要组件。在
- 在
配置。配置是特定于用于训练和生成数据的底层ML引擎的类。一个例子是使用
在TensorFlowConfig
创建所有必要的参数来训练基于TF的模型。LocalConfig
别名为TensorFlowConfig
,以便向后兼容旧版本的库。模型被保存到指定的目录中,以后可以选择对其进行存档和利用。在 - 在
标记器。标记器将输入文本转换为底层ML引擎使用的基于整数的id。可以创建这些标记器并将其发送到训练输入。这是可选的,如果没有指定特定的标记器,则将使用默认标记器。您可以在这里找到an example,它使用简单的逐字符标记器从输入CSV构建模型。在非差异私有模式下进行训练时,我们建议使用默认的
在SentencePiece
标记器,一个无监督的标记器,它学习子字单元(例如,字节对编码(BPE)[Sennrich et al.])和unigram语言模型[Kudo.]),以更快的训练和提高合成模型的准确性。在 - 在
培训。训练模型结合了配置和标记器,并构建了一个模型,该模型存储在指定的目录中,可用于生成新的记录。在
在 - 在
一代人。一旦对模型进行了训练,就可以生成任意数量的新行或记录。可选地,可以提供一个记录验证器来确保生成的数据满足任何必要的约束。有关验证器的示例,请参阅我们的笔记本。在
在
差别隐私
我们的TensorFlow模式的差异隐私支持是建立在googletf团队和他们的TensorFlow Privacy library所做的伟大工作的基础上的。在
当使用DP时,我们目前建议使用字符标记器,因为它只会创建单个标记的词汇表,并消除敏感数据被存储为实际标记的风险,这些标记可以在生成过程中重放。在
还有一些值得注意的配置选项,例如:
predict_batch_size
应设置为1dp
应该被启用learning_rate
、dp_noise_multiplier
、dp_l2_norm_clip
、和{}可以调整以获得各种epsilon值。在 reset_states
应该被禁用
请参阅我们的example Notebook来训练基于Netflix Prize数据集的DP模型。在
- 项目
标签: