/PySyft

A library for encrypted, privacy preserving deep learning

Primary LanguagePythonOtherNOASSERTION

Introduction

Binder Build Status Chat on Slack FOSSA Status

PySyft is a Python library for secure, private Deep Learning. PySyft decouples private data from model training, using Multi-Party Computation (MPC) within PyTorch. View the paper on Arxiv. Join the movement on Slack.

See PySyft in Action

  • Emulate remote PyTorch execution - This notebook demonstrates the tensor passing between workers, though both the workers live in the same environment.

  • Emulate remote PyTorch execution using sockets: Server | Client - This notebook demonstrates the tensor passing and remote execution, with workers living in different environments.

    Note: Run Server before Client

  • Federated Learning - This notebook demonstrates the model training over distributed data (data belonging to multiple owners).

Docker

git clone https://github.com/OpenMined/PySyft.git
cd PySyft
scripts/run_docker.sh

Image size: 644MB

The container mount the examples folder on a volume so every change on the notebooks is persistent. Furthermore the container is deleted when it is stopped, in a way to facilitate development. You just have to change PySyft code, and run the run_docker.sh script to observe changes you've made on notebooks.

Installation

PySyft supports Python >= 3.6 and PyTorch 0.3.1

Pick the proper PyTorch version according to your machine: CPU | CUDA9.1 | CUDA9.0 | CUDA8.0

conda install pytorch=0.3.1 -c soumith
pip3 install -r requirements.txt
python3 setup.py install

On Windows use the following steps to install PyTorch 0.3.1-

conda install -c peterjc123 pytorch
conda install -c peterjc123 pytorch-cpu

Run Unit Tests

python3 setup.py test

Alternatively, tests can be run with

make test

Run Local Notebook Server

All the examples can be played with by running the command

make notebook

and selecting the pysyft kernel

Join the rapidly growing community of 2500+ on Slack and help us in our mission. We are really friendly people!

Organizational Contributions

We are very grateful for contributions to PySyft from the following organizations!

coMind Website & coMind Github

Disclaimer

Do NOT use this code to protect data (private or otherwise) - at present it is very insecure.

License

Apache License 2.0

FOSSA Status