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