Releases: Substra/substrafl
0.40.0-rc1
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
toTrue
in theDependency
object ([#155])(#155)).Dependency( pypi_dependencies=["pytest", "numpy"], compile=True, )
-
Dependency
objects are now computed at initialization in a cache directory, accessible through thecopy_compute_dir
method. The cache directory is deleted at theDependency
object deletion. ([#155])(#155)) -
Check created wheels name. (#160)
Changed
- BREAKING: Rename
generate_wheel.py
tomanage_dependencies.py
(#156) - BREAKING: Move
manage_dependencies.py
fromremote.register
todependency
(#158) - BREAKING:
local_dependencies
is renamedlocal_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
andnp.random.seed
along withtorch.manual_seed
inTorchAlgo
(#151)
0.39.1
0.38.1
0.37.1
0.39.0
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
inutils
. You can usesubstra.Client.wait_task
&substra.Client.wait_compute_plan
instead. (#147)
Fixed
0.39.0rc1
chore: release 0.39.0 Signed-off-by: Olivier Léobal <[email protected]>
0.38.0
0.38.0 - 2023-06-30
Changed
- BREAKING: Rename
model_loading.download_shared_state
tomodel_loading.download_train_shared_state
(#143) - BREAKING: Rename
model_loading.download_aggregated_state
tomodel_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
0.38.0-rc1 - 2023-06-27
Changed
- BREAKING: Rename
model_loading.download_shared_state
tomodel_loading.download_train_shared_state
(#143) - BREAKING: Rename
model_loading.download_aggregated_state
tomodel_loading.download_aggregate_shared_state
(#143) - Numpy < 1.24 in dependencies to keep pickle compatibility with substra-tools numpy version (#144)
0.37.0
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 arebuild_compute_plan
,load_local_states
andsave_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
andmodel_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
tobuild_compute_plan
. (#120) -
BREAKING: move
schema.py
into thestrategy
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 functionlist_task_output_assets
instead of usingvalue
that has been removed (#129)
Fixed
- New dependencies copy method in Docker mode.(#130)
0.37.0rc2
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 arebuild_compute_plan
,load_local_states
andsave_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
andmodel_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
tobuild_compute_plan
. (#120) -
BREAKING: move
schema.py
into thestrategy
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 functionlist_task_output_assets
instead of usingvalue
that has been removed (#129)
Fixed
- New dependencies copy method in Docker mode.(#130)