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.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) เป็นเฟรมเวิร์กโอเพ่นซอร์สสำหรับการเรียนรู้ของเครื่องและการคำนวณอื่น ๆ บนข้อมูลที่กระจายอำนาจ TFF ได้รับการพัฒนาเพื่ออำนวยความสะดวกในการวิจัยแบบเปิดและการทดลองด้วย Federated Learning (FL) ซึ่งเป็นแนวทางในการเรียนรู้ของเครื่องที่มีการฝึกอบรมโมเดลส่วนกลางที่ใช้ร่วมกันกับลูกค้าที่เข้าร่วมจำนวนมากซึ่งเก็บข้อมูลการฝึกอบรมไว้ในเครื่อง ตัวอย่างเช่น FL ถูกใช้เพื่อฝึก โมเดลการคาดคะเนสำหรับคีย์บอร์ดมือถือ โดยไม่ต้องอัปโหลดข้อมูลการพิมพ์ที่ละเอียดอ่อนไปยังเซิร์ฟเวอร์
TFF ช่วยให้นักพัฒนาสามารถจำลองอัลกอริธึมการเรียนรู้แบบรวมศูนย์ที่รวมอยู่ในโมเดลและข้อมูลของพวกเขารวมทั้งทดลองกับอัลกอริทึมใหม่ นอกจากนี้ยังสามารถใช้ Building Block ที่ TFF จัดเตรียมไว้เพื่อใช้การคำนวณที่ไม่ใช่การเรียนรู้เช่นการวิเคราะห์แบบรวมผ่านข้อมูลแบบกระจาย อินเทอร์เฟซของ TFF จัดเป็นสองชั้น:
-
Federated Learning (FL) API
เลเยอร์นี้นำเสนอชุดอินเทอร์เฟซระดับสูงที่ช่วยให้นักพัฒนาสามารถประยุกต์ใช้การฝึกอบรมแบบรวมศูนย์และการประเมินผลกับโมเดล TensorFlow ที่มีอยู่ได้ -
Federated Core (FC) API
ที่แกนหลักของระบบคือชุดของอินเทอร์เฟซระดับล่างสำหรับการแสดงอัลกอริธึมแบบรวมใหม่อย่างรัดกุมโดยการรวม TensorFlow กับตัวดำเนินการสื่อสารแบบกระจายภายในสภาพแวดล้อมการเขียนโปรแกรมเชิงฟังก์ชัน เลเยอร์นี้ยังทำหน้าที่เป็นรากฐานที่เราได้สร้างการเรียนรู้แบบรวมศูนย์ -
TFF ช่วยให้นักพัฒนาสามารถแสดงการคำนวณแบบรวมศูนย์อย่างเปิดเผยดังนั้นจึงสามารถปรับใช้กับสภาพแวดล้อมรันไทม์ที่หลากหลายได้ รวมอยู่ใน TFF เป็นรันไทม์จำลองเครื่องเดียวสำหรับการทดลอง โปรดไปที่ บทแนะนำ และทดลองใช้ด้วยตัวคุณเอง!
หากมีคำถามและการสนับสนุนโปรดติดต่อเราที่ แท็ก tensorflow-federated บน StackOverflow