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

ภาพรวม

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

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

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

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

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

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

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

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

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

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

  • สหพันธ์เอ็มนิสต์ การประมวลผลล่วงหน้าแบบรวมศูนย์ของชุดข้อมูลอักขระและตัวเลขของ 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 ขึ้นอยู่กับระดับการปรับแต่งที่ต้องการ

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

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

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

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

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

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

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

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

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