Skip to main content

Perform numpy-like analysis on data that remains in someone elses server

Project description



Syft Logo

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

Quickstart

LinuxmacOSWindowsDockerKubernetes

Install Client

$ pip install -U syft[data_science]

Launch Server

# from Jupyter / Python
import syft as sy
sy.requires(">=0.8.8,<0.8.9")
server = sy.orchestra.launch(
    name="my-datasite",
    port=8080,
    create_producer=True,
    n_consumers=1,
    dev_mode=True,
    reset=True, # resets database
)
# or from the command line
$ syft launch --name=my-datasite --port=8080 --reset=True

Starting syft-datasite server on 0.0.0.0:8080

Launch Client

import syft as sy
sy.requires(">=0.8.8,<0.8.9")
datasite_client = sy.login(
    port=8080,
    email="info@openmined.org",
    password="changethis"
)

PySyft in 10 minutes

📝 API Example Notebooks

Deploy Kubernetes Helm Chart

0. Deploy Kubernetes

Required resources: 1 CPU and 4GB RAM. However, you will need some special instructions to deploy, please consult these instructions or look at the resource constraint testing here.
Recommended resources: 8+ Cores and 16GB RAM

If you're using Docker Desktop to deploy your Kubernetes, you may need to go into Settings > Resources and increase CPUs and Memory.

Note: Assuming we have a Kubernetes cluster already setup.

1. Add and update Helm repo for Syft

helm repo add openmined https://openmined.github.io/PySyft/helm
helm repo update openmined

2. Search for available Syft versions

helm search repo openmined/syft --versions --devel

3. Set your preferred Syft Chart version

SYFT_VERSION="<paste the chart version number>"

4. Provisioning Helm Charts

helm install my-datasite openmined/syft --version $SYFT_VERSION --namespace syft --create-namespace --set ingress.className="traefik"

Ingress Controllers

For Azure AKS

helm install ... --set ingress.className="azure-application-gateway"

For AWS EKS

helm install ... --set ingress.className="alb"

For Google GKE we need the gce annotation.

helm install ... --set ingress.class="gce"

Note:

🚨 Our old deployment tool HAGrid has been deprecated. For the updated deployment options kindly refer to:

Docs and Support

Install Notes

  • PySyft 0.8.6 Requires: 🐍 python 3.10 - 3.12 - Run: pip install -U syft
  • Syft Server Requires: 🐳 docker or ☸️ kubernetes

Versions

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

Deprecated:

PySyft and Syft Server 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

PySyft (Beta): pip install -U syft --pre

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 datasites 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 datasite. 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.

🏰 Datasite 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 (Datasites) and their subscribers (Data Scientists) and can provide access to a collection of datasites 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

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

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.9.0b4.tar.gz (622.8 kB view details)

Uploaded Source

Built Distribution

syft-0.9.0b4-py2.py3-none-any.whl (718.0 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file syft-0.9.0b4.tar.gz.

File metadata

  • Download URL: syft-0.9.0b4.tar.gz
  • Upload date:
  • Size: 622.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.4

File hashes

Hashes for syft-0.9.0b4.tar.gz
Algorithm Hash digest
SHA256 7d31629b45e7f8db98d3137e1803adf5846ee525e6888700c7c5ab8ec2fde804
MD5 39d26a6eb82fc492cbde03344490a184
BLAKE2b-256 747e7eac3e588425c935d160d8f5c0e892dca7342fb78cb57a8b1e47cce66198

See more details on using hashes here.

File details

Details for the file syft-0.9.0b4-py2.py3-none-any.whl.

File metadata

  • Download URL: syft-0.9.0b4-py2.py3-none-any.whl
  • Upload date:
  • Size: 718.0 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.4

File hashes

Hashes for syft-0.9.0b4-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 42167ca625ba1536b15867875639a6d63cbdf75f9e1b1bd64bdc7958b473edd0
MD5 4a04d8d5a63c80a86cfc220207fce92d
BLAKE2b-256 6a2845f5770a54edafdec40aef78c36d6e415a9d641de57976e996280076be0a

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