डिवाइस पर मनमुताबिक अनुभव देने वाले फ़ेडरेटेड कंप्यूट सर्वर की मदद से

फ़ेडरेटेड कंप्यूट (एफ़सी) सर्वर, उपयोगकर्ता के हिसाब से डिवाइस को मनमुताबिक बनाने (ओडीपी) की सुविधा से मिलने वाली फ़ेडरेटेड लर्निंग का हिस्सा है. इस दस्तावेज़ का मकसद, फ़ेडरेटेड कंप्यूट सर्वर (एफ़सी सर्वर), उसके कॉम्पोनेंट, और इस्तेमाल की गई टेक्नोलॉजी के बारे में बताना है. इस दस्तावेज़ में, आर्किटेक्चर के बारे में खास जानकारी दी गई है. साथ ही, इसमें हर कॉम्पोनेंट के बारे में पूरी जानकारी दी गई है. इसमें यह भी बताया गया है कि फ़ेडरेटेड लर्निंग का माहौल देने के लिए, कॉम्पोनेंट एक साथ कैसे काम करते हैं. साथ ही, इसमें वर्कफ़्लो को बढ़ाने और अलग-अलग हिस्सों में बांटने की रणनीतियां भी बताई गई हैं.

ट्रेनिंग का फ़्लो

ट्रेनिंग में, एफ़सी क्लाइंट और एफ़सी सर्वर के बीच डेटा फ़्लो शामिल होते हैं. FC क्लाइंट, Android का एक मुख्य मॉड्यूल है. यह डिवाइस पर एमएल मॉडल को ट्रेन करता है और FC सर्वर के साथ इंटरैक्ट करता है. एफ़सी सर्वर, एफ़सी क्लाइंट के नतीजों को ट्रस्टेड एक्ज़ीक्यूशन एनवायरमेंट (टीईई) में सुरक्षित तरीके से प्रोसेस और इकट्ठा करता है.

ट्रेनिंग में ये चरण शामिल होते हैं:

Android के लिए प्राइवसी सैंडबॉक्स पर, फ़ेडरेटेड कंप्यूट क्लाइंट और सर्वर के बीच ट्रेनिंग फ़्लो दिखाने वाला फ़्लो चार्ट.
  1. डिवाइस पर मौजूद FC क्लाइंट, Key Services से एन्क्रिप्ट (सुरक्षित) करने के लिए इस्तेमाल होने वाली सार्वजनिक कुंजी डाउनलोड करता है.
  2. एफ़सी क्लाइंट, एफ़सी सर्वर से जांच करता है और उसे ट्रेनिंग टास्क मिलता है.
  3. FC क्लाइंट, ट्रेनिंग प्लान के साथ-साथ मॉडल का नया वर्शन, वर्शन N डाउनलोड करता है.
  4. एफ़सी क्लाइंट, स्थानीय डेटा और प्लान का इस्तेमाल करके ट्रेनिंग करता है.
  5. FC क्लाइंट, इस डिवाइस के योगदान को पहले चरण में मिली सार्वजनिक कुंजी से एन्क्रिप्ट करता है और उसे FC सर्वर पर अपलोड करता है.
  6. FC क्लाइंट, FC सर्वर को सूचना देता है कि उसकी ट्रेनिंग पूरी हो गई है.
  7. FC सर्वर तब तक इंतज़ार करता है, जब तक ज़रूरत के मुताबिक क्लाइंट अपना योगदान सबमिट नहीं कर देते.
  8. एग्रीगेशन का एक राउंड ट्रिगर होता है.
  9. एग्रीगेटर, एन्क्रिप्ट किए गए योगदानों को ट्रस्टेड एक्ज़ीक्यूशन एनवायरमेंट (टीईई) में लोड करता है.
  10. एग्रीगेटर, कोऑर्डिनेटर को NIST के आरएफ़सी 9334 रिमोट एटेस्टेशन प्रोसेस (आरएटीएस) आर्किटेक्चर के मुताबिक खुद की पुष्टि करता है. पुष्टि हो जाने के बाद, कुंजी सेवाएं उसे डिक्रिप्ट करने की कुंजियां देती हैं. Shamir secret sharing स्कीम में, इन कुंजियों को कई कुंजी देने वाली कंपनियों के बीच बांटा जा सकता है.
  11. एग्रीगेटर, अलग-अलग डिवाइसों से डेटा इकट्ठा करता है. साथ ही, अलग-अलग उपयोगकर्ताओं की निजता बनाए रखने (डीपी) के लिए, सही तरीके से क्लिप और नॉइज़ करता है. इसके बाद, नॉइज़ वाले नतीजे दिखाता है.
  12. एग्रीगेटर, मॉडल अपडेटर को ट्रिगर करता है.
  13. मॉडल अपडेटर, इकट्ठा किए गए योगदान को लोड करता है और मॉडल के वर्शन N + 1 को बनाने के लिए, उसे मॉडल के वर्शन N पर लागू करता है. नया मॉडल, मॉडल स्टोरेज में भेज दिया जाता है.

एफ़सी सर्वर को ऐसी किसी भी क्लाउड सेवा पर डिप्लॉय किया जा सकता है जो टीईई और उससे जुड़ी सुरक्षा सुविधाओं के साथ काम करती है. हम सार्वजनिक क्लाउड सेवा देने वाली कंपनियों और उनमें इस्तेमाल की जाने वाली टेक्नोलॉजी का आकलन कर रहे हैं. हालांकि, फ़िलहाल इस सेक्शन में Confidential Space का इस्तेमाल करके, Google Cloud पर इसे लागू करने का उदाहरण दिया गया है.

हाई-लेवल आर्किटेक्चर

FC सर्वर में, Google Cloud में ये कॉम्पोनेंट डिप्लॉय किए गए हैं:

Android के लिए Privacy Sandbox के फ़ेडरेटेड कंप्यूट सर्वर का आर्किटेक्चर दिखाने वाला डायग्राम.
कॉम्पोनेंट जानकारी
टास्क मैनेजमेंट सेवा ट्रेनिंग टास्क को मैनेज करने के लिए वेब सेवा. पार्टनर को ट्रेनिंग टास्क बनाने, ट्रेनिंग के सभी मौजूदा टास्क की सूची बनाने, किसी टास्क को रद्द करने, और ट्रेनिंग के सभी स्टेटस को वापस पाने के लिए, टास्क मैनेजमेंट एपीआई का इस्तेमाल करना चाहिए.
टास्क असाइन करने की सेवा एचटीटीपीएस पर आधारित वेब सेवा, जहां क्लाइंट डिवाइस समय-समय पर ट्रेनिंग टास्क पाने और ट्रेनिंग की स्थिति की रिपोर्ट करने के लिए चेक इन करते हैं.
एग्रीगेटर गोपनीय स्पेस में बैकग्राउंड में चलने वाली सेवा. यह ODP से लिखे गए वर्कलोड चलाता है. इसमें उन कोऑर्डिनेटर की पुष्टि होनी चाहिए जो डिक्रिप्शन पासकोड का ऐक्सेस सुरक्षित रखते हैं. सिर्फ़ पुष्टि किए गए एग्रीगेटर, क्लाइंट डिवाइसों से सबमिट किए गए योगदानों को डिक्रिप्ट कर सकते हैं और अलग-अलग डिवाइसों से एग्रीगेट कर सकते हैं.
मॉडल अपडेटर गोपनीय स्पेस में चलने वाली बैकग्राउंड सेवा, जो मॉडल पर एग्रीगेट किए गए ग्रेडिएंट लागू करती है.

कॉम्पोनेंट की जानकारी

यहां दिए गए सेक्शन में, हाई-लेवल आर्किटेक्चर के बारे में ज़्यादा जानकारी दी गई है:

Android के लिए Privacy Sandbox के फ़ेडरेटेड कंप्यूट सर्वर के कॉम्पोनेंट दिखाने वाला डायग्राम.

टास्क मैनेजमेंट सेवा

Android के लिए Privacy Sandbox की टास्क मैनेजमेंट सेवा की टोपोलॉजी दिखाने वाला डायग्राम.

टास्क मैनेजमेंट सेवा में दो सब-कॉम्पोनेंट होते हैं: टास्क मैनेजमेंट वेब सेवा और टास्क शेड्यूलर सेवा. दोनों को GKE पर डिप्लॉय किया जाता है.

टास्क मैनेजमेंट

यह फ़्रंटएंड वेब सेवाओं का एक सेट है, जो एचटीटीपीएस अनुरोधों को स्वीकार करता है और टास्क डेटाबेस से टास्क बनाता है या उन्हें पाता है.

टास्क शेड्यूलर

बैकग्राउंड में चलने वाली एक सेवा, जो Task के डेटाबेस को लगातार स्कैन करती रहती है. यह ट्रेनिंग फ़्लो को मैनेज करता है. उदाहरण के लिए, नए ट्रेनिंग राउंड और दोहराव बनाना.

टास्क डेटाबेस

ANSI SQL के मुताबिक काम करने वाला डेटाबेस, जो टास्क, दोहराव, और असाइनमेंट की जानकारी सेव करता है. इस तरीके को लागू करने के लिए, Google Cloud Spanner का इस्तेमाल डेटाबेस सेवा के तौर पर किया जाता है.

टास्क असाइनमेंट सेवा

Android के लिए Privacy Sandbox की टास्क असाइनमेंट सेवा की टोपोलॉजी दिखाने वाला डायग्राम.

टास्क असाइनमेंट सेवा, एक फ़्रंटएंड वेब सेवा है. इसे GKE पर होस्ट किया जाता है. यह एजेंट, एफ़सी क्लाइंट से अनुरोध स्वीकार करता है और ज़रूरत पड़ने पर ट्रेनिंग टास्क बांटता है.

यहां टास्क डेटाबेस, टास्क मैनेजमेंट सेवा में मौजूद टास्क डेटाबेस जैसा ही डेटाबेस इंस्टेंस है.

एग्रीगेटर सेवा

Android के लिए Privacy Sandbox की एग्रीगेटर सेवा की टोपोलॉजी दिखाने वाला डायग्राम.
एग्रीगेटर और मॉडल अपडेटर

एग्रीगेटर और मॉडल अपडेटर, दोनों एक जैसे हैं. ये बैकग्राउंड सेवाएं हैं, जो गोपनीय स्पेस में डेटा को सुरक्षित तरीके से प्रोसेस करती हैं. ऑफ़लाइन जॉब के बीच PubSub के ज़रिए कम्यूनिकेशन होता है.

ग्रेडिएंट, एग्रीगेट किए गए ग्रेडिएंट, मॉडल, और प्लान
  • क्लाइंट डिवाइस पर अपलोड किए गए (एन्क्रिप्ट किए गए) ग्रेडिएंट के लिए स्टोरेज.
  • एग्रीगेट किए गए, काटे गए, और गड़बड़ी वाले ग्रेडिएंट के लिए एग्रीगेट किया गया स्टोरेज.
  • ट्रेनिंग प्लान, मॉडल, और वेट के लिए मॉडल और प्लान का स्टोरेज.
कलेक्टर

कलेक्टर एक बैकग्राउंड सेवा है, जो ट्रेनिंग राउंड के दौरान, क्लाइंट डिवाइस के सबमिशन की समय-समय पर गिनती करती है. यह एग्रीगेटर को सूचना देता है कि ज़रूरत के मुताबिक सबमिशन उपलब्ध होने के बाद, एग्रीगेशन शुरू किया जाए.

सेवा के होस्ट

जिन सेवाओं के पास संवेदनशील जानकारी का ऐक्सेस नहीं है उन्हें GKE पर होस्ट किया जाता है.

संवेदनशील जानकारी से जुड़ी सभी सेवाओं को गोपनीय स्पेस में होस्ट किया जाता है.

सारा संवेदनशील डेटा, एन्क्रिप्शन कुंजियों की मदद से एन्क्रिप्ट किया जाता है. इन कुंजियों को, कई पक्षों के मालिकाना हक वाली कुंजी सेवाएं मैनेज करती हैं. सिर्फ़ पुष्टि किए गए, ओडीपी के लेखक का ओपन सोर्स कोड, डिक्रिप्ट करने की कुंजियों को ऐक्सेस कर सकता है. यह कोड, Confidential Space के मान्य और गोपनीय कंप्यूटिंग की सुविधा वाले वर्शन में चलता है.

एक सेवा यूनिट में, कंप्यूट रिसोर्स ऐसा दिखता है:

Android के लिए प्राइवसी सैंडबॉक्स की सेवा यूनिट टॉपोलॉजी दिखाने वाला डायग्राम.

विस्तार करने की क्षमता

पहले बताए गए इन्फ़्रास्ट्रक्चर में, एक सेवा यूनिट पर फ़ोकस किया गया है.

एक सेवा यूनिट, एक Cloud Spanner का इस्तेमाल करती है. ज़रूरी सीमाओं के बारे में जानने के लिए, Spanner के कोटा और सीमाएं देखें.

इस आर्किटेक्चर के हर कॉम्पोनेंट को अलग-अलग स्केल किया जा सकता है. ऐसा करने के लिए, गोपनीय स्पेस या GKE क्लस्टर में, स्टैंडर्ड स्केलिंग मशीन का इस्तेमाल करके, कैपेसिटी को बढ़ाया जाता है. प्रोसेसिंग क्षमता को बढ़ाने के लिए, इनके ज़्यादा इंस्टेंस जोड़े जा सकते हैं:

  • टास्क असाइनमेंट वेब सेवा
  • टास्क मैनेजमेंट वेब सेवा
  • एग्रीगेटर इंस्टेंस
  • मॉडल अपडेटर इंस्टेंस

रेज़िलिएंस

एफ़सी सर्वर के रिज़िलिएंस को, डुप्लीकेट स्टोरेज का इस्तेमाल करके आपदा से जुड़ी रिकवरी की सुविधा से मैनेज किया जाता है. अगर आपको आपातकालीन स्थिति में डेटा वापस पाने की सुविधा चाहिए, तो आपको अलग-अलग इलाकों में डेटा को कॉपी करने की सुविधा चालू करनी चाहिए. इससे यह पक्का होगा कि अगर कोई आपदा आती है, जैसे कि मौसम की वजह से डेटा सेंटर में रुकावट आना, तो सेवा ट्रेनिंग के आखिरी राउंड से फिर से शुरू हो जाएगी.

Spanner

FC सर्वर को डिफ़ॉल्ट रूप से लागू करने के लिए, टास्क का स्टेटस सेव करने के तौर पर Google Cloud Spanner का इस्तेमाल किया जाता है. इस स्टेटस का इस्तेमाल, ट्रेनिंग फ़्लो को कंट्रोल करने के लिए किया जाता है. एक से ज़्यादा क्षेत्रों के लिए कॉन्फ़िगरेशन चुनने से पहले, आपको अपने कारोबार की ज़रूरतों के हिसाब से, डेटा के एक जैसे होने और उपलब्धता के बीच के फ़ायदे और नुकसान का आकलन करना चाहिए.

Spanner के किसी भी इंस्टेंस में, उपयोगकर्ता का कोई भी डेटा या उसके डेरिवेटिव, रॉ या एन्क्रिप्ट (सुरक्षित) किए गए रूप में सेव नहीं किए जाते. Spanner की आपदा से जुड़ी रिकवरी की सुविधाओं में से किसी भी सुविधा का इस्तेमाल करें.

Spanner, बदलाव के इतिहास को रिकॉर्ड करता है. एग्रीगेटर और मॉडल अपडेटर, हर ट्रेनिंग राउंड के डेटा को स्टोर करते हैं. साथ ही, हर राउंड का नतीजा अलग से स्टोर किया जाता है, ताकि एक-दूसरे को ओवरराइट न किया जा सके. इस वजह से, आपातकालीन स्थिति में ट्रेनिंग के आखिरी राउंड से सेवा फिर से शुरू की जा सकती है.

Google Cloud Storage

एफ़सी सर्वर के डिफ़ॉल्ट तौर पर लागू होने पर, मॉडल, ट्रेनिंग प्लान, और एन्क्रिप्ट (सुरक्षित) किए गए डिवाइस के योगदान जैसे ब्लॉब डेटा को सेव करने के लिए, Google Cloud Storage का इस्तेमाल किया जाता है.

डिज़ाइन में तीन GCS इंस्टेंस हैं:

  • डिवाइस से योगदान: डिवाइसों से अपलोड किए गए, एन्क्रिप्ट किए गए योगदान.
  • मॉडल: ट्रेनिंग के प्लान, मॉडल, और उनका वज़न.
  • एग्रीगेट किए गए ग्रेडिएंट: एग्रीगेटर से मिलने वाले एग्रीगेट किए गए ग्रेडिएंट.

GCS में सेव किया गया डेटा इनमें से कोई एक होता है:

  • डेवलपर का दिया डेटा, जैसे कि ट्रेनिंग प्लान या
  • यह संभावित रूप से निजी डेटा हो सकता है, क्योंकि यह उपयोगकर्ता के सिग्नल से मिलता है. इन सिग्नल को कई कोऑर्डिनेटर के साथ एन्क्रिप्ट (सुरक्षित) किया जाता है. जैसे, डिवाइस से अपलोड किए गए ग्रेडिएंट और एग्रीगेट किए गए ग्रेडिएंट या
  • उपयोगकर्ता सिग्नल से मिलने वाला ऐसा डेटा जो निजी नहीं है. हालांकि, यह डेटा अलग-अलग उपयोगकर्ताओं के लिए अलग-अलग निजता बनाए रखने की सुविधा के बाद मिलता है. जैसे, मॉडल के वज़न.

आपको डेटा के लगातार उपलब्ध रहने और डेटा की उपलब्धता के बीच के फ़ायदे और नुकसान का आकलन करना चाहिए. साथ ही, जीसीएस में डेटा की उपलब्धता और डेटा को सुरक्षित रखने की सुविधाओं को चुनना चाहिए. आपको डेटा के रखरखाव से जुड़ी अपनी नीतियां तय करनी होंगी.

डेटा का रेप्लिकेशन और बैकअप

Google Cloud की ओर से उपलब्ध कराए गए डेटा को कॉपी करने के तरीकों के अलावा, Spanner और GCS में समय-समय पर डेटा का बैकअप भी लिया जा सकता है. उदाहरण के लिए, क्रॉस-क्लाउड कॉपी करने की सेवाओं और ऑफ़र का इस्तेमाल किया जा सकता है. ODP कोई सैंपल नहीं देता, क्योंकि ये कॉन्फ़िगरेशन कारोबार की ज़रूरतों पर निर्भर करते हैं. मौजूदा डिज़ाइन में, डेवलपर की ऐसी कॉपी और बैकअप की संभावित ज़रूरतों को ध्यान में रखा गया है. इसलिए, यह तीसरे पक्ष की कॉपी बनाने और बैकअप लेने की सेवाओं और प्रॉडक्ट के साथ काम करता है.