5.1. Thiết lập môi trường thực nghiệm
Framework FlwrBC được viết chủ yếu trên ngôn ngữ Python, được xây dựng dựa trên hai framework chính là Tensorflow và Flower. Tensorflow được dùng để thực hiện các chức năng xử lý tiền dữ liệu, xây dựng model, các chức năng của đào tạo model. Flower được dùng dé triển khai mô hình học máy liên kết.
Về phần mô phỏng blockchain, FlwrBC sử dụng truffle và ganache để mô phỏng Ethereum blockchain và triển khai hợp đồng thông minh.
Vé môi trường, dự án viết trên python và sử dụng một số packages của NodeJS. Do
đó, anaconda được dùng để thiết lập môi trường ảo, cấu hình của môi trường ảo được
quy định trong file ENV.tx của project.
Cấu hình của máy thử nghiệm như sau: CPU AMD Ryzen 7 5800H (8 cores — 16
threads — 3.20 GHz), RAM 16GB, GPU GTX1650 4GB, Window 11 OS.
Hệ thống chia thành ba thành phan chính gồm Blockchain, Server, Client.
Hình 5-1: Tổ chức thư mục trong project 5.1.1. Thanh phần thư mục Blockchain
Các mã nguồn trong thư mục Blockchain được xây dựng theo project chuẩn của truffle. Để cài đặt truffle cần phải cài đặt NodeJS, sau khi cài đặt NodeJS, sử dụng lệnh npm install -g truffle để cài đặt truffle và truffle init để tạo
4
project. Các hợp đồng thông minh sẽ được viết trong thư mục contracts bằng ngôn ngữ solididy. Sau khi viết hợp đồng thông minh, dùng lệnh truffle compile các hợp đồng sẽ được phiên dịch thành file json và lưu ở thư mục build. Trong thư mục migrations sẽ chứa các file quản lý các deployment script viết bằng javascript. Dé triển khai các hợp đồng thông minh lên blockchain ta dùng lệnh truffle migrate. Sau khi deploy hai hợp đồng, trên blockchain ta sẽ thay hai block của việc tạo hợp đồng trên blockchain. Ở thử nghiệm này, hệ thống được test trên mạng blockchain
mô tả Etherum do Ganache cung cấp.
Hình 5-2: Tổ chức thư mục Blockchain
48
BLOCK 1
856119 6721975 2022-12-14 60:45:47 6x1€6b1ifa 3f9b13b22d62d61d27fbae136e1e7a2fc560f494943f57a56835
'9xc399e28f121e655badf1677be49f2dd86e69db209bbb1ddff2dbe29f4570e5f2
mm
- BLOCK 2
|
985999 6721975 2022-12-14 00:4 9x799ed5a47916c '4d282901a7c9d9ac37e0c79b48215a49f3ee1d982bd
.8xcdd689a5687a11345b772ab99ccdfe6d2a81feaf3e8869bdf36dfc17428d468f
FROM ADDRESS CONTRACT ADDRESS
f6Fe12FAsaD4BFCFaD A0C1A2 FOSCABE!
Blockchain c\vsers\xietws\worispace rõC\Blockch
| contribution €x90bCafeE3C¿73C37f5F18A9874a98353F3£6E993 , |
Federation 9xeF7F9846A9C1A2FD8cA9E99673D9774d98864/55d. 2 ca
Hình 5-4: Smart Contracts sau khi deploy lên blockchain
49
5.1.2. Thanh phần thư mục Server
Các tệp tin trong Server sẽ xử lý tác vụ quản lý việc học máy liên kết, chức năng từng
tệp tin được trình bày như sau:
Tên tệp tin Chức năng
blockchain_ service.py Định nghĩa lớp BlockchainService đề quản lý các tác
vụ liên quan đến blockchain trong quá trình học máy liên kết
FLstrategy.py Định nghĩa Strategy sử dụng trong học máy liên kết
bao gồm thuật toán tổng hợp, configure fit, aggregate_fit, configure_evaluate,
aggregate_evaluate, evaluate
server_api.py Quan lý các api của server
config_training.json File json được tao khi server khởi chạy một session
training, chứa thông tin số rounds đào tạo, đạo tạo tiếp
tục hay đào tạo mới, thời gian khởi tạo session (dạng int)
model_architecture.json _ | Kiến trúc của mô hình dao tạo trong hệ thống, đồng
nhất với kiến trúc của mô hình ở client, nhưng không chứa tham số mô hình
fl_session Lưu trên local các tham số mô hình qua các rounds và
sessions Bang 5-1: Bảng chức nang các tệp tin ở Server
50
Các tệp tin trong Client sẽ xử lý tác vụ quản lý việc học máy cục bộ, và các tác vụ blockchain liên quan. Các chức năng từng tệp tin được trình bày như sau:
Tên tệp tin Chức năng
blockchain_ service.py Định nghĩa lớp BlockchainService dé quản lý các tác
vụ liên quan đến blockchain trong quá trình học máy liên kết
client.py Định nghĩa client sử dụng trong học máy cục bộ bao
gồm việc get tham số mô hình toàn cục và set tham số
để đào tạo cục bộ, định nghĩa tác vu fit (dao tạo) va
evaluate (đánh giá lại) trong đào tạo cục bộ client_api.py Quản lý các api của server
51
Tên tệp tin Chức năng
model_architecture.json Kiến trúc của mô hình đào tạo trong hệ thông, đồng
nhất với kiến trúc của mô hình ở server, nhưng không chứa tham số mô hình
Local-weights Lưu trên local tham số mô hình sau khi đào tạo cục bộ
Global-weights Lưu tham số mô hình toàn cục qua các rounds và
sessions
verify.py Định nghĩa hàm lay tham số toàn cục mới nhất
Bảng 5-2: Bảng chức năng các tệp tin ở Client
5.2. Dataset dùng trong thực nghiệm
Trong thực nghiệm, FlwrBC dùng dé thực hiện bài toán phân loại hình anh, dataset
sử dụng là CIFAR-10 (Canadian Institute for Advanced Research, 10 classes) [27].
CIFAR- 10 là bộ dataset về thị giác máy tinh rất thông dụng trong bai toán phân loại hình ảnh, bộ đữ liệu CIFAR-10 chứa 60,000 hình ảnh màu sắp xếp ngẫu nhiên (50,000 hình thuộc về training data, 10,000 hình thuộc về testing data) thuộc mười lớp, mỗi lớp có 6,000 bức hình (tương tự 5.000 hình thuộc về traing và 1,000 hình thuộc về
testing).
52
split: test [J 10000images split: train [MJ 50000 images
Hinh 5-7: Train set va test set trong CIFAR-10
Các lớp trong CIFAR-10 gom: airplane, automobile, bird, cat, deer, dog, frog, horse, ship, truck. Mỗi hình trong CIFAR-10 có kích thước 32 x 32 pixels, va theo chuan
mau RGB, kích thước
0
Hình 5-8: Hình ảnh một đối tượng trong CIFAR-10
53
label: airpl.. J 6000 images label: auto. 6000 images _ label: bird 6000 images label: deer 6000 images
6000 images label: ship [MN 6000 images label: dog MN 6000 images label: frog Ii 6000 images
fabel:truck J 6000 images | label: cat [INN 6000 images
Hình 5-9: Các lớp trong CIFAR-10
5.3. Do lường kết quả
5.3.1. Các thang đo hiệu suất học máy
Dé đánh giá hiệu suất và so sánh giữa học máy cục bộ và học máy liên kết, bài luận
sử dụng các thang đo sau:
e_ Accuracy: tính toán phan trăm dữ liệu được dự đoán trúng trên tổng số mẫu
quan sát. Trong đó True Positives (TP) là số dữ liệu dự đoán đúng thuộc nhóm đúng, False Positives (FP) là số dữ liệu dự đoán sai thuộc nhóm đúng, True Negatives (TN) là số dir liệu dự đoán đúng thuộc nhóm sai, False Negatives (EN) là số dữ liệu dự đoán sai thuộc nhóm sai. Công thức thang đo accuracy:
TP+TN
Accuracy = ——————————y TP+NP+TN+FN
54
e Loss: xác định độ khác biệt giữa dự đoán của mô hình và giá trị thực tế. Trong
bài luận này hàm loss được sử dụng là sparse_categorical_crossentropy. Giá
tri Joss càng thap thì mô hình càng tiệm cận với thực tế.
e Precision (độ chính xác): tính toán phần trăm dữ liệu được dự đoán đúng nhóm
đúng trên tổng dữ liệu được dự đoán thuộc nhóm đúng. Công thứ thang đo:
TP TP+NP
Precision =
e Recall (độ nhận dạng): tính toán phần trăm dữ liệu được dự đoán đúng nhóm
đúng trên tổng lượng dữ liệu thực tế. Công thức thang đo:
TP TP+FN
Recall =
¢ Fl-Score: điểm số hợp nhất của recall va precision, F1 có giá trị càng cao thi
mô hình có độ chính xác và độ nhận dạng càng cao. Công thức thang đo:
2 * precision * recall
F1=
precision + recall
¢ ROC-AUC score: được tinh bằng việc vẽ biểu đồ ROC (Receiver Operating
Characteristic) và tính diện tích bên dưới đường cong ROC (AUC - Area
Under the Curve) dựa trên tỷ lệ giữa số lượng dữ liệu dự đoán đúng (TPR - True Positive Rate) va số lượng dữ liệu dự đoán sai (FPR - False Positive
Rate).
5.3.2. So sánh kết quả học máy liên kết và học máy cục bộ
Để so sánh với kết quả học máy cục bộ, bài nghiên cứu sẽ so sánh theo các thông số
accuracy và confusion matrix. Kịch bản đảo tạo của học máy cục bộ như sau: batch
size: 32, epochs: 10, dataset: CIFAR-10; kịch bản dao tạo của học máy liên kết như sau: số clients: 3, local batch size: 32, local epochs: 2, số rounds đào tạo: 10. Sau quá trình đào tạo, FlwrBC cho thang đo accuracy là 0.763 tương đương với chỉ số của mô hình học cục bộ là 0.757; thang đo loss giữa hai mô hình cho thấy học máy cục bộ có chỉ số tốt hơn (0.766 với FlwrBC và 0.698 với học máy cục bộ)
55
Training and validation accuracy - Federated Learning Training and validation accuracy - Centralized Learning
0.80 0.80
0.768 0763) 0764
0.756 0.757]
Gữaa 0752 0751
075 075
0.70 0.70
— Training accuracy
06
— Training accuracy
G60 060 dọa,
055 oss
o5;
650 oso
o 1 2 3 4 5 6 7 8 9
epochs
Hình 5-10: Biểu đồ thông số accuracy giữa Federated va Centralized Learning
„ „aining and validation accuracy - Federated Learning - Jgining and validation accuracy - Centralized Learning
—— Training loss — Training loss12
14
pet 13
12 10
Ỹ Šò
10
03 865, 08
0824
0.795
os 026 o757 0766 0766| 4,
rounds
Hình 5-11: Biểu đồ thông số loss giữa Federated va Centralized Learning
Khi so sánh confusion matrix, kết quả giữa hai mô hình cũng tương đồng nhau. Tuy nhiên, thang đo của FlwrBC cho kết quả cao hơn so với học máy cục bộ hai điểm phan trăm, cụ thé Fl-score trung bình của FlwrBC là 0.78 so với 0.76 của học máy cục bộ. Tương tự, kết quả của ROC-AUC score của các class ở FlwrBC cũng cao hơn
học máy cục bộ.
56
Confusion Matrix - Federated learning
2 4 6 8
- Centrali
Confusion Matrix
2 4
ized Learning
6 8
9 17 13 78 19 o 62 28 29 02 09 06 18.9 3.6
12 00 28 47 05 01 02 02 02 39 69
2 58 26 10 04 273.5 67 89 48 47 29 21 10
73 22 10 05 14 08 56 158 51 33 17 17
Bs 46 42 08 01] 24/04 01 5.2 3.1 47 17 03
bì §
g 48 3.0 0.2 02 g 11 01 49 180 40 49 06 0.5
6701 00 51 40 15 12 0.1 ứ{05 02 42 53 19 14 06 06 03
09 00 34 34 51 69 04 14 00 20 41 45 45 08 16
8131 10 22 14 09 05 11 8713 12 06 15 02 01 03 29
15 55 10 12 06 05 10 10 21 38 07 06 03 01 04 06
Predictions Predictions
Hình 5-12: Confusion matrix giữa Federated va Centralized Learning
Multiclass ROC curve - Federated Learning Multiclass ROC curve - Centralized Learning
10 10
os os
s06 Íass 0 RỌC AUC: 0.381444 | y O° — Giass 0 Roc AUC: 0.973779
§ “— Class 1 Roc auc: 0.993074 | = “— Class 1 ROC AUC: 0.993642
H — Class 2 Roc auc: 0.949023 | 8 — Class 2 ROC AUC: 0.944870
gy 04 — Class 3 ROC AUC: 0.935656 | 9 04 — Class 3 ROC AUC: 0.921571
Ễ — Class 4 Roc auc: 0.969961 | = — class 4 Roc AUC: 0.968352
— Class 5 RỌC AUC: 0.955300 — class 5 Roc AUC: 0.955568 o2 — class 6Roc auc: 0.985838 | 02 — class 6 Roc AUC: 0.984608
— Class 7 ROC AUC: 0.980966 — class 7 Roc AUC: 0.979529
— Class 8 Roc auc: 0.988693 — class 8 Roc AUC: 0.987439
oo — class 9 oc AuC: 0989919 | 9 — class 9 Roc auc: 0.988521
so 02 oa 06 08 10 so 02 oa 06 oe xo
False Positive Rate False Positive Rate
Hình 5-13: ROC-AUC curve giữa Federated va Centralized Learning
Class Centralized learning Federated learning
Precision | Recal | F1-Score | Precision Recal | F1-Score
0 0.83 0.63 0.72 0.86 0.73 0.79
1 0.92 0.87 0.89 0.91 0.88 0.89
2 0.68 0.65 0.66 0.67 0.71 0.69
3 0.56 0.59 0.57 0.63 0.57 0.60
4 0.73 0.77 0.75 0.73 0.78 0.75
5 0.69 0.64 0.66 0.65 0.69 0.67
6 0.83 0.85 0.84 0.76 0.87 0.81
7 0.82 0.81 0.81 0.84 0.79 0.81
8 0.73 0.92 0.81 0.84 0.88 0.86
57
Class Centralized learning Federated learning
Precision |Recal |El-Score | Precision | Recall | F1-Score
9 0.82 0.88 0.85 0.90 0.86 0.88 avg 0.76 0.76 0.76 0.78 0.78 0.78 Bang 5-3: Thang do Precision, Recall, Fl-score giữa Federated va Centralized
Learning 5.3.3. Các bản ghi trên blockchain
Khi compile hai smart contract, terminal sé xuat thông báo thành công đồng thời trong
thư mục ~/Blockchain/build/contracts sẽ có hai file build của smart contract ở định
dạng json. Sau đó, ta thực hiện migrate hợp đồng lên blockchain, khi migrate thành công terminal sẽ trả về các thông số của hợp đồng gồm transaction hash, số thứ tự
Hình 5-14: Compile thành công smart contracts
58
Blockchain cw WinNative\Fiwr8C\alockehain
NAM ADDRESỳ coun
‘Ontriputio ° ‘DEPLOYED
NAM
ETETETTOT
‘DEPLOYED
Hình 5-16: Blocks của smart contracts trên Ganache
Starting migrations.
> Network name: ‘development’
> Network id: 5777
> Block gas limit: 6721975 (@x6691b7)
1_Contracts_Migration
Deploying ‘Contribution’
> transaction has! @x7@b2ac8dbcc214c4855b48cb0eGa5a38a5383518a8904607d5b19a4a66678d84
@x3@47710E5D3C7925bF417DDb26aeff6d7a7282Fb
> block timestamp: 1671463895
> account: @xC378F8820553731803CBF8a1565379@F 6BB50a06
balance 999.98287762
> gas used: 856119 (@xd1037)
> gas pri 20 gwei
> value sent 9 ETH
total cost: @.01712238 ETH
> transaction hash: @x2908388ef5149b0c361709948a8eef4F704b02114729Fcfd4bd8b855a33de625
> Blo Seconds:
contract address: x4D4eA1E1C38996b764a709EB@72d36F432dAb998
Saving artifact:
> Total cost: @.03684236 ETH
Summary
> Total deployments: 2
> Final cost: @.03684236 ETH
Hình 5-17: Migrate thành công smart contracts
Hop đồng Contribution sẽ ghi lại số round tham gia, trạng thái công việc, lượng data
đóng góp cho session đào tạo và lượng token nhận được sau khi hoàn thành session.
Hợp đồng Federation sẽ ghi lại đường dẫn của các tham số cục bộ từ các client, strategy sử dụng trong học máy liên kết và đường dẫn của tham số toàn cục.
60
TX @x5d0d863abfe224db07000359b3d28a3a3bad39838141c8ef35cde0020140759e
‘SENDER ADDRESS TOCONTRACT ADDRESS
0x3a345E4d8E18141F659e12078D0e9a4502D2bb84 6xFa61EeFbA42C10e322a2910baC3dF9291Ed25643
ae casusen ‘cas PRE 649L MNED im stock
9.09 ETH 93091 20006000000 193091 83
9x1ff34C6b909886996988890008888696888869688886908998896909986900898869665800966088969969069900988969698869000988009698899668990096609. 166688088006008866999860000000809996989690090909066988860660941129690089960900906090989969908800690080099999000009000966698696666.
t
CONTRACT F
C0NTRAGT ‘ones
Contribution @xFa61EeFbA42C10e322a2910baC3dF9291Ed25043 |!
FUNCTION
calculateContribution(_rNo: uint256, _finished: bool, _dataSize: uint256, _payment: uint256)
inputs
5, true, 16666, 6
EVENTS
EVENT AME
contributeEvent
contact TX HASH Lo moe
Contribution 95ded883abf222d097909359b3d28a3a3bad39838141c8 0 3246 |
ef 35¢de00201407598
Hình 5-18: Block ghi bởi Contribution contract
TX 0x1f4d44d456e5224f88c995a87a743750a7d6893f5c833f57ad3fe9824ac8e096
SENDER ADORESS TO.CONTRACT ADDRESS :
9x3a345E4d8E18141F659e1207800e9a4592D02bb84. 9xd71ffb38627f49e¿348b932D31c169F89EbB6a1.
vuuec exsusen As PRICE cxsumr MNED 2.00%
9.69 ETH 190742 20080000000 290742 114
6 F8¢c5530080000000000000000000080000000000000000000000009000000632022910000000000000000009090800000000000000802000099000000090000
'9808666696666696686666966696966866666966866668866669666660688411ã90666806668666966688866899666066666660896669066689668666696660a606098666.
)96908660666909600666908600069808869669066080912086690660006669886606606866090869906000669806660966090806066690592e2e2£436c63656e7
768747 32 F43669656e7420312F5365737 3606 f622d313637313437333830302F526F 75 1477 65696768747: 90666686966699600086666886906698686800669680666888686968680006866696006/
36435333934383430336561343037313338396466333335633365316339323636353062
CONTRACT
contract ADRESS
Federation xd71ffb38627f40e4348b032D31C169F89EbB6a14.
FUNCTION
addWeight(_session: uint256, _round_num: uint256, _dataSize: uint256, _filePath: string, _fileHash: strin
8)
INEITS
1671473809, 9, 16666, .. /Client/Local-weights/Client-1/Session-1671473809/Round-9-training.
41d41f6bfb321bc9002516d4e6cd53948403ea4071389dF335c3e1c926650b
jeights.npy, 4d
Hình 5-19: Block chứa thông tin tham số cục bộ ghi bởi Federation contract
61
se TX 0xa32c4f39af03d6bdd2e120dde27b87efdc46bcfe3e3b55fd827787b89dbcb9bc
‘SENDER ADDRESS ‘To CONTRACT ADDRESS
@x722D03D6395C184e293a75750273050522e7749E 9xd71ffb38627f49e4348b632031c169F86EbB6a14.
vawe Assen CAS PRICE 0ASLMT MNED NBL0OK 9.89 ETH 169848. 20980999096. 269848. 118
TXDMA
953785216e9699096866698866686689666968669069896669869990668666898663a8aa91606066966096866686869660686666969666669666966896968866896698666. '9068666698660066666698660966696669686990660066696899908600699866090666660606669096066699869008906608968686008666969666969916880606666. '9000866668660000606666966069808060606660980000666089694c2e2e2f5365727665722f666c5£73657373696f6e732f53657373696f682đ313637313437333838392.
#6766£62616c5£73657373696f6e5f313637313437333836395f6d664656c2e6e76799886089666988908666868696686886968869609888968896868896880688666 '9908699699608090086968989086908060694939373066376664353360656536656364353534363638643463333666383538363338373636656436362396366396336333 33037386362366235313334343030
CONTRACT
contract ooness
Federation 6xd71ffb38627f40e4348b632D31c169F86EbB6a14.
FUNCTION
addModel(_session: uint256, _round_num: uint256, _fiLePath: string, _fileHash: string)
Nirs
1671473809, 19, .. /Server/fl_sessions/Session-1671473809/global_session_1671473809_model.npy, 979f7fd53fee 6ecd554668d4c 368580387 06ed61b9c F9c033078cb6b5134400
Hình 5-20: Block chứa thông tin tham số toàn cục ghi bởi Federation contract
1ơ TX 0x351710fc0006bc3e96a4642a7fb85355 1eaaf fe215de27d43 fdd45637a9a7 F22
SENOER ADDRESS ‘TOCONTRACT ADDRESS
0x722D03D6395C184e293a75750273050522e7749E 9xd71ffb38627f%9e4348b932D31c169F86EbB6a1⁄4
vawe casusen cas pmce cas unt neo mw BLocK
0.00 ETH 88588 2098906966. 188588 87
TxDATA
.9zŸ985b6586689668869666860666688889606966668669998669606626986689638622916666806699668666690660866866669866668868669866696888666966668. .9866860608660869889608600866888699009069888999006066666099986a9800626606869000099695606698090966868860869096088886980009096839999900. .9966860066660096086606086006088869000000988868900000864665644176676688689660900000260690600000086680660000808666086606.
CONTRACT
C0NIMGT ‘Ress
Federation 6xd71ffb38627f40e4348b932D31c169F86EbB6a14.
| RNEION
addStartegy(_session: uint256, _algoName: string, _nunRounds: uint256, _numCLients: uint256)
neuts
1671473809, FedAvg, 10, 3
.
addStrategyEvent
contract TaHasH 10 moe sock Tm
Federation 85351716f28086bc3e96a464237 fb853551eaaffe315d427 — 0 2022-12-20 01:16:58
đã3f6d45637a9a7F22
Hình 5-21: Block chứa thông tin strategy ghi bởi Federation contract
62
oe TX_9xe778819bd489e9b91dfb7bbf62f838e36c7013ca67cc676906172973ef88e0d7
SENDER ADDRESS To CONTRACT ADDRESS
‘CONTRACT CALL
9+72206306395C1846293275750273050522e7749E ——_ 0x32345Ead8E18141765961207800e9a456202:bp. CD
AWE casuse GAS PRICE .0ASUME MNED In BLOCK.
6.00 ETH 21008 20000000000 121000 124
TxDATA
ox
EVENTS
Hinh 5-22: Block giao dich tra thuong
63