Skip to content
/ PySyft Public
forked from OpenMined/PySyft

Perform data science on data that remains in someone else's server

License

Notifications You must be signed in to change notification settings

iaBIH/PySyft

 
 

Repository files navigation



Syft Logo

Perform data science on data that remains in someone else's server

Quickstart

LinuxmacOSWindows* ✅ DockerKubernetes

Install Client

$ pip install -U syft -f https://whls.blob.core.windows.net/unstable/index.html

Launch Server

# from Jupyter / Python
import syft as sy
sy.requires(">=0.8.1,<0.8.2")
node = sy.orchestra.launch(name="my-domain", port=8080, dev_mode=True, reset=True)
# or from the command line
$ syft launch --name=my-domain --port=8080 --reset=True

Starting syft-node server on 0.0.0.0:8080

Launch Client

import syft as sy
sy.requires(">=0.8.1,<0.8.2")
domain_client = sy.login(port=8080, email="[email protected]", password="changethis")

PySyft in 10 minutes

📝 API Example Notebooks

Deploy Kubernetes Helm Chart

$ kubectl create namespace syft
$ helm install my-domain syft --namespace syft --version 0.8.1 --repo https://openmined.github.io/PySyft/helm

Azure or GCP Ingress

$ helm install ... --set ingress.ingressClass="azure/application-gateway"
$ helm install ... --set ingress.ingressClass="gce"

Deploy to a Container Engine or Cloud

  1. Install our handy 🛵 cli tool which makes deploying a Domain or Gateway server to Docker or VM a one-liner:
    pip install -U hagrid

  2. Then run our interactive jupyter Install 🧙🏽‍♂️ WizardBETA:
    hagrid quickstart

  3. In the tutorial you will learn how to install and deploy:
    PySyft = our numpy-like 🐍 Python library for computing on private data in someone else's Domain

    PyGrid = our 🐳 docker / 🐧 vm Domain & Gateway Servers where private data lives

Docs and Support

Install Notes

  • HAGrid 0.3 Requires: 🐍 python 🐙 git - Run: pip install -U hagrid
  • Interactive Install 🧙🏽‍♂️ WizardBETA Requires 🛵 hagrid: - Run: hagrid quickstart
  • PySyft 0.8.1 Requires: 🐍 python 3.9 - 3.11 - Run: pip install -U syft
    *Windows users must run this first: pip install jaxlib==0.4.10 -f https://whls.blob.core.windows.net/unstable/index.html
  • PyGrid Requires: 🐳 docker, ☸️ kubernetes or 🐧 ubuntu VM - Run: hagrid launch ...

Versions

0.9.0 - Coming soon...
0.8.2 (Beta) - dev branch 👈🏽 API - Coming soon...
0.8.1 (Stable) - API

Deprecated:

PySyft and PyGrid use the same version and its best to match them up where possible. We release weekly betas which can be used in each context:

PySyft (Stable): pip install -U syft
PyGrid (Stable) hagrid launch ... tag=latest

PySyft (Beta): pip install -U syft --pre
PyGrid (Beta): hagrid launch ... tag=beta

HAGrid is a cli / deployment tool so the latest version of hagrid is usually the best.

What is Syft?

Syft

Syft is OpenMined's open source stack that provides secure and private Data Science in Python. Syft decouples private data from model training, using techniques like Federated Learning, Differential Privacy, and Encrypted Computation. This is done with a numpy-like interface and integration with Deep Learning frameworks, so that you as a Data Scientist can maintain your current workflow while using these new privacy-enhancing techniques.

Why should I use Syft?

Syft allows a Data Scientist to ask questions about a dataset and, within privacy limits set by the data owner, get answers to those questions, all without obtaining a copy of the data itself. We call this process Remote Data Science. It means in a wide variety of domains across society, the current risks of sharing information (copying data) with someone such as, privacy invasion, IP theft and blackmail will no longer prevent the vast benefits such as innovation, insights and scientific discovery which secure access will provide.

No more cold calls to get access to a dataset. No more weeks of wait times to get a result on your query. It also means 1000x more data in every domain. PySyft opens the doors to a streamlined Data Scientist workflow, all with the individual's privacy at its heart.

Terminology

👨🏻‍💼 Data Owners

👩🏽‍🔬 Data Scientists

Provide datasets which they would like to make available for study by an outside party they may or may not fully trust has good intentions.

Are end users who desire to perform computations or answer a specific question using one or more data owners' datasets.

🏰 Domain Server

🔗 Gateway Server

Manages the remote study of the data by a Data Scientist and allows the Data Owner to manage the data and control the privacy guarantees of the subjects under study. It also acts as a gatekeeper for the Data Scientist's access to the data to compute and experiment with the results.

Provides services to a group of Data Owners and Data Scientists, such as dataset search and bulk project approval (legal / technical) to participate in a project. A gateway server acts as a bridge between it's members (Domains) and their subscribers (Data Scientists) and can provide access to a collection of domains at once.

Community

Courses

Contributors

OpenMined and Syft appreciates all contributors, if you would like to fix a bug or suggest a new feature, please see our guidelines.

Contributors

Supporters

Open Collective

OpenMined is a fiscally sponsored 501(c)(3) in the USA. We are funded by our generous supporters on Open Collective.

Contributors

Disclaimer

Syft is under active development and is not yet ready for pilots on private data without our assistance. As early access participants, please contact us via Slack or email if you would like to ask a question or have a use case that you would like to discuss.

License

Apache License 2.0
Person icons created by Freepik - Flaticon

About

Perform data science on data that remains in someone else's server

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 65.9%
  • Jupyter Notebook 22.6%
  • Svelte 6.1%
  • TypeScript 1.9%
  • Shell 1.8%
  • JavaScript 1.0%
  • Other 0.7%