TensorFlow Federated: การเรียนรู้ของเครื่องเกี่ยวกับข้อมูลที่กระจายอำนาจ, TensorFlow Federated: การเรียนรู้ของเครื่องเกี่ยวกับข้อมูลที่กระจายอำนาจ

import collections
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.
keras_model = tf.keras.models.Sequential([
  tf.keras.layers.Dense(
    10, tf.nn.softmax, input_shape=(784,), kernel_initializer='zeros')
])
tff_model = tff.learning.models.functional_model_from_keras(
      keras_model,
      loss_fn=tf.keras.losses.SparseCategoricalCrossentropy(),
      input_spec=train_data[0].element_spec,
      metrics_constructor=collections.OrderedDict(
        accuracy=tf.keras.metrics.SparseCategoricalAccuracy))

# Simulate a few rounds of training with the selected client devices.
trainer = tff.learning.algorithms.build_weighted_fed_avg(
  tff_model,
  client_optimizer_fn=tff.learning.optimizers.build_sgdm(learning_rate=0.1))
state = trainer.initialize()
for _ in range(5):
  result = trainer.next(state, train_data)
  state = result.state
  metrics = result.metrics
  print(metrics['client_work']['train']['accuracy'])
  • TensorFlow Federated (TFF) เป็นเฟรมเวิร์กโอเพนซอร์สสำหรับการเรียนรู้ของเครื่องและการคำนวณอื่นๆ เกี่ยวกับข้อมูลที่กระจายอำนาจ TFF ได้รับการพัฒนาเพื่ออำนวยความสะดวกในการวิจัยแบบเปิดและการทดลองด้วย Federated Learning (FL) ซึ่งเป็นแนวทางในการเรียนรู้ด้วยเครื่องที่ซึ่งโมเดลที่ใช้ร่วมกันทั่วโลกได้รับการฝึกอบรมจากลูกค้าที่เข้าร่วมจำนวนมากที่เก็บข้อมูลการฝึกอบรมไว้ในพื้นที่ ตัวอย่างเช่น FL ถูกใช้เพื่อฝึก โมเดลการคาดคะเนสำหรับคีย์บอร์ดมือถือ โดยไม่ต้องอัปโหลดข้อมูลการพิมพ์ที่ละเอียดอ่อนไปยังเซิร์ฟเวอร์

    TFF ช่วยให้นักพัฒนาสามารถจำลองอัลกอริธึมการเรียนรู้แบบสหพันธรัฐที่รวมอยู่ในโมเดลและข้อมูลของพวกเขา เช่นเดียวกับการทดลองกับอัลกอริธึมใหม่ นักวิจัยจะพบ จุดเริ่มต้นและตัวอย่างที่สมบูรณ์ สำหรับการวิจัยหลายประเภท โครงสร้างที่จัดเตรียมโดย TFF ยังสามารถใช้เพื่อปรับใช้การคำนวณที่ไม่ใช่การเรียนรู้ เช่น การวิเคราะห์แบบรวม ศูนย์ อินเทอร์เฟซของ TFF ถูกจัดเป็นสองชั้นหลัก:

  • เลเยอร์นี้เสนอชุดอินเทอร์เฟซระดับสูงที่ช่วยให้นักพัฒนาสามารถนำการใช้งานการฝึกอบรมและการประเมินผลแบบรวมศูนย์มาใช้กับโมเดล TensorFlow ที่มีอยู่ได้ ,เลเยอร์นี้มีชุดอินเทอร์เฟซระดับสูงที่ช่วยให้นักพัฒนาสามารถนำการใช้งานการฝึกอบรมและการประเมินผลแบบรวมศูนย์มาใช้กับโมเดล TensorFlow ที่มีอยู่ได้
  • แกนหลักของระบบคือชุดอินเทอร์เฟซระดับล่างสำหรับการแสดงอัลกอริธึมแบบรวมศูนย์แบบใหม่อย่างกระชับ โดยการรวม TensorFlow เข้ากับตัวดำเนินการสื่อสารแบบกระจายภายในสภาพแวดล้อมการเขียนโปรแกรมเชิงฟังก์ชันที่พิมพ์อย่างแน่นหนา เลเยอร์นี้ยังทำหน้าที่เป็นรากฐานที่เราได้สร้างการเรียนรู้แบบสมาพันธ์อีกด้วย ,แกนกลางของระบบคือชุดอินเทอร์เฟซระดับล่างสำหรับการแสดงอัลกอริธึมแบบรวมศูนย์แบบใหม่อย่างกระชับ โดยการรวม TensorFlow เข้ากับตัวดำเนินการสื่อสารแบบกระจายภายในสภาพแวดล้อมการเขียนโปรแกรมเชิงฟังก์ชันที่เน้นการพิมพ์อย่างยิ่ง เลเยอร์นี้ยังทำหน้าที่เป็นรากฐานที่เราได้สร้างการเรียนรู้แบบสมาพันธ์อีกด้วย
  • TFF ช่วยให้นักพัฒนาสามารถแสดงการคำนวณแบบรวมศูนย์ได้อย่างชัดเจน เพื่อให้สามารถปรับใช้กับสภาพแวดล้อมรันไทม์ที่หลากหลายได้ ที่มาพร้อมกับ TFF คือรันไทม์การจำลองหลายเครื่องที่มีประสิทธิภาพสำหรับการทดลอง กรุณาเยี่ยมชมบทช่วย สอน และลองด้วยตัวคุณเอง!

    สำหรับคำถามและการสนับสนุน พบกับเราได้ที่ แท็กรวมเทนเซอร์โฟลว์ บน StackOverflow