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