/PySyft

Private Deep Learning Client

Primary LanguagePythonApache License 2.0Apache-2.0

Syft

Chat on Slack Build Status codecov Help Contribute to Open Source

Homomorphically Encrypted Deep Learning Library

The goal of this library is to give the user the ability to efficiently train Deep Learning models in a homomorphically encrypted state, without needing to be an expert in either. Furthermore, by understanding the characteristics of both Deep Learning and Homomorphic Encryption, we hope to find a very performant combinations of the two. Also, check the main demonstration from the Sonar project.

Local setup

Prerequisites

  • Make sure Python 3.5+ in installed on your machine by checking python3 --version
  • Set up a virtual environment for the Python libraries (optional, recommended)
  • Install our OpenMined Unity app by following the guidelines [here] (https://github.com/OpenMined/OpenMined)

Python Requirements

The Python dependencies are listed in requirements.txt and can be installed through

pip3 install -r requirements.txt

PySyft installation

If you simply want to to use PySyft, it is enough to install the library with:

python3 setup.py install

note: If you have anaconda installed, you can just run bash install_for_anaconda.sh.

For Contributors

If you are interested in contributing to Syft, first check out our Contributor Quickstart Guide and then sign into our Slack Team channel #team_pysyft to let us know which projects sound interesting to you! (or propose your own!).

Relevant Literature

As both Homomorphic Encryption and Deep Learning are still somewhat sparsely known, below is a curated list of relevant reading materials to bring you up to speed with the major concepts and themes of these exciting fields.

Encrypted Deep Learning - Recommended Reading:

Homomorphic Encryption - Recommended Reading:

Relevant Papers:

Related Libraries:

Related Blogs:

License

Apache-2.0 by OpenMined contributors