Câu hỏi thường gặp

TensorFlow Federated có thể được sử dụng trong cài đặt sản xuất, ví dụ: trên điện thoại di động không?

Hiện tại thì không. Mặc dù chúng tôi đã thiết kế TFF với mục đích triển khai cho các thiết bị thực nhưng ở giai đoạn này, chúng tôi hiện không cung cấp bất kỳ công cụ nào cho mục đích này. Bản phát hành hiện tại nhằm mục đích sử dụng thử nghiệm, chẳng hạn như thể hiện các thuật toán liên kết mới hoặc thử học liên kết với các tập dữ liệu của riêng bạn, sử dụng thời gian chạy mô phỏng đi kèm.

Chúng tôi dự đoán rằng theo thời gian, hệ sinh thái nguồn mở xung quanh TFF sẽ phát triển để bao gồm các thời gian chạy nhắm mục tiêu vào các nền tảng triển khai vật lý.

Làm cách nào để sử dụng TFF để thử nghiệm với bộ dữ liệu lớn?

Thời gian chạy mặc định có trong bản phát hành TFF đầu tiên chỉ dành cho các thử nghiệm nhỏ như những thử nghiệm được mô tả trong hướng dẫn của chúng tôi, trong đó tất cả dữ liệu của bạn (trên tất cả các máy khách được mô phỏng) đồng thời nằm gọn trong bộ nhớ trên một máy duy nhất và toàn bộ thử nghiệm chạy cục bộ trong sổ tay colab.

Lộ trình trong tương lai ngắn hạn của chúng tôi bao gồm thời gian chạy hiệu suất cao cho các thử nghiệm với tập dữ liệu rất lớn và số lượng khách hàng lớn.

Làm cách nào để đảm bảo tính ngẫu nhiên trong TFF phù hợp với mong đợi của tôi?

Vì TFF đã tích hợp tính toán liên kết vào lõi của nó, nên người viết TFF không nên nắm quyền kiểm soát vị trí và cách thức nhập Session TensorFlow hoặc run được gọi trong các phiên đó. Ngữ nghĩa của tính ngẫu nhiên có thể phụ thuộc vào việc vào và ra của Session TensorFlow nếu hạt giống được đặt. Chúng tôi khuyên bạn nên sử dụng tính ngẫu nhiên kiểu TensorFlow 2, ví dụ như sử dụng tf.random.experimental.Generator kể từ TF 1.14. Cái này sử dụng tf.Variable để quản lý trạng thái bên trong của nó.

Để giúp quản lý các kỳ vọng, TFF cho phép TensorFlow mà nó tuần tự hóa để có tập hợp hạt giống cấp độ tùy chọn, chứ không phải hạt giống cấp biểu đồ. Điều này là do ngữ nghĩa của các hạt giống cấp độ op phải rõ ràng hơn trong cài đặt TFF: một chuỗi xác định sẽ được tạo theo mỗi lệnh gọi hàm được bao bọc dưới dạng tf_computation và chỉ trong lệnh gọi này mọi đảm bảo được thực hiện bởi trình tạo số giả ngẫu nhiên mới được giữ nguyên . Lưu ý rằng điều này không hoàn toàn giống với ngữ nghĩa của việc gọi tf.function ở chế độ háo hức; TFF vào và ra một tf.Session duy nhất một cách hiệu quả mỗi khi tf_computation được gọi, trong khi việc gọi liên tục một hàm ở chế độ háo hức tương tự như việc gọi sess.run trên tensor đầu ra nhiều lần trong cùng một phiên.

Tôi có thể đóng góp bằng cách nào?

Xem README , hướng dẫn đóng gópcộng tác .

Mối quan hệ giữa FedJAX và TensorFlow Federated là gì?

TensorFlow Federated (TFF) là một khung chính thức dành cho việc học tập và phân tích liên kết được thiết kế để tạo điều kiện thuận lợi cho việc soạn thảo các thuật toán và tính năng khác nhau, đồng thời cho phép chuyển mã qua các tình huống mô phỏng và triển khai khác nhau. TFF cung cấp thời gian chạy có thể mở rộng và hỗ trợ nhiều thuật toán bảo mật, nén và tối ưu hóa thông qua các API tiêu chuẩn của nó. TFF cũng hỗ trợ nhiều loại nghiên cứu FL , với một tập hợp các ví dụ từ các bài báo đã xuất bản của Google xuất hiện trong kho lưu trữ nghiên cứu của google .

Ngược lại, FedJAX là một thư viện mô phỏng nhẹ dựa trên Python và JAX, tập trung vào tính dễ sử dụng và tạo nguyên mẫu nhanh chóng của các thuật toán học liên kết cho mục đích nghiên cứu. TensorFlow Federated và FedJAX được phát triển dưới dạng các dự án riêng biệt, không yêu cầu tính di động của mã.