AI 101
อะไรคือ Federated Learning?

อะไรคือ Federated Learning?
วิธีการแบบดั้งเดิมในการฝึกอบรมโมเดล AI เกี่ยวข้องกับการตั้งค่าเซิร์ฟเวอร์ที่โมเดลถูกฝึกอบรมบนข้อมูล ซึ่งมักจะผ่านการใช้แพลตฟอร์มการประมวลผลแบบคลาวด์ อย่างไรก็ตาม ในช่วงไม่กี่ปีที่ผ่านมา รูปแบบการสร้างโมเดลที่แตกต่างได้เกิดขึ้น ซึ่งเรียกว่า Federated Learning Federated Learning นำโมเดลการเรียนรู้ของเครื่องไปยังแหล่งข้อมูล แทนที่จะนำข้อมูลไปยังโมเดล Federated Learning เชื่อมต่ออุปกรณ์คำนวณหลายเครื่องเข้าด้วยกันในระบบที่กระจายตัว ซึ่งช่วยให้อุปกรณ์แต่ละเครื่องที่รวบรวมข้อมูลสามารถช่วยในการฝึกอบรมโมเดล
ในระบบ Federated Learning อุปกรณ์ต่างๆ ที่เป็นส่วนหนึ่งของเครือข่ายการเรียนรู้จะมีคัดลอกโมเดลบนอุปกรณ์แต่ละเครื่อง อุปกรณ์ต่างๆ /クライเอ็นต์ฝึกอบรมคัดลอกโมเดลของตนเองโดยใช้ข้อมูลท้องถิ่นของクライเอ็นต์ จากนั้นพารามิเตอร์/น้ำหนักจากโมเดลแต่ละตัวจะถูกส่งไปยังอุปกรณ์หลัก หรือเซิร์ฟเวอร์ ที่รวมพารามิเตอร์และอัปเดตโมเดลระดับโลก การฝึกอบรมนี้สามารถทำซ้ำจนกว่าจะได้ระดับความแม่นยำที่ต้องการ ในสั้นๆ ความคิดเบื้องหลัง Federated Learning คือไม่มีข้อมูลฝึกอบรมที่ส่งระหว่างอุปกรณ์หรือระหว่างฝ่ายต่างๆ เพียงแค่อัปเดตที่เกี่ยวข้องกับโมเดลเท่านั้น
Federated Learning สามารถแบ่งออกเป็นสามขั้นตอนหรือระยะต่างๆ Federated Learning มักจะเริ่มต้นด้วยโมเดลทั่วไปที่ทำหน้าที่เป็นบรรทัดฐานและฝึกอบรมบนเซิร์ฟเวอร์กลาง ในขั้นตอนแรก โมเดลทั่วไปนี้จะถูกส่งไปยังクライเอ็นต์ของแอปพลิเคชัน คัดลอกท้องถิ่นเหล่านี้จะถูกฝึกอบรมบนข้อมูลที่สร้างโดยระบบクライเอ็นต์ การเรียนรู้และปรับปรุงประสิทธิภาพของตนเอง
ในขั้นตอนที่สอง クライเอ็นต์ทั้งหมดจะส่งพารามิเตอร์โมเดลที่ได้เรียนรู้ไปยังเซิร์ฟเวอร์กลาง ซึ่งเกิดขึ้นเป็นระยะๆ ตามกำหนดเวลา
ในขั้นตอนที่สาม เซิร์ฟเวอร์จะรวมพารามิเตอร์ที่ได้เรียนรู้เมื่อได้รับ หลังจากที่พารามิเตอร์ถูกรวมแล้ว โมเดลกลางจะถูกอัปเดตและแบ่งปันใหม่กับクライเอ็นต์ กระบวนการทั้งหมดจะทำซ้ำ
ประโยชน์ของการมีคัดลอกโมเดลบนอุปกรณ์ต่างๆ คือความล่าช้าของเครือข่ายจะลดลงหรือถูกกำจัด ค่าใช้จ่ายที่เกี่ยวข้องกับการแบ่งปันข้อมูลกับเซิร์ฟเวอร์จะถูกกำจัดด้วย ประโยชน์อื่นๆ ของวิธีการ Federated Learning รวมถึงข้อเท็จจริงที่ว่าโมเดล Federated Learning ได้รับการคุ้มครองความเป็นส่วนตัว และการตอบสนองของโมเดลถูกปรับให้เหมาะสมสำหรับผู้ใช้อุปกรณ์
ตัวอย่างของโมเดล Federated Learning รวมถึงเครื่องมือแนะนำ การตรวจจับฉ้อโกง และโมเดลทางการแพทย์ เครื่องมือแนะนำ เช่น ตัวที่ใช้โดย Netflix หรือ Amazon สามารถฝึกอบรมบนข้อมูลที่รวบรวมจากผู้ใช้หลายพันคน อุปกรณ์クライเอ็นต์จะฝึกอบรมโมเดลที่แยกจากกัน และโมเดลกลางจะเรียนรู้ที่จะทำการคาดเดาที่ดีขึ้น แม้ว่าจุดข้อมูลแต่ละจุดจะไม่เหมือนกันสำหรับผู้ใช้แต่ละคนก็ตาม ในทำนองเดียวกัน โมเดลการตรวจจับฉ้อโกงที่ใช้โดยธนาคารสามารถฝึกอบรมบนรูปแบบของกิจกรรมจากอุปกรณ์ต่างๆ ที่แตกต่างกัน และธนาคารหลายแห่งสามารถร่วมมือกันฝึกอบรมโมเดลที่ใช้ร่วมกัน ในด้านโมเดล Federated Learning ทางการแพทย์ โรงพยาบาลหลายแห่งสามารถร่วมมือกันฝึกอบรมโมเดลที่ใช้ร่วมกันซึ่งสามารถระบุเนื้องอกที่อาจเกิดขึ้นผ่านการสแกนภาพทางการแพทย์
ประเภทของ Federated Learning
การวางแผน Federated Learning โดยทั่วไปจะแบ่งออกเป็นสองประเภทหลัก ระบบหลายฝ่ายและระบบฝ่ายเดียว ระบบ Federated Learning แบบฝ่ายเดียวเรียกว่า “ฝ่ายเดียว” เนื่องจากมีหน่วยงานเดียวที่รับผิดชอบในการดูแลการเก็บและการไหลของข้อมูลทั่วทั้งอุปกรณ์クライเอ็นต์ในเครือข่ายการเรียนรู้ โมเดลที่มีอยู่บนอุปกรณ์クライเอ็นต์จะถูกฝึกอบรมบนข้อมูลที่มีโครงสร้างเดียวกัน แม้ว่าจุดข้อมูลจะไม่เหมือนกันสำหรับผู้ใช้และอุปกรณ์ต่างๆ ก็ตาม
ในทางตรงกันข้ามกับระบบฝ่ายเดียว ระบบหลายฝ่ายจะจัดการโดยหน่วยงานสองแห่งหรือมากกว่า หน่วยงานเหล่านี้ร่วมมือกันฝึกอบรมโมเดลที่ใช้ร่วมกันโดยใช้อุปกรณ์และชุดข้อมูลที่พวกเขาเข้าถึงได้ พารามิเตอร์และโครงสร้างข้อมูลมักจะคล้ายกันบนอุปกรณ์ที่属于หน่วยงานต่างๆ แต่ไม่จำเป็นต้องเหมือนกัน การประมวลผลล่วงหน้าจะทำเพื่อปรับให้ข้อมูลเข้ามาตรฐานของโมเดล อาจมีการใช้หน่วยงานที่เป็นกลางในการรวมน้ำหนักที่กำหนดโดยอุปกรณ์ที่ไม่เหมือนกันสำหรับหน่วยงานต่างๆ
เฟรมเวิร์กสำหรับ Federated Learning
เฟรมเวิร์กที่ได้รับความนิยมในการใช้สำหรับ Federated Learning รวมถึง Tensorflow Federated, Federated AI Technology Enabler (FATE) และ PySyft PySyft เป็นไลบรารี Federated Learning แบบเปิดที่สร้างขึ้นจากไลบรารีการเรียนรู้ลึก PyTorch PySyft มีจุดมุ่งหมายเพื่อให้แน่ใจว่าการเรียนรู้ลึกที่ปลอดภัยและเป็นส่วนตัวระหว่างเซิร์ฟเวอร์และเอเจนต์โดยใช้การคำนวณที่เข้ารหัส ในขณะที่ Tensorflow Federated เป็นเฟรมเวิร์กแบบเปิดที่สร้างขึ้นจากแพลตฟอร์ม Tensorflow ของ Google นอกจากการทำให้ผู้ใช้สามารถสร้างอัลกอริทึม Federated Learning ของตนเองแล้ว Tensorflow Federated ยังช่วยให้ผู้ใช้สามารถจำลองอัลกอริทึม Federated Learning ที่รวมไว้บนโมเดลและข้อมูลของตนเองได้ สุดท้าย FATE เป็นเฟรมเวิร์กแบบเปิดที่ออกแบบโดย Webank AI และมีจุดมุ่งหมายเพื่อให้ระบบนิเวศ Federated AI มีเฟรมเวิร์กการคำนวณที่ปลอดภัย
ความท้าทายของ Federated Learning
เนื่องจาก Federated Learning ยังคงเป็นเรื่องใหม่ ความท้าทายหลายประการ ยังคงต้องได้รับการแก้ไขเพื่อให้สามารถบรรลุศักยภาพที่เต็มที่ของมัน ความสามารถในการคำนวณของอุปกรณ์ขอบ การระบุฉลากและการมาตรฐานข้อมูล และการรวมโมเดลเป็นข้อขัดข้องที่อาจเกิดขึ้นสำหรับแนวทาง Federated Learning
ความสามารถในการคำนวณของอุปกรณ์ขอบเมื่อพูดถึงการฝึกอบรมท้องถิ่นจะต้องพิจารณาเมื่อออกแบบแนวทาง Federated Learning ในขณะที่สมาร์ทโฟน แท็บเล็ต และอุปกรณ์ IoT ที่เข้ากันได้ส่วนใหญ่สามารถฝึกอบรมโมเดลการเรียนรู้ของเครื่องได้ แต่โดยทั่วไปจะทำให้ประสิทธิภาพของอุปกรณ์ลดลง การประนีประนอมจะต้องทำระหว่างความแม่นยำของโมเดลและประสิทธิภาพของอุปกรณ์
การระบุฉลากและการมาตรฐานข้อมูลเป็นความท้าทายอีกอย่างหนึ่งที่ระบบ Federated Learning ต้อง克服 โมเดลการเรียนรู้แบบมีคำแนะนำต้องการข้อมูลฝึกอบรมที่มีการระบุฉลากและสม่ำเสมอ ซึ่งอาจเป็นเรื่องยากที่จะทำได้บนอุปกรณ์クライเอ็นต์หลายตัวที่เป็นส่วนหนึ่งของระบบ ด้วยเหตุนี้จึงจำเป็นต้องพัฒนาโมเดลข้อมูลที่ใช้การระบุฉลากอัตโนมัติในลักษณะที่เป็นมาตรฐานตามเหตุการณ์และการกระทำของผู้ใช้
เวลาในการรวมโมเดลเป็นความท้าทายอีกอย่างหนึ่งสำหรับ Federated Learning เนื่องจากโมเดล Federated Learning มักจะใช้เวลานานกว่าในการรวมโมเดลที่ฝึกอบรมท้องถิ่น จำนวนอุปกรณ์ที่เกี่ยวข้องกับการฝึกอบรมจะเพิ่มความไม่แน่นอนให้กับการฝึกอบรมโมเดล เนื่องจากปัญหาเชื่อมต่อ การอัปเดตที่ไม่สม่ำเสมอ และแม้แต่เวลาใช้งานแอปพลิเคชันที่แตกต่างกันสามารถส่งผลให้เวลาในการรวมโมเดลเพิ่มขึ้นและลดความน่าเชื่อถือ ด้วยเหตุนี้ วิธีแก้ปัญหา Federated Learning จึงมีประโยชน์มากที่สุดเมื่อพวกเขาให้ประโยชน์ที่มีความหมายมากกว่าการฝึกอบรมโมเดลที่จุดศูนย์กลาง เช่น ในกรณีที่ชุดข้อมูลมีขนาดใหญ่มากและกระจายตัว

ภาพ: Jeromemetronome via Wikimedia Commons, CC By S.A. 4.0 (https://en.wikipedia.org/wiki/File:Federated_learning_process_central_case.png)












