用于发布隐私保护查询和统计信息的差异私有算法和机制的可插入库
opendp-whitenoise-core的Python项目详细描述
核心差异隐私库Python绑定
此存储库包含到Core library及其底层Rust二进制文件的python绑定。在
- 有关此库实际运行的示例,请参阅Samples repository中的Python笔记本。在
- 此外,请参阅随附的System repository存储库,其中包含用于区分隐私的工具。在
差别隐私是隐私保护的黄金标准。该项目旨在将学术界的理论解决方案与从现实世界部署中吸取的实际经验教训联系起来,使差异隐私在未来的部署中广泛使用。具体来说,我们提供了几个基本的构建块,可供涉及敏感数据的人员使用,其实现基于经过审查和成熟的差异隐私研究。在核心库中,我们提供了一个可插入的开放源代码库,其中包含用于发布隐私保护查询和统计信息的差异私有算法和机制,以及用于定义分析和验证器的api,用于评估这些分析并在数据集上组合总的隐私损失。在
此库为建筑分析提供了一个易于使用的界面。在
差异私有计算被指定为一个protobuf分析图,可以对其进行验证和执行,以生成差异私有的数据发布。在
- More about the Core Python Bindings 在
- Installation 在
- Core Documentation
- Communication
- Releases and Contributing
关于核心Python绑定的更多信息
组件
获取库中可用的大量组件的完整列表see this documentation.
架构
核心库系统架构is described in the parent project。 此包是语言绑定的实例。语言绑定的目的是为Python提供一个简单的编程接口,用于构建和发布分析。在
用于确定组件是否释放不同私有数据的逻辑,以及噪声的缩放、属性跟踪和精度估计都由一个名为Validator的本地rust库处理。 分析中组件的实际执行由本机Rust运行时处理。在
安装
二进制文件
python3.6+的pypi上提供了初始的Linux和OS X二进制文件:
- https://pypi.org/project/opendp-whitenoise-core/
pip3 install opendp-whitenoise
这些二进制文件已经在OSX和Ubuntu上使用,并且正在进行额外的测试。在
来源
- 在
克隆存储库
git clone --recurse-submodules git@github.com:opendifferentialprivacy/whitenoise-core-python.git
如果您已经在没有子模块的情况下克隆了存储库
^{pr2}$ 在 - 在
安装核心依赖项
Mac
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
Windows
安装WSL并参考linux说明。在
在 - 在
安装包的实时重新加载开发人员版本
pip3 install -r requirements/dev.txt pip3 install -e .
在 - 在
生成代码(核心更改时随时重新运行)
如有必要,请参阅troubleshooting.md。在exportWN_DEBUG=true# optional- for faster compilation and slower execution python3 scripts/code_generation.py
在 - 在
生成文档(可选)
./scripts/build_docs.sh
在
核心文档
沟通
- 请使用GitHub issues生成错误报告、功能请求、安装问题和想法。在
- Gitter可用于一般聊天和在线讨论。在
- 如有其他要求,请致电whitenoise@opendp.io与我们联系。
- 注意:我们鼓励您使用GitHub issues,特别是对于bug。
释放和贡献
如果您在creating an issue之前遇到错误,请通知我们。在
我们感谢所有的贡献,并欢迎没有事先讨论的错误修复拉请求。在
如果您计划提供新功能,那么实用程序f功能或核心扩展,请先打开一个问题,并与我们讨论该功能。在
- 未经讨论就发送拉取请求(PR)可能会导致PR被拒绝,因为我们可能会将核心转移到您可能意识不到的另一个方向。在
还有一个面向新开发人员的contributing guide。在
- 项目
标签: