flwr-nightly 1.11.0.dev20240823__py3-none-any.whl → 1.11.1.dev20240912__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of flwr-nightly might be problematic. Click here for more details.
- flwr/cli/app.py +0 -2
- flwr/cli/new/new.py +41 -40
- flwr/cli/new/templates/app/LICENSE.tpl +202 -0
- flwr/cli/new/templates/app/README.baseline.md.tpl +127 -0
- flwr/cli/new/templates/app/README.flowertune.md.tpl +16 -6
- flwr/cli/new/templates/app/code/__init__.baseline.py.tpl +1 -0
- flwr/cli/new/templates/app/code/client.baseline.py.tpl +58 -0
- flwr/cli/new/templates/app/code/client.huggingface.py.tpl +19 -29
- flwr/cli/new/templates/app/code/client.tensorflow.py.tpl +0 -3
- flwr/cli/new/templates/app/code/dataset.baseline.py.tpl +36 -0
- flwr/cli/new/templates/app/code/flwr_tune/{client.py.tpl → client_app.py.tpl} +50 -40
- flwr/cli/new/templates/app/code/flwr_tune/dataset.py.tpl +32 -2
- flwr/cli/new/templates/app/code/flwr_tune/models.py.tpl +0 -3
- flwr/cli/new/templates/app/code/flwr_tune/server_app.py.tpl +95 -0
- flwr/cli/new/templates/app/code/flwr_tune/strategy.py.tpl +83 -0
- flwr/cli/new/templates/app/code/model.baseline.py.tpl +80 -0
- flwr/cli/new/templates/app/code/server.baseline.py.tpl +46 -0
- flwr/cli/new/templates/app/code/server.huggingface.py.tpl +18 -3
- flwr/cli/new/templates/app/code/strategy.baseline.py.tpl +1 -0
- flwr/cli/new/templates/app/code/task.huggingface.py.tpl +16 -13
- flwr/cli/new/templates/app/code/utils.baseline.py.tpl +1 -0
- flwr/cli/new/templates/app/pyproject.baseline.toml.tpl +138 -0
- flwr/cli/new/templates/app/pyproject.flowertune.toml.tpl +34 -7
- flwr/cli/new/templates/app/pyproject.huggingface.toml.tpl +9 -1
- flwr/cli/run/run.py +2 -2
- flwr/client/__init__.py +0 -4
- flwr/client/app.py +3 -4
- flwr/client/client_app.py +2 -2
- flwr/client/grpc_rere_client/client_interceptor.py +15 -7
- flwr/client/supernode/app.py +8 -7
- flwr/common/config.py +14 -11
- flwr/common/constant.py +12 -1
- flwr/common/record/recordset.py +1 -1
- flwr/common/record/typeddict.py +24 -1
- flwr/common/telemetry.py +36 -30
- flwr/server/__init__.py +0 -4
- flwr/server/app.py +21 -22
- flwr/server/compat/app.py +0 -5
- flwr/server/driver/grpc_driver.py +3 -6
- flwr/server/run_serverapp.py +20 -7
- flwr/server/superlink/fleet/grpc_rere/fleet_servicer.py +19 -8
- flwr/server/superlink/fleet/grpc_rere/server_interceptor.py +13 -12
- flwr/server/superlink/fleet/vce/backend/raybackend.py +21 -12
- flwr/server/superlink/state/in_memory_state.py +15 -15
- flwr/server/superlink/state/sqlite_state.py +10 -10
- flwr/server/superlink/state/state.py +8 -8
- flwr/simulation/ray_transport/ray_actor.py +2 -2
- flwr/simulation/run_simulation.py +37 -8
- flwr/superexec/__init__.py +0 -6
- flwr/superexec/app.py +5 -3
- flwr/superexec/deployment.py +2 -2
- {flwr_nightly-1.11.0.dev20240823.dist-info → flwr_nightly-1.11.1.dev20240912.dist-info}/METADATA +3 -3
- {flwr_nightly-1.11.0.dev20240823.dist-info → flwr_nightly-1.11.1.dev20240912.dist-info}/RECORD +56 -48
- flwr_nightly-1.11.1.dev20240912.dist-info/entry_points.txt +10 -0
- flwr/cli/new/templates/app/code/flwr_tune/app.py.tpl +0 -89
- flwr/cli/new/templates/app/code/flwr_tune/config.yaml.tpl +0 -34
- flwr/cli/new/templates/app/code/flwr_tune/server.py.tpl +0 -48
- flwr/cli/new/templates/app/code/flwr_tune/static_config.yaml.tpl +0 -11
- flwr_nightly-1.11.0.dev20240823.dist-info/entry_points.txt +0 -10
- {flwr_nightly-1.11.0.dev20240823.dist-info → flwr_nightly-1.11.1.dev20240912.dist-info}/LICENSE +0 -0
- {flwr_nightly-1.11.0.dev20240823.dist-info → flwr_nightly-1.11.1.dev20240912.dist-info}/WHEEL +0 -0
{flwr_nightly-1.11.0.dev20240823.dist-info → flwr_nightly-1.11.1.dev20240912.dist-info}/RECORD
RENAMED
|
@@ -1,48 +1,56 @@
|
|
|
1
1
|
flwr/__init__.py,sha256=VmBWedrCxqmt4QvUHBLqyVEH6p7zaFMD_oCHerXHSVw,937
|
|
2
2
|
flwr/cli/__init__.py,sha256=cZJVgozlkC6Ni2Hd_FAIrqefrkCGOV18fikToq-6iLw,720
|
|
3
|
-
flwr/cli/app.py,sha256=
|
|
3
|
+
flwr/cli/app.py,sha256=v66W3QJ226JUy9y51hRwftX53R3oEKl3oOl1Xx-IwgU,1215
|
|
4
4
|
flwr/cli/build.py,sha256=YrzjnwP1A1WQnyPuxtGy4kylcPoj0lexaF99ST872VQ,5174
|
|
5
5
|
flwr/cli/config_utils.py,sha256=mDGXbcIxG14UpkUplILBYUkSk5M1LeTzZYDGNx-pFpU,7540
|
|
6
6
|
flwr/cli/example.py,sha256=1bGDYll3BXQY2kRqSN-oICqS5n1b9m0g0RvXTopXHl4,2215
|
|
7
7
|
flwr/cli/install.py,sha256=tUncrbZYRbC9QEcWSeTER16plPEoU-ERP0-nMgWiSPo,7094
|
|
8
8
|
flwr/cli/new/__init__.py,sha256=cQzK1WH4JP2awef1t2UQ2xjl1agVEz9rwutV18SWV1k,789
|
|
9
|
-
flwr/cli/new/new.py,sha256=
|
|
9
|
+
flwr/cli/new/new.py,sha256=9nBm6yjy3q4AHxT-wzV3n5cgO82F19xajfrdu3DIfyk,9605
|
|
10
10
|
flwr/cli/new/templates/__init__.py,sha256=4luU8RL-CK8JJCstQ_ON809W9bNTkY1l9zSaPKBkgwY,725
|
|
11
11
|
flwr/cli/new/templates/app/.gitignore.tpl,sha256=XixnHdyeMB2vwkGtGnwHqoWpH-9WChdyG0GXe57duhc,3078
|
|
12
|
-
flwr/cli/new/templates/app/
|
|
12
|
+
flwr/cli/new/templates/app/LICENSE.tpl,sha256=WNHhf_5RCaeuKWyq_K39vmp9F28LxKsB4SpomwSZ2L0,11357
|
|
13
|
+
flwr/cli/new/templates/app/README.baseline.md.tpl,sha256=4dg2aBS-NIleVyDlxsG8m65Af6LIJ-pZA5ICjGFU5XA,9641
|
|
14
|
+
flwr/cli/new/templates/app/README.flowertune.md.tpl,sha256=lxr_RCGfiDy8QGcMVdjXsUXWM_gLf6cY7UQanGL_FFQ,3304
|
|
13
15
|
flwr/cli/new/templates/app/README.md.tpl,sha256=t7w4YFZEcJOxAnuJmNPw5-fDdIJu7PfLd8gFJDiBwwo,436
|
|
14
16
|
flwr/cli/new/templates/app/__init__.py,sha256=DU7QMY7IhMQyuwm_tja66xU0KXTWQFqzfTqwg-_NJdE,729
|
|
17
|
+
flwr/cli/new/templates/app/code/__init__.baseline.py.tpl,sha256=YkHAgppUeD2BnBoGfVB6dEvBfjuIPGsU1gw4CiUi3qA,40
|
|
15
18
|
flwr/cli/new/templates/app/code/__init__.py,sha256=EM6vfvgAILKPaPn7H1wMV1Wi01WyZCP_Eg6NxD6oWg8,736
|
|
16
19
|
flwr/cli/new/templates/app/code/__init__.py.tpl,sha256=J0Gn74E7khpLyKJVNqOPu7ev93vkcu1PZugsbxtABMw,52
|
|
17
|
-
flwr/cli/new/templates/app/code/client.
|
|
20
|
+
flwr/cli/new/templates/app/code/client.baseline.py.tpl,sha256=1htktXX3jXX05r0vuG_afjS1sXGtuONW9EpiQ7vSBes,1901
|
|
21
|
+
flwr/cli/new/templates/app/code/client.huggingface.py.tpl,sha256=ifD08KwjdoGieV26hFCgf3PQB6rMhj_NZLo5iUUndm8,1846
|
|
18
22
|
flwr/cli/new/templates/app/code/client.jax.py.tpl,sha256=c2LDew2V8BUybZJiz1FeB3Kq4ey0Q2s0S5qNPUTNmI4,1490
|
|
19
23
|
flwr/cli/new/templates/app/code/client.mlx.py.tpl,sha256=gxipt57ldc741qwRqSWtsLQH05JODKdGMTtvoXiBzDA,2906
|
|
20
24
|
flwr/cli/new/templates/app/code/client.numpy.py.tpl,sha256=DMUXvQd2dr-wEn0ZrYJQhZ0OFUT4PKoHXtiD2haWnCI,570
|
|
21
25
|
flwr/cli/new/templates/app/code/client.pytorch.py.tpl,sha256=WczaR5avJUhfw2Grn2KEC4tDJ4voIYG-2pAy-7i2cT8,1685
|
|
22
26
|
flwr/cli/new/templates/app/code/client.sklearn.py.tpl,sha256=xW9cuKhybk5S8IeDZhbeb0DNegDIJGEYrzMKsxgc2GE,2978
|
|
23
|
-
flwr/cli/new/templates/app/code/client.tensorflow.py.tpl,sha256=
|
|
27
|
+
flwr/cli/new/templates/app/code/client.tensorflow.py.tpl,sha256=yBiiU7B9Kf70U52cPkNs_dUpYrrTwbUi2os-PAyheaM,1680
|
|
28
|
+
flwr/cli/new/templates/app/code/dataset.baseline.py.tpl,sha256=jbd_exHAk2-Blu_kVutjPO6a_dkJQWb232zxSeXIZ1k,1453
|
|
24
29
|
flwr/cli/new/templates/app/code/flwr_tune/__init__.py,sha256=JgNgBtKdm1jKM9625WxappCAVUGtYAmcjKSsXJ1u3ZQ,748
|
|
25
|
-
flwr/cli/new/templates/app/code/flwr_tune/
|
|
26
|
-
flwr/cli/new/templates/app/code/flwr_tune/
|
|
27
|
-
flwr/cli/new/templates/app/code/flwr_tune/
|
|
28
|
-
flwr/cli/new/templates/app/code/flwr_tune/
|
|
29
|
-
flwr/cli/new/templates/app/code/flwr_tune/
|
|
30
|
-
flwr/cli/new/templates/app/code/
|
|
31
|
-
flwr/cli/new/templates/app/code/
|
|
32
|
-
flwr/cli/new/templates/app/code/server.huggingface.py.tpl,sha256=
|
|
30
|
+
flwr/cli/new/templates/app/code/flwr_tune/client_app.py.tpl,sha256=DbotzaXzLDwplVBkJLOe5Lt5b6Yutwv9rJ69oVwyrvU,4397
|
|
31
|
+
flwr/cli/new/templates/app/code/flwr_tune/dataset.py.tpl,sha256=iAujo8WubDGrz0gg_6zl-TUvkIbNRJM-VJmwKJ9tGY8,3051
|
|
32
|
+
flwr/cli/new/templates/app/code/flwr_tune/models.py.tpl,sha256=UCLEKUpXarkz9tMFtDrxmLv6QuKe5zCimTuoopQedUM,1717
|
|
33
|
+
flwr/cli/new/templates/app/code/flwr_tune/server_app.py.tpl,sha256=yMVcbfGkTPV9AV16bVdi5fTX1a6jmtszTUrvLXSosio,3305
|
|
34
|
+
flwr/cli/new/templates/app/code/flwr_tune/strategy.py.tpl,sha256=BhiqRg9w1MGuU5h2_vrLhRc0oHItYzE69qX_JI411k8,2754
|
|
35
|
+
flwr/cli/new/templates/app/code/model.baseline.py.tpl,sha256=cSz6-IWsnMl7s04DW4URINiIppCIberrtE8NqK6Qz48,2571
|
|
36
|
+
flwr/cli/new/templates/app/code/server.baseline.py.tpl,sha256=outx7lDXsWS8QXKWOGOiDno6eE8WL7LBD51ZkAuC3WU,1570
|
|
37
|
+
flwr/cli/new/templates/app/code/server.huggingface.py.tpl,sha256=0PJmnZvR9_VPLSak1yVfkOx3dmqo6cynhY1l2s4AZrE,1158
|
|
33
38
|
flwr/cli/new/templates/app/code/server.jax.py.tpl,sha256=pIdUH-LgWRAGWQYLlivMNf8XnDSNDe2cCuRjlxbRzys,529
|
|
34
39
|
flwr/cli/new/templates/app/code/server.mlx.py.tpl,sha256=RqiZ0k468SOlm9dcPr-fvA8xcWv4zwDCbJfBwL7P9Us,529
|
|
35
40
|
flwr/cli/new/templates/app/code/server.numpy.py.tpl,sha256=RqiZ0k468SOlm9dcPr-fvA8xcWv4zwDCbJfBwL7P9Us,529
|
|
36
41
|
flwr/cli/new/templates/app/code/server.pytorch.py.tpl,sha256=DW5c8vzXCvFeIE8YIWBhoGnSdv8Ka_e5wd3F6B3xvp8,916
|
|
37
42
|
flwr/cli/new/templates/app/code/server.sklearn.py.tpl,sha256=25Ae3kDqjDdBl8LwkDwye69nevd02Pk_e7F3SQKLdyk,624
|
|
38
43
|
flwr/cli/new/templates/app/code/server.tensorflow.py.tpl,sha256=xMhQ7AumowgLkgUilgjVK7IbpRhPjslhVJU-vID6NY8,856
|
|
39
|
-
flwr/cli/new/templates/app/code/
|
|
44
|
+
flwr/cli/new/templates/app/code/strategy.baseline.py.tpl,sha256=YkHAgppUeD2BnBoGfVB6dEvBfjuIPGsU1gw4CiUi3qA,40
|
|
45
|
+
flwr/cli/new/templates/app/code/task.huggingface.py.tpl,sha256=ua6cAhJYPUCwML20DEucM0F4ZzzsEVQLYrRvhQ7CGRE,3347
|
|
40
46
|
flwr/cli/new/templates/app/code/task.jax.py.tpl,sha256=F05eg149c9icRyVNdfcLyZvAXROQ7QhfifoGw_U1dsg,1530
|
|
41
47
|
flwr/cli/new/templates/app/code/task.mlx.py.tpl,sha256=jWtCULLRr_9bCIJvoTLMx037-SDl_LF8udtA1UGoXDk,2946
|
|
42
48
|
flwr/cli/new/templates/app/code/task.pytorch.py.tpl,sha256=NgbPix74X1t3ybaGjqdls30vF1i5oY3L7EQExhWhN74,3812
|
|
43
49
|
flwr/cli/new/templates/app/code/task.tensorflow.py.tpl,sha256=SKXAZdgBnPpbAbJ90Rb7oQ5ilnopBx_j_JNFoUDeEAI,1732
|
|
44
|
-
flwr/cli/new/templates/app/
|
|
45
|
-
flwr/cli/new/templates/app/pyproject.
|
|
50
|
+
flwr/cli/new/templates/app/code/utils.baseline.py.tpl,sha256=YkHAgppUeD2BnBoGfVB6dEvBfjuIPGsU1gw4CiUi3qA,40
|
|
51
|
+
flwr/cli/new/templates/app/pyproject.baseline.toml.tpl,sha256=4gi90W9_B1kj6rYkpvVJxhNX9Yctsv9OH6CzXP-dcE4,2666
|
|
52
|
+
flwr/cli/new/templates/app/pyproject.flowertune.toml.tpl,sha256=pogRZLrwSfN_XH4NxDdMkhMh1O_7DP90VOoP-cP0HvI,1827
|
|
53
|
+
flwr/cli/new/templates/app/pyproject.huggingface.toml.tpl,sha256=CHJgkPNkJfzJhEbTe15uiV3AhOtIddQi-yofPZsCk3E,1143
|
|
46
54
|
flwr/cli/new/templates/app/pyproject.jax.toml.tpl,sha256=Tq6jeGcoOKzMwWWYxMVnzMcipLURHLiW69iYlD1ywMg,659
|
|
47
55
|
flwr/cli/new/templates/app/pyproject.mlx.toml.tpl,sha256=SHwYAA2qgIlOAU3Sb9BKSZcZ7O9biACg27MHexXUtDw,741
|
|
48
56
|
flwr/cli/new/templates/app/pyproject.numpy.toml.tpl,sha256=-FCi64ygMgQke3zApUt0XtkIBo3WtQoPAPhtp_FqkPE,612
|
|
@@ -50,12 +58,12 @@ flwr/cli/new/templates/app/pyproject.pytorch.toml.tpl,sha256=vIO1ArukTC76ogYLNmJ
|
|
|
50
58
|
flwr/cli/new/templates/app/pyproject.sklearn.toml.tpl,sha256=jk_5teoyOVM9QdBea8J-nk10S6TKw81QZiiKB54ATF0,654
|
|
51
59
|
flwr/cli/new/templates/app/pyproject.tensorflow.toml.tpl,sha256=bRIvPCPvTTI4Eo5b61Rmw8WdDw3sjcohciTXgULN5l8,702
|
|
52
60
|
flwr/cli/run/__init__.py,sha256=oCd6HmQDx-sqver1gecgx-uMA38BLTSiiKpl7RGNceg,789
|
|
53
|
-
flwr/cli/run/run.py,sha256=
|
|
61
|
+
flwr/cli/run/run.py,sha256=RI6MgLBNYxmacjQg8XMAQ7VKxbV0DkRyJTfe4GsDFuw,7979
|
|
54
62
|
flwr/cli/utils.py,sha256=l65Ul0YsSBPuypk0uorAtEDmLEYiUrzpCXi6zCg9mJ4,4506
|
|
55
|
-
flwr/client/__init__.py,sha256=
|
|
56
|
-
flwr/client/app.py,sha256=
|
|
63
|
+
flwr/client/__init__.py,sha256=DGDoO0AEAfz-0CUFmLdyUUweAS64-07AOnmDfWUefK4,1192
|
|
64
|
+
flwr/client/app.py,sha256=S7o09GZaD7XH3zdVow3XKbktkHvi6H-xnlrhNBHYQ80,31937
|
|
57
65
|
flwr/client/client.py,sha256=gy6WVlMUFAp8oevN4xpQPX30vPOIYGVqdbuFlTWkyG4,9080
|
|
58
|
-
flwr/client/client_app.py,sha256=
|
|
66
|
+
flwr/client/client_app.py,sha256=6TIH-B5lgKn199uzcjxfFKiGvKN5tmKYFpsovUrSXoo,10396
|
|
59
67
|
flwr/client/clientapp/__init__.py,sha256=kZqChGnTChQ1WGSUkIlW2S5bc0d0mzDubCAmZUGRpEY,800
|
|
60
68
|
flwr/client/clientapp/app.py,sha256=4QtblvJsZ0-V-QBbzyNqWV13ugrgJmkZnsHpBCuqgi8,7797
|
|
61
69
|
flwr/client/clientapp/clientappio_servicer.py,sha256=5L6bjw_j3Mnx9kRFwYwxDNABKurBO5q1jZOWE_X11wQ,8522
|
|
@@ -66,7 +74,7 @@ flwr/client/grpc_adapter_client/connection.py,sha256=aOlCYasl8f2CrfcN-WrVEmvjAZF
|
|
|
66
74
|
flwr/client/grpc_client/__init__.py,sha256=LsnbqXiJhgQcB0XzAlUQgPx011Uf7Y7yabIC1HxivJ8,735
|
|
67
75
|
flwr/client/grpc_client/connection.py,sha256=czhRm23fwTgjN24Vf5nyNQ3hcb5Fo_5k-o9yZnelQCs,9362
|
|
68
76
|
flwr/client/grpc_rere_client/__init__.py,sha256=MK-oSoV3kwUEQnIwl0GN4OpiHR7eLOrMA8ikunET130,752
|
|
69
|
-
flwr/client/grpc_rere_client/client_interceptor.py,sha256=
|
|
77
|
+
flwr/client/grpc_rere_client/client_interceptor.py,sha256=eONCq-uRYvRCxjdP4wIi_FDynDipHs3DYjExgzAcJ5M,5240
|
|
70
78
|
flwr/client/grpc_rere_client/connection.py,sha256=aiIWW9fVgJZNeZ9SjUAx5ax-3825JrjYc5E5l7XvzyM,10913
|
|
71
79
|
flwr/client/grpc_rere_client/grpc_adapter.py,sha256=Pw7Toi4wCUIEdBMyv4yKirjgW6814gFhhAmsTYmV4IM,5005
|
|
72
80
|
flwr/client/heartbeat.py,sha256=cx37mJBH8LyoIN4Lks85wtqT1mnU5GulQnr4pGCvAq0,2404
|
|
@@ -87,12 +95,12 @@ flwr/client/numpy_client.py,sha256=9rpj5OLmeeDQVzopR1My6A2VS3nkBFw6cmNcMMPYGlQ,1
|
|
|
87
95
|
flwr/client/rest_client/__init__.py,sha256=5KGlp7pjc1dhNRkKlaNtUfQmg8wrRFh9lS3P3uRS-7Q,735
|
|
88
96
|
flwr/client/rest_client/connection.py,sha256=21YNE6K6JfyZtwIftx1MGOkM78J9wb4EGGOyLS8ej0E,12767
|
|
89
97
|
flwr/client/supernode/__init__.py,sha256=SUhWOzcgXRNXk1V9UgB5-FaWukqqrOEajVUHEcPkwyQ,865
|
|
90
|
-
flwr/client/supernode/app.py,sha256=
|
|
98
|
+
flwr/client/supernode/app.py,sha256=LlDO4hOzJZVIF6wmcSYYYnrVuSH_umvhr4m3EtVnLyI,11947
|
|
91
99
|
flwr/client/typing.py,sha256=dxoTBnTMfqXr5J7G3y-uNjqxYCddvxhu89spfj4Lm2U,1048
|
|
92
100
|
flwr/common/__init__.py,sha256=TVaoFEJE158aui1TPZQiJCDZX4RNHRyI8I55VC80HhI,3901
|
|
93
101
|
flwr/common/address.py,sha256=1zvmVIAyYP6JbGkMnXuROzkYJ7aSKbJM754lC_kbh1M,3024
|
|
94
|
-
flwr/common/config.py,sha256=
|
|
95
|
-
flwr/common/constant.py,sha256=
|
|
102
|
+
flwr/common/config.py,sha256=TBw2sI0ZgZ3l3JrjfrcnD1mnMJbaHi_i8w68YXEgPUk,7586
|
|
103
|
+
flwr/common/constant.py,sha256=BxVpp2o3h70h-klxiwsyLT7U5woj2GD-TXh92-STlLc,3351
|
|
96
104
|
flwr/common/context.py,sha256=5Bd9RCrhLkYZOVR7vr97OVhzVBHQkS1fUsYiIKTwpxU,2239
|
|
97
105
|
flwr/common/date.py,sha256=OcQuwpb2HxcblTqYm6H223ufop5UZw5N_fzalbpOVzY,891
|
|
98
106
|
flwr/common/differential_privacy.py,sha256=WZWrL7C9XaB9l9NDkLDI5PvM7jwcoTTFu08ZVG8-M5Q,6113
|
|
@@ -110,8 +118,8 @@ flwr/common/record/configsrecord.py,sha256=6nIpGaeB_o8SvjMfD_iehJC1efAHgWyaeGfLD
|
|
|
110
118
|
flwr/common/record/conversion_utils.py,sha256=n3I3SI2P6hUjyxbWNc0QAch-SEhfMK6Hm-UUaplAlUc,1393
|
|
111
119
|
flwr/common/record/metricsrecord.py,sha256=aTuw0gWjRaZhekf76zg0h0rES3iEnTIGPZ7-jN2PYO4,5764
|
|
112
120
|
flwr/common/record/parametersrecord.py,sha256=mOcERCUylgWLQ-hISYmOHXlt-Qohv8YtPnJdLO0Kr8U,7730
|
|
113
|
-
flwr/common/record/recordset.py,sha256=
|
|
114
|
-
flwr/common/record/typeddict.py,sha256=
|
|
121
|
+
flwr/common/record/recordset.py,sha256=sSofrBycZSqiHR4TzfI4_QoIIN-5B1LnMG0C9CiByAo,8312
|
|
122
|
+
flwr/common/record/typeddict.py,sha256=TDPLdeuHiAUy9JyfJN0VF1zSyqdnf_uNWUFjAd2z_Os,3623
|
|
115
123
|
flwr/common/recordset_compat.py,sha256=5prvfx8mT4ZWIEU4Gmz2wzCbO4yPjQ3ONr20uKt3UM0,13973
|
|
116
124
|
flwr/common/retry_invoker.py,sha256=dQY5fPIKhy9OiFswZhLxA9fB455u-DYCvDVcFJmrPDk,11707
|
|
117
125
|
flwr/common/secure_aggregation/__init__.py,sha256=erPnTWdOfMH0K0HQTmj5foDJ6t3iYcExy2aACy8iZNQ,731
|
|
@@ -123,7 +131,7 @@ flwr/common/secure_aggregation/quantization.py,sha256=1obYr9qneaI8r-A0F_pghrPNG9
|
|
|
123
131
|
flwr/common/secure_aggregation/secaggplus_constants.py,sha256=9MF-oQh62uD7rt9VeNB-rHf2gBLd5GL3S9OejCxmILY,2183
|
|
124
132
|
flwr/common/secure_aggregation/secaggplus_utils.py,sha256=3VssKgYF7HQIkSpROnEUoYWVt47p12PE_Rj4nYqqg04,3221
|
|
125
133
|
flwr/common/serde.py,sha256=SIKZa-TNCSWVtqx8L3aUkylN6gxK-IwXlgoukiYwYyc,29209
|
|
126
|
-
flwr/common/telemetry.py,sha256=
|
|
134
|
+
flwr/common/telemetry.py,sha256=CZeBHqaH_W-H7yo-9LE-gV7ju5gJTXZztw4tJlFZqz8,8916
|
|
127
135
|
flwr/common/typing.py,sha256=rGabiSkjFvGIHwmhDqtuu-LBvz7LVSj1vyMlNtA7VA0,5004
|
|
128
136
|
flwr/common/version.py,sha256=W1ntylR04xkCP6zeSet6sRtBn7P1cje2lOqBJgYBjJY,1349
|
|
129
137
|
flwr/proto/__init__.py,sha256=hbY7JYakwZwCkYgCNlmHdc8rtvfoJbAZLalMdc--CGc,683
|
|
@@ -184,22 +192,22 @@ flwr/proto/transport_pb2.pyi,sha256=CZvJRWTU3QWFWLXNFtyLSrSKFatIyMcy-ohzLbQ-G9c,
|
|
|
184
192
|
flwr/proto/transport_pb2_grpc.py,sha256=vLN3EHtx2aEEMCO4f1Upu-l27BPzd3-5pV-u8wPcosk,2598
|
|
185
193
|
flwr/proto/transport_pb2_grpc.pyi,sha256=AGXf8RiIiW2J5IKMlm_3qT3AzcDa4F3P5IqUjve_esA,766
|
|
186
194
|
flwr/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
187
|
-
flwr/server/__init__.py,sha256=
|
|
188
|
-
flwr/server/app.py,sha256=
|
|
195
|
+
flwr/server/__init__.py,sha256=cEg1oecBu4cKB69iJCqWEylC8b5XW47bl7rQiJsdTvM,1528
|
|
196
|
+
flwr/server/app.py,sha256=ecE7Q4gDKIiRyv6818IEPr2HlcWRzx3UMDODCwz66MY,24408
|
|
189
197
|
flwr/server/client_manager.py,sha256=T8UDSRJBVD3fyIDI7NTAA-NA7GPrMNNgH2OAF54RRxE,6127
|
|
190
198
|
flwr/server/client_proxy.py,sha256=4G-oTwhb45sfWLx2uZdcXD98IZwdTS6F88xe3akCdUg,2399
|
|
191
199
|
flwr/server/compat/__init__.py,sha256=VxnJtJyOjNFQXMNi9hIuzNlZM5n0Hj1p3aq_Pm2udw4,892
|
|
192
|
-
flwr/server/compat/app.py,sha256=
|
|
200
|
+
flwr/server/compat/app.py,sha256=5vkHHm_h-4cMthvWD1GJo1ZW3eihytjGgvsgfXUK9gA,3298
|
|
193
201
|
flwr/server/compat/app_utils.py,sha256=B9pec7LnYACzowXKZTZNu3SNS-fSaHfefwvRyAQa4Nc,3456
|
|
194
202
|
flwr/server/compat/driver_client_proxy.py,sha256=BxTDo7i89VAG2tuF4x7zogSVn2bXPMr0H2H0lERzW9c,5444
|
|
195
203
|
flwr/server/compat/legacy_context.py,sha256=wBzBcfV6YO6IQGriM_FdJ5XZfiBBEEJdS_OdAiF47dY,1804
|
|
196
204
|
flwr/server/criterion.py,sha256=ypbAexbztzGUxNen9RCHF91QeqiEQix4t4Ih3E-42MM,1061
|
|
197
205
|
flwr/server/driver/__init__.py,sha256=bikRv6CjTwSvYh7tf10gziU5o2YotOWhhftz2tr3KDc,886
|
|
198
206
|
flwr/server/driver/driver.py,sha256=NT_yaeit7_kZEIsCEqOWPID1GrVD3ywH4xZ2wtIh5lM,5217
|
|
199
|
-
flwr/server/driver/grpc_driver.py,sha256=
|
|
207
|
+
flwr/server/driver/grpc_driver.py,sha256=QMVf5KrnIWVuqeYoSO31o698utJlbLAm6s9VAAxFZLA,9660
|
|
200
208
|
flwr/server/driver/inmemory_driver.py,sha256=RcK94_NtjGZ4aZDIscnU7A3Uv1u8jGx29-xcbjQvZTM,6444
|
|
201
209
|
flwr/server/history.py,sha256=bBOHKyX1eQONIsUx4EUU-UnAk1i0EbEl8ioyMq_UWQ8,5063
|
|
202
|
-
flwr/server/run_serverapp.py,sha256=
|
|
210
|
+
flwr/server/run_serverapp.py,sha256=ASpwKHNlxpDfBe6UPotxkaifXZyKS9ZIrdwtTGLCt3k,10534
|
|
203
211
|
flwr/server/server.py,sha256=PsJeh7ROKMoeLpIVrmbKoQUvdz-iqb54E4HZJanRUmM,17912
|
|
204
212
|
flwr/server/server_app.py,sha256=1hul76ospG8L_KooK_ewn1sWPNTNYLTtZMeGNOBNruA,6267
|
|
205
213
|
flwr/server/server_config.py,sha256=CZaHVAsMvGLjpWVcLPkiYxgJN4xfIyAiUrCI3fETKY4,1349
|
|
@@ -245,8 +253,8 @@ flwr/server/superlink/fleet/grpc_bidi/grpc_bridge.py,sha256=hh7ykcLMA_ymmD72eWFM
|
|
|
245
253
|
flwr/server/superlink/fleet/grpc_bidi/grpc_client_proxy.py,sha256=h3EhqgelegVC4EjOXH5birmAnMoCBJcP7jpHYCnHZPk,4887
|
|
246
254
|
flwr/server/superlink/fleet/grpc_bidi/grpc_server.py,sha256=DIXCYfPwm5paWq6hccReW0tB7-dTfq4vvMZ7CsiuYf4,12292
|
|
247
255
|
flwr/server/superlink/fleet/grpc_rere/__init__.py,sha256=j2hyC342am-_Hgp1g80Y3fGDzfTI6n8QOOn2PyWf4eg,758
|
|
248
|
-
flwr/server/superlink/fleet/grpc_rere/fleet_servicer.py,sha256=
|
|
249
|
-
flwr/server/superlink/fleet/grpc_rere/server_interceptor.py,sha256=
|
|
256
|
+
flwr/server/superlink/fleet/grpc_rere/fleet_servicer.py,sha256=bgoLQEhahVHjdlRDk_58zyKFeMOziiPUXSbYMhOxybY,4757
|
|
257
|
+
flwr/server/superlink/fleet/grpc_rere/server_interceptor.py,sha256=zN8TIdg9ZxKtmrwtarWUPdm08jUBBGoz59ndO3C-7jg,7985
|
|
250
258
|
flwr/server/superlink/fleet/message_handler/__init__.py,sha256=h8oLD7uo5lKICPy0rRdKRjTYe62u8PKkT_fA4xF5JPA,731
|
|
251
259
|
flwr/server/superlink/fleet/message_handler/message_handler.py,sha256=9qDDPwj3txHPo2dNaWQiO3UpGno5Zm9IMhJXnAPZbqg,4439
|
|
252
260
|
flwr/server/superlink/fleet/rest_rere/__init__.py,sha256=5jbYbAn75sGv-gBwOPDySE0kz96F6dTYLeMrGqNi4lM,735
|
|
@@ -254,12 +262,12 @@ flwr/server/superlink/fleet/rest_rere/rest_api.py,sha256=3wegOVJadA3pH_2CwZHQ3Uw
|
|
|
254
262
|
flwr/server/superlink/fleet/vce/__init__.py,sha256=36MHKiefnJeyjwMQzVUK4m06Ojon3WDcwZGQsAcyVhQ,783
|
|
255
263
|
flwr/server/superlink/fleet/vce/backend/__init__.py,sha256=psQjI1DQHOM5uWVXM27l_wPHjfEkMUTP-_8-lEFH1JA,1466
|
|
256
264
|
flwr/server/superlink/fleet/vce/backend/backend.py,sha256=YugFH_XYclqmq07er5ne1DZc7PgR9lWGs5LY_YIHwc8,2207
|
|
257
|
-
flwr/server/superlink/fleet/vce/backend/raybackend.py,sha256=
|
|
265
|
+
flwr/server/superlink/fleet/vce/backend/raybackend.py,sha256=VQ63rZytcavfDedfjArAejPi3VGYXrfcsb8yi57prRc,7168
|
|
258
266
|
flwr/server/superlink/fleet/vce/vce_api.py,sha256=lTQ2WycKK4-w22EPoJJz1qn73j9ZTwBlNz2cla2Zv0Q,12653
|
|
259
267
|
flwr/server/superlink/state/__init__.py,sha256=Gj2OTFLXvA-mAjBvwuKDM3rDrVaQPcIoybSa2uskMTE,1003
|
|
260
|
-
flwr/server/superlink/state/in_memory_state.py,sha256=
|
|
261
|
-
flwr/server/superlink/state/sqlite_state.py,sha256=
|
|
262
|
-
flwr/server/superlink/state/state.py,sha256=
|
|
268
|
+
flwr/server/superlink/state/in_memory_state.py,sha256=eNXOVt3HhJOYxkbYRNWEudCaNrYj2B7tOU9xgKbM2Ag,13166
|
|
269
|
+
flwr/server/superlink/state/sqlite_state.py,sha256=Mxb1QLFca9xFtnKgeu1XCe2kFzKGWmpnI-eRMa6-QSE,29395
|
|
270
|
+
flwr/server/superlink/state/state.py,sha256=0DPFJcIGJMMYh3fIGGKSjDswl_HxL57tVYMYdB3TJxI,8138
|
|
263
271
|
flwr/server/superlink/state/state_factory.py,sha256=Fo8pBQ1WWrVJK5TOEPZ_zgJE69_mfTGjTO6czh6571o,2021
|
|
264
272
|
flwr/server/superlink/state/utils.py,sha256=155ngcaSePy7nD8X4LHgpuVok6fcH5_CPNRiFAbLWDA,2407
|
|
265
273
|
flwr/server/typing.py,sha256=5kaRLZuxTEse9A0g7aVna2VhYxU3wTq1f3d3mtw7kXs,1019
|
|
@@ -275,19 +283,19 @@ flwr/server/workflow/secure_aggregation/secaggplus_workflow.py,sha256=vdS_AeRYBv
|
|
|
275
283
|
flwr/simulation/__init__.py,sha256=ybVBW3xT6cg_IasJV4_ymI3bVrCbFhw1mmcfrdfl3q0,1359
|
|
276
284
|
flwr/simulation/app.py,sha256=te3dQB3eodPwzsv1y4daPyaskIAaOtgoHaQLobrqoqY,15163
|
|
277
285
|
flwr/simulation/ray_transport/__init__.py,sha256=wzcEEwUUlulnXsg6raCA1nGpP3LlAQDtJ8zNkCXcVbA,734
|
|
278
|
-
flwr/simulation/ray_transport/ray_actor.py,sha256=
|
|
286
|
+
flwr/simulation/ray_transport/ray_actor.py,sha256=IbFwbRFxKHoLjgx_LTuehS0L3uHPw_SPaMfA4wHA0Xk,19026
|
|
279
287
|
flwr/simulation/ray_transport/ray_client_proxy.py,sha256=0abIsU0VBk9rNJZOKHIyzYGy3ZnWBgqYocX_oct1EP0,7307
|
|
280
288
|
flwr/simulation/ray_transport/utils.py,sha256=TYdtfg1P9VfTdLMOJlifInGpxWHYs9UfUqIv2wfkRLA,2392
|
|
281
|
-
flwr/simulation/run_simulation.py,sha256=
|
|
282
|
-
flwr/superexec/__init__.py,sha256=
|
|
283
|
-
flwr/superexec/app.py,sha256=
|
|
284
|
-
flwr/superexec/deployment.py,sha256=
|
|
289
|
+
flwr/simulation/run_simulation.py,sha256=hnH3qThfg_ii2tMu1y3X4ZWbw99CNk7vfduQ1fdZxbY,22750
|
|
290
|
+
flwr/superexec/__init__.py,sha256=fcj366jh4RFby_vDwLroU4kepzqbnJgseZD_jUr_Mko,715
|
|
291
|
+
flwr/superexec/app.py,sha256=58EbFCFhFLzMrkxDZwZ8_nEitd6ckQc1v_5H9s4nxlM,6559
|
|
292
|
+
flwr/superexec/deployment.py,sha256=sNb-sYdCDkVEALSbC_eBNIulieHwpg7HzgmDIp4wT9o,6267
|
|
285
293
|
flwr/superexec/exec_grpc.py,sha256=PhqGoZEpTMxSQmUSV8Wgtzb1Za_pHJ-adZqo5RYnDyE,1942
|
|
286
294
|
flwr/superexec/exec_servicer.py,sha256=jl0aKVjm0PLQABcTL5c3jdSIzb0Z6hpVOtrAn4Ob7ts,2323
|
|
287
295
|
flwr/superexec/executor.py,sha256=k_adivto6R2U82DADOHNvdtobehBYreRek1gOEBIQnQ,2318
|
|
288
296
|
flwr/superexec/simulation.py,sha256=J6pw-RqCSiUed8I_3MasZH4tl57ZmDebPAHNnbb0-vE,7420
|
|
289
|
-
flwr_nightly-1.11.
|
|
290
|
-
flwr_nightly-1.11.
|
|
291
|
-
flwr_nightly-1.11.
|
|
292
|
-
flwr_nightly-1.11.
|
|
293
|
-
flwr_nightly-1.11.
|
|
297
|
+
flwr_nightly-1.11.1.dev20240912.dist-info/LICENSE,sha256=z8d0m5b2O9McPEK1xHG_dWgUBT6EfBDz6wA0F7xSPTA,11358
|
|
298
|
+
flwr_nightly-1.11.1.dev20240912.dist-info/METADATA,sha256=d7S_JhUvUHkUP-WXBYMhrwM0P0KEvftKDl68QuQk-iU,15703
|
|
299
|
+
flwr_nightly-1.11.1.dev20240912.dist-info/WHEEL,sha256=FMvqSimYX_P7y0a7UY-_Mc83r5zkBZsCYPm7Lr0Bsq4,88
|
|
300
|
+
flwr_nightly-1.11.1.dev20240912.dist-info/entry_points.txt,sha256=WUCbqhLEOzjx_lyATIM0-f0e8kOVaQjzwOvyOxHrMhs,434
|
|
301
|
+
flwr_nightly-1.11.1.dev20240912.dist-info/RECORD,,
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
[console_scripts]
|
|
2
|
+
flower-client-app=flwr.client.supernode:run_client_app
|
|
3
|
+
flower-server-app=flwr.server.run_serverapp:run_server_app
|
|
4
|
+
flower-simulation=flwr.simulation.run_simulation:run_simulation_from_cli
|
|
5
|
+
flower-superexec=flwr.superexec.app:run_superexec
|
|
6
|
+
flower-superlink=flwr.server.app:run_superlink
|
|
7
|
+
flower-supernode=flwr.client.supernode.app:run_supernode
|
|
8
|
+
flwr=flwr.cli.app:app
|
|
9
|
+
flwr-clientapp=flwr.client.clientapp:flwr_clientapp
|
|
10
|
+
|
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
"""$project_name: A Flower / FlowerTune app."""
|
|
2
|
-
|
|
3
|
-
import os
|
|
4
|
-
import warnings
|
|
5
|
-
from datetime import datetime
|
|
6
|
-
|
|
7
|
-
from flwr_datasets import FederatedDataset
|
|
8
|
-
from hydra import compose, initialize
|
|
9
|
-
from hydra.utils import instantiate
|
|
10
|
-
|
|
11
|
-
from flwr.client import ClientApp
|
|
12
|
-
from flwr.common import Context, ndarrays_to_parameters
|
|
13
|
-
from flwr.server import ServerApp, ServerAppComponents, ServerConfig
|
|
14
|
-
|
|
15
|
-
from $import_name.client_app import gen_client_fn, get_parameters
|
|
16
|
-
from $import_name.dataset import get_tokenizer_and_data_collator_and_propt_formatting
|
|
17
|
-
from $import_name.models import get_model
|
|
18
|
-
from $import_name.server_app import fit_weighted_average, get_evaluate_fn, get_on_fit_config
|
|
19
|
-
|
|
20
|
-
# Avoid warnings
|
|
21
|
-
warnings.filterwarnings("ignore", category=UserWarning)
|
|
22
|
-
os.environ["TOKENIZERS_PARALLELISM"] = "true"
|
|
23
|
-
os.environ["RAY_DISABLE_DOCKER_CPU_WARNING"] = "1"
|
|
24
|
-
|
|
25
|
-
# Initialise regular config
|
|
26
|
-
with initialize(config_path="conf", version_base="1.1"):
|
|
27
|
-
cfg = compose(config_name="config")
|
|
28
|
-
|
|
29
|
-
# Initialise static config
|
|
30
|
-
with initialize(config_path="conf", version_base="1.1"):
|
|
31
|
-
cfg_static = compose(config_name="static_config")
|
|
32
|
-
|
|
33
|
-
cfg.train.num_rounds = cfg_static.num_rounds
|
|
34
|
-
|
|
35
|
-
# Create output directory given current timestamp
|
|
36
|
-
current_time = datetime.now()
|
|
37
|
-
folder_name = current_time.strftime("%Y-%m-%d_%H-%M-%S")
|
|
38
|
-
save_path = os.path.join(os.getcwd(), f"results/{folder_name}")
|
|
39
|
-
os.makedirs(save_path, exist_ok=True)
|
|
40
|
-
|
|
41
|
-
# Partition dataset and get dataloaders
|
|
42
|
-
partitioner = instantiate(cfg_static.partitioner)
|
|
43
|
-
fds = FederatedDataset(
|
|
44
|
-
dataset=cfg_static.dataset.name, partitioners={"train": partitioner}
|
|
45
|
-
)
|
|
46
|
-
(
|
|
47
|
-
tokenizer,
|
|
48
|
-
data_collator,
|
|
49
|
-
formatting_prompts_func,
|
|
50
|
-
) = get_tokenizer_and_data_collator_and_propt_formatting(cfg.model.name)
|
|
51
|
-
|
|
52
|
-
# ClientApp for Flower Next
|
|
53
|
-
client = ClientApp(
|
|
54
|
-
client_fn=gen_client_fn(
|
|
55
|
-
fds,
|
|
56
|
-
tokenizer,
|
|
57
|
-
formatting_prompts_func,
|
|
58
|
-
data_collator,
|
|
59
|
-
cfg.model,
|
|
60
|
-
cfg.train,
|
|
61
|
-
save_path,
|
|
62
|
-
),
|
|
63
|
-
)
|
|
64
|
-
|
|
65
|
-
# Get initial model weights
|
|
66
|
-
init_model = get_model(cfg.model)
|
|
67
|
-
init_model_parameters = get_parameters(init_model)
|
|
68
|
-
init_model_parameters = ndarrays_to_parameters(init_model_parameters)
|
|
69
|
-
|
|
70
|
-
def server_fn(context: Context):
|
|
71
|
-
# Instantiate strategy according to config. Here we pass other arguments
|
|
72
|
-
# that are only defined at runtime.
|
|
73
|
-
strategy = instantiate(
|
|
74
|
-
cfg.strategy,
|
|
75
|
-
on_fit_config_fn=get_on_fit_config(),
|
|
76
|
-
fit_metrics_aggregation_fn=fit_weighted_average,
|
|
77
|
-
initial_parameters=init_model_parameters,
|
|
78
|
-
evaluate_fn=get_evaluate_fn(
|
|
79
|
-
cfg.model, cfg.train.save_every_round, cfg_static.num_rounds, save_path
|
|
80
|
-
),
|
|
81
|
-
)
|
|
82
|
-
|
|
83
|
-
config = ServerConfig(num_rounds=cfg_static.num_rounds)
|
|
84
|
-
|
|
85
|
-
return ServerAppComponents(strategy=strategy, config=config)
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
# ServerApp for Flower Next
|
|
89
|
-
server = ServerApp(server_fn=server_fn)
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
# Federated Instruction Tuning
|
|
2
|
-
---
|
|
3
|
-
model:
|
|
4
|
-
name: "mistralai/Mistral-7B-v0.3"
|
|
5
|
-
quantization: 4 # 8 or 4 if you want to do quantization with BitsAndBytes
|
|
6
|
-
gradient_checkpointing: True
|
|
7
|
-
lora:
|
|
8
|
-
peft_lora_r: 32
|
|
9
|
-
peft_lora_alpha: 64
|
|
10
|
-
|
|
11
|
-
train:
|
|
12
|
-
num_rounds: null
|
|
13
|
-
save_every_round: 5
|
|
14
|
-
learning_rate_max: 5e-5
|
|
15
|
-
learning_rate_min: 1e-6
|
|
16
|
-
seq_length: 512
|
|
17
|
-
training_arguments:
|
|
18
|
-
output_dir: null # to be set by hydra
|
|
19
|
-
learning_rate: null # to be set by the client
|
|
20
|
-
per_device_train_batch_size: 16
|
|
21
|
-
gradient_accumulation_steps: 1
|
|
22
|
-
logging_steps: 10
|
|
23
|
-
num_train_epochs: 3
|
|
24
|
-
max_steps: 10
|
|
25
|
-
report_to: null
|
|
26
|
-
save_steps: 1000
|
|
27
|
-
save_total_limit: 10
|
|
28
|
-
gradient_checkpointing: True
|
|
29
|
-
lr_scheduler_type: "constant"
|
|
30
|
-
|
|
31
|
-
strategy:
|
|
32
|
-
_target_: flwr.server.strategy.FedAvg
|
|
33
|
-
fraction_fit: $fraction_fit
|
|
34
|
-
fraction_evaluate: 0.0 # no client evaluation
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
"""$project_name: A Flower / FlowerTune app."""
|
|
2
|
-
|
|
3
|
-
from $import_name.client_app import set_parameters
|
|
4
|
-
from $import_name.models import get_model
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
# Get function that will be executed by the strategy's evaluate() method
|
|
8
|
-
# Here we use it to save global model checkpoints
|
|
9
|
-
def get_evaluate_fn(model_cfg, save_every_round, total_round, save_path):
|
|
10
|
-
"""Return an evaluation function for saving global model."""
|
|
11
|
-
|
|
12
|
-
def evaluate(server_round: int, parameters, config):
|
|
13
|
-
# Save model
|
|
14
|
-
if server_round != 0 and (
|
|
15
|
-
server_round == total_round or server_round % save_every_round == 0
|
|
16
|
-
):
|
|
17
|
-
# Init model
|
|
18
|
-
model = get_model(model_cfg)
|
|
19
|
-
set_parameters(model, parameters)
|
|
20
|
-
|
|
21
|
-
model.save_pretrained(f"{save_path}/peft_{server_round}")
|
|
22
|
-
|
|
23
|
-
return 0.0, {}
|
|
24
|
-
|
|
25
|
-
return evaluate
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
def get_on_fit_config():
|
|
29
|
-
"""
|
|
30
|
-
Return a function that will be used to construct the config
|
|
31
|
-
that the client's fit() method will receive.
|
|
32
|
-
"""
|
|
33
|
-
|
|
34
|
-
def fit_config_fn(server_round: int):
|
|
35
|
-
fit_config = {"current_round": server_round}
|
|
36
|
-
return fit_config
|
|
37
|
-
|
|
38
|
-
return fit_config_fn
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
def fit_weighted_average(metrics):
|
|
42
|
-
"""Aggregate (federated) evaluation metrics."""
|
|
43
|
-
# Multiply accuracy of each client by number of examples used
|
|
44
|
-
losses = [num_examples * m["train_loss"] for num_examples, m in metrics]
|
|
45
|
-
examples = [num_examples for num_examples, _ in metrics]
|
|
46
|
-
|
|
47
|
-
# Aggregate and return custom metric (weighted average)
|
|
48
|
-
return {"train_loss": sum(losses) / sum(examples)}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
# Federated Instruction Tuning (static)
|
|
2
|
-
---
|
|
3
|
-
dataset:
|
|
4
|
-
name: $dataset_name
|
|
5
|
-
|
|
6
|
-
# FL experimental settings
|
|
7
|
-
num_clients: $num_clients # total number of clients
|
|
8
|
-
num_rounds: 200
|
|
9
|
-
partitioner:
|
|
10
|
-
_target_: flwr_datasets.partitioner.IidPartitioner
|
|
11
|
-
num_partitions: $num_clients
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
[console_scripts]
|
|
2
|
-
flower-client-app=flwr.client:run_client_app
|
|
3
|
-
flower-server-app=flwr.server:run_server_app
|
|
4
|
-
flower-simulation=flwr.simulation.run_simulation:run_simulation_from_cli
|
|
5
|
-
flower-superexec=flwr.superexec:run_superexec
|
|
6
|
-
flower-superlink=flwr.server:run_superlink
|
|
7
|
-
flower-supernode=flwr.client:run_supernode
|
|
8
|
-
flwr=flwr.cli.app:app
|
|
9
|
-
flwr-clientapp=flwr.client.clientapp:flwr_clientapp
|
|
10
|
-
|
{flwr_nightly-1.11.0.dev20240823.dist-info → flwr_nightly-1.11.1.dev20240912.dist-info}/LICENSE
RENAMED
|
File without changes
|
{flwr_nightly-1.11.0.dev20240823.dist-info → flwr_nightly-1.11.1.dev20240912.dist-info}/WHEEL
RENAMED
|
File without changes
|