Sử dụng TFF cho Nghiên cứu Học tập Liên kết

Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.

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 liên kết (FL) bằng cách mô phỏng các phép tính liên kết trên bộ 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 để tiến hành 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.

  1. Các đoạn mã TensorFlow riêng lẻ, điển hình là tf.function s, đó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ếu tff.* 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.

  2. Logic điều phối TensorFlow Liên kết, liên kết các tf.function s riêng lẻ từ 1 với nhau bằng cách gói chúng dưới dạng tff.tf_computation s 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_broadcasttff.federated_mean bên trong tff.federated_computation . Xem, ví dụ, phối hợp này cho Trung bình liên kết .

  3. 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ừ bộ dữ liệu và sau đó 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

TensorFlow liên kết 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 liên kết.

Bộ dữ liệu bao gồm:

  • StackOverflow . Tập dữ liệu văn bản thực tế cho các nhiệm vụ mô hình hóa ngôn ngữ hoặc học tập có giám sát, với 342.477 người dùng duy nhất với 135.818.730 ví dụ (câu) trong tập huấn luyện.

  • Liên minh EMNIST . Quá trình tiền xử lý có liên kết của tập dữ liệu chữ số và ký tự EMNIST, trong đó mỗi ứng dụng khách tương ứng với một trình ghi khác nhau. Tập hợp đầy đủ chứa 3400 người dùng với 671.585 ví dụ từ 62 nhãn.

  • Shakespeare . Một bộ 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 (các nhân vật trong vở kịch của Shakespeare), trong đó mỗi ví dụ tương ứng với một tập hợp lời thoại liền kề do nhân vật đó nói trong một vở kịch nhất định.

  • CIFAR-100 . Một phân vùng có liên kết của tập 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ụ duy nhất. 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 ảnh của nhiều địa danh khác nhau trên thế giới, với các ảnh được nhóm theo nhiếp ảnh gia để đạt được phân vùng dữ liệu có liên kết. Có sẵn 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 Tập dữ liệu gồm các ví dụ (hình ảnh và thuộc tính khuôn mặt) của khuôn mặt người nổi tiếng. Tập dữ liệu được 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 bộ dữ liệu bao gồm ảnh của nhiều loài khác nhau. Bộ dữ liệu chứa 120.300 hình ảnh cho 1.203 loài. Bảy hương vị của tập dữ liệu có sẵn. Một trong số họ được nhóm bởi nhiếp ảnh gia và nó 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 hương vị này của tập dữ liệu bao gồm 11 - 3.606 khách hàng.

Mô phỏng hiệu suất cao

Mặc dù thời gian đồng hồ treo tường của mô phỏng FL không phải là thước đo phù hợp để đánh giá 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 khả năng 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 hiện tại hãy xem hướng dẫn về mô phỏng TFF với 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

Các thuật toán tối ưu hóa liên kết

Nghiên cứu về 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.

Một triển khai độc lập tối thiểu của thuật toán Tính trung bình cộng có liên kết được cung cấp tại đây . 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 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 Trung bình cộng có liên kết tổng quát hơn tại đây . Việc triển khai này cho phép các kỹ thuật tối ưu hóa tinh vi 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-mean liên kết tại đây .

Nén cập nhật mô hình

Nén mất mát các bản cập nhật mô hình có thể dẫn đến giảm chi phí truyền thông, do đó 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 phần so sánh_methods trong dự án để biết đường cơ sở làm ví dụ và hướng dẫn TFF Aggregators nếu chưa quen.

sự riêng tư khác biệt

TFF có thể tương tác với thư viện Quyền riêng tư của TensorFlow để cho phép nghiên cứu các thuật toán mới để đà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 cách sử dụng thuật toán DP-FedAvg cơ bản và các tiện ích mở rộng , hãy xem trình điều khiển thử nghiệm này .

Nếu bạn 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 có 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 một tff.aggregators.DifferentiallyPrivateFactory với một phiên bản truy vấn của bạn. Có thể tìm thấy ví dụ về 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ức mạnh 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 nhắm mục tiêu 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ể thực sự quay trở 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 ứng dụng khách có khả năng gây 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 ví dụ về ClientProjectBoost .
  • Có thể triển khai các biện pháp bảo vệ mới bằng cách tùy chỉnh 'tff.utils.StatefulAggregateFn' để tổng hợp các kết quả đầu ra của máy khách để có đượ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ủ tạo

GAN tạo ra một mẫu phối hợp 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 liên quan đến 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 của riêng chúng.

TFF có thể được sử dụng để nghiên cứu về đào tạo GAN liên kết. 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 cho thấy 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 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à để 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 phương pháp học liên kết) với dữ liệu cục bộ của họ. Cách tiếp cận này có kết nối với meta-learning, xem, ví dụ, bài báo này . Một ví dụ về phương pháp 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, huấn luyện 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 mỗi khách hàng. Một ví dụ được đưa ra bởi build_personalize_fn .

  • Xác định một OrderedDict ánh xạ tên chiến lược tớ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 trong tff.learning.build_personalization_eval .

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 của mô hình hoàn toàn cục bộ. Một khởi tạo 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 báo này . Để khám phá học tập liên kết một phần cục bộ, bạn có thể: