Skip to content

Releases: Substra/substrafl

0.40.0-rc1

05 Sep 09:35
Compare
Choose a tag to compare
0.40.0-rc1 Pre-release
Pre-release

Added

  • Check the Python version used before generating the Dockerfile ([#155])(#155)).

  • Python dependencies can be resolved using pip compile during function registration by setting compile to True
    in the Dependency object ([#155])(#155)).

    Dependency(
          pypi_dependencies=["pytest", "numpy"],
          compile=True,
      )
  • Dependency objects are now computed at initialization in a cache directory, accessible through the copy_compute_dir method. The cache directory is deleted at the Dependency object deletion. ([#155])(#155))

  • Check created wheels name. (#160)

Changed

  • BREAKING: Rename generate_wheel.py to manage_dependencies.py (#156)
  • BREAKING: Move manage_dependencies.py from remote.register to dependency (#158)
  • BREAKING: local_dependencies is renamed local_installable_dependencies (#158)
  • BREAKING: local_installable_dependencies are now limited to local modules or Python wheels (no support for bdist, sdist...)([#155])(#155)).

Fixed

  • Set, save & load random.seed and np.random.seed along with torch.manual_seed in TorchAlgo(#151)

0.39.1

05 Sep 13:04
Compare
Choose a tag to compare

0.39.1 - 2023-09-05

Fixed

  • Keep the last round task output by default (#166)

0.38.1

05 Sep 12:52
Compare
Choose a tag to compare

0.38.1 - 2023-09-05

Fixed

  • Keep the last round task output by default (#165)

0.37.1

05 Sep 12:29
Compare
Choose a tag to compare

0.37.1 - 2023-09-04

Fixed

  • Keep the last round task output by default (#163)

0.39.0

27 Jul 15:45
3a0249a
Compare
Choose a tag to compare

This is a promotion of 0.39.0rc1

Changed

  • BREAKING: Input and output of aggregate tasks are now shared_state. It provides more flexibility to link different type of tasks with each other. To use
    download_aggregate_shared_state on experiments launched before this commit, you can use the following code as a replacement of the function
    (#142).
import tempfile
from substrafl.model_loading import _download_task_output_files
from substrafl.model_loading import _load_from_files
with tempfile.TemporaryDirectory() as temp_folder:
    _download_task_output_files(
        client=<client>,
        compute_plan_key=<compute_plan_key>,
        dest_folder=temp_folder,
        round_idx=<round_idx>,
        rank_idx=<rank_idx>,
        task_type="aggregate",
        identifier="model",
    )
    aggregated_state = _load_from_files(input_folder=temp_folder, remote=True)

Removed

  • Function wait in utils. You can use substra.Client.wait_task & substra.Client.wait_compute_plan instead. (#147)

Fixed

  • Compatibility with GPU devices when running torch based experiments (#154)
  • Pin pydantic to >=1.9.0 & <2.0.0 as pydantic v 2.0.0 has been released with a lot of non backward compatible changes. (#148)

0.39.0rc1

25 Jul 15:08
Compare
Choose a tag to compare
0.39.0rc1 Pre-release
Pre-release
chore: release 0.39.0

Signed-off-by: Olivier Léobal <[email protected]>

0.38.0

30 Jun 10:05
3032e92
Compare
Choose a tag to compare

0.38.0 - 2023-06-30

Changed

  • BREAKING: Rename model_loading.download_shared_state to model_loading.download_train_shared_state (#143)
  • BREAKING: Rename model_loading.download_aggregated_state to model_loading.download_aggregate_shared_state (#143)
  • Numpy < 1.24 in dependencies to keep pickle compatibility with substra-tools numpy version (#144)

0.38.0-rc1

27 Jun 09:44
7163c0c
Compare
Choose a tag to compare
0.38.0-rc1 Pre-release
Pre-release

0.38.0-rc1 - 2023-06-27

Changed

  • BREAKING: Rename model_loading.download_shared_state to model_loading.download_train_shared_state (#143)
  • BREAKING: Rename model_loading.download_aggregated_state to model_loading.download_aggregate_shared_state (#143)
  • Numpy < 1.24 in dependencies to keep pickle compatibility with substra-tools numpy version (#144)

0.37.0

15 Jun 07:40
f85467d
Compare
Choose a tag to compare

0.37.0 - 2023-06-12

Added

  • ComputePlanBuilder base class to define which method are needed to implement a custom strategy in SubstraFL.
    These methods are build_compute_plan, load_local_states and save_local_states. #120
  • Check and test on string used as metric name in test data nodes (#122).
  • Add default exclusion patterns when copying file to avoid creating large Docker images (#118)
  • Add the possibility to force the Dependency editable_mode through the environment variable SUBSTRA_FORCE_EDITABLE_MODE (#131)

Changed

  • BREAKING: depreciate the usage of model_loading.download_algo_files and model_loading.load_algo functions. New utils functions are now available. (#125)
    model_loading.download_algo_state to download a SubstraFL algo of a given round or rank.
    model_loading.download_shared_state to download a SubstraFL shared object of a given round or rank.
    model_loading.download_aggregated_state to download a SubstraFL aggregated of a given round or rank.
    The API change goes from:

    algo_files_folder = str(pathlib.Path.cwd() / "tmp" / "algo_files")
    download_algo_files(
      client=client_to_download_from,
      compute_plan_key=compute_plan.key,
      round_idx=round_idx,
      dest_folder=algo_files_folder,
    )
    model = load_algo(input_folder=algo_files_folder).model

    to

    algo = download_algo_state(
      client=client_to_download_from  ,
      compute_plan_key=compute_plan.key,
      round_idx=round_idx,
    )
    model = algo.model
  • BREAKING: rename build_graph to build_compute_plan. (#120)

  • BREAKING: move schema.py into the strategy module. (#120)

    from substrafl.schemas import FedAvgSharedState
    # Become
    from substrafl.strategies.schemas import FedAvgSharedState
  • Way to copy function files (#118)

  • download_train_task_models_by_rank uses new function list_task_output_assets instead of using value that has been removed (#129)

Fixed

  • New dependencies copy method in Docker mode.(#130)

0.37.0rc2

14 Jun 15:51
Compare
Choose a tag to compare
0.37.0rc2 Pre-release
Pre-release

0.37.0rc2 - 2023-06-12

Added

  • ComputePlanBuilder base class to define which method are needed to implement a custom strategy in SubstraFL.
    These methods are build_compute_plan, load_local_states and save_local_states. #120
  • Check and test on string used as metric name in test data nodes (#122).
  • Add default exclusion patterns when copying file to avoid creating large Docker images (#118)
  • Add the possibility to force the Dependency editable_mode through the environment variable SUBSTRA_FORCE_EDITABLE_MODE (#131)

Changed

  • BREAKING: depreciate the usage of model_loading.download_algo_files and model_loading.load_algo functions. New utils functions are now available. (#125)
    model_loading.download_algo_state to download a SubstraFL algo of a given round or rank.
    model_loading.download_shared_state to download a SubstraFL shared object of a given round or rank.
    model_loading.download_aggregated_state to download a SubstraFL aggregated of a given round or rank.
    The API change goes from:

    algo_files_folder = str(pathlib.Path.cwd() / "tmp" / "algo_files")
    download_algo_files(
      client=client_to_download_from,
      compute_plan_key=compute_plan.key,
      round_idx=round_idx,
      dest_folder=algo_files_folder,
    )
    model = load_algo(input_folder=algo_files_folder).model

    to

    algo = download_algo_state(
      client=client_to_download_from  ,
      compute_plan_key=compute_plan.key,
      round_idx=round_idx,
    )
    model = algo.model
  • BREAKING: rename build_graph to build_compute_plan. (#120)

  • BREAKING: move schema.py into the strategy module. (#120)

    from substrafl.schemas import FedAvgSharedState
    # Become
    from substrafl.strategies.schemas import FedAvgSharedState
  • Way to copy function files (#118)

  • download_train_task_models_by_rank uses new function list_task_output_assets instead of using value that has been removed (#129)

Fixed

  • New dependencies copy method in Docker mode.(#130)