เซิร์ฟเวอร์ Federated Compute (FC) เป็นส่วนหนึ่งของการเรียนรู้แบบรวมศูนย์ที่ให้บริการโดยการปรับตามโปรไฟล์ของผู้ใช้บนอุปกรณ์ (ODP) เอกสารนี้มีไว้เพื่อแนะนำเซิร์ฟเวอร์ประมวลผลแบบรวมศูนย์ (FC Server) คอมโพเนนต์ และเทคโนโลยีที่ใช้ เอกสารนี้จะให้ภาพรวมระดับสูงของสถาปัตยกรรม จากนั้นจะเจาะลึกแต่ละองค์ประกอบอย่างละเอียด นอกจากนี้ ยังอธิบายวิธีที่คอมโพเนนต์ต่างๆ ทํางานร่วมกันเพื่อสร้างสภาพแวดล้อมการเรียนรู้แบบรวมศูนย์ รวมถึงเสนอกลยุทธ์การปรับขนาดและการจัดสรรโหลดงาน
ขั้นตอนการฝึก
การฝึกประกอบด้วยการไหลของข้อมูลระหว่างไคลเอ็นต์ FC กับเซิร์ฟเวอร์ FC ไคลเอ็นต์ 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 Remote ATtestation procedureS (RATS) ของ NIST เมื่อตรวจสอบสิทธิ์สำเร็จแล้ว บริการจัดการคีย์จะมอบคีย์การถอดรหัสให้ คีย์เหล่านี้อาจแยกออกเป็นหลายส่วนในผู้ให้บริการคีย์หลายรายในรูปแบบการแชร์ข้อมูลลับของ Shamir
- ผู้รวบรวมข้อมูลจะรวบรวม ตัดคลิป และสร้างสัญญาณรบกวนข้ามอุปกรณ์ตามกลไกความเป็นส่วนตัวแบบต่างระดับ (DP) ที่เหมาะสม และแสดงผลลัพธ์ที่มีสัญญาณรบกวน
- ผู้รวบรวมข้อมูลจะทริกเกอร์โปรแกรมอัปเดตรูปแบบ
- เครื่องมืออัปเดตโมเดลจะโหลดข้อมูลที่รวบรวมไว้และใช้กับโมเดลเวอร์ชัน N เพื่อสร้างโมเดลเวอร์ชัน N + 1 ระบบจะพุชโมเดลใหม่ไปยังพื้นที่เก็บข้อมูลโมเดล
FC Server สามารถติดตั้งใช้งานในบริการระบบคลาวด์ใดก็ได้ที่รองรับ TEE และฟีเจอร์ด้านความปลอดภัยที่เกี่ยวข้อง เรากำลังประเมินผู้ให้บริการระบบคลาวด์สาธารณะและเทคโนโลยีที่เกี่ยวข้อง แต่ตอนนี้ส่วนต่อไปนี้จะแสดงตัวอย่างการใช้งาน Google Cloud โดยใช้ Confidential Space
สถาปัตยกรรมระดับสูง
เซิร์ฟเวอร์ FC มีคอมโพเนนต์ต่อไปนี้ที่ติดตั้งใช้งานใน Google Cloud
คอมโพเนนต์ | คำอธิบาย |
บริการจัดการงาน | เว็บเซอร์วิสสำหรับจัดการงานการฝึก พาร์ทเนอร์ควรใช้ Task Management API เพื่อสร้างงานการฝึกอบรม แสดงรายการงานการฝึกอบรมที่มีอยู่ทั้งหมด ยกเลิกงาน และเรียกข้อมูลสถานะการฝึกอบรมทั้งหมด |
บริการมอบหมายงาน | เว็บเซอร์วิสที่ใช้ HTTPS ซึ่งอุปกรณ์ไคลเอ็นต์จะตรวจสอบเป็นระยะๆ เพื่อรับงานการฝึกอบรมและรายงานสถานะการฝึกอบรม |
ผู้รวบรวมข้อมูล | บริการที่ทำงานอยู่เบื้องหลังในพื้นที่ส่วนบุคคล รันเวิร์กโหลดที่เขียนโดย ODP และต้องรับรองผู้ประสานงานซึ่งจะเป็นผู้ควบคุมการเข้าถึงคีย์การถอดรหัส เฉพาะผู้รวบรวมข้อมูลที่ผ่านการรับรองเรียบร้อยแล้วเท่านั้นที่จะถอดรหัสข้อมูลที่ส่งโดยอุปกรณ์ไคลเอ็นต์และทำการรวบรวมข้อมูลข้ามอุปกรณ์ได้ |
ตัวอัปเดตโมเดล | บริการเบื้องหลังที่ทำงานในพื้นที่ส่วนบุคคลซึ่งใช้การไล่ระดับสีแบบรวมกับโมเดล |
รายละเอียดคอมโพเนนต์
ส่วนต่อไปนี้จะขยายสถาปัตยกรรมระดับสูงให้ละเอียดยิ่งขึ้น
บริการจัดการงาน
บริการจัดการงานประกอบด้วยคอมโพเนนต์ย่อย 2 รายการ ได้แก่ เว็บเซอร์วิสการจัดการงานและบริการตัวจัดตารางงาน ซึ่งทั้ง 2 รายการนี้ติดตั้งใช้งานใน GKE
การจัดการงาน
นี่คือชุดบริการบนเว็บส่วนหน้าที่ใช้รับคำขอ HTTPS และสร้างหรือรับงานจากฐานข้อมูลงาน
ตัวจัดตารางเวลางาน
บริการที่ทำงานอยู่เบื้องหลังซึ่งสแกนฐานข้อมูลงานอย่างต่อเนื่อง โดยจะจัดการขั้นตอนการอบรม เช่น การสร้างรอบการฝึกอบรมและการทำซ้ำใหม่
ฐานข้อมูลงาน
ฐานข้อมูลที่เป็นไปตามข้อกำหนด ANSI SQL ซึ่งจัดเก็บข้อมูลงาน การทำซ้ำ และงาน ในการใช้งานนี้ ระบบจะใช้ Google Cloud Spanner เป็นบริการฐานข้อมูลที่สําคัญ
บริการมอบหมายงาน
บริการมอบหมายงานคือเว็บเซอร์วิสส่วนหน้าซึ่งโฮสต์ใน GKE โดยรับคําขอจากลูกค้า FC และกระจายงานการฝึกอบรมตามความเหมาะสม
ฐานข้อมูลงานที่นี่เป็นอินสแตนซ์ฐานข้อมูลเดียวกับฐานข้อมูลงานในบริการจัดการงาน
บริการผู้รวบรวมข้อมูล
ผู้รวบรวมข้อมูลและโปรแกรมอัปเดตรูปแบบ
เครื่องมือรวบรวมข้อมูลและเครื่องมืออัปเดตโมเดลมีความคล้ายคลึงกัน โดยเป็นบริการเบื้องหลังที่ประมวลผลข้อมูลอย่างปลอดภัยในพื้นที่ส่วนบุคคล การสื่อสารระหว่างงานออฟไลน์จะผ่าน PubSub
การไล่ระดับสี การไล่ระดับสีแบบรวม รูปแบบ และแผน
- พื้นที่เก็บข้อมูลของไล่ระดับสีสำหรับไล่ระดับสีที่อัปโหลด (ที่เข้ารหัส) ของอุปกรณ์ไคลเอ็นต์
- พื้นที่เก็บข้อมูลของไล่ระดับสีแบบรวมสำหรับไล่ระดับสีแบบรวม ตัด และที่มีสัญญาณรบกวน
- พื้นที่เก็บโมเดลและแผนสำหรับแผนการฝึก โมเดล และน้ำหนัก
ผู้รวบรวม
ตัวรวบรวมข้อมูลเป็นบริการที่ทำงานอยู่เบื้องหลังซึ่งจะนับข้อมูลที่ส่งจากอุปกรณ์ไคลเอ็นต์เป็นระยะๆ ในระหว่างรอบการฝึก โดยจะแจ้งให้รวบรวมข้อมูลเมื่อมีการส่งข้อมูลเพียงพอ
โฮสต์บริการ
บริการทั้งหมดที่ไม่มีสิทธิ์เข้าถึงข้อมูลที่ละเอียดอ่อนจะโฮสต์ใน GKE
บริการทั้งหมดที่อาจเกี่ยวข้องกับข้อมูลที่ละเอียดอ่อนจะโฮสต์ในพื้นที่ส่วนบุคคล
ข้อมูลที่ละเอียดอ่อนทั้งหมดได้รับการเข้ารหัสด้วยคีย์การเข้ารหัสที่จัดการโดยบริการจัดการคีย์ของบุคคลหลายฝ่าย เฉพาะโค้ดโอเพนซอร์สที่เขียนโดย ODP ซึ่งได้รับการรับรองเรียบร้อยแล้วและทำงานในเวอร์ชันที่เปิดใช้การประมวลผลข้อมูลที่เป็นความลับอย่างถูกต้องของพื้นที่ทำงานที่ปลอดภัยเท่านั้นที่จะเข้าถึงคีย์การถอดรหัสได้
ในหน่วยบริการ 1 หน่วย ทรัพยากรการประมวลผลจะมีลักษณะดังนี้
ความสามารถในการปรับขนาด
โครงสร้างพื้นฐานที่อธิบายไปก่อนหน้านี้จะเน้นที่หน่วยบริการเดียว
หน่วยบริการ 1 หน่วยใช้ Cloud Spanner 1 รายการ ดูข้อจํากัดที่สําคัญได้ที่โควต้าและขีดจํากัดของ Spanner
คอมโพเนนต์แต่ละรายการของสถาปัตยกรรมนี้ปรับขนาดแยกกันได้ ซึ่งทำได้โดยการปรับขนาดความจุภายในพื้นที่ทำงานที่ปลอดภัยหรือภายในคลัสเตอร์ 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 ไม่มีตัวอย่างให้เนื่องจากการกำหนดค่าเหล่านี้ขึ้นอยู่กับความต้องการทางธุรกิจอย่างมาก การออกแบบปัจจุบันคำนึงถึงความต้องการที่นักพัฒนาแอปอาจต้องการการจำลองและสำรองข้อมูลดังกล่าว ด้วยเหตุนี้ ฟีเจอร์นี้จึงเข้ากันได้กับบริการและผลิตภัณฑ์การสำรองข้อมูลและการทำซ้ำของบุคคลที่สาม