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

จัดทุกอย่างให้เป็นระเบียบอยู่เสมอด้วยคอลเล็กชัน บันทึกและจัดหมวดหมู่เนื้อหาตามค่ากำหนดของคุณ

ภาพรวม

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

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

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

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

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

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

ชุดข้อมูลการเรียนรู้แบบสหพันธรัฐ

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

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

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

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

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

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

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

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

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

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

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

TFF สำหรับพื้นที่การวิจัยต่างๆ

อัลกอริธึมการปรับให้เหมาะสมแบบรวมศูนย์

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

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

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

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

การบีบอัดข้อมูลอัพเดตโมเดลแบบสูญเสียข้อมูลสามารถนำไปสู่การลดค่าใช้จ่ายในการสื่อสาร ซึ่งจะทำให้เวลาการฝึกอบรมโดยรวมลดลง

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

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

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

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

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

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

นอกจากนี้ยังสามารถใช้ 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

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