Skip to content

Releases: OpenMined/PySyft

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:

v0.2.4

18 Mar 15:47
5494258
Compare
Choose a tag to compare
v0.2.4 Pre-release
Pre-release

Changes since 0.2.3

New functionality:

  • Added the option to compute tanh using sigmoid or Chebyshev approximation (#3113 by @gmuraru)
  • Added model parameters as a default optimizer parameter in FederatedClient (#3117 by @gconst02)
  • Added an Optims class to track remote optimizers in federated learning (#3179 by @rimijoker)
  • Added the ability to use a Plan input as an output (#3199 by @tudorcebere)
  • Added the ability to send and get Datasets (#2960 by @abogaziah)

Refactoring:

Bug fixes:

Documentation:

Tutorials:

Translations:

Builds:

v0.2.3

02 Mar 15:41
7c7c5a3
Compare
Choose a tag to compare
v0.2.3 Pre-release
Pre-release

Changes since 0.2.2

New functionality:

  • Migrates PySyft to PyTorch 1.4 (#2930 by @gmuraru)
  • Implements tanh for FixedPrecisionTensors using Chebyshev approximation (#3004 by @gmuraru)
  • Adds the ability to simulate latency with VirtualWorkers (#3070 by @jefersonf)
  • Adds Protobuf serialization for Placeholders, Plans, and States (#2972 by @karlhigley)

Refactoring:

Bug fixes:

  • Fixes retrieval of the fit() result in WebsocketClientWorker (#2948 by @brandonhee)
  • Fixes numeric issues in handcrafted Conv and Pool implementations (#2945 and #2964 by @arshjot)
  • Removes an insecure eval in native tensor interpreter (#2951 by @karlhigley)
  • Fixes PyTorch JIT tracing compatibility for Plans (#2988 by @karlhigley)
  • Removes workarounds for previous versions of PyTorch (#2999 by @gmuraru)
  • Pins requests dependency specification to version 2.22.0 (#2970 by @ADMoreau)
  • Fixes interoperability of AutogradTensors with other tensors vis a vis requires_grad (#2998 by @gmuraru)
  • Improves logging, typing, and documentation of PATE implementation (#3033 by @TTitcombe)
  • Fixes a potential security issue with unsafe YAML loading (#3037 by @systemshift)
  • Raises an error when attempting to additively share FloatTensors (#3094 by @pierrepocreau)
  • Improves testing for Syft's RNN implementation (#3092 by @jimboH)
  • Changes dependency specifications to require compatible versions (#3119 by @karlhigley)
  • Fixes compatibility with msgpack 1.0 serialization library (#3067 by @IonesioJunior and #3073 by @hdodenhof)

Documentation:

Tutorials:

Translations:

Builds:

  • Moves automated testing of PRs from Travis to Github Actions (#2936, #3012, and #3013 by @karlhigley and @systemshift)
  • Adds a security scan for every PR (#3036 by @systemshift)
  • Runs automated translation tests only on the notebooks that changed to speed up the builds (#3064 by @arturomf94)
  • Automatically updates the pysyft-notebook Docker image when changes are merged to master (#3030 by @linamnt)
  • Caches dependencies in Github Actions (#3124 by @imskr)

v0.2.3.a3

26 Feb 17:43
f194082
Compare
Choose a tag to compare
v0.2.3.a3 Pre-release
Pre-release

Third release of v0.2.3 to incorporate Syft protocol schema updates.

v0.2.3.a2

23 Feb 19:40
f6e8fd2
Compare
Choose a tag to compare
v0.2.3.a2 Pre-release
Pre-release

Second release of v0.2.3 to incorporate msgpack 1.0 compatibility and Syft protocol schema updates.

v0.2.3.a1

30 Jan 17:02
384d90d
Compare
Choose a tag to compare
v0.2.3.a1 Pre-release
Pre-release

New functionality:

Bug fixes:

  • Fixes numeric issues in handcrafted Conv and Pool implementations (#2945 and #2964 by @arshjot)
  • Removes an insecure eval in native tensor interpreter (#2951 by @karlhigley)
  • Fixes parameters to ObjectRequestMessage in websocket_client.py (#2948 by @brandonhee)

Tutorial updates:

v0.2.2.a1

21 Jan 19:01
Compare
Choose a tag to compare
v0.2.2.a1 Pre-release
Pre-release

Includes some noteworthy new functionality:

Also includes updates to the tutorials:

And finally, includes:

  • Many bug fixes, which are too numerous to list but nonetheless much appreciated!

v0.2.1.a1

19 Jan 14:41
Compare
Choose a tag to compare
v0.2.1.a1 Pre-release
Pre-release

v0.2.0.a2

19 Jan 14:39
b0b8a13
Compare
Choose a tag to compare
v0.2.0.a2 Pre-release
Pre-release