0.23.1
Substra 0.23.1 - 2022-11-24
Main changes
- BREAKING CHANGE: replace the tasks
traintuple
,aggregatetuple
,predicttuple
,testtuple
,composite_traintuple
with a single task.
task_key = client.add_task(
substra.schemas.TaskSpec(
algo_key=algo_key,
worker=client.organization_info().organization_id, # org on which the task is executed
inputs=[
{
'identifier': 'datasamples',
'asset_key': datasample_key
},
{
'identifier': 'opener',
'asset_key': dataset_key
}
],
outputs= {
'example_output': {
'permissions': {
'public': False,
'authorized_ids': ['org1'],
},
'is_transient': True,
}
}
)
)
task = client.get_task(task_key)
tasks = client.list_task()
# Compute plan changes
compute_plan = client.add_compute_plan(
substra.schemas.ComputePlanSpec(
name = 'my compute plan',
tasks = [
schemas.ComputePlanTaskSpec(
task_id=uuid.uuid4(),
algo_key=algo_key,
worker=client.organization_info().organization_id, # org on which the task is executed
inputs=[
{
'identifier': 'datasamples',
'asset_key': datasample_key
},
{
'identifier': 'opener',
'asset_key': dataset_key
}
],
outputs= {
'example_output': {
'permissions': {
'public': False,
'authorized_ids': ['org1'],
},
'is_transient': True,
}
}
)
]
)
)
SubstraFL
- The metric registration is simplified. The user can now directly write a metric function within their script, and directly register it by specifying the right dependencies and permissions. The metric function must have (
datasamples
,predictions_path
) as signature.
Example of new metric registration:
metric_deps = Dependency(pypi_dependencies=["numpy==1.23.1"])
permissions_metric = Permissions(public=True)
def mse(datasamples, predictions_path):
y_true = datasamples["target"]
y_pred = np.load(predictions_path)
return np.mean((y_true - y_pred)**2)
metric_key = add_metric(
client=substra_client,
permissions=permissions_metric,
dependencies=metric_deps,
metric_function=mse,
)
- The round 0 is now exposed. Possibility to evaluate centralized strategies before any training (FedAvg, NR, Scaffold). The round 0 is skipped for single org strategy and cannot be evaluated before training.
- Add support for Python 3.10.
- Local dependencies are installed in one pip command to optimize the installation and avoid incompatibilities error.
- Fix error when installing current package as local dependency.
Substra:
- Add Windows compatibility for Docker mode.
Web application:
- Add documentation link in user menu.
- Removed task categories from the frontend.
- Renamed any tuple thing into a task thing.
- Check for last admin when editing a user.
- Build error logs are now accessible given the right permissions.