การใช้ TFF สำหรับการวิจัยการเรียนรู้แบบสหพันธรัฐ

ภาพรวม

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

โครงสร้างทั่วไปของรหัสการวิจัยใน TFF

การจำลองการวิจัย FL ที่ใช้ใน TFF โดยทั่วไปประกอบด้วยตรรกะหลักสามประเภท

  1. โค้ด TensorFlow แต่ละชิ้น ซึ่งโดยทั่วไปคือ tf.function ซึ่งห่อหุ้มตรรกะที่ทำงานในตำแหน่งเดียว (เช่น บนไคลเอนต์หรือบนเซิร์ฟเวอร์) โดยทั่วไปโค้ดนี้จะถูกเขียนและทดสอบโดยไม่มีการอ้างอิง tff.* และสามารถนำกลับมาใช้ใหม่ได้ภายนอก TFF ตัวอย่างเช่น ลูปการฝึกอบรมไคลเอนต์ใน Federated Averaging ถูกนำมาใช้ในระดับนี้

  2. ตรรกะการจัดการแบบรวมของ TensorFlow Federated ซึ่งเชื่อมโยง tf.function แต่ละรายการจาก 1 เข้าด้วยกันโดยการรวมเข้าด้วยกันเป็น tff.tensorflow.computation s จากนั้นจึงเรียบเรียงโดยใช้สิ่งที่เป็นนามธรรม เช่น tff.federated_broadcast และ tff.federated_mean ภายใน tff.federated_computation ดูตัวอย่าง การเรียบเรียงสำหรับ Federated Averaging นี้

  3. สคริปต์ไดรเวอร์ภายนอกที่จำลองตรรกะการควบคุมของระบบ FL ที่ใช้งานจริง โดยเลือกไคลเอนต์จำลองจากชุดข้อมูล จากนั้นดำเนินการคำนวณแบบรวมศูนย์ที่กำหนดไว้ใน 2. บนไคลเอนต์เหล่านั้น ตัวอย่างเช่น โปรแกรมควบคุมการทดสอบ Federated EMNIST

ชุดข้อมูลการเรียนรู้แบบรวมศูนย์

TensorFlow แบบรวมศูนย์ โฮสต์ชุดข้อมูลหลายชุด ที่เป็นตัวแทนของลักษณะของปัญหาในโลกแห่งความเป็นจริงที่สามารถแก้ไขได้ด้วยการเรียนรู้แบบรวมศูนย์

ชุดข้อมูลประกอบด้วย:

  • สแต็คโอเวอร์โฟลว์ ชุดข้อมูลข้อความที่สมจริงสำหรับการสร้างแบบจำลองภาษาหรืองานการเรียนรู้ภายใต้การดูแล โดยมีผู้ใช้ที่ไม่ซ้ำกัน 342,477 ราย พร้อมด้วยตัวอย่าง (ประโยค) 135,818,730 ตัวอย่างในชุดการฝึกอบรม

  • สหพันธ์ EMNIST การประมวลผลล่วงหน้าแบบรวมศูนย์ของชุดข้อมูลอักขระและตัวเลข EMNIST โดยที่ไคลเอ็นต์แต่ละเครื่องสอดคล้องกับผู้เขียนที่แตกต่างกัน ชุดรถไฟทั้งชุดประกอบด้วยผู้ใช้ 3,400 รายพร้อมตัวอย่าง 671,585 รายการจาก 62 ป้ายกำกับ

  • เช็คสเปียร์ . ชุดข้อมูลข้อความระดับถ่านขนาดเล็กที่อิงจากผลงานทั้งหมดของ William Shakespeare ชุดข้อมูลประกอบด้วยผู้ใช้ 715 คน (ตัวละครในบทละครของเช็คสเปียร์) โดยแต่ละตัวอย่างจะสอดคล้องกับชุดบรรทัดที่ต่อเนื่องกันที่ตัวละครพูดในบทละครที่กำหนด

  • ซีฟาร์-100 . การแบ่งพาร์ติชันชุดข้อมูล CIFAR-100 แบบรวมศูนย์ระหว่างไคลเอนต์การฝึกอบรม 500 ตัวและไคลเอนต์ทดสอบ 100 ตัว ลูกค้าแต่ละรายมีตัวอย่างที่ไม่ซ้ำกัน 100 ตัวอย่าง การแบ่งพาร์ติชันเสร็จสิ้นในลักษณะที่จะสร้างความหลากหลายที่สมจริงยิ่งขึ้นระหว่างไคลเอนต์ สำหรับรายละเอียดเพิ่มเติม โปรดดูที่ API

  • ชุดข้อมูล Google Landmark v2 ชุดข้อมูลประกอบด้วยภาพถ่ายของสถานที่สำคัญต่างๆ ของโลก โดยรูปภาพจะจัดกลุ่มตามช่างภาพเพื่อให้มีการแบ่งพาร์ติชันข้อมูลแบบรวมศูนย์ ชุดข้อมูลมีให้เลือกสองแบบ: ชุดข้อมูลขนาดเล็กที่มีไคลเอนต์ 233 ตัวและอิมเมจ 23080 ภาพ และชุดข้อมูลขนาดใหญ่ที่มีไคลเอนต์ 1262 ตัวและอิมเมจ 164172 รูป

  • CelebA ชุดข้อมูลตัวอย่าง (รูปภาพและคุณลักษณะใบหน้า) ของใบหน้าคนดัง ชุดข้อมูลแบบรวมศูนย์มีตัวอย่างของคนดังแต่ละคนที่จัดกลุ่มไว้ด้วยกันเพื่อสร้างไคลเอ็นต์ มีลูกค้า 9343 ราย แต่ละรายมีตัวอย่างอย่างน้อย 5 ตัวอย่าง ชุดข้อมูลสามารถแบ่งออกเป็นกลุ่มฝึกและทดสอบโดยไคลเอนต์หรือตามตัวอย่าง

  • iNaturalist ชุดข้อมูลประกอบด้วยภาพถ่ายของสายพันธุ์ต่างๆ ชุดข้อมูลประกอบด้วย 120,300 ภาพสำหรับ 1,203 สปีชีส์ ชุดข้อมูลมีเจ็ดรสชาติให้เลือก หนึ่งในนั้นจัดกลุ่มตามช่างภาพและประกอบด้วยลูกค้า 9257 ราย ชุดข้อมูลที่เหลือจะถูกจัดกลุ่มตามตำแหน่งทางภูมิศาสตร์ที่ถ่ายภาพ ชุดข้อมูลทั้งหกรูปแบบนี้ประกอบด้วยไคลเอนต์ 11 - 3,606 ราย

การจำลองประสิทธิภาพสูง

แม้ว่าเวลานาฬิกาแขวนของ การจำลอง FL ไม่ใช่ตัวชี้วัดที่เกี่ยวข้องสำหรับการประเมินอัลกอริธึม (เนื่องจากฮาร์ดแวร์การจำลองไม่ได้เป็นตัวแทนของสภาพแวดล้อมการปรับใช้ FL จริง) ความสามารถในการรันการจำลอง FL ได้อย่างรวดเร็วถือเป็นสิ่งสำคัญสำหรับประสิทธิภาพการวิจัย ดังนั้น TFF จึงลงทุนอย่างมากในการให้บริการรันไทม์แบบเครื่องเดียวและหลายเครื่องที่มีประสิทธิภาพสูง เอกสารอยู่ระหว่างการพัฒนา แต่ในตอนนี้ โปรดดูคำแนะนำเกี่ยวกับ การจำลอง TFF ด้วยตัวเร่งความเร็ว และวิธีการใน การตั้งค่าการจำลองด้วย TFF บน GCP รันไทม์ TFF ประสิทธิภาพสูงถูกเปิดใช้งานตามค่าเริ่มต้น

TFF สำหรับการวิจัยสาขาต่างๆ

อัลกอริธึมการเพิ่มประสิทธิภาพแบบรวมศูนย์

การวิจัยเกี่ยวกับอัลกอริธึมการปรับให้เหมาะสมแบบรวมศูนย์สามารถทำได้หลายวิธีใน TFF ขึ้นอยู่กับระดับการปรับแต่งที่ต้องการ

มีการติดตั้งอัลกอริธึม Federated Averaging แบบสแตนด์อโลนขั้นต่ำ ไว้ที่นี่ โค้ดประกอบด้วย ฟังก์ชัน TF สำหรับการคำนวณเฉพาะที่ การคำนวณ TFF สำหรับการเรียบเรียง และ สคริปต์ไดรเวอร์ บนชุดข้อมูล EMNIST เป็นตัวอย่าง ไฟล์เหล่านี้สามารถปรับให้เหมาะกับการใช้งานที่กำหนดเองและการเปลี่ยนแปลงอัลกอริธึมได้อย่างง่ายดาย โดยทำตามคำแนะนำโดยละเอียดใน README

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

การบีบอัดการอัปเดตโมเดล

การบีบอัดการอัปเดตโมเดลที่สูญเสียไปอาจส่งผลให้ต้นทุนการสื่อสารลดลง ซึ่งอาจส่งผลให้เวลาการฝึกอบรมโดยรวมลดลงได้

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

ความเป็นส่วนตัวที่แตกต่าง

TFF สามารถทำงานร่วมกับไลบรารี TensorFlow Privacy เพื่อเปิดใช้งานการวิจัยในอัลกอริธึมใหม่สำหรับการฝึกอบรมแบบรวมศูนย์สำหรับโมเดลที่มีความเป็นส่วนตัวที่แตกต่างกัน สำหรับตัวอย่างการฝึกอบรมกับ DP โดยใช้อัลกอริทึมและ ส่วนขยาย DP-FedAvg พื้นฐาน โปรดดู โปรแกรมควบคุมการทดสอบนี้

หากคุณต้องการใช้อัลกอริธึม DP แบบกำหนดเองและใช้กับการอัปเดตรวมของการหาค่าเฉลี่ยแบบรวมศูนย์ คุณสามารถใช้อัลกอริธึมค่าเฉลี่ย DP ใหม่เป็นคลาสย่อยของ tensorflow_privacy.DPQuery และสร้าง tff.aggregators.DifferentiallyPrivateFactory ด้วยอินสแตนซ์ของการสืบค้นของคุณ สามารถดูตัวอย่างการใช้ อัลกอริทึม DP-FTRL ได้ ที่นี่

GAN แบบรวมศูนย์ (อธิบาย ไว้ด้านล่าง ) เป็นอีกตัวอย่างหนึ่งของโครงการ TFF ที่ใช้ความเป็นส่วนตัวระดับผู้ใช้ที่แตกต่างกัน (เช่น ในโค้ดนี้ )

ความแข็งแกร่งและการโจมตี

TFF ยังสามารถใช้เพื่อจำลองการโจมตีแบบกำหนดเป้าหมายบนระบบการเรียนรู้แบบรวมศูนย์และการป้องกันตามความเป็นส่วนตัวที่แตกต่างกันซึ่งพิจารณาใน Can You Really Back door Federated Learning หรือไม่ - ซึ่งทำได้โดยการสร้างกระบวนการวนซ้ำกับไคลเอ็นต์ที่อาจเป็นอันตราย (ดู build_federated_averaging_process_attacked ) ไดเร็กทอรี targeted_attack มีรายละเอียดเพิ่มเติม

  • อัลกอริธึมการโจมตีใหม่สามารถใช้งานได้โดยการเขียนฟังก์ชันการอัปเดตไคลเอ็นต์ซึ่งเป็นฟังก์ชัน Tensorflow โปรดดูตัวอย่างที่ ClientProjectBoost
  • การป้องกันใหม่สามารถทำได้โดยการปรับแต่ง 'tff.utils.StatefulAggregateFn' ซึ่งจะรวมเอาต์พุตของไคลเอ็นต์เพื่อรับการอัปเดตทั่วโลก

สำหรับสคริปต์ตัวอย่างสำหรับการจำลอง โปรดดูที่ emnist_with_targeted_attack.py

เครือข่ายปฏิปักษ์ทั่วไป

GAN สร้าง รูปแบบการรวมกลุ่มแบบรวมศูนย์ ที่น่าสนใจ ที่ดูแตกต่างไปจากค่าเฉลี่ยแบบรวมศูนย์เล็กน้อย พวกเขาเกี่ยวข้องกับเครือข่ายที่แตกต่างกันสองเครือข่าย (ตัวสร้างและตัวแบ่งแยก) ซึ่งแต่ละเครือข่ายได้รับการฝึกอบรมด้วยขั้นตอนการเพิ่มประสิทธิภาพของตนเอง

TFF สามารถใช้สำหรับการวิจัยเกี่ยวกับการฝึกอบรมแบบรวมศูนย์ของ GAN ตัวอย่างเช่น อัลกอริทึม DP-FedAvg-GAN ที่นำเสนอใน งานล่าสุด มี การใช้งานใน TFF งานนี้แสดงให้เห็นถึงประสิทธิภาพของการผสมผสานการเรียนรู้แบบสมาพันธ์ โมเดลเชิงสร้างสรรค์ และ ความเป็นส่วนตัวที่แตกต่างกัน

การปรับเปลี่ยนในแบบของคุณ

การปรับเปลี่ยนในแบบของคุณในสภาพแวดล้อมของการเรียนรู้แบบสหพันธรัฐถือเป็นงานวิจัยเชิงรุก เป้าหมายของการตั้งค่าส่วนบุคคลคือการจัดเตรียมโมเดลการอนุมานที่แตกต่างกันให้กับผู้ใช้ที่แตกต่างกัน อาจมีแนวทางที่แตกต่างกันในการแก้ไขปัญหานี้

แนวทางหนึ่งคือการให้ลูกค้าแต่ละรายปรับแต่งโมเดลระดับโลกเดี่ยว (ฝึกฝนโดยใช้การเรียนรู้แบบรวมศูนย์) ด้วยข้อมูลในเครื่องของตน แนวทางนี้เชื่อมโยงกับเมตาเลิร์นนิง ดู เช่น บทความนี้ ตัวอย่างของแนวทางนี้มีให้ใน emnist_p13n_main.py หากต้องการสำรวจและเปรียบเทียบกลยุทธ์การปรับเปลี่ยนในแบบของคุณ คุณสามารถ:

  • กำหนดกลยุทธ์การปรับเปลี่ยนในแบบของคุณโดยใช้ฟังก์ชัน tf.function ที่เริ่มต้นจากโมเดลเริ่มต้น ฝึกฝน และประเมินโมเดลแบบเฉพาะบุคคลโดยใช้ชุดข้อมูลในเครื่องของลูกค้าแต่ละราย ตัวอย่างถูกกำหนดโดย build_personalize_fn

  • กำหนด OrderedDict ที่แมปชื่อกลยุทธ์กับกลยุทธ์การตั้งค่าส่วนบุคคลที่เกี่ยวข้อง และใช้เป็นอาร์กิวเมนต์ personalize_fn_dict ใน tff.learning.build_personalization_eval_computation

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