Ngày Cộng đồng ML là ngày 9 tháng 11! Tham gia với chúng tôi để cập nhật từ TensorFlow, JAX, và nhiều hơn nữa Tìm hiểu thêm

TensorFlow Federated: Học máy trên dữ liệu phi tập trung

import tensorflow as tf
import tensorflow_federated as tff

# Load simulation data.
source, _ = tff.simulation.datasets.emnist.load_data()
def client_data(n):
  return source.create_tf_dataset_for_client(source.client_ids[n]).map(
      lambda e: (tf.reshape(e['pixels'], [-1]), e['label'])
  ).repeat(10).batch(20)

# Pick a subset of client devices to participate in training.
train_data = [client_data(n) for n in range(3)]

# Wrap a Keras model for use with TFF.
def model_fn():
  model = tf.keras.models.Sequential([
      tf.keras.layers.Dense(10, tf.nn.softmax, input_shape=(784,),
                            kernel_initializer='zeros')
  ])
  return tff.learning.from_keras_model(
      model,
      input_spec=train_data[0].element_spec,
      loss=tf.keras.losses.SparseCategoricalCrossentropy(),
      metrics=[tf.keras.metrics.SparseCategoricalAccuracy()])

# Simulate a few rounds of training with the selected client devices.
trainer = tff.learning.build_federated_averaging_process(
  model_fn,
  client_optimizer_fn=lambda: tf.keras.optimizers.SGD(0.1))
state = trainer.initialize()
for _ in range(5):
  state, metrics = trainer.next(state, train_data)
  print(metrics['train']['loss'])
  • TensorFlow Federated (TFF) là một khuôn khổ mã nguồn mở cho máy học và các tính toán khác trên dữ liệu phi tập trung. TFF đã được phát triển để tạo điều kiện thuận lợi cho việc nghiên cứu và thử nghiệm mở với Federated Learning (FL) , một phương pháp tiếp cận máy học, trong đó mô hình toàn cầu được chia sẻ được đào tạo cho nhiều khách hàng tham gia giữ dữ liệu đào tạo của họ tại địa phương. Ví dụ: FL đã được sử dụng để đào tạo các mô hình dự đoán cho bàn phím di động mà không cần tải dữ liệu nhập nhạy cảm lên máy chủ.

    TFF cho phép các nhà phát triển mô phỏng các thuật toán học tập liên kết được bao gồm trên các mô hình và dữ liệu của họ, cũng như thử nghiệm với các thuật toán mới. Các nhà nghiên cứu sẽ tìm ra các điểm khởi đầu và các ví dụ hoàn chỉnh cho nhiều loại nghiên cứu. Các khối xây dựng do TFF cung cấp cũng có thể được sử dụng để triển khai các phép tính không học, chẳng hạn như phân tích liên hợp . Các giao diện của TFF được tổ chức theo hai lớp chính:

  • Lớp này cung cấp một tập hợp các giao diện cấp cao cho phép các nhà phát triển áp dụng các triển khai bao gồm của đào tạo liên hợp và đánh giá cho các mô hình TensorFlow hiện có của họ.
  • Cốt lõi của hệ thống là một tập hợp các giao diện cấp thấp hơn để diễn đạt chính xác các thuật toán liên hợp mới bằng cách kết hợp TensorFlow với các toán tử truyền thông phân tán trong một môi trường lập trình chức năng được đánh máy mạnh. Lớp này cũng đóng vai trò là nền tảng mà chúng tôi đã xây dựng Học liên kết.
  • TFF cho phép các nhà phát triển thể hiện rõ ràng các phép tính liên hợp, vì vậy chúng có thể được triển khai cho các môi trường thời gian chạy đa dạng. Đi kèm với TFF là thời gian chạy mô phỏng đa máy biểu diễn cho các thí nghiệm. Vui lòng truy cập các hướng dẫn và thử nó cho mình!

    Đối với các câu hỏi và hỗ trợ, hãy tìm chúng tôi tại thẻ liên kết tensorflow trên StackOverflow.