เซิร์ฟเวอร์ Federated Compute (FC) เป็นส่วนหนึ่งของการเรียนรู้แบบรวมศูนย์ที่ให้บริการโดยการปรับตามโปรไฟล์ของผู้ใช้บนอุปกรณ์ (ODP) เอกสารนี้มีไว้เพื่อแนะนำเซิร์ฟเวอร์ประมวลผลแบบรวมศูนย์ (FC Server) คอมโพเนนต์ และเทคโนโลยีที่ใช้ เอกสารนี้จะให้ภาพรวมระดับสูงของสถาปัตยกรรม จากนั้นจะเจาะลึกแต่ละองค์ประกอบอย่างละเอียด นอกจากนี้ ยังอธิบายวิธีที่คอมโพเนนต์ต่างๆ ทํางานร่วมกันเพื่อสร้างสภาพแวดล้อมการเรียนรู้แบบรวมศูนย์ รวมถึงเสนอกลยุทธ์การปรับขนาดและการจัดสรรโหลดงานแบบ Shard
ขั้นตอนการฝึก
การฝึกอบรมประกอบด้วยการรับส่งข้อมูลระหว่างไคลเอ็นต์ของ FC และ FC Server ไคลเอ็นต์ FC คือโมดูลหลักของ Android ที่ฝึกโมเดล ML ในอุปกรณ์และโต้ตอบกับเซิร์ฟเวอร์ FC เซิร์ฟเวอร์ FC จะประมวลผลและรวบรวมผลลัพธ์จากไคลเอ็นต์ FC อย่างปลอดภัยใน Trusted Execution Environment (TEE)
การฝึกอบรมประกอบด้วยขั้นตอนต่อไปนี้
- ไคลเอ็นต์ FC ในอุปกรณ์จะดาวน์โหลดคีย์การเข้ารหัสสาธารณะจากบริการจัดการคีย์
- ไคลเอ็นต์ของ FC จะตรวจสอบกับเซิร์ฟเวอร์ FC และรับงานการฝึกอบรม
- ไคลเอ็นต์ FC จะดาวน์โหลดแผนการฝึก รวมถึงโมเดลเวอร์ชันล่าสุด ซึ่งก็คือเวอร์ชัน N
- FC Client จะฝึกโดยใช้ข้อมูลในเครื่องและแผน
- ไคลเอ็นต์ FC จะเข้ารหัสข้อมูลที่ได้จากอุปกรณ์นี้ด้วยคีย์สาธารณะที่ได้รับในขั้นตอนที่ 0 และอัปโหลดไปยังเซิร์ฟเวอร์ FC
- ไคลเอ็นต์ FC จะแจ้งให้เซิร์ฟเวอร์ FC ทราบว่าการฝึกอบรมเสร็จสมบูรณ์แล้ว
- เซิร์ฟเวอร์ FC จะรอจนกว่าจะมีลูกค้าส่งข้อมูลเข้ามามากพอ
- ระบบจะเรียกใช้การรวมข้อมูลรอบหนึ่ง
- ผู้รวบรวมข้อมูลจะโหลดการมีส่วนร่วมที่เข้ารหัสไว้ในสภาพแวดล้อมการดำเนินการที่เชื่อถือได้ (TEE)
- ผู้รวบรวมข้อมูลรับรองตนเองแก่ผู้ประสานงานตามขั้นตอนเอกสารรับรองระยะไกล RFC 9334 (RATS) ของ NIST เมื่อตรวจสอบสิทธิ์สำเร็จ บริการจัดการคีย์จะมอบคีย์การถอดรหัสให้ คีย์เหล่านี้อาจแยกออกเป็นหลายส่วนในผู้ให้บริการคีย์หลายรายในรูปแบบการแชร์ข้อมูลลับของ Shamir
- โปรแกรมรวบรวมข้อมูลจะทำการรวมข้อมูลข้ามอุปกรณ์ คลิปและเสียงต่างๆ ตามกลไก Differential Privacy (DP) ที่เหมาะสม และแสดงผลลัพธ์ที่มีเสียงรบกวน
- ผู้รวบรวมข้อมูลจะทริกเกอร์โปรแกรมอัปเดตรูปแบบ
- โปรแกรมอัปเดตโมเดลจะโหลดการมีส่วนร่วมแบบรวมและนำไปใช้กับโมเดลเวอร์ชัน N เพื่อสร้างโมเดลเวอร์ชัน N + 1 ระบบจะพุชโมเดลใหม่ไปยังพื้นที่เก็บข้อมูลโมเดล
เซิร์ฟเวอร์ FC สามารถนำไปใช้กับบริการระบบคลาวด์ใดก็ได้ที่รองรับ TEE และฟีเจอร์ความปลอดภัยที่เกี่ยวข้อง เรากำลังประเมินผู้ให้บริการระบบคลาวด์สาธารณะและเทคโนโลยีที่เกี่ยวข้อง แต่ตอนนี้ส่วนต่อไปนี้จะแสดงตัวอย่างการใช้งาน Google Cloud โดยใช้ Confidential Space
สถาปัตยกรรมระดับสูง
เซิร์ฟเวอร์ FC มีคอมโพเนนต์ต่อไปนี้ที่ติดตั้งใช้งานใน Google Cloud
คอมโพเนนต์ | คำอธิบาย |
บริการจัดการงาน | เว็บเซอร์วิสสำหรับจัดการงานการฝึก พาร์ทเนอร์ควรใช้ Task Management API เพื่อสร้างงานการฝึกอบรม แสดงรายการงานการฝึกอบรมที่มีอยู่ทั้งหมด ยกเลิกงาน และเรียกข้อมูลสถานะการฝึกอบรมทั้งหมด |
บริการมอบหมายงาน | เว็บเซอร์วิสที่ใช้ HTTPS ซึ่งอุปกรณ์ไคลเอ็นต์จะตรวจสอบเป็นระยะๆ เพื่อรับงานการฝึกอบรมและรายงานสถานะการฝึกอบรม |
ผู้รวบรวมข้อมูล | บริการที่ทำงานอยู่เบื้องหลังในพื้นที่ลับ รันเวิร์กโหลดที่เขียนโดย ODP และต้องรับรองกับผู้ประสานงานซึ่งมีสิทธิ์เข้าถึงคีย์การถอดรหัส เฉพาะผู้รวบรวมข้อมูลที่ผ่านการรับรองเรียบร้อยแล้วเท่านั้นที่จะถอดรหัสข้อมูลที่ส่งโดยอุปกรณ์ไคลเอ็นต์และทำการรวบรวมข้อมูลข้ามอุปกรณ์ได้ |
ตัวอัปเดตโมเดล | บริการพื้นหลังที่ทำงานอยู่ในพื้นที่ลับที่ใช้การไล่ระดับสีแบบรวมกับโมเดล |
รายละเอียดคอมโพเนนต์
ส่วนต่อไปนี้จะอธิบายสถาปัตยกรรมระดับสูงให้ละเอียดยิ่งขึ้น
บริการจัดการงาน
บริการการจัดการงานมีคอมโพเนนต์ย่อย 2 ส่วน ได้แก่ บริการเว็บการจัดการงานและบริการเครื่องจัดตารางเวลางาน ซึ่งทั้งคู่ใช้งานใน GKE
การจัดการงาน
นี่คือชุดบริการบนเว็บส่วนหน้าที่ใช้คำขอ HTTPS และสร้างหรือรับงานจากฐานข้อมูลงาน
ตัวจัดตารางเวลางาน
บริการที่ทำงานอยู่เบื้องหลังซึ่งสแกนฐานข้อมูลงานอย่างต่อเนื่อง ผู้ดูแลระบบจะจัดการขั้นตอนการฝึก ตัวอย่างเช่น การสร้างรอบการฝึกใหม่และการทำซ้ำ
ฐานข้อมูลงาน
ฐานข้อมูลที่เป็นไปตาม ANSI SQL ซึ่งจัดเก็บข้อมูลงาน การทำซ้ำ และการมอบหมาย ในการใช้งานนี้ Google Cloud Spanner จะใช้เป็นบริการฐานข้อมูลที่สำคัญ
บริการมอบหมายงาน
บริการมอบหมายงานคือเว็บเซอร์วิสส่วนหน้าซึ่งโฮสต์ใน GKE โดยรับคําขอจากลูกค้า FC และกระจายงานการฝึกอบรมตามความเหมาะสม
ฐานข้อมูลงานที่นี่เป็นอินสแตนซ์ฐานข้อมูลเดียวกับฐานข้อมูลงานในบริการจัดการงาน
บริการรวบรวมข้อมูล
ผู้รวบรวมข้อมูลและโปรแกรมอัปเดตรูปแบบ
เครื่องมือรวบรวมข้อมูลและเครื่องมืออัปเดตโมเดลมีความคล้ายคลึงกัน ซึ่งเป็นบริการที่ทำงานอยู่เบื้องหลังซึ่งประมวลผลข้อมูลอย่างปลอดภัยในพื้นที่ลับ การสื่อสารระหว่างงานออฟไลน์จะผ่าน PubSub
การไล่ระดับสี การไล่ระดับสีแบบรวม โมเดลและแผน
- พื้นที่เก็บข้อมูลของไล่ระดับสีสำหรับไล่ระดับสีที่อัปโหลด (ที่เข้ารหัส) ของอุปกรณ์ไคลเอ็นต์
- พื้นที่เก็บข้อมูลการไล่ระดับสีแบบรวมสำหรับการไล่ระดับสีแบบรวม ตัดแล้ว และมีเสียงรบกวน
- โมเดลและพื้นที่เก็บข้อมูลแพ็กเกจสำหรับแผนการฝึก โมเดล และน้ำหนัก
ผู้รวบรวม
อุปกรณ์รวบรวมคือบริการเบื้องหลังที่นับอุปกรณ์ของไคลเอ็นต์ที่ส่งคืนเป็นระยะๆ ในระหว่างรอบการฝึก โดยจะแจ้งให้รวบรวมข้อมูลเมื่อมีการส่งข้อมูลเพียงพอ
โฮสต์บริการ
บริการทั้งหมดที่ไม่มีสิทธิ์เข้าถึงข้อมูลที่ละเอียดอ่อนจะโฮสต์ใน GKE
บริการทั้งหมดที่อาจสัมผัสข้อมูลที่ละเอียดอ่อนจะโฮสต์อยู่ในพื้นที่ลับ
ข้อมูลที่ละเอียดอ่อนทั้งหมดจะได้รับการเข้ารหัสด้วยคีย์การเข้ารหัสที่จัดการโดยบริการจัดการคีย์ที่เป็นเจ้าของหลายราย เฉพาะโค้ดโอเพนซอร์สที่เขียนโดย ODP ซึ่งได้รับการรับรองเรียบร้อยแล้วและทำงานในเวอร์ชันที่เปิดใช้การประมวลผลข้อมูลที่เป็นความลับอย่างถูกต้องของพื้นที่ทำงานที่ปลอดภัยเท่านั้นที่จะเข้าถึงคีย์การถอดรหัสได้
ทรัพยากรการประมวลผลในหน่วยบริการมีลักษณะดังนี้
ความสามารถในการปรับขนาด
โครงสร้างพื้นฐานที่อธิบายก่อนหน้านี้จะมุ่งเน้นที่หน่วยบริการเดียว
หน่วยบริการ 1 หน่วยใช้ Cloud Spanner 1 รายการ ดูข้อจำกัดที่สำคัญได้ที่โควต้าและขีดจำกัดของ Spanner
ส่วนประกอบแต่ละอย่างของสถาปัตยกรรมนี้สามารถปรับขนาดแยกกันได้ ซึ่งทำได้โดยการปรับขนาดความจุภายใน Confidential Space หรือภายในคลัสเตอร์ GKE โดยใช้กลไกการปรับขนาดมาตรฐาน คุณสามารถเพิ่มความจุในการประมวลผลได้อย่างมีประสิทธิภาพโดยเพิ่มอินสแตนซ์ต่อไปนี้
- บริการเว็บการมอบหมายงาน
- บริการเว็บการจัดการงาน
- อินสแตนซ์ของผู้รวบรวมข้อมูล
- อินสแตนซ์โปรแกรมอัปเดตโมเดล
ความยืดหยุ่น
ความยืดหยุ่นของเซิร์ฟเวอร์ FC จะจัดการโดยระบบกู้คืนภัยพิบัติโดยใช้พื้นที่เก็บข้อมูลที่สําเนา หากคุณสนใจการกู้ข้อมูลคืนหลังจากภัยพิบัติ คุณควรเปิดใช้การจำลองข้อมูลข้ามภูมิภาค วิธีนี้ช่วยให้มั่นใจได้ว่าหากเกิดภัยพิบัติ (เช่น สภาพอากาศที่ส่งผลกระทบต่อศูนย์ข้อมูล) บริการจะกลับมาทำงานต่อจากรอบการฝึกครั้งล่าสุด
Spanner
การติดตั้งใช้งานเริ่มต้นของเซิร์ฟเวอร์ FC ใช้ Google Cloud Spanner เป็นฐานข้อมูลเพื่อจัดเก็บสถานะงานที่ใช้ควบคุมขั้นตอนการอบรม คุณควรประเมินข้อดีข้อเสียระหว่างความสอดคล้องและความพร้อมจำหน่ายสินค้าตามความต้องการทางธุรกิจก่อนเลือกการกำหนดค่าหลายภูมิภาค
ไม่มีข้อมูลผู้ใช้หรืออนุพันธ์ของการประมวลผล ไม่ว่าจะเป็นข้อมูลดิบหรือที่เข้ารหัส และจัดเก็บไว้ในอินสแตนซ์ Spanner ใดๆ คุณสามารถใช้ฟีเจอร์การกู้คืนข้อมูลหลังจากภัยพิบัติที่ Spanner มีให้
Spanner จะบันทึกประวัติการเปลี่ยนแปลง เครื่องมือรวบรวมข้อมูลและเครื่องมืออัปเดตโมเดลจะจัดเก็บข้อมูลตามรอบการฝึกอบรมและจัดเก็บผลลัพธ์ของแต่ละรอบแยกกันโดยไม่เขียนทับกัน ด้วยเหตุนี้ บริการจึงจะกลับมาทำงานอีกครั้งจากการฝึกอบรมรอบสุดท้ายได้ในกรณีที่เกิดภัยพิบัติ
Google Cloud Storage
การใช้งานเริ่มต้นของเซิร์ฟเวอร์ FC ใช้ Google Cloud Storage เพื่อจัดเก็บข้อมูล Blob เช่น โมเดล แผนการฝึก และข้อมูลที่ได้จากอุปกรณ์ที่เข้ารหัส
การออกแบบนี้มีอินสแตนซ์ GCS 3 รายการ ได้แก่
- ข้อมูลอุปกรณ์: ข้อมูลอุปกรณ์ที่เข้ารหัสที่อัปโหลดจากอุปกรณ์
- โมเดล: แผนการฝึกอบรม โมเดล และน้ำหนักของโมเดล
- การไล่ระดับสีแบบรวม: การไล่ระดับสีแบบรวมที่เกิดจากเครื่องมือรวบรวม
ข้อมูลที่จัดเก็บใน GCS มีดังนี้
- ข้อมูลที่ได้รับจากนักพัฒนาแอป เช่น แผนการฝึกอบรม หรือ
- ข้อมูลส่วนตัวที่อาจเกิดขึ้นเนื่องจากมาจากสัญญาณของผู้ใช้ (ได้รับการปกป้องด้วยการเข้ารหัสที่รองรับผู้ประสานงานหลายราย) เช่น ไล่ระดับสีที่อุปกรณ์อัปโหลดและไล่ระดับสีที่รวบรวม หรือ
- ข้อมูลที่ไม่ใช่ข้อมูลส่วนตัวซึ่งได้มาจากสัญญาณของผู้ใช้ แต่โพสต์แอปพลิเคชัน Differential Privacy เช่น น้ำหนักโมเดล
คุณควรประเมินข้อดีและข้อเสียระหว่างความสอดคล้องกันกับความพร้อมจำหน่ายสินค้า แล้วเลือกความพร้อมใช้งานของข้อมูล GCS และฟีเจอร์ด้านความคงทนที่เหมาะสม คุณควรระบุนโยบายการเก็บรักษาข้อมูลของคุณเอง
การจำลองและข้อมูลสำรอง
นอกจากกลไกการทําซ้ำข้อมูลของ Google Cloud แล้ว คุณยังเลือกสํารองข้อมูลใน Spanner และ GCS เป็นระยะๆ ได้ด้วย เช่น คุณสามารถใช้บริการและข้อเสนอการจำลองแบบข้ามระบบคลาวด์ได้ ODP ไม่ได้ให้ตัวอย่างเนื่องจากการกำหนดค่าเหล่านี้ต้องอาศัยความต้องการทางธุรกิจอย่างมาก การออกแบบปัจจุบันคำนึงถึงความต้องการที่นักพัฒนาแอปอาจต้องใช้การจำลองและสำรองข้อมูลดังกล่าว ด้วยเหตุนี้ ฟีเจอร์นี้จึงเข้ากันได้กับบริการและผลิตภัณฑ์การสำรองข้อมูลและการทำซ้ำของบุคคลที่สาม