Skip to main content

A Library for Private, Secure Deep Learning

Project description

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 Federated Learning, Differential Privacy, and Multi-Party Computation (MPC) within PyTorch. Join the movement on Slack.

PySyft in Detail

A more detailed explanation of PySyft can be found in the paper on arxiv

PySyft has also been explained in video form by Siraj Raval

Pre-Installation

Optionally, we recommend that you install PySyft within the Conda virtual environment. If you are using Windows, I suggest installing Anaconda and using the Anaconda Prompt to work from the command line.

conda create -n pysyft python=3
conda activate pysyft # some older version of conda require "source activate pysyft" instead.
conda install jupyter notebook

Installation

PySyft supports Python >= 3.6 and PyTorch 1.1.0

pip install syft

If you have an installation error regarding zstd, run this command and then re-try installing syft.

pip install --upgrade --force-reinstall zstd

If this still doesn't work, and you happen to be on OSX, make sure you have OSX command line tools installed and try again.

You can also install PySyft from source on a variety of operating systems by following this installation guide.

Run Local Notebook Server

All the examples can be played with by running the command

make notebook

and selecting the pysyft kernel

Use the Docker image

Instead of installing all the dependencies on your computer, you can run a notebook server (which comes with Pysyft installed) using Docker. All you will have to do is start the container like this:

$ docker container run openmined/pysyft-notebook

You can use the provided link to access the jupyter notebook (the link is only accessible from your local machine).

NOTE: If you are using Docker Desktop for Mac, the port needs to be forwarded to localhost. In that case run docker with: bash $ docker container run -p 8888:8888 openmined/pysyft-notebook to forward port 8888 from the container's interface to port 8888 on localhost and then access the notebook via http://127.0.0.1:8888/?token=...

You can also set the directory from which the server will serve notebooks (default is /workspace).

$ docker container run -e WORKSPACE_DIR=/root openmined/pysyft-notebook

You could also build the image on your own and run it locally:

$ cd docker-image
$ docker image build -t pysyft-notebook .
$ docker container run pysyft-notebook

More information about how to use this image can be found on docker hub

Try out the Tutorials

A comprehensive list of tutorials can be found here

These tutorials cover how to perform techniques such as federated learning and differential privacy using PySyft.

High-level Architecture

alt text

Start Contributing

The guide for contributors can be found here. It covers all that you need to know to start contributing code to PySyft in an easy way.

Also join the rapidly growing community of 5000+ on Slack. The slack community is very friendly and great about quickly answering questions about the use and development of PySyft!

Troubleshooting

We have written an installation example in this colab notebook, you can use it as is to start working with PySyft on the colab cloud, or use this setup to fix your installation locally.

Organizational Contributions

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

Udacity coMind Arkhn Dropout Labs

Disclaimer

Do NOT use this code to protect data (private or otherwise) - at present it is very insecure. Come back in a couple months.

License

Apache License 2.0

FOSSA Status

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

syft-0.1.26a1.tar.gz (187.8 kB view details)

Uploaded Source

Built Distribution

syft-0.1.26a1-py3-none-any.whl (291.8 kB view details)

Uploaded Python 3

File details

Details for the file syft-0.1.26a1.tar.gz.

File metadata

  • Download URL: syft-0.1.26a1.tar.gz
  • Upload date:
  • Size: 187.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.3

File hashes

Hashes for syft-0.1.26a1.tar.gz
Algorithm Hash digest
SHA256 041c9266392efa9699a1f2e8fe10eb7ea24dc908e19adf0841ddef06580c7da6
MD5 0ec5e4e2c7ab11cc21c7b118837aa23f
BLAKE2b-256 daa44f4804ea930d138226188ff6bebe2d687993bcd5376e10ca72c1bfd0d3bd

See more details on using hashes here.

File details

Details for the file syft-0.1.26a1-py3-none-any.whl.

File metadata

  • Download URL: syft-0.1.26a1-py3-none-any.whl
  • Upload date:
  • Size: 291.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.3

File hashes

Hashes for syft-0.1.26a1-py3-none-any.whl
Algorithm Hash digest
SHA256 24c5c1df101aab8da551ca06142a09fa74dd8fa721cbaf2ad8e2a5e4f8481402
MD5 c0aa328eb48310963c06aa5b9d73460c
BLAKE2b-256 fe8d5c2d9931e1fa2f3770a2816896479e4f458558eacd60425a597164ea2c23

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page