12월 7일 Women in ML 심포지엄 참석 지금 등록

TensorFlow Federated: 분산 데이터에 대한 머신 러닝

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.algorithms.build_weighted_fed_avg(
  model_fn,
  client_optimizer_fn=lambda: tf.keras.optimizers.SGD(0.1))
state = trainer.initialize()
for _ in range(5):
  result = trainer.next(state, train_data)
  state = result.state
  metrics = result.metrics
  print(metrics['train']['loss'])
  • TensorFlow Federated(TFF)는 분산 데이터에 대한 머신 러닝 및 기타 계산을 위한 오픈 소스 프레임워크입니다. TFF는 공유 글로벌 모델이 교육 데이터를 로컬로 유지하는 많은 참여 클라이언트 간에 교육되는 기계 학습에 대한 접근 방식인 FL(Federated Learning) 을 통한 공개 연구 및 실험을 용이하게 하기 위해 개발되었습니다. 예를 들어, FL은 민감한 타이핑 데이터를 서버에 업로드하지 않고 모바일 키보드용 예측 모델 을 훈련하는 데 사용되었습니다.

    TFF를 통해 개발자는 모델 및 데이터에 포함된 연합 학습 알고리즘을 시뮬레이션하고 새로운 알고리즘을 실험할 수 있습니다. 연구원들은 다양한 종류의 연구에 대한 출발점과 완전한 예 를 찾을 것입니다. TFF에서 제공하는 빌딩 블록은 연합 분석 과 같은 비학습 계산을 구현하는 데에도 사용할 수 있습니다. TFF의 인터페이스는 두 가지 주요 계층으로 구성됩니다.

  • 이 계층은 개발자가 포함된 통합 교육 및 평가 구현을 기존 TensorFlow 모델에 적용할 수 있도록 하는 고급 인터페이스 세트를 제공합니다.
  • 시스템의 핵심에는 강력한 형식의 기능적 프로그래밍 환경 내에서 TensorFlow를 분산 통신 연산자와 결합하여 새로운 연합 알고리즘을 간결하게 표현하기 위한 일련의 저수준 인터페이스가 있습니다. 이 계층은 또한 우리가 연합 학습을 구축한 토대 역할을 합니다.
  • TFF를 통해 개발자는 연합 계산을 선언적으로 표현할 수 있으므로 다양한 런타임 환경에 배포할 수 있습니다. TFF에는 실험을 위한 고성능 다중 기계 시뮬레이션 런타임이 포함되어 있습니다. 튜토리얼 을 방문하여 직접 사용해 보십시오!

    질문 및 지원이 필요한 경우 StackOverflow의 tensorflow-federated 태그 를 참조하세요.