Google I / O là một kết quả hoàn hảo! Cập nhật các phiên TensorFlow Xem phiên

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

Tổng quat

TFF là một khuôn khổ mạnh mẽ, có thể mở rộng để thực hiện nghiên cứu học tập liên kết (FL) bằng cách mô phỏng các phép tính liên hợp 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 để 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ô phỏng FL nghiên cứu được thực hiện trong TFF thường bao gồm ba loại logic chính.

  1. Các đoạn mã TensorFlow riêng lẻ, thường là tf.function . functions s, đóng gói logic chạy ở một vị trí (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.* và có thể được sử dụng lại bên ngoài TFF. Ví dụ: vòng lặp đà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 liên kết TensorFlow, liên kết các tf.function . function riêng lẻ từ 1. 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 trừu tượng như tff.federated_broadcasttff.federated_mean bên trong tff.federated_computation . Ví dụ, hãy xem điều phối này cho Trung bình Liên kết .

  3. Mộ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ừ tập dữ liệu và sau đó thực thi các phép tính liên hợp được định nghĩa trong 2 trên các máy khách đó. Ví dụ, một 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ế dành cho 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 với 135.818.730 ví dụ (câu) trong tập huấn luyện.

  • EMNIST được liên kết . Quá trình xử lý trước được liên kết của ký tự EMNIST và tập dữ liệu chữ số, trong đó mỗi ứng dụng khách 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 . Tập dữ liệu văn bản cấp ký tự 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 của Shakespeare đóng), trong đó mỗi ví dụ tương ứng với một tập hợp các dòng liền nhau được nói bởi nhân vật trong một vở kịch nhất định.

  • CIFAR-100 . Một phân vùng được 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ụ 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 các bức ảnh về các địa danh khác nhau trên thế giới, với các hình ảnh được nhóm bởi nhiếp ảnh gia để đạt được phân vùng dữ liệu được liên kết. Hai loại tập dữ liệu có sẵn: tập dữ liệu nhỏ hơn với 233 ứng dụng khách và 23080 hình ảnh, và tập dữ liệu lớn hơn với 1262 ứng dụng khách và 164172 hình ảnh.

  • CelebA Một tập dữ liệu về 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 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 ứng dụng khách. 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 huấn luyện và thử nghiệm bởi khách hàng hoặc bằng các ví dụ.

  • iNaturalist Một tập dữ liệu bao gồm các bức ảnh về các 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ố đó được nhóm bởi nhiếp ảnh gia 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 phần 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ột mô phỏng FL không phải là số liệu phù hợp để đá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), việc có thể chạy mô phỏng FL một cách 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 một máy và nhiều 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 Mô phỏng hiệu suất cao với Kubernetes , 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ề các thuật toán tối ưu hóa liên hợp 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 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 được cung cấp tại đây . Mã bao gồm các chức năng TF cho tính toán cục bộ, tính toán TFF cho đ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à các 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 chung 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 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. Các thuật toán học tập liên kết khác, bao gồm phân cụm k-means liên kết, có thể được tìm thấy 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í liên lạc, do đó có thể dẫn đến giảm thời gian đào tạo tổng thể.

Để tái tạo 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 so sánh_methods trong dự án để biết các đường cơ sở làm ví dụ và hướng dẫn TFF Aggregators nếu bạn chưa quen thuộc.

Sự 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 để đà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 phần 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 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 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ề việc triển khai thuật toán DP-FTRL tại đây

Các GAN liên kết (được mô tả bên dưới ) là một ví dụ khác về dự án TFF thực hiện quyền riêng tư khác biệt ở cấp độ người dùng (ví dụ: ở đây trong mã ).

Mạnh mẽ và các cuộc 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 phòng thủ 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 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 hại tiềm ẩn (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 thực hiện bằng cách viết một hàm cập nhật ứng dụng khách là một hàm Tensorflow, xem ví dụ về ClientProjectBoost .
  • Các biện pháp bảo vệ mới có thể được thực hiện bằng cách tùy chỉnh 'tff.utils.StatefulAggregateFn' , tính năng này tổng hợp các kết quả đầu ra của khách hàng để có được bản cập nhật toàn cầu.

Để biết tập lệnh ví dụ cho mô phỏng, hãy xem emnist_with_targeted_attack.py .

Mạng đối thủ chung

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 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 riêng của chú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 nghiên cứu gần đây được triển khai trong TFF . Công việc này chứng tỏ hiệu quả của việc kết hợp học tập liên hợp, mô hình tổng hợp và sự riêng tư khác biệt .

Cá nhân hóa

Cá nhân hóa trong thiết lập 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à 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 phương pháp học liên hợp) 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, ví dụ, bài báo này . 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ởi build_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 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 tại địa phương. Mô tả về cách tiếp cận 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 học meta, xem bài báo này . Để khám phá cách học liên kết cục bộ một phần, bạn có thể: