Skip to main content

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

项目描述

格蕾特合成材料

Gobs the Gretel.ai 猫
来自 Gretel.ai 的许可合成数据库

gretel-synthetics 工作流程 文件状态 CLA 助理 派皮 Python 下载 GitHub 星星 松弛

文档

现在就试试吧!

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

在 Colab 中打开

在此处查看其他示例。

入门

默认情况下,我们不通过 pip 安装 Tensorflow,因为许多开发人员和云服务(如 Google Colab)正在为其硬件运行定制版本。

pip install -U .

或者

pip install gretel-synthetics

然后...

$ pip install jupyter
$ jupyter notebook

当 UI 在您的浏览器中启动时,导航到examples/synthetic_records.ipynb并开始生成!

如果要在gretel-synthetics本地安装并使用 GPU(推荐):

  1. 创建一个虚拟环境(例如使用conda
$ conda create --name tf python=3.9
  1. 激活虚拟环境
$ conda activate tf
  1. 运行设置脚本./setup-utils/setup-gretel-synthetics-tensorflow24-with-gpu.sh

最后一步将安装 GPU 使用所需的所有软件包,tensorflow=2.8以及gretel-synthetics. 请注意,此脚本仅适用于 Ubuntu 18.04。您可能需要针对其他操作系统版本对其进行修改。

时间序列 DGAN 模型入门

timeseries DGAN 模块包含针对时间序列数据优化的 DoppelGANger 模型的 PyTorch 实现。与 tensorflow 类似,您需要手动安装 pytorch

pip install torch==1.11.0

这个笔记本展示了智能家居传感器读数的小数据集的基本用法。

概述

该软件包允许开发人员通过使用神经网络快速沉浸在合成数据生成中。使用 Tensorflow 和差分隐私等库的更复杂部分被捆绑到友好的 Python 类和函数中。有两种可以使用的高级模式。

简单模式

简单模式将在文本输入文件上逐行训练。生成数据时,生成器将生成一个自定义对象,该对象可以根据您的用例以多种不同方式使用。本笔记本演示了这种模式。

数据帧模式

该库使用 DataFrame“批处理”模式本机支持 CSV / DataFrames。这个模块为我们的简单模式提供了一个包装器,该模式适用于处理表格数据。此外,它能够通过将输入 DataFrame 分解为“批次”列并在每个批次上训练模型来处理大量列。这个 notebook展示了在本地使用这个库和 DataFrames 的概述。

成分

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

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

  2. 分词器。标记器将输入文本转换为基础 ML 引擎使用的基于整数的 ID。可以创建这些标记器并将其发送到训练输入。这是可选的,如果没有指定特定的分词器,那么将使用默认的分词器。您可以在此处找到一个示例,该示例使用简单的逐字符标记器从输入 CSV 构建模型。在非差分私有模式下进行训练时,我们建议使用默认分SentencePiece词器,一种学习子词单元的无监督分词器(例如,字节对编码 (BPE) [ Sennrich 等人])和一元语言模型[ Kudo. ]) 以加快训练速度并提高合成模型的准确性。

  3. 训练。训练模型将配置和分词器结合起来,构建一个模型,该模型存储在指定目录中,可用于生成新记录。

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

实用程序

除了四个主要组件之外,该gretel-synthetics软件包还附带一组实用程序,有助于训练高级合成模型和评估合成数据集。

其中一些功能带有很大的依赖关系,因此它们作为额外的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可以调整以实现各种 epsilon 值。
  • reset_states应该禁用

请参阅我们的示例 Notebook,以基于Netflix Prize数据集训练 DP 模型。

项目详情


下载文件

下载适用于您平台的文件。如果您不确定该选择哪一个,请详细了解