Tổng quan
TFF là một khuôn khổ mạnh mẽ, có thể mở rộng để tiến hành nghiên cứu học tập liên kết (FL) bằng cách mô phỏng các tính toán liên kết trên các tập dữ liệu proxy thực tế. Trang này mô tả các khái niệm và thành phần chính có liên quan đến mô phỏng nghiên cứu cũng như hướng dẫn chi tiết để thực hiện các loại nghiên cứu khác nhau trong TFF.
Cấu trúc điển hình của mã nghiên cứu trong TFF
Một mô phỏng FL nghiên cứu được triển khai trong TFF thường bao gồm ba loại logic chính.
Các đoạn mã TensorFlow riêng lẻ, điển hình là
tf.function
, đóng gói logic chạy ở một vị trí duy nhất (ví dụ: trên máy khách hoặc trên máy chủ). Mã này thường được viết và kiểm tra mà không có bất kỳ tham chiếutff.*
nào và có thể được sử dụng lại bên ngoài TFF. Ví dụ: vòng đào tạo khách hàng trong Tính trung bình liên kết được triển khai ở cấp độ này.Logic điều phối liên kết TensorFlow, liên kết
tf.function
riêng lẻ từ 1. bằng cách gói chúng dưới dạngtff.tensorflow.computation
và sau đó sắp xếp chúng bằng cách sử dụng các khái niệm trừu tượng nhưtff.federated_broadcast
vàtff.federated_mean
bên trongtff.federated_computation
. Ví dụ: hãy xem cách phối hợp này cho Tính trung bình liên kết .Tập lệnh trình điều khiển bên ngoài mô phỏng logic điều khiển của hệ thống FL sản xuất, chọn các máy khách được mô phỏng từ một tập dữ liệu rồi thực hiện các phép tính liên kết được xác định trong 2. trên các máy khách đó. Ví dụ: trình điều khiển thử nghiệm EMNIST được liên kết .
Bộ dữ liệu học tập liên kết
Liên kết TensorFlow lưu trữ nhiều bộ dữ liệu đại diện cho các đặc điểm của các vấn đề trong thế giới thực có thể được giải quyết bằng học tập liên kết.
Bộ dữ liệu bao gồm:
StackOverflow . Một tập dữ liệu văn bản thực tế để lập mô hình ngôn ngữ hoặc các nhiệm vụ học tập có giám sát, với 342.477 người dùng duy nhất cùng 135.818.730 ví dụ (câu) trong tập huấn luyện.
Liên đoàn EMNIST . Quá trình xử lý trước liên kết của tập dữ liệu ký tự và chữ số EMNIST, trong đó mỗi khách hàng tương ứng với một người viết khác nhau. Bộ tàu đầy đủ chứa 3400 người dùng với 671.585 ví dụ từ 62 nhãn.
Shakespeare . Một tập dữ liệu văn bản cấp char nhỏ hơn dựa trên các tác phẩm hoàn chỉnh của William Shakespeare. Tập dữ liệu bao gồm 715 người dùng (nhân vật trong các vở kịch của Shakespeare), trong đó mỗi ví dụ tương ứng với một tập hợp các dòng liền kề được nói bởi nhân vật trong một vở kịch nhất định.
CIFAR-100 . Phân vùng liên kết của bộ dữ liệu CIFAR-100 trên 500 khách hàng đào tạo và 100 khách hàng thử nghiệm. Mỗi khách hàng có 100 ví dụ độc đáo. Việc phân vùng được thực hiện theo cách tạo ra sự không đồng nhất thực tế hơn giữa các máy khách. Để biết thêm chi tiết, hãy xem API .
Tập dữ liệu Google Landmark v2 Tập dữ liệu bao gồm các bức ảnh về nhiều địa danh khác nhau trên thế giới, với các hình ảnh được nhiếp ảnh gia nhóm lại để đạt được sự phân vùng dữ liệu được liên kết. Có hai loại tập dữ liệu: tập dữ liệu nhỏ hơn với 233 khách hàng và 23080 hình ảnh và tập dữ liệu lớn hơn với 1262 khách hàng và 164172 hình ảnh.
CelebA Một tập dữ liệu về các ví dụ (thuộc tính hình ảnh và khuôn mặt) của khuôn mặt người nổi tiếng. Tập dữ liệu liên kết có các ví dụ của từng người nổi tiếng được nhóm lại với nhau để tạo thành một khách hàng. Có 9343 khách hàng, mỗi khách hàng có ít nhất 5 ví dụ. Tập dữ liệu có thể được chia thành các nhóm đào tạo và thử nghiệm theo khách hàng hoặc theo ví dụ.
iNaturalist Một tập dữ liệu bao gồm các bức ảnh của nhiều loài khác nhau. Bộ dữ liệu chứa 120.300 hình ảnh của 1.203 loài. Bảy loại của tập dữ liệu có sẵn. Một trong số họ được nhiếp ảnh gia nhóm lại và bao gồm 9257 khách hàng. Phần còn lại của bộ dữ liệu được nhóm theo vị trí địa lý nơi ảnh được chụp. Sáu loại tập dữ liệu này bao gồm 11 - 3.606 khách hàng.
Mô phỏng hiệu suất cao
Mặc dù thời gian trên đồng hồ treo tường của mô phỏng FL không phải là số liệu liên quan để đánh giá các thuật toán (vì phần cứng mô phỏng không đại diện cho môi trường triển khai FL thực), nhưng việc có thể chạy mô phỏng FL nhanh chóng là rất quan trọng đối với năng suất nghiên cứu. Do đó, TFF đã đầu tư rất nhiều vào việc cung cấp thời gian chạy đơn và đa máy hiệu suất cao. Tài liệu đang được phát triển, nhưng bây giờ hãy xem hướng dẫn về mô phỏng TFF bằng máy gia tốc và hướng dẫn thiết lập mô phỏng với TFF trên GCP . Thời gian chạy TFF hiệu suất cao được bật theo mặc định.
TFF cho các lĩnh vực nghiên cứu khác nhau
Thuật toán tối ưu hóa liên kết
Nghiên cứu về các thuật toán tối ưu hóa liên kết có thể được thực hiện theo nhiều cách khác nhau trong TFF, tùy thuộc vào mức độ tùy chỉnh mong muốn.
Ở đây cung cấp cách triển khai độc lập tối thiểu của thuật toán Trung bình Liên kết . Mã bao gồm các hàm TF để tính toán cục bộ, tính toán TFF để điều phối và tập lệnh trình điều khiển trên tập dữ liệu EMNIST làm ví dụ. Các tệp này có thể dễ dàng được điều chỉnh cho phù hợp với các ứng dụng tùy chỉnh và thay đổi thuật toán theo hướng dẫn chi tiết trong README .
Bạn có thể tìm thấy cách triển khai tổng quát hơn về Tính trung bình liên kết tại đây . Việc triển khai này cho phép thực hiện các kỹ thuật tối ưu hóa phức tạp hơn, bao gồm việc sử dụng các trình tối ưu hóa khác nhau trên cả máy chủ và máy khách. Bạn có thể tìm thấy các thuật toán học liên kết khác, bao gồm phân cụm k-means liên kết tại đây .
Nén cập nhật mô hình
Việc nén các bản cập nhật mô hình bị mất mát có thể dẫn đến giảm chi phí liên lạc, từ đó có thể dẫn đến giảm thời gian đào tạo tổng thể.
Để sao chép một bài báo gần đây, hãy xem dự án nghiên cứu này . Để triển khai thuật toán nén tùy chỉnh, hãy xem ví dụ về các phương thức so sánh trong dự án để biết đường cơ sở và hướng dẫn về Bộ tổng hợp TFF nếu chưa quen.
Quyền riêng tư khác biệt
TFF có thể tương tác với thư viện TensorFlow Privacy để cho phép nghiên cứu các thuật toán mới nhằm đào tạo liên kết các mô hình có quyền riêng tư khác biệt. Để biết ví dụ về đào tạo với DP bằng thuật toán DP-FedAvg cơ bản và các phần mở rộng , hãy xem trình điều khiển thử nghiệm này .
Nếu muốn triển khai thuật toán DP tùy chỉnh và áp dụng thuật toán đó cho các bản cập nhật tổng hợp của tính trung bình liên kết, bạn có thể triển khai thuật toán trung bình DP mới dưới dạng lớp con của tensorflow_privacy.DPQuery
và tạo tff.aggregators.DifferentiallyPrivateFactory
với một phiên bản truy vấn của bạn. Bạn có thể tìm thấy một ví dụ về việc triển khai thuật toán DP-FTRL tại đây
GAN liên kết (được mô tả bên dưới ) là một ví dụ khác về dự án TFF triển khai quyền riêng tư khác biệt ở cấp độ người dùng (ví dụ: ở đây trong mã ).
Sự mạnh mẽ và tấn công
TFF cũng có thể được sử dụng để mô phỏng các cuộc tấn công có chủ đích vào các hệ thống học tập liên kết và các biện pháp bảo vệ dựa trên quyền riêng tư khác biệt được xem xét trong Bạn có thực sự quay lại học tập liên kết không? . Điều này được thực hiện bằng cách xây dựng một quy trình lặp đi lặp lại với các máy khách có khả năng độc hại (xem build_federated_averaging_process_attacked
). Thư mục target_Attack chứa nhiều chi tiết hơn.
- Các thuật toán tấn công mới có thể được triển khai bằng cách viết hàm cập nhật ứng dụng khách là hàm Tensorflow, xem
ClientProjectBoost
để biết ví dụ. - Các biện pháp bảo vệ mới có thể được triển khai bằng cách tùy chỉnh 'tff.utils.StatefulAggregateFn' để tổng hợp kết quả đầu ra của khách hàng để nhận được bản cập nhật toàn cầu.
Để biết tập lệnh mẫu cho mô phỏng, hãy xem emnist_with_targeted_attack.py
.
Mạng đối thủ sáng tạo
GAN tạo ra một mô hình điều phối liên kết thú vị trông hơi khác so với tính trung bình liên kết tiêu chuẩn. Chúng bao gồm hai mạng riêng biệt (bộ tạo và bộ phân biệt), mỗi mạng được đào tạo với bước tối ưu hóa riêng.
TFF có thể được sử dụng để nghiên cứu về đào tạo liên kết các GAN. Ví dụ: thuật toán DP-FedAvg-GAN được trình bày trong công việc gần đây được triển khai trong TFF . Công việc này chứng tỏ tính hiệu quả của việc kết hợp học tập liên kết, mô hình tổng quát và quyền riêng tư khác biệt .
Cá nhân hóa
Cá nhân hóa trong bối cảnh học tập liên kết là một lĩnh vực nghiên cứu tích cực. Mục tiêu của việc cá nhân hóa là cung cấp các mô hình suy luận khác nhau cho những người dùng khác nhau. Có nhiều cách tiếp cận khác nhau cho vấn đề này.
Một cách tiếp cận là cho phép mỗi khách hàng tinh chỉnh một mô hình toàn cầu duy nhất (được đào tạo bằng cách sử dụng học tập liên kết) với dữ liệu cục bộ của họ. Cách tiếp cận này có mối liên hệ với siêu học tập, ví dụ như xem bài viết này . Một ví dụ về cách tiếp cận này được đưa ra trong emnist_p13n_main.py
. Để khám phá và so sánh các chiến lược cá nhân hóa khác nhau, bạn có thể:
Xác định chiến lược cá nhân hóa bằng cách triển khai
tf.function
bắt đầu từ mô hình ban đầu, đào tạo và đánh giá mô hình được cá nhân hóa bằng cách sử dụng bộ dữ liệu cục bộ của từng khách hàng. Một ví dụ được đưa ra bởibuild_personalize_fn
.Xác định một
OrderedDict
ánh xạ tên chiến lược với các chiến lược cá nhân hóa tương ứng và sử dụng nó làm đối sốpersonalize_fn_dict
trongtff.learning.build_personalization_eval_computation
.
Một cách tiếp cận khác là tránh đào tạo một mô hình toàn cầu hoàn toàn bằng cách đào tạo một phần mô hình hoàn toàn cục bộ. Bản trình bày của phương pháp này được mô tả trong bài đăng trên blog này . Cách tiếp cận này cũng được kết nối với meta learning, xem bài viết này . Để khám phá việc học liên kết cục bộ một phần, bạn có thể:
Hãy xem hướng dẫn để biết ví dụ về mã hoàn chỉnh áp dụng Tái thiết liên kết và các bài tập tiếp theo .
Tạo quy trình đào tạo cục bộ một phần bằng cách sử dụng
tff.learning.reconstruction.build_training_process
, sửa đổidataset_split_fn
để tùy chỉnh hành vi của quy trình.