“Transcendental-Programmer” commited on
Commit
0b14e8c
·
1 Parent(s): 41d470a

FEAT: Add CI/CD pipeline, and Kubernetes deployment files

Browse files
.github/workflows/ci.yml ADDED
@@ -0,0 +1,50 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # ci.yml configuration
2
+
3
+ name: CI/CD Pipeline
4
+
5
+ on:
6
+ push:
7
+ branches: [ main, develop ]
8
+ pull_request:
9
+ branches: [ main, develop ]
10
+
11
+ jobs:
12
+ test:
13
+ runs-on: ubuntu-latest
14
+ steps:
15
+ - uses: actions/checkout@v2
16
+ - name: Set up Python
17
+ uses: actions/setup-python@v2
18
+ with:
19
+ python-version: '3.8'
20
+
21
+ - name: Install dependencies
22
+ run: |
23
+ python -m pip install --upgrade pip
24
+ pip install -r requirements.txt
25
+ pip install pytest pytest-cov black flake8
26
+
27
+ - name: Run linting
28
+ run: |
29
+ black --check .
30
+ flake8 .
31
+
32
+ - name: Run tests
33
+ run: |
34
+ pytest --cov=src tests/
35
+
36
+ - name: Upload coverage reports
37
+ uses: codecov/codecov-action@v3
38
+
39
+ build:
40
+ needs: test
41
+ runs-on: ubuntu-latest
42
+ if: github.ref == 'refs/heads/main'
43
+ steps:
44
+ - uses: actions/checkout@v2
45
+
46
+ - name: Build Docker images
47
+ run: |
48
+ docker build -t fl-server -f docker/Dockerfile.server .
49
+ docker build -t fl-client -f docker/Dockerfile.client .
50
+
kubernetes/deployments/client.yaml ADDED
@@ -0,0 +1,33 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # client.yaml configuration
2
+
3
+ apiVersion: apps/v1
4
+ kind: Deployment
5
+ metadata:
6
+ name: fl-client
7
+ namespace: federated-learning
8
+ spec:
9
+ replicas: 3
10
+ selector:
11
+ matchLabels:
12
+ app: fl-client
13
+ template:
14
+ metadata:
15
+ labels:
16
+ app: fl-client
17
+ spec:
18
+ containers:
19
+ - name: fl-client
20
+ image: fl-client:latest
21
+ env:
22
+ - name: CONFIG_PATH
23
+ value: /app/config/client_config.yaml
24
+ - name: SERVER_HOST
25
+ value: fl-server-service
26
+ volumeMounts:
27
+ - name: config-volume
28
+ mountPath: /app/config
29
+ volumes:
30
+ - name: config-volume
31
+ configMap:
32
+ name: client-config
33
+
kubernetes/deployments/rag.yaml ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ # rag.yaml configuration
2
+
kubernetes/deployments/server.yaml ADDED
@@ -0,0 +1,33 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # server.yaml configuration
2
+
3
+ apiVersion: apps/v1
4
+ kind: Deployment
5
+ metadata:
6
+ name: fl-server
7
+ namespace: federated-learning
8
+ spec:
9
+ replicas: 1
10
+ selector:
11
+ matchLabels:
12
+ app: fl-server
13
+ template:
14
+ metadata:
15
+ labels:
16
+ app: fl-server
17
+ spec:
18
+ containers:
19
+ - name: fl-server
20
+ image: fl-server:latest
21
+ ports:
22
+ - containerPort: 8000
23
+ env:
24
+ - name: CONFIG_PATH
25
+ value: /app/config/server_config.yaml
26
+ volumeMounts:
27
+ - name: config-volume
28
+ mountPath: /app/config
29
+ volumes:
30
+ - name: config-volume
31
+ configMap:
32
+ name: server-config
33
+
kubernetes/services/service.yaml ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # service.yaml configuration
2
+
3
+ apiVersion: v1
4
+ kind: Service
5
+ metadata:
6
+ name: fl-server-service
7
+ namespace: federated-learning
8
+ spec:
9
+ selector:
10
+ app: fl-server
11
+ ports:
12
+ - port: 8000
13
+ targetPort: 8000
14
+ type: ClusterIP
15
+
logs/federated_learning.log ADDED
@@ -0,0 +1,338 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 2024-12-17 21:10:27,307 - __main__ - INFO - Starting client with ID: 1
2
+ 2024-12-17 21:10:27,308 - src.client.model - INFO - Client 1 started
3
+ 2024-12-17 21:10:27,308 - src.client.model - INFO - Client config: {'data': {'batch_size': 32, 'shuffle_buffer': 1000, 'input_dim': 32}, 'model': {'type': 'feedforward', 'hidden_dims': [128, 64], 'activation': 'relu'}, 'training': {'local_epochs': 5, 'learning_rate': 0.001}}
4
+ 2024-12-17 21:10:27,310 - src.client.model - INFO - Generating training data...
5
+ 2024-12-17 21:10:27,319 - src.client.model - INFO - Generated data shapes - X: (100, 32), y: (100, 1)
6
+ 2024-12-17 21:10:27,331 - src.client.model - INFO - Starting local training...
7
+ 2024-12-17 21:10:27,331 - src.client.model - INFO -
8
+ Training Parameters:
9
+ 2024-12-17 21:10:27,332 - src.client.model - INFO - --------------------------------------------------
10
+ 2024-12-17 21:10:27,333 - src.client.model - INFO - Input shape: (100, 32)
11
+ 2024-12-17 21:10:27,334 - src.client.model - INFO - Output shape: (100, 1)
12
+ 2024-12-17 21:10:27,334 - src.client.model - INFO - Batch size: 32
13
+ 2024-12-17 21:10:27,335 - src.client.model - INFO - Epochs: 5
14
+ 2024-12-17 21:10:27,335 - src.client.model - INFO - Learning rate: 0.001
15
+ 2024-12-17 21:10:27,336 - src.client.model - INFO - --------------------------------------------------
16
+ 2024-12-17 21:10:29,148 - src.client.model - INFO - Epoch 1 - loss: 39.1214
17
+ 2024-12-17 21:10:29,244 - src.client.model - INFO - Epoch 2 - loss: 36.6787
18
+ 2024-12-17 21:10:29,357 - src.client.model - INFO - Epoch 3 - loss: 34.8911
19
+ 2024-12-17 21:10:29,517 - src.client.model - INFO - Epoch 4 - loss: 33.1400
20
+ 2024-12-17 21:10:29,605 - src.client.model - INFO - Epoch 5 - loss: 31.4399
21
+ 2024-12-17 21:10:29,612 - src.client.model - INFO - Training progress:
22
+ 2024-12-17 21:10:29,612 - src.client.model - INFO - Epoch 1/5: loss = 39.1214
23
+ 2024-12-17 21:10:29,613 - src.client.model - INFO - Epoch 2/5: loss = 36.6787
24
+ 2024-12-17 21:10:29,613 - src.client.model - INFO - Epoch 3/5: loss = 34.8911
25
+ 2024-12-17 21:10:29,614 - src.client.model - INFO - Epoch 4/5: loss = 33.1400
26
+ 2024-12-17 21:10:29,614 - src.client.model - INFO - Epoch 5/5: loss = 31.4399
27
+ 2024-12-17 21:10:29,615 - src.client.model - INFO - Local training completed. Final loss: 31.4399
28
+ 2024-12-17 21:10:29,615 - src.client.model - INFO - Model architecture:
29
+ 2024-12-17 21:10:31,396 - __main__ - INFO - Starting server...
30
+ 2024-12-17 21:10:31,397 - src.server.coordinator - INFO -
31
+ ============================================================
32
+ 2024-12-17 21:10:31,397 - src.server.coordinator - INFO - Federated Learning Server Starting
33
+ 2024-12-17 21:10:31,398 - src.server.coordinator - INFO - ============================================================
34
+ 2024-12-17 21:10:31,398 - src.server.coordinator - INFO -
35
+ Server Configuration:
36
+ 2024-12-17 21:10:31,399 - src.server.coordinator - INFO - ------------------------------
37
+ 2024-12-17 21:10:31,399 - src.server.coordinator - INFO - Minimum clients required: 1
38
+ 2024-12-17 21:10:31,400 - src.server.coordinator - INFO - Total rounds planned: 10
39
+ 2024-12-17 21:10:31,400 - src.server.coordinator - INFO - Current active clients: 0
40
+ 2024-12-17 21:10:31,401 - src.server.coordinator - INFO - ------------------------------
41
+
42
+ 2024-12-17 21:10:31,402 - src.server.coordinator - INFO -
43
+ Round 1/10
44
+ 2024-12-17 21:10:31,402 - src.server.coordinator - INFO - ------------------------------
45
+ 2024-12-17 21:10:31,403 - src.server.coordinator - WARNING - Waiting for clients... (active: 0/1)
46
+ 2024-12-17 21:10:36,404 - src.server.coordinator - INFO -
47
+ Round 1/10
48
+ 2024-12-17 21:10:36,405 - src.server.coordinator - INFO - ------------------------------
49
+ 2024-12-17 21:10:36,406 - src.server.coordinator - WARNING - Waiting for clients... (active: 0/1)
50
+ 2024-12-17 21:10:41,407 - src.server.coordinator - INFO -
51
+ Round 1/10
52
+ 2024-12-17 21:10:41,408 - src.server.coordinator - INFO - ------------------------------
53
+ 2024-12-17 21:10:41,408 - src.server.coordinator - WARNING - Waiting for clients... (active: 0/1)
54
+ 2024-12-17 21:10:46,410 - src.server.coordinator - INFO -
55
+ Round 1/10
56
+ 2024-12-17 21:10:46,410 - src.server.coordinator - INFO - ------------------------------
57
+ 2024-12-17 21:10:46,410 - src.server.coordinator - WARNING - Waiting for clients... (active: 0/1)
58
+ 2024-12-17 21:10:47,391 - __main__ - INFO - Starting client with ID: 1
59
+ 2024-12-17 21:10:47,392 - src.client.model - INFO - Client 1 started
60
+ 2024-12-17 21:10:47,393 - src.client.model - INFO - Client config: {'data': {'batch_size': 32, 'shuffle_buffer': 1000, 'input_dim': 32}, 'model': {'type': 'feedforward', 'hidden_dims': [128, 64], 'activation': 'relu'}, 'training': {'local_epochs': 5, 'learning_rate': 0.001}}
61
+ 2024-12-17 21:10:47,394 - src.client.model - INFO - Generating training data...
62
+ 2024-12-17 21:10:47,401 - src.client.model - INFO - Generated data shapes - X: (100, 32), y: (100, 1)
63
+ 2024-12-17 21:10:47,402 - src.client.model - INFO - Starting local training...
64
+ 2024-12-17 21:10:47,402 - src.client.model - INFO -
65
+ Training Parameters:
66
+ 2024-12-17 21:10:47,403 - src.client.model - INFO - --------------------------------------------------
67
+ 2024-12-17 21:10:47,404 - src.client.model - INFO - Input shape: (100, 32)
68
+ 2024-12-17 21:10:47,404 - src.client.model - INFO - Output shape: (100, 1)
69
+ 2024-12-17 21:10:47,405 - src.client.model - INFO - Batch size: 32
70
+ 2024-12-17 21:10:47,405 - src.client.model - INFO - Epochs: 5
71
+ 2024-12-17 21:10:47,406 - src.client.model - INFO - Learning rate: 0.001
72
+ 2024-12-17 21:10:47,406 - src.client.model - INFO - --------------------------------------------------
73
+ 2024-12-17 21:10:48,732 - src.client.model - INFO - Epoch 1 - loss: 35.5090
74
+ 2024-12-17 21:10:48,815 - src.client.model - INFO - Epoch 2 - loss: 33.0172
75
+ 2024-12-17 21:10:48,890 - src.client.model - INFO - Epoch 3 - loss: 31.0423
76
+ 2024-12-17 21:10:48,959 - src.client.model - INFO - Epoch 4 - loss: 29.2005
77
+ 2024-12-17 21:10:49,032 - src.client.model - INFO - Epoch 5 - loss: 27.5801
78
+ 2024-12-17 21:10:49,038 - src.client.model - INFO - Training progress:
79
+ 2024-12-17 21:10:49,039 - src.client.model - INFO - Epoch 1/5: loss = 35.5090
80
+ 2024-12-17 21:10:49,039 - src.client.model - INFO - Epoch 2/5: loss = 33.0172
81
+ 2024-12-17 21:10:49,040 - src.client.model - INFO - Epoch 3/5: loss = 31.0423
82
+ 2024-12-17 21:10:49,040 - src.client.model - INFO - Epoch 4/5: loss = 29.2005
83
+ 2024-12-17 21:10:49,041 - src.client.model - INFO - Epoch 5/5: loss = 27.5801
84
+ 2024-12-17 21:10:49,042 - src.client.model - INFO - Local training completed. Final loss: 27.5801
85
+ 2024-12-17 21:10:49,042 - src.client.model - INFO - Model architecture:
86
+ 2024-12-17 21:10:51,412 - src.server.coordinator - INFO -
87
+ Round 1/10
88
+ 2024-12-17 21:10:51,412 - src.server.coordinator - INFO - ------------------------------
89
+ 2024-12-17 21:10:51,413 - src.server.coordinator - WARNING - Waiting for clients... (active: 0/1)
90
+ 2024-12-17 21:10:56,414 - src.server.coordinator - INFO -
91
+ Round 1/10
92
+ 2024-12-17 21:10:56,414 - src.server.coordinator - INFO - ------------------------------
93
+ 2024-12-17 21:10:56,414 - src.server.coordinator - WARNING - Waiting for clients... (active: 0/1)
94
+ 2024-12-17 21:11:01,416 - src.server.coordinator - INFO -
95
+ Round 1/10
96
+ 2024-12-17 21:11:01,417 - src.server.coordinator - INFO - ------------------------------
97
+ 2024-12-17 21:11:01,417 - src.server.coordinator - WARNING - Waiting for clients... (active: 0/1)
98
+ 2024-12-17 21:11:06,432 - src.server.coordinator - INFO -
99
+ Round 1/10
100
+ 2024-12-17 21:11:06,444 - src.server.coordinator - INFO - ------------------------------
101
+ 2024-12-17 21:11:06,456 - src.server.coordinator - WARNING - Waiting for clients... (active: 0/1)
102
+ 2024-12-17 21:11:11,459 - src.server.coordinator - INFO -
103
+ Round 1/10
104
+ 2024-12-17 21:11:11,459 - src.server.coordinator - INFO - ------------------------------
105
+ 2024-12-17 21:11:11,459 - src.server.coordinator - WARNING - Waiting for clients... (active: 0/1)
106
+ 2024-12-17 21:11:16,460 - src.server.coordinator - INFO -
107
+ Round 1/10
108
+ 2024-12-17 21:11:16,460 - src.server.coordinator - INFO - ------------------------------
109
+ 2024-12-17 21:11:16,460 - src.server.coordinator - WARNING - Waiting for clients... (active: 0/1)
110
+ 2024-12-17 21:11:21,461 - src.server.coordinator - INFO -
111
+ Round 1/10
112
+ 2024-12-17 21:11:21,461 - src.server.coordinator - INFO - ------------------------------
113
+ 2024-12-17 21:11:21,461 - src.server.coordinator - WARNING - Waiting for clients... (active: 0/1)
114
+ 2024-12-17 21:11:26,462 - src.server.coordinator - INFO -
115
+ Round 1/10
116
+ 2024-12-17 21:11:26,464 - src.server.coordinator - INFO - ------------------------------
117
+ 2024-12-17 21:11:26,464 - src.server.coordinator - WARNING - Waiting for clients... (active: 0/1)
118
+ 2024-12-17 21:11:31,464 - src.server.coordinator - INFO -
119
+ Round 1/10
120
+ 2024-12-17 21:11:31,464 - src.server.coordinator - INFO - ------------------------------
121
+ 2024-12-17 21:11:31,465 - src.server.coordinator - WARNING - Waiting for clients... (active: 0/1)
122
+ 2024-12-17 21:11:36,466 - src.server.coordinator - INFO -
123
+ Round 1/10
124
+ 2024-12-17 21:11:36,467 - src.server.coordinator - INFO - ------------------------------
125
+ 2024-12-17 21:11:36,468 - src.server.coordinator - WARNING - Waiting for clients... (active: 0/1)
126
+ 2024-12-17 21:11:41,469 - src.server.coordinator - INFO -
127
+ Round 1/10
128
+ 2024-12-17 21:11:41,470 - src.server.coordinator - INFO - ------------------------------
129
+ 2024-12-17 21:11:41,470 - src.server.coordinator - WARNING - Waiting for clients... (active: 0/1)
130
+ 2024-12-17 21:11:46,471 - src.server.coordinator - INFO -
131
+ Round 1/10
132
+ 2024-12-17 21:11:46,471 - src.server.coordinator - INFO - ------------------------------
133
+ 2024-12-17 21:11:46,472 - src.server.coordinator - WARNING - Waiting for clients... (active: 0/1)
134
+ 2024-12-17 21:11:51,473 - src.server.coordinator - INFO -
135
+ Round 1/10
136
+ 2024-12-17 21:11:51,474 - src.server.coordinator - INFO - ------------------------------
137
+ 2024-12-17 21:11:51,475 - src.server.coordinator - WARNING - Waiting for clients... (active: 0/1)
138
+ 2024-12-17 21:11:56,476 - src.server.coordinator - INFO -
139
+ Round 1/10
140
+ 2024-12-17 21:11:56,476 - src.server.coordinator - INFO - ------------------------------
141
+ 2024-12-17 21:11:56,476 - src.server.coordinator - WARNING - Waiting for clients... (active: 0/1)
142
+ 2024-12-17 21:12:01,478 - src.server.coordinator - INFO -
143
+ Round 1/10
144
+ 2024-12-17 21:12:01,479 - src.server.coordinator - INFO - ------------------------------
145
+ 2024-12-17 21:12:01,480 - src.server.coordinator - WARNING - Waiting for clients... (active: 0/1)
146
+ 2024-12-17 21:12:06,482 - src.server.coordinator - INFO -
147
+ Round 1/10
148
+ 2024-12-17 21:12:06,482 - src.server.coordinator - INFO - ------------------------------
149
+ 2024-12-17 21:12:06,483 - src.server.coordinator - WARNING - Waiting for clients... (active: 0/1)
150
+ 2024-12-17 21:12:11,485 - src.server.coordinator - INFO -
151
+ Round 1/10
152
+ 2024-12-17 21:12:11,485 - src.server.coordinator - INFO - ------------------------------
153
+ 2024-12-17 21:12:11,486 - src.server.coordinator - WARNING - Waiting for clients... (active: 0/1)
154
+ 2024-12-17 21:12:16,488 - src.server.coordinator - INFO -
155
+ Round 1/10
156
+ 2024-12-17 21:12:16,489 - src.server.coordinator - INFO - ------------------------------
157
+ 2024-12-17 21:12:16,490 - src.server.coordinator - WARNING - Waiting for clients... (active: 0/1)
158
+ 2024-12-17 21:12:21,492 - src.server.coordinator - INFO -
159
+ Round 1/10
160
+ 2024-12-17 21:12:21,492 - src.server.coordinator - INFO - ------------------------------
161
+ 2024-12-17 21:12:21,493 - src.server.coordinator - WARNING - Waiting for clients... (active: 0/1)
162
+ 2024-12-17 21:12:26,494 - src.server.coordinator - INFO -
163
+ Round 1/10
164
+ 2024-12-17 21:12:26,494 - src.server.coordinator - INFO - ------------------------------
165
+ 2024-12-17 21:12:26,495 - src.server.coordinator - WARNING - Waiting for clients... (active: 0/1)
166
+ 2024-12-17 21:12:39,784 - __main__ - INFO -
167
+ ==================================================
168
+ 2024-12-17 21:12:39,784 - __main__ - INFO - New Training Session Started
169
+ 2024-12-17 21:12:39,784 - __main__ - INFO - ==================================================
170
+
171
+ 2024-12-17 21:12:39,786 - __main__ - INFO - Starting server...
172
+ 2024-12-17 21:12:39,787 - src.server.coordinator - INFO -
173
+ ============================================================
174
+ 2024-12-17 21:12:39,787 - src.server.coordinator - INFO - Federated Learning Server Starting
175
+ 2024-12-17 21:12:39,788 - src.server.coordinator - INFO - ============================================================
176
+ 2024-12-17 21:12:39,789 - src.server.coordinator - INFO -
177
+ Server Configuration:
178
+ 2024-12-17 21:12:39,790 - src.server.coordinator - INFO - ------------------------------
179
+ 2024-12-17 21:12:39,791 - src.server.coordinator - INFO - Minimum clients required: 1
180
+ 2024-12-17 21:12:39,791 - src.server.coordinator - INFO - Total rounds planned: 10
181
+ 2024-12-17 21:12:39,792 - src.server.coordinator - INFO - Current active clients: 0
182
+ 2024-12-17 21:12:39,792 - src.server.coordinator - INFO - ------------------------------
183
+
184
+ 2024-12-17 21:12:39,793 - src.server.coordinator - INFO -
185
+ Round 1/10
186
+ 2024-12-17 21:12:39,794 - src.server.coordinator - INFO - ------------------------------
187
+ 2024-12-17 21:12:39,794 - src.server.coordinator - WARNING - Waiting for clients... (active: 0/1)
188
+ 2024-12-17 21:12:44,042 - __main__ - INFO -
189
+ ==================================================
190
+ 2024-12-17 21:12:44,043 - __main__ - INFO - New Training Session Started
191
+ 2024-12-17 21:12:44,043 - __main__ - INFO - ==================================================
192
+
193
+ 2024-12-17 21:12:44,187 - __main__ - INFO - Starting client with ID: 1
194
+ 2024-12-17 21:12:44,187 - src.client.model - INFO - Client 1 started
195
+ 2024-12-17 21:12:44,188 - src.client.model - INFO - Client config: {'data': {'batch_size': 32, 'shuffle_buffer': 1000, 'input_dim': 32}, 'model': {'type': 'feedforward', 'hidden_dims': [128, 64], 'activation': 'relu'}, 'training': {'local_epochs': 5, 'learning_rate': 0.001}}
196
+ 2024-12-17 21:12:44,190 - src.client.model - INFO - Generating training data...
197
+ 2024-12-17 21:12:44,197 - src.client.model - INFO - Generated data shapes - X: (100, 32), y: (100, 1)
198
+ 2024-12-17 21:12:44,197 - src.client.model - INFO - Starting local training...
199
+ 2024-12-17 21:12:44,198 - src.client.model - INFO -
200
+ Training Parameters:
201
+ 2024-12-17 21:12:44,198 - src.client.model - INFO - --------------------------------------------------
202
+ 2024-12-17 21:12:44,199 - src.client.model - INFO - Input shape: (100, 32)
203
+ 2024-12-17 21:12:44,199 - src.client.model - INFO - Output shape: (100, 1)
204
+ 2024-12-17 21:12:44,200 - src.client.model - INFO - Batch size: 32
205
+ 2024-12-17 21:12:44,200 - src.client.model - INFO - Epochs: 5
206
+ 2024-12-17 21:12:44,201 - src.client.model - INFO - Learning rate: 0.001
207
+ 2024-12-17 21:12:44,201 - src.client.model - INFO - --------------------------------------------------
208
+ 2024-12-17 21:12:44,795 - src.server.coordinator - INFO -
209
+ Round 1/10
210
+ 2024-12-17 21:12:44,796 - src.server.coordinator - INFO - ------------------------------
211
+ 2024-12-17 21:12:44,796 - src.server.coordinator - WARNING - Waiting for clients... (active: 0/1)
212
+ 2024-12-17 21:12:45,337 - src.client.model - INFO - Epoch 1 - loss: 26.7318
213
+ 2024-12-17 21:12:45,407 - src.client.model - INFO - Epoch 2 - loss: 24.7914
214
+ 2024-12-17 21:12:45,472 - src.client.model - INFO - Epoch 3 - loss: 23.1145
215
+ 2024-12-17 21:12:45,536 - src.client.model - INFO - Epoch 4 - loss: 21.5191
216
+ 2024-12-17 21:12:45,603 - src.client.model - INFO - Epoch 5 - loss: 20.1357
217
+ 2024-12-17 21:12:45,608 - src.client.model - INFO -
218
+ Training Progress Summary:
219
+ 2024-12-17 21:12:45,609 - src.client.model - INFO - ------------------------------
220
+ 2024-12-17 21:12:45,610 - src.client.model - INFO - Epoch 1/5: loss = 26.7318
221
+ 2024-12-17 21:12:45,611 - src.client.model - INFO - Epoch 2/5: loss = 24.7914
222
+ 2024-12-17 21:12:45,611 - src.client.model - INFO - Epoch 3/5: loss = 23.1145
223
+ 2024-12-17 21:12:45,612 - src.client.model - INFO - Epoch 4/5: loss = 21.5191
224
+ 2024-12-17 21:12:45,613 - src.client.model - INFO - Epoch 5/5: loss = 20.1357
225
+ 2024-12-17 21:12:45,613 - src.client.model - INFO -
226
+ Training completed - Final loss: 20.1357
227
+ 2024-12-17 21:12:45,614 - src.client.model - INFO -
228
+ Model Architecture:
229
+ 2024-12-17 21:12:45,615 - src.client.model - INFO - ------------------------------
230
+ 2024-12-17 21:12:45,616 - src.client.model - INFO - Layer (Output Shape) -> Params
231
+ 2024-12-17 21:12:45,617 - src.client.model - ERROR - Error during client execution: 'Dense' object has no attribute 'output_shape'
232
+ 2024-12-17 21:12:49,798 - src.server.coordinator - INFO -
233
+ Round 1/10
234
+ 2024-12-17 21:12:49,799 - src.server.coordinator - INFO - ------------------------------
235
+ 2024-12-17 21:12:49,799 - src.server.coordinator - WARNING - Waiting for clients... (active: 0/1)
236
+ 2024-12-17 21:12:54,800 - src.server.coordinator - INFO -
237
+ Round 1/10
238
+ 2024-12-17 21:12:54,801 - src.server.coordinator - INFO - ------------------------------
239
+ 2024-12-17 21:12:54,802 - src.server.coordinator - WARNING - Waiting for clients... (active: 0/1)
240
+ 2024-12-17 21:12:59,804 - src.server.coordinator - INFO -
241
+ Round 1/10
242
+ 2024-12-17 21:12:59,804 - src.server.coordinator - INFO - ------------------------------
243
+ 2024-12-17 21:12:59,805 - src.server.coordinator - WARNING - Waiting for clients... (active: 0/1)
244
+ 2024-12-17 21:13:04,806 - src.server.coordinator - INFO -
245
+ Round 1/10
246
+ 2024-12-17 21:13:04,806 - src.server.coordinator - INFO - ------------------------------
247
+ 2024-12-17 21:13:04,807 - src.server.coordinator - WARNING - Waiting for clients... (active: 0/1)
248
+ 2024-12-17 21:13:09,808 - src.server.coordinator - INFO -
249
+ Round 1/10
250
+ 2024-12-17 21:13:09,809 - src.server.coordinator - INFO - ------------------------------
251
+ 2024-12-17 21:13:09,810 - src.server.coordinator - WARNING - Waiting for clients... (active: 0/1)
252
+ 2024-12-17 21:13:14,812 - src.server.coordinator - INFO -
253
+ Round 1/10
254
+ 2024-12-17 21:13:14,812 - src.server.coordinator - INFO - ------------------------------
255
+ 2024-12-17 21:13:14,813 - src.server.coordinator - WARNING - Waiting for clients... (active: 0/1)
256
+ 2024-12-17 21:13:19,814 - src.server.coordinator - INFO -
257
+ Round 1/10
258
+ 2024-12-17 21:13:19,815 - src.server.coordinator - INFO - ------------------------------
259
+ 2024-12-17 21:13:19,815 - src.server.coordinator - WARNING - Waiting for clients... (active: 0/1)
260
+ 2024-12-17 21:13:24,816 - src.server.coordinator - INFO -
261
+ Round 1/10
262
+ 2024-12-17 21:13:24,817 - src.server.coordinator - INFO - ------------------------------
263
+ 2024-12-17 21:13:24,817 - src.server.coordinator - WARNING - Waiting for clients... (active: 0/1)
264
+ 2024-12-17 21:13:29,818 - src.server.coordinator - INFO -
265
+ Round 1/10
266
+ 2024-12-17 21:13:29,819 - src.server.coordinator - INFO - ------------------------------
267
+ 2024-12-17 21:13:29,819 - src.server.coordinator - WARNING - Waiting for clients... (active: 0/1)
268
+ 2024-12-17 21:13:34,821 - src.server.coordinator - INFO -
269
+ Round 1/10
270
+ 2024-12-17 21:13:34,822 - src.server.coordinator - INFO - ------------------------------
271
+ 2024-12-17 21:13:34,823 - src.server.coordinator - WARNING - Waiting for clients... (active: 0/1)
272
+ 2024-12-17 21:13:39,823 - src.server.coordinator - INFO -
273
+ Round 1/10
274
+ 2024-12-17 21:13:39,824 - src.server.coordinator - INFO - ------------------------------
275
+ 2024-12-17 21:13:39,825 - src.server.coordinator - WARNING - Waiting for clients... (active: 0/1)
276
+ 2024-12-17 21:13:44,827 - src.server.coordinator - INFO -
277
+ Round 1/10
278
+ 2024-12-17 21:13:44,827 - src.server.coordinator - INFO - ------------------------------
279
+ 2024-12-17 21:13:44,828 - src.server.coordinator - WARNING - Waiting for clients... (active: 0/1)
280
+ 2024-12-17 21:13:46,775 - __main__ - INFO -
281
+ ==================================================
282
+ 2024-12-17 21:13:46,776 - __main__ - INFO - New Training Session Started
283
+ 2024-12-17 21:13:46,776 - __main__ - INFO - ==================================================
284
+
285
+ 2024-12-17 21:13:46,955 - __main__ - INFO - Starting client with ID: 1
286
+ 2024-12-17 21:13:46,956 - src.client.model - INFO - Client 1 started
287
+ 2024-12-17 21:13:46,956 - src.client.model - INFO - Client config: {'data': {'batch_size': 32, 'shuffle_buffer': 1000, 'input_dim': 32}, 'model': {'type': 'feedforward', 'hidden_dims': [128, 64], 'activation': 'relu'}, 'training': {'local_epochs': 5, 'learning_rate': 0.001}}
288
+ 2024-12-17 21:13:46,957 - src.client.model - INFO - Generating training data...
289
+ 2024-12-17 21:13:46,965 - src.client.model - INFO - Generated data shapes - X: (100, 32), y: (100, 1)
290
+ 2024-12-17 21:13:46,966 - src.client.model - INFO - Starting local training...
291
+ 2024-12-17 21:13:46,967 - src.client.model - INFO -
292
+ Training Parameters:
293
+ 2024-12-17 21:13:46,967 - src.client.model - INFO - --------------------------------------------------
294
+ 2024-12-17 21:13:46,968 - src.client.model - INFO - Input shape: (100, 32)
295
+ 2024-12-17 21:13:46,968 - src.client.model - INFO - Output shape: (100, 1)
296
+ 2024-12-17 21:13:46,969 - src.client.model - INFO - Batch size: 32
297
+ 2024-12-17 21:13:46,970 - src.client.model - INFO - Epochs: 5
298
+ 2024-12-17 21:13:46,970 - src.client.model - INFO - Learning rate: 0.001
299
+ 2024-12-17 21:13:46,971 - src.client.model - INFO - --------------------------------------------------
300
+ 2024-12-17 21:13:48,369 - src.client.model - INFO - Epoch 1 - loss: 27.4601
301
+ 2024-12-17 21:13:48,465 - src.client.model - INFO - Epoch 2 - loss: 25.5196
302
+ 2024-12-17 21:13:48,548 - src.client.model - INFO - Epoch 3 - loss: 24.1586
303
+ 2024-12-17 21:13:48,632 - src.client.model - INFO - Epoch 4 - loss: 22.7560
304
+ 2024-12-17 21:13:48,710 - src.client.model - INFO - Epoch 5 - loss: 21.6746
305
+ 2024-12-17 21:13:48,716 - src.client.model - INFO -
306
+ Training Progress Summary:
307
+ 2024-12-17 21:13:48,717 - src.client.model - INFO - ------------------------------
308
+ 2024-12-17 21:13:48,718 - src.client.model - INFO - Epoch 1/5: loss = 27.4601
309
+ 2024-12-17 21:13:48,718 - src.client.model - INFO - Epoch 2/5: loss = 25.5196
310
+ 2024-12-17 21:13:48,719 - src.client.model - INFO - Epoch 3/5: loss = 24.1586
311
+ 2024-12-17 21:13:48,720 - src.client.model - INFO - Epoch 4/5: loss = 22.7560
312
+ 2024-12-17 21:13:48,720 - src.client.model - INFO - Epoch 5/5: loss = 21.6746
313
+ 2024-12-17 21:13:48,721 - src.client.model - INFO -
314
+ Training completed - Final loss: 21.6746
315
+ 2024-12-17 21:13:48,722 - src.client.model - INFO -
316
+ Model Architecture:
317
+ 2024-12-17 21:13:48,722 - src.client.model - INFO - ------------------------------
318
+ 2024-12-17 21:13:48,723 - src.client.model - INFO - Layer (Output Shape) -> Params
319
+ 2024-12-17 21:13:48,724 - src.client.model - INFO - dense (None, 128) -> 4,224 params
320
+ 2024-12-17 21:13:48,725 - src.client.model - INFO - dense_1 (None, 64) -> 8,256 params
321
+ 2024-12-17 21:13:48,726 - src.client.model - INFO - dense_2 (None, 1) -> 65 params
322
+ 2024-12-17 21:13:48,727 - src.client.model - INFO - Total Parameters: 12,545
323
+ 2024-12-17 21:13:49,829 - src.server.coordinator - INFO -
324
+ Round 1/10
325
+ 2024-12-17 21:13:49,830 - src.server.coordinator - INFO - ------------------------------
326
+ 2024-12-17 21:13:49,830 - src.server.coordinator - WARNING - Waiting for clients... (active: 0/1)
327
+ 2024-12-17 21:13:54,831 - src.server.coordinator - INFO -
328
+ Round 1/10
329
+ 2024-12-17 21:13:54,831 - src.server.coordinator - INFO - ------------------------------
330
+ 2024-12-17 21:13:54,832 - src.server.coordinator - WARNING - Waiting for clients... (active: 0/1)
331
+ 2024-12-17 21:13:59,833 - src.server.coordinator - INFO -
332
+ Round 1/10
333
+ 2024-12-17 21:13:59,833 - src.server.coordinator - INFO - ------------------------------
334
+ 2024-12-17 21:13:59,833 - src.server.coordinator - WARNING - Waiting for clients... (active: 0/1)
335
+ 2024-12-17 21:14:04,835 - src.server.coordinator - INFO -
336
+ Round 1/10
337
+ 2024-12-17 21:14:04,835 - src.server.coordinator - INFO - ------------------------------
338
+ 2024-12-17 21:14:04,836 - src.server.coordinator - WARNING - Waiting for clients... (active: 0/1)
setup.py ADDED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from setuptools import setup, find_packages
2
+
3
+ setup(
4
+ name="federated-rag-financial",
5
+ version="0.1.0",
6
+ packages=find_packages(),
7
+ install_requires=[
8
+ "tensorflow>=2.6.0",
9
+ "tensorflow-federated>=0.20.0",
10
+ "torch>=1.9.0",
11
+ "transformers>=4.11.0",
12
+ "elasticsearch>=7.0.0",
13
+ "faiss-cpu>=1.7.0",
14
+ "pandas>=1.3.0",
15
+ "numpy>=1.19.0",
16
+ "pytest>=6.0.0",
17
+ "black>=21.0.0",
18
+ "flake8>=3.9.0",
19
+ "sphinx>=4.0.0",
20
+ ],
21
+ author="Your Name",
22
+ author_email="[email protected]",
23
+ description="Federated Learning for Privacy-Preserving Financial Data Generation with RAG Integration",
24
+ long_description=open("README.md").read(),
25
+ long_description_content_type="text/markdown",
26
+ url="https://github.com/yourusername/federated-rag-financial",
27
+ classifiers=[
28
+ "Development Status :: 3 - Alpha",
29
+ "Intended Audience :: Science/Research",
30
+ "License :: OSI Approved :: MIT License",
31
+ "Programming Language :: Python :: 3.8",
32
+ ],
33
+ python_requires=">=3.8",
34
+ )