अवलोकन
TFF एक विस्तार योग्य और शक्तिशाली फ्रेमवर्क है, जो वास्तविक प्रॉक्सी डेटासेट पर फेडरेटेड कंप्यूटेशन का अनुकरण करके फेडरेटेड लर्निंग (FL) अनुसंधान करने के लिए उपयुक्त है। यह पृष्ठ अनुसंधान सिमुलेशन के लिए प्रासंगिक मुख्य अवधारणाओं और घटकों के साथ-साथ TFF में विभिन्न प्रकार के अनुसंधान करने के लिए विस्तृत मार्गदर्शन प्रदान करता है।
टीएफएफ में अनुसंधान कोड की विशिष्ट संरचना
TFF में कार्यान्वित एक शोध FL सिमुलेशन में आमतौर पर तीन मुख्य प्रकार के तर्क शामिल होते हैं।
TensorFlow कोड के अलग-अलग हिस्से, आमतौर पर
tf.function, जो एक ही स्थान (जैसे क्लाइंट या सर्वर पर) पर चलने वाले लॉजिक को समाहित करते हैं। यह कोड आमतौर पर बिना किसीtff.*संदर्भ के लिखा और परीक्षण किया जाता है, और इसे TFF के बाहर भी पुनः उपयोग किया जा सकता है। उदाहरण के लिए, फेडरेटेड एवरेजिंग में क्लाइंट ट्रेनिंग लूप इसी स्तर पर कार्यान्वित किया जाता है।TensorFlow फेडरेटेड ऑर्केस्ट्रेशन लॉजिक, जो 1. से अलग-अलग
tf.functionकोtff.tensorflow.computationके रूप में रैप करके और फिरfederated_language.federated_broadcastके अंदरfederated_language.federated_computationऔरfederated_language.federated_meanजैसे एब्स्ट्रैक्शन का उपयोग करके उन्हें ऑर्केस्ट्रेट करता है। उदाहरण के लिए, फेडरेटेड एवरेजिंग के लिए यह ऑर्केस्ट्रेशन देखें।एक बाहरी ड्राइवर स्क्रिप्ट जो एक प्रोडक्शन FL सिस्टम के नियंत्रण तर्क का अनुकरण करती है, डेटासेट से सिम्युलेटेड क्लाइंट का चयन करती है और फिर उन क्लाइंट पर 2 में परिभाषित फेडरेटेड गणनाओं को निष्पादित करती है। उदाहरण के लिए, एक फेडरेटेड EMNIST प्रयोग ड्राइवर ।
फेडरेटेड लर्निंग डेटासेट
TensorFlow फेडरेटेड कई डेटासेट को होस्ट करता है जो वास्तविक दुनिया की समस्याओं की विशेषताओं का प्रतिनिधित्व करते हैं जिन्हें फेडरेटेड लर्निंग के साथ हल किया जा सकता है।
डेटासेट में निम्नलिखित शामिल हैं:
स्टैकओवरफ्लो । भाषा मॉडलिंग या पर्यवेक्षित शिक्षण कार्यों के लिए एक यथार्थवादी पाठ डेटासेट, जिसमें प्रशिक्षण सेट में 135,818,730 उदाहरणों (वाक्यों) के साथ 342,477 अद्वितीय उपयोगकर्ता हैं।
फेडरेटेड EMNIST । EMNIST अक्षर और अंक डेटासेट का एक फेडरेटेड प्री-प्रोसेसिंग, जहाँ प्रत्येक क्लाइंट एक अलग लेखक से संबंधित है। पूर्ण प्रशिक्षण सेट में 62 लेबल से 671,585 उदाहरणों के साथ 3400 उपयोगकर्ता शामिल हैं।
शेक्सपियर । विलियम शेक्सपियर की संपूर्ण रचनाओं पर आधारित एक छोटा, वर्ण-स्तरीय पाठ डेटासेट। इस डेटासेट में 715 उपयोगकर्ता (शेक्सपियर के नाटकों के पात्र) शामिल हैं, जहाँ प्रत्येक उदाहरण किसी दिए गए नाटक में पात्र द्वारा बोले गए वाक्यों के एक सन्निहित समूह से मेल खाता है।
CIFAR-100 डेटासेट का 500 प्रशिक्षण क्लाइंट और 100 परीक्षण क्लाइंट में एकीकृत विभाजन। प्रत्येक क्लाइंट के पास 100 अद्वितीय उदाहरण हैं। विभाजन इस प्रकार किया गया है जिससे क्लाइंटों के बीच अधिक वास्तविक विषमता उत्पन्न हो सके। अधिक जानकारी के लिए, API देखें।
गूगल लैंडमार्क v2 डेटासेट में दुनिया के विभिन्न प्रसिद्ध स्थलों की तस्वीरें शामिल हैं, जिनमें फोटोग्राफर के अनुसार छवियों को समूहीकृत किया गया है ताकि डेटा का एकीकृत विभाजन हो सके। डेटासेट के दो संस्करण उपलब्ध हैं: एक छोटा डेटासेट जिसमें 233 क्लाइंट और 23080 छवियां हैं, और एक बड़ा डेटासेट जिसमें 1262 क्लाइंट और 164172 छवियां हैं।
CelebA एक ऐसा डेटासेट है जिसमें मशहूर हस्तियों के चेहरों के उदाहरण (छवि और चेहरे की विशेषताएं) शामिल हैं। इस एकीकृत डेटासेट में प्रत्येक हस्ती के उदाहरणों को एक साथ समूहित करके एक क्लाइंट बनाया गया है। इसमें 9343 क्लाइंट हैं, जिनमें से प्रत्येक में कम से कम 5 उदाहरण हैं। डेटासेट को क्लाइंट या उदाहरणों के आधार पर प्रशिक्षण और परीक्षण समूहों में विभाजित किया जा सकता है।
iNaturalist के एक डेटासेट में विभिन्न प्रजातियों की तस्वीरें शामिल हैं। इस डेटासेट में 1,203 प्रजातियों की 120,300 छवियां हैं। डेटासेट के सात प्रकार उपलब्ध हैं। इनमें से एक प्रकार फोटोग्राफर के आधार पर वर्गीकृत है और इसमें 9257 ग्राहक शामिल हैं। बाकी डेटासेट भौगोलिक स्थान के आधार पर वर्गीकृत हैं जहां फोटो खींची गई थी। डेटासेट के इन छह प्रकारों में 11 से 3,606 ग्राहक शामिल हैं।
उच्च प्रदर्शन सिमुलेशन
हालांकि FL सिमुलेशन का वॉल-क्लॉक समय एल्गोरिदम के मूल्यांकन के लिए एक प्रासंगिक मापदंड नहीं है (क्योंकि सिमुलेशन हार्डवेयर वास्तविक FL परिनियोजन वातावरण का प्रतिनिधि नहीं होता), FL सिमुलेशन को तेजी से चलाने की क्षमता अनुसंधान उत्पादकता के लिए महत्वपूर्ण है। इसलिए, TFF ने उच्च-प्रदर्शन वाले सिंगल और मल्टी-मशीन रनटाइम उपलब्ध कराने में भारी निवेश किया है। दस्तावेज़ीकरण अभी विकास के अधीन है, लेकिन फिलहाल TFF सिमुलेशन विद एक्सेलेरेटर्स और GCP पर TFF के साथ सिमुलेशन सेटअप करने के निर्देशों को देखें। उच्च-प्रदर्शन वाला TFF रनटाइम डिफ़ॉल्ट रूप से सक्षम है।
विभिन्न अनुसंधान क्षेत्रों के लिए टीएफएफ
फेडरेटेड ऑप्टिमाइजेशन एल्गोरिदम
वांछित अनुकूलन स्तर के आधार पर, टीएफएफ में फेडरेटेड ऑप्टिमाइजेशन एल्गोरिदम पर शोध विभिन्न तरीकों से किया जा सकता है।
यहां फेडरेटेड एवरेजिंग एल्गोरिदम का एक न्यूनतम स्टैंडअलोन कार्यान्वयन प्रदान किया गया है। कोड में स्थानीय गणना के लिए TF फ़ंक्शन , ऑर्केस्ट्रेशन के लिए TFF गणनाएँ और उदाहरण के तौर पर EMNIST डेटासेट पर एक ड्राइवर स्क्रिप्ट शामिल है। README में दिए गए विस्तृत निर्देशों का पालन करके इन फ़ाइलों को आसानी से अनुकूलित अनुप्रयोगों और एल्गोरिदम परिवर्तनों के लिए अनुकूलित किया जा सकता है।
फ़ेडरेटेड एवरेजिंग का अधिक सामान्य कार्यान्वयन यहाँ पाया जा सकता है। यह कार्यान्वयन अधिक परिष्कृत अनुकूलन तकनीकों की अनुमति देता है, जिसमें सर्वर और क्लाइंट दोनों पर विभिन्न ऑप्टिमाइज़र का उपयोग शामिल है। फ़ेडरेटेड k-मीन्स क्लस्टरिंग सहित अन्य फ़ेडरेटेड लर्निंग एल्गोरिदम यहाँ पाए जा सकते हैं।
मॉडल अपडेट संपीड़न
मॉडल अपडेट के लिए लॉसी कम्प्रेशन से संचार लागत कम हो सकती है, जिससे अंततः समग्र प्रशिक्षण समय में कमी आ सकती है।
हाल ही में प्रकाशित एक शोध पत्र को पुनः प्रस्तुत करने के लिए, इस शोध परियोजना को देखें। एक अनुकूलित संपीड़न एल्गोरिदम को लागू करने के लिए, उदाहरण के तौर पर आधारभूत जानकारी के लिए परियोजना में comparison_methods अनुभाग देखें, और यदि आप पहले से परिचित नहीं हैं तो TFF एग्रीगेटर्स ट्यूटोरियल देखें।
विभेदक गोपनीयता
TFF , TensorFlow प्राइवेसी लाइब्रेरी के साथ इंटरऑपरेबल है, जिससे डिफरेंशियल प्राइवेसी वाले मॉडलों के फेडरेटेड प्रशिक्षण के लिए नए एल्गोरिदम पर शोध करना संभव हो जाता है। बेसिक DP-FedAvg एल्गोरिदम और इसके एक्सटेंशन का उपयोग करके DP के साथ प्रशिक्षण के उदाहरण के लिए, इस एक्सपेरिमेंट ड्राइवर को देखें।
यदि आप एक कस्टम DP एल्गोरिदम लागू करना चाहते हैं और इसे फेडरेटेड एवरेजिंग के एग्रीगेट अपडेट पर लागू करना चाहते हैं, तो आप tensorflow_privacy.DPQuery के सबक्लास के रूप में एक नया DP मीन एल्गोरिदम लागू कर सकते हैं और अपनी क्वेरी के एक इंस्टेंस के साथ tff.aggregators.DifferentiallyPrivateFactory बना सकते हैं। DP-FTRL एल्गोरिदम को लागू करने का एक उदाहरण यहाँ पाया जा सकता है।
फेडरेटेड जीएएन ( नीचे वर्णित) उपयोगकर्ता-स्तर विभेदक गोपनीयता को लागू करने वाली टीएफएफ परियोजना का एक और उदाहरण है (उदाहरण के लिए, यहां कोड में )।
मजबूती और हमले
TFF का उपयोग फेडरेटेड लर्निंग सिस्टम पर लक्षित हमलों और डिफरेंशियल प्राइवेसी आधारित सुरक्षा उपायों का अनुकरण करने के लिए भी किया जा सकता है, जिन पर "क्या आप वास्तव में फेडरेटेड लर्निंग में बैक डोरिंग कर सकते हैं?" में विचार किया गया है। यह संभावित रूप से दुर्भावनापूर्ण क्लाइंट्स के साथ एक पुनरावृत्ति प्रक्रिया बनाकर किया जाता है (देखें build_federated_averaging_process_attacked )। targeted_attack निर्देशिका में अधिक विवरण उपलब्ध हैं।
- क्लाइंट अपडेट फ़ंक्शन लिखकर नए आक्रमण एल्गोरिदम को लागू किया जा सकता है, जो एक टेन्सरफ्लो फ़ंक्शन है; उदाहरण के लिए,
ClientProjectBoostदेखें। - 'tff.utils.StatefulAggregateFn' को अनुकूलित करके नई सुरक्षा व्यवस्था लागू की जा सकती है, जो वैश्विक अपडेट प्राप्त करने के लिए क्लाइंट आउटपुट को एकत्रित करता है।
सिमुलेशन के लिए एक उदाहरण स्क्रिप्ट के लिए, emnist_with_targeted_attack.py देखें।
जनरेटिव एडवरसैरियल नेटवर्क्स
GANs एक दिलचस्प फेडरेटेड ऑर्केस्ट्रेशन पैटर्न बनाते हैं जो मानक फेडरेटेड एवरेजिंग से थोड़ा अलग दिखता है। इसमें दो अलग-अलग नेटवर्क (जेनरेटर और डिस्क्रिमिनेटर) शामिल होते हैं, जिनमें से प्रत्येक को अपने स्वयं के ऑप्टिमाइजेशन स्टेप के साथ प्रशिक्षित किया जाता है।
TFF का उपयोग GANs के फेडरेटेड प्रशिक्षण पर शोध के लिए किया जा सकता है। उदाहरण के लिए, हाल ही में प्रस्तुत DP-FedAvg-GAN एल्गोरिदम को TFF में कार्यान्वित किया गया है। यह कार्य फेडरेटेड लर्निंग, जनरेटिव मॉडल और डिफरेंशियल प्राइवेसी के संयोजन की प्रभावशीलता को दर्शाता है।
वैयक्तिकरण
फेडरेटेड लर्निंग के संदर्भ में वैयक्तिकरण एक सक्रिय अनुसंधान क्षेत्र है। वैयक्तिकरण का लक्ष्य विभिन्न उपयोगकर्ताओं को अलग-अलग अनुमान मॉडल प्रदान करना है। इस समस्या के लिए संभावित रूप से कई अलग-अलग दृष्टिकोण हैं।
एक तरीका यह है कि प्रत्येक क्लाइंट को अपने स्थानीय डेटा के साथ एक एकल वैश्विक मॉडल (फेडरेटेड लर्निंग का उपयोग करके प्रशिक्षित) को बेहतर बनाने की अनुमति दी जाए। इस दृष्टिकोण का संबंध मेटा-लर्निंग से है, उदाहरण के लिए, यह पेपर देखें। इस दृष्टिकोण का एक उदाहरण emnist_p13n_main.py में दिया गया है। विभिन्न वैयक्तिकरण रणनीतियों का पता लगाने और उनकी तुलना करने के लिए, आप निम्न कार्य कर सकते हैं:
एक
tf.functionलागू करके वैयक्तिकरण रणनीति को परिभाषित करें जो एक प्रारंभिक मॉडल से शुरू होती है, प्रत्येक क्लाइंट के स्थानीय डेटासेट का उपयोग करके एक वैयक्तिकृत मॉडल को प्रशिक्षित और मूल्यांकन करती है। इसका एक उदाहरणbuild_personalize_fnद्वारा दिया गया है।एक
OrderedDictपरिभाषित करें जो रणनीति के नामों को संबंधित वैयक्तिकरण रणनीतियों से मैप करता है, और इसेtff.learning.build_personalization_eval_computationमेंpersonalize_fn_dictतर्क के रूप में उपयोग करें।
एक अन्य तरीका यह है कि पूरी तरह से वैश्विक मॉडल को प्रशिक्षित करने से बचा जाए और मॉडल के एक हिस्से को पूरी तरह से स्थानीय रूप से प्रशिक्षित किया जाए। इस दृष्टिकोण का एक उदाहरण इस ब्लॉग पोस्ट में वर्णित है। यह दृष्टिकोण मेटा लर्निंग से भी जुड़ा है; इस लेख को देखें।