Skip to main content

用于发布隐私保护查询和统计信息的差分私有算法和机制的可插拔库

项目描述

请注意,我们正在重命名工具包,并将在未来几周内引入新名称。

构建状态

核心差分隐私库 Python 绑定

该存储库包含与Core 库及其底层 Rust 二进制文件的 python 绑定。

  • 有关此库的实际示例,请参阅示例存储库中的 Python 笔记本。
  • 此外,请参阅随附的系统存储库存储库,其中包括用于差异隐私的工具。

差分隐私是隐私保护的黄金标准定义。该项目旨在将学术界的理论解决方案与从现实世界部署中吸取的实践经验联系起来,使差分隐私在未来的部署中广泛可用。具体来说,我们提供了几个基本构建块,可供涉及敏感数据的人使用,其实施基于经过审查和成熟的差分隐私研究。在 Core 库中,我们提供了一个可插入的开源库,其中包含用于发布隐私保护查询和统计的差分私有算法和机制,以及用于定义分析的 API 和用于评估这些分析并在数据集上构成总隐私损失的验证器.

该库为构建分析提供了一个易于使用的界面。

差分私有计算被指定为一个 protobuf 分析图,可以对其进行验证和执行以产生不同的私有数据发布。


有关核心 Python 绑定的更多信息

成分

有关库中可用的大量组件的完整列表,请参阅此文档。

建筑学

核心库系统架构在父项目中描述。这个包是语言绑定的一个实例。语言绑定的目的是为 Python 提供一个简单的编程接口,用于构建和发布分析。

用于确定组件是否发布不同的私有数据以及噪声缩放、属性跟踪和准确性估计的逻辑由称为 Validator 的本机 rust 库处理。分析中组件的实际执行由原生 Rust 运行时处理。

安装

二进制文件

Python 3.6+的pypi上提供了初始 Linux 和 OS X 二进制文件:

这些二进制文件已在 OS X 和 Ubuntu 上使用,并且正在进行额外的测试。

从源头

  1. 克隆存储库

    git clone --recurse-submodules git@github.com:opendifferentialprivacy/whitenoise-core-python.git
    

    如果您已经克隆了没有子模块的存储库

    git submodule init
    git submodule update
    
  2. 安装核心依赖

    苹果电脑

    curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
    xcode-select --install
    brew install protobuf python
    

    Linux

    curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
    sudo apt-get install diffutils gcc make m4 python
    # snap for protobuf 3, because apt comes with protobuf 2
    sudo snap install protobuf --classic
    

    视窗

    安装 WSL 并参考 linux 说明。

  3. 安装实时重新加载开发者版本的包

    pip3 install -r requirements/dev.txt
    pip3 install -e .
    
  4. 生成代码(在核心更改时重新运行)如有必要,
    请参阅Troubleshooting.md 。

    export WN_DEBUG=true # optional- for faster compilation and slower execution
    python3 scripts/code_generation.py
    
  5. 构建文档(可选)

    ./scripts/build_docs.sh
    

核心文档

沟通

  • 请使用GitHub 问题报告错误报告、功能请求、安装问题和想法。
  • Gitter可用于一般聊天和在线讨论。
  • 如有其他要求,请通过whitenoise@opendp.io与我们联系。
    • 注意:我们鼓励您使用GitHub 问题,尤其是对于错误。

发布和贡献

如果您通过创建问题遇到错误,请告诉我们。

我们感谢所有贡献,并欢迎在没有事先讨论的情况下进行错误修复的拉取请求。

如果您计划为核心贡献新功能、实用功能或扩展,请先打开一个问题并与我们讨论该功能。

  • 在没有讨论的情况下发送拉取请求 (PR) 最终可能会导致 PR 被拒绝,因为我们可能会将核心引向与您可能意识到的不同的方向。

还有一个针对新开发人员的贡献指南。

下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

内置分布

opendp_whitenoise_core-0.2.1-py3-none-any.whl (6.6 MB 查看哈希

已上传 py3