具有可选差异隐私的合成数据生成

gretel-synthetics的Python项目详细描述


格雷特合成纤维

Gobs the Gretel.ai cat
一个开源的合成数据库格雷特。艾

gretel-synthetics workflowsDocumentation StatusGitHubPyPIPythonDownloadsGitHub starsSlack

文件

现在就试试吧!在

如果您想快速发现gretel synthetics,只需单击下面的按钮并按照教程进行操作!在

Open in Colab

查看其他示例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显示了将此库与数据帧本机一起使用的概述。在

组件

使用此库时,需要注意四个主要组件。在

  1. 配置。配置是特定于用于训练和生成数据的底层ML引擎的类。一个例子是使用TensorFlowConfig创建所有必要的参数来训练基于TF的模型。LocalConfig别名为TensorFlowConfig,以便向后兼容旧版本的库。模型被保存到指定的目录中,以后可以选择对其进行存档和利用。在

  2. 标记器。标记器将输入文本转换为底层ML引擎使用的基于整数的id。可以创建这些标记器并将其发送到训练输入。这是可选的,如果没有指定特定的标记器,则将使用默认标记器。您可以在这里找到an example,它使用简单的逐字符标记器从输入CSV构建模型。在非差异私有模式下进行训练时,我们建议使用默认的SentencePiece标记器,一个无监督的标记器,它学习子字单元(例如,字节对编码(BPE)[Sennrich et al.])和unigram语言模型[Kudo.]),以更快的训练和提高合成模型的准确性。在

  3. 培训。训练模型结合了配置和标记器,并构建了一个模型,该模型存储在指定的目录中,可用于生成新的记录。在

  4. 一代人。一旦对模型进行了训练,就可以生成任意数量的新行或记录。可选地,可以提供一个记录验证器来确保生成的数据满足任何必要的约束。有关验证器的示例,请参阅我们的笔记本。在

差别隐私

我们的TensorFlow模式的差异隐私支持是建立在googletf团队和他们的TensorFlow Privacy library所做的伟大工作的基础上的。在

当使用DP时,我们目前建议使用字符标记器,因为它只会创建单个标记的词汇表,并消除敏感数据被存储为实际标记的风险,这些标记可以在生成过程中重放。在

还有一些值得注意的配置选项,例如:

  • predict_batch_size应设置为1
  • dp应该被启用
  • learning_ratedp_noise_multiplierdp_l2_norm_clip、和{}可以调整以获得各种epsilon值。在
  • reset_states应该被禁用

请参阅我们的example Notebook来训练基于Netflix Prize数据集的DP模型。在

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何通过标记名检索多个标记中的元素以进行selenium自动化测试   java iText如何查找最后一行被拆分到下一页   java如何在hudson中的特定jdk上运行Findbugs和PMD?   如何确保java程序与java Environment 6兼容?   对形状进行分组,这样我就可以通过鼠标点击和java处理循环浏览它们   使用生成器映射对象时,java定义无效   maven Java:Struts2和IntelliJ供初学者使用   java子类不继承父类字段   java Android Grid View在Android版本kitkat上崩溃   java Hibernate从缓存返回错误的列表,即使预期的列表与缓存的列表不同   java SendGrid:模板和替换标记   用于普通生产者| Kafka流的java自定义分区器   安卓理解Java内部类中的作用域   无法从Android Studio中的非静态方法调用java非静态方法   比较两个XML响应的JavaXMLUnit   java使用keytool列出密钥   不使用Java客户端库将视频上传到YouTube数据API v3   java My While循环即使在满足条件时也不会结束   自动在外部存储字符串数据,以便以后在Java中使用