Skip to content

chore: release 0.35.0rc1

Pre-release
Pre-release
Compare
Choose a tag to compare
@oleobal oleobal released this 31 Mar 09:16
· 118 commits to main since this release

Added

  • Initialization task to each strategy in SubstraFL. (#89)

This allows to load the Algo and all its attributes to the platform before any training? Once on the platform, we can perform a testing task before any training.
This init task consists in submitting an empty function, coded in the BaseAlgoclass.

@remote
def initialize(self, shared_states):
     return

The init task return a local output that will be passed as input to a test task, and to the first train task.

The graph pass from:

flowchart LR
    TrainTask1_round0--Local-->TestTask1_r0
    TrainTask1_round0--Shared-->TestTask1_r0

 TrainTask2_round0--Shared-->AggregateTask
    TrainTask2_round0--Local-->TestTask2_r0
    TrainTask2_round0--Shared-->TestTask2_r0

    AggregateTask--Shared-->TrainTask1_r1
    TrainTask1_round0--Local-->TrainTask1_r1

    AggregateTask--Shared-->TrainTask2_r1
    TrainTask2_round0--Local-->TrainTask2_r1
    TrainTask1_round0--Shared-->AggregateTask

    TrainTask1_r1--Local-->TestTask1_r1
    TrainTask1_r1--Shared-->TestTask1_r1

    TrainTask2_r1--Local-->TestTask2_r1
    TrainTask2_r1--Shared-->TestTask2_r1

to:

flowchart LR
    InitTask1_round0--Local-->TestTask1_r0
    InitTask2_round0--Local-->TestTask2_r0

    InitTask1_round0--Local-->TrainTask1_r1
    InitTask2_round0--Local-->TrainTask2_r1

    TrainTask2_r1--Shared-->AggregateTask
    TrainTask1_r1--Shared-->AggregateTask
    TrainTask1_r1--Local-->TestTask1_r1
    TrainTask2_r1--Local-->TestTask2_r1

    TrainTask1_r1--Local-->TrainTask1_r2
    TrainTask2_r1--Local-->TrainTask2_r2
    AggregateTask--Shared-->TrainTask1_r2
    AggregateTask--Shared-->TrainTask2_r2

    TrainTask1_r2--Local-->TestTask1_r2
    TrainTask2_r2--Local-->TestTask2_r2

Changed

  • BREAKING: algo are now passed as parameter to the strategy and not to execute_experiement anymore (#98)
  • BREAKING A strategy need to implement a new method build_graph to build the graph of tasks to be execute in execute_experiment (#98)
  • BREAKING: predict method of strategy has been renamed to perform_predict (#98)
  • Test tasks don't take a shared as input anymore (#89)
  • BREAKING: change eval_frequency default value to None to avoid confusion with hidden default value (#91)
  • BREAKING: rename Algo to Function (#82)
  • BREAKING: clarify EvaluationStrategy arguments: change rounds to eval_frequency and eval_rounds (#85)
  • replace schemas.xxx by substra.schemas.xxx (#105)

Fixed

  • BREAKING: Given local code dependencies are now copied to the level of the running script systematically (#99)
  • Docker images are pruned in main check of Github Action to free disk space while test run (#102)
  • Pass aggregation_lr to the parent class for Scaffold. Fix issue 103 (#104)

Removed

  • from substra import schemas in aggregation_node.py, test_data_node.py and train_data_node.py (#105)