La python.exe 8508 Running DELL 01 3,098,728 K Lai python.exe 9276 Running DELL 02 2,997,840 K
= python.exe 9692 Running DELL 03 2,991,520 K
Hình 4.23: Dung lượng bộ nhớ tiêu hao của các thành phan trong hệ thống FL
cross-silo ứng dụng HE với mô hình DL ANN.
Thời gian xử lý trung bình của mô hình FL cross-silo ứng dung HE là 4.61 phút
cho mỗi round tổng hợp. Trong đó đáng chú ý là thời gian mã hoá mất từ 2-3 giây và mat hơn | giây cho quá trình giải mã các tham số mô hình tại Data Owner va Scientist. Việc tính toán trên dữ liệu được mã hoá thông thường sẽ mất nhiều thời gian hơn so
với tính toán trên dữ liệu thô. Tuy nhiên bởi vì việc tính trung bình không quá phức tạp
cho nên thời gian tính toán chỉ mất 2-3 giây. Ngoài ra thời gian trao đổi dữ liệu của các round tổng hợp mất trung bình khoảng 3.1 phút, thời gian tiêu hao này sẽ tăng lên sau mỗi round (mat 2.4 phút cho round đầu tiên và 3.9 phút cho round thứ 10).
In [272]: start = time.time()
enc_fc1 weight enc_fc2_weight enc_fc3_weight enc_fc4_weight
[E] for i in range(128)]
[[] for i in range(64)]
[[] for i in range(32)]
[[] for i in range(19)]
#encrypt ƒc1 Layer for i in range(len(fc1_weight)):
x = ts.ckks_vector(context, fc1_weight[i]) enc_fc1 weight[i] = x
enc_fcl_bias = ts.ckks_vector(context, fc1_bias)
#encrypt fc2 Layer for i in range(len(fc2_weight)):
x = ts.ckks_vector(context, fc2_weight[i]) enc_fc2_weight[i] = x
enc_fc2_bias = ts.ckks_vector(context, fc2_bias)
#encrypt fc3 Layer for i in range(len(fc3_weight)):
x = ts.ckks_vector(context, fc3_weight[i]) enc_fc3_weight[i] = x
enc_fc3_bias = ts.ckks_vector(context, #c3_bias)
#encrypt fc4 Layer for i in range(len(fc4_weight)):
x = ts.ckks vector(context, fc4 weight[i]) enc_fc4_weight[i] = x
enc_fc4_bias = ts.ckks_vector(context, fc4_bias) end = time.time()
In [273]: print(f"Encrypt time: {float(end - start)} seconds")
Encrypt time: 2.7546160221099854 seconds
Hình 4.24: Mã hoá các tham số mô hình va thời gian tiêu hao.
In [260]: start = time.time()
c1 weight = [[] for i in range(128)]
fc2 weight = [[] for i in range(64)]
fc3_weight = [[] for i in range(32)]
fc4_weight = [[] for i in range(19)]
for i in range(len(global_fc1_weight)):
global_fci_weight[i].link_context (context)
x = global_fc1 weight[i].decrypt(sk) fc1_weight[i] = x
global_fc1_bias.1ink_context(context) fc1_bias = global fc1 bias.decrypt(sk)
for i in range(len(global fc2 weight)):
global_fc2_weight[i].1ink_context(context)
x = global_fc2_weight[i].decrypt(sk)
#c2_weight[i] = x global_fc2_bias.1link_context (context) fc2_bias = global fc2 bias.decrypt(sk)
for i in range(len(global_fc3_weight)):
global_fc3_weight[i].link_context(context)
x = global_fc3_weight[i].decrypt(sk) fc3 weight[i] = x
global_fc3_bias.link_context(context) fc3_bias = global_fc3_bias.decrypt(sk)
for i in range(len(global_fc4_weight)):
global_fc4_weight[i].link_context (context)
x = global fc4 weight[i].decrypt(sk) fca_weight[i] = x
global_fc4_bias.link_context(context) fc4_bias = global_fc4_bias.decrypt(sk)
end = time.time() print(f"Decrypted time: {float(end - start)} seconds”) Decrypted time: @.8633644580841064 seconds
Hình 4.25: Giải mã các tham số mô hình và thời gian tiêu hao.
67
In [259]: start = time.time()
global_fcl_weight = average(enc_duet1_fcl_weight, enc_duet2_fc1_weight) global_fc1_bias = (enc_dueti_fc1_bias + enc_duet2_fcl_bias) * 9.5
global_fc2_weight = average(enc_duet1_fc2_weight, enc_duet2_fc2_weight) global_fc2_bias = (enc_duet1_fc2_bias + enc_duet2_fc2_bias) * 9.5
global_fc3_weight = average(enc_duet1_fc3_weight, enc_duet2_fc3_weight) global fc3 bias = (enc_dueti_fc3_bias + enc_duet2_fc3_bias) * 9.5
global_fc4_weight = average(enc_duet1_fc4_weight, enc_duet2_fc4_weight) global fc4 bias = (enc_dueti_fca_bias + enc duet2 fc4 bias) * 9.5
end = time.time() print(f"Average time: {float(end - start)} seconds") Average time: 2.522646188735962 seconds
Hình 4.26: Tinh trung bình các tham số mô hình đã được mã hoá và thời gian tiêu hao.
Đánh giá hiệu quả triển khai kỹ thuật HE
HE cho thấy tiềm năng ứng dụng vượt trội vào lĩnh vực học máy đặc biệt là học hợp tác FL. Khi ứng dụng vào quá trình trao đổi dữ liệu giữa các thành phần trong hệ thống, các số liệu thu thập được cho thay mô hình có độ chính xác cao (kém hơn khoảng 1-2%
so mô hình FL cross-silo ở kịch bản 1) tuy nhiên thời gian dành cho quá trình tổng hợp
lại lớn (lớn hơn đôi chút so với mô hình FL cross-silo ở kịch ban 1, trung bình 4.61
phút một round so với mô hình không ứng dụng là 4.48 phut), tuy nhiên thời gian tổng hợp lớn tập trung chủ yếu ở quá trình trao đổi dữ liệu giữa các thành phần trong hệ thống (tương đương so với mô hình FL cross-silo ở kịch bản 1). Vì vậy, thời gian này
có thể được giảm thiểu nếu áp dụng các phương pháp trao đổi dữ liệu khác phù hợp hơn. Ngoài ra, các mô hình DL phức tạp hơn cũng yêu cấu cấu hình phần cứng cao hơn
để thực hiện được quá trình tổng hợp dữ liệu.
Ung dụng HE vào mô hình FL cross-silo sẽ đảm bảo quá trình trao đổi dữ liệu giữa
các thành phần trong hệ thống được an toàn. Các tham số mô hình được mã hoá trước khi gửi đi sẽ đảm bảo các tham số này được an toàn trong suốt quá trình đi chuyển.
Tốc độ tính trung bình các tham số mô hình đã được mã hoá dao động từ 2-3 giây (tương đương với thời gian tính toán trên các tham số không mã hoá)
Ưu điểm:
¢ Độ chính xác mô hình cao.
ô Tốc độ mó hoỏ / giải mó cao.
* Tốc độ tổng hợp bản cập nhật nhanh.
ằ Thời gian huấn luyện mụ hỡnh tại Owner thấp.
Nhược điểm:
* Thời gian trao đổi dữ liệu lớn.
* Doi hỏi nhiều tương tác giữa các thành phần trong hệ thống.
* Yêu cau cấu hình phần cứng cao với các mô hình DL phức tap.
69
4.3.3. Kịch bản 3: Ứng dung DP với thư viện Opacus
Số liệu thu được khi thực nghiệm trên tập dữ liệu MNIST và EMNIST. Mô hình FL
sẽ sử dụng mô hình DL CNN. Mỗi round của mô hình sẽ bao gồm 10 epochs.
Dataset: MNIST
Accuracy
2 4 6 8 10
Round
Hình 4.27: Biểu đồ độ chính xác của mô hình FL cross-silo ứng dung DP sử dung tập
dữ liệu MNIST.
So sánh mô hình FL cross-silo ứng dụng DP với mô hình FL cross-silo ở kịch bản
Dataset: MNIST
2 4 6 8 10
Round
Hình 4.28: Biểu đồ độ chính xác của mô hình FL cross-silo và mô hình FL cross-silo
ứng dụng DP sử dụng tập dữ liệu MNIST.
Sau một round tổng hợp với mô hình DL CNN, trung bình các Data Owner sẽ tiêu