Skip to content

Releases: OpenMined/PySyft

v0.5.0 - Release Candidate 2

01 Jun 10:40
ca13c8c
Compare
Choose a tag to compare
Pre-release

0.5.0rc2

This is the second release candidate for version 0.5.0!

  • Recursive Serializable Plans with ResNet 18 example
  • PyGrid Integration fixes
  • New Mono Repo structure
  • Renamed master branch to main
  • Added torch==1.8.1 support
  • Many more bug fixes and minor improvements

v0.5.0 - Release Candidate 1

01 Apr 11:27
5755b1f
Compare
Choose a tag to compare
Pre-release

0.5.0rc1

This is the first release candidate for version 0.5.0!

Happy April Fools Day - sorry, this release is NOT a joke. 😄

We have added support for the following:

  • AST
    • New API for support libraries
    • static methods
    • global variables
    • dynamic methods
    • enums
  • Core
    • Storeable refactored
    • Basic Plans
    • Model Centric Federated Learning
      • KotlinSyft
      • PySyft (as a worker lib)
      • SwiftSyft is still in development
      • syft.js is still in development
    • CLI / Repl Support
    • Remote Dataloader
      • Torch Tensor
      • CSV
  • *Library Support
    • Python
      • OrderedDict
      • Slice
      • Iterator
      • Tuple
    • TenSEAL
    • SyMPC
    • PyDP
    • PSI
    • opacus
    • pandas
    • petlib
    • PIL
    • PyTorch Lightning (requires our branch)
    • zsks
    • numpy arrays
  • Grid
    • Grid Client
    • FL Client
  • PyTorch Support
    • 1.6.x
    • 1.7.x
    • 1.8.x
  • Python
    • 3.6
    • 3.7
    • 3.8
    • 3.9
  • OS
    • Mac
    • Windows
    • Linux
  • Updated Duet Logo
  • New Logging System
  • Integration Tests
  • Duet Notebook Tests
  • Benchmark Tests
  • Examples
    • DCGAN
    • MNIST
    • MNIST Lightning
    • SuperResolution
    • VAE
    • Model Centric Federated Learning
    • Homomorphic Encryption
    • Vertical Learning
    • Private Set Intersection
    • Secure Multi Party Compute
    • Privacy AI Series (Course 2)

* Please know that library support is still incomplete. This release is intended to support the basic, minimum requirements for the below libraries.

Acknowledgements

While this isn't an exhaustive list, we'd like to thank the following people for contributing to this release!

Adam J Hall
Animesh Gupta
Anshuman Singh
Anubhav Raj Singh
Ariann Farias
ArtistBanda
Arturo Marquez Flores
Avinash Swaminathan
Ayoub Benaissa
Ben Fielding
Bogdan Cebere
Chinmay Shah
Chirag Gomber
Chitresh Goel
Daniele Gadler
George-Cristian Muraru
Gokkulnath TS
H4LL
Harkirat Singh
Hideaki Takahashi (Syumei)
Ionesio Junior
Irina Bejan
JMLourier
Jasopaum
Jirka Borovec
Joel Lee
José Benardi de Souza Nunes
Koen van der Veen
Lee Yi Jie Joel
Madhava Jay
Nabanita Dash
Nahua
Nicolas Remerscheid
Param Mirani
Patrick Cason
Plamen Hristov
Praful932
Raghav Prabhakar
Rima
Robert Perrotta
Syumei
Théo Ryffel
Tudor Cebere
Vaibhav Vardhan
Vova Manannikov
Wansoo Kim
Zarreen Naowal Reza
akshay.verma
animesh-007
avinsit123
curtismitchell
dnabanita7
gleec14
jmaunon
koukyosyumei
lazy
marcalph
nahuakang
rahul
rajatrc1705
root
shubhendra
syumeikoukyo
tchaton
uid42
xutongye

v0.3.0

12 Nov 19:57
563866e
Compare
Choose a tag to compare

PySyft 0.3.0 Release Notes

Welcome to the next evolution of PySyft. Today we're releasing PySyft 0.3.0, which is a complete rewrite over the 0.2.x product line. Since this is a complete rewrite of the codebase, we strongly suggest that you use 0.3.0 if you're just getting started with PySyft. If you're an existing user of PySyft 0.2.x, there will still be some support for that product line but we encourage you to upgrade. As always, we are happy to assist in this process over Slack.

For those interested in trying out PySyft 0.3.0, we suggest you start with our "Duet" series of demos. All future releases will include a detailed breakdown of breaking changes, fixes, bug patches, and improvements.

v0.2.9

14 Sep 15:03
Compare
Choose a tag to compare

Patched

v0.2.9

14 Sep 14:59
Compare
Choose a tag to compare

TL;DR: Improve Function Secret Sharing for faster execution (5x faster than SecureNN) ; Add support for the BFV scheme ; Add benchmarks for monitoring ; Initialize FALCON implementation.

PySyft 0.2.9 Release Notes

New functionalities:

Bug fixes

Refactoring:

Docs & tutorials:

Tests & CI

v0.2.9

11 Sep 16:48
88c2606
Compare
Choose a tag to compare

Patched

v0.2.8

29 Jul 20:33
2241431
Compare
Choose a tag to compare

TL;DR: An incremental release for the benefit of mobile workers and pygrid. A new backend for encrypted computation.

PySyft 0.2.8 Release Notes

Breaking changes since v0.2.7:

  • Python 3.6 is not supported anymore (#3894)
  • Static and Dynamic FL concepts are resp. replaced with Model and Data centric (#3907 by @cereallarceny)

New functionality:

Bug fixes

Refactoring:

  • Improve remote garbage collection so support batched GC (#3805 by @LaRiffle)
  • Optimize communication in AvgPool, MaxPool and AdaptivePooling (#3836 by @LaRiffle)
  • Namespace dynamic FL client routes. Added url prefix dynamic to the Dynamic FL client url (#3853 by @sachin-101)
  • Improve public mul and div for AdditiveSharingTensor (#3835 by @LaRiffle)

Docs & tutorials:

Tests

v0.2.7

10 Jul 14:04
ed8d0c6
Compare
Choose a tag to compare

PySyft 0.2.7 Release Notes

New functionality:

Bug fixes

Refactoring:

Docs & tutorials:

Tests & CI

v0.2.6

24 May 21:55
4768040
Compare
Choose a tag to compare
v0.2.6 Pre-release
Pre-release

PySyft 0.2.6 Release Notes

Breaking changes since v0.2.5:

New functionality:

Bug fixes:

Refactoring:

  • Clean up Syft implementation of RNNs (#3441 by @dcato98)
  • Store logged message in BaseWorker in an unserialized format for readability (#3473 by @karlhigley)
  • Update Role.register_action() to allow registering CommunicationActions (#3465 by @karlhigley)
  • Refactor BaseWorker.send_command() to accept explicit arguments (#3487 by @shubham3121)
  • Add a SyftSerializable base class for Syft classes that need to be serialized to msgpack or Protobuf (#3386 by @tudorcebere)
  • Convert ObjectStore to a stand-alone class instead of a base class for Workers (#3484 by @karlhigley)
  • Extract @abstractmethods from BaseWorker to AbstractWorker (#3519 by @karlhigley)
  • Create a VirtualWorker for each Plan/Protocol Role and use it for tracing (#3521 by @karlhigley)
  • Improve the serde interface with lazy data loaders (#3530 by @tudorcebere)
  • Split FrameworkHook into multiple parts (#3561 by @karlhigley)
  • Clean up the code style of PySyft (#3535 by @gmuraru)

Examples and Tutorials:

  • Add an experimental notebook for how to create a Plan that trains a NN on MNIST using Syft autograd (#3567 by @vvmnnnkv)

Translations:

Documentation:

Tests and Builds:

  • Add a check for docstring coverage to the Github builds (#3462 and #3505 by @karlhigley)
  • Remove verbose flag from code format check to highlight necessary changes (#3475 by @karlhigley)

v0.2.5

05 May 18:39
828a36f
Compare
Choose a tag to compare
v0.2.5 Pre-release
Pre-release

PySyft v0.2.5 Release Notes

Breaking changes since v0.2.4:

New functionality:

  • Add multi-worker computation graph support to allow gradients to be calculated on tensors moved across workers (#3083 by @LaRiffle)
  • Add dropout support for SMPC (#3195 by @sukhadj)
  • Add a Chebyshev approximation for sigmoid (#3205 by @gmuraru)
  • Add host_federated_training_method to GridClient (#3253 by @hericlesme)
  • Add a protocol kwarg to encrypt() to select between MPC and Paillier HE (#3234 by @Syzygianinfern0)
  • Add device option to async_fit to enable optional GPU training on workers (#3299 by @wmlba)
  • Add Plan translation to Torchscript (#3263 and #3360 by @vvmnnnkv)
  • Make it possible to send and get datasets (#3266 by @abogaziah)
  • Add requires_grad and no_wrap kwargs to encrypt() for MPC secret sharing (#3368 @Syzygianinfern0)
  • Add buffers iterator for tensor elements of torch.nn.module (#3273 by @ratmcu)
  • Increase field size to 2**64 in AdditiveSharingTensor and FixedPrecisionTensor (#2982 by @Yugandhartripathi)
  • Add Syft version checking for Grid nodes (#3380 by @IonesioJunior)
  • Make Placeholders forward unknown methods to child tensors (#3377 by @gmuraru)
  • Add average and max-pooling with SMPC (#3399 by @abogaziah)
  • Add an initial implementation of Function Secret Sharing using Plans (#3057 by @LaRiffle)
  • Make Plan tracing work with backward() and autograd (#3383 by @vvmnnnkv)
  • Make SecureNN work with more than 3 parties (#3148 by @knexator)
  • Rework Protocols to trace multiple Roles from a single function (#3409 by @Jasopaum)

Bug fixes:

Refactoring:

  • Decouple Plan methods from each other by removing temporary attributes (#3203 by @karlhigley)
  • Consolidate run_websocket_server.py files (#3225 and 3265 by @vineetjai)
  • Use PlaceholderIds in Actions and Plans instead of full Placeholders (#3223 by @Jasopaum)
  • Clean up FixedPrecisionTensor and related classes (#3253 by @sachin-101)
  • Extract a Role class from Plans (#3201 by @Jasopaum)
  • Generalize Role to any type of Action, including computation or communication (#3295 by @karlhigley)
  • Remove a redundant is_built check from Plans (#3292 by @gmuraru)
  • Remove eval from Role execution with framework package store (#3295 by @karlhigley)
  • Disambiguate method args and kwargs from arguments and local variables args_ and kwargs_ (#3314 by @karlhigley)
  • Handle Plan state tensors as arguments to Torchscript (#3361 by @vvmnnnkv)
  • Rework PlanTranslatorTorchscript so it doesn’t strip Parameters from tensor chains (#3376 by @karlhigley and @Syzygianinfern0)
  • Make Plan tracing happen from the Placeholders instead of the Torch hooks (#3303 by @Jasopaum)
  • Add a name field to CommunicationAction (#3352 by @Prtfw)
  • Remove init_plan attribute from BaseWorker to decouple from Plans (#3404 by @karlhigley)
  • Remove a value() method left over from Promises (#3418 by @Jasopaum)
  • Remove deprecated properties and methods from Plan (#3408 by @karlhigley)
  • Fix a warning about getargspec deprecation in Plans (#3421 by @gmuraru)

Examples and Tutorials:

Translations:

Documentation:

Tests and Builds: