अवलोकन
TFF यथार्थवादी प्रॉक्सी डेटासेट पर फ़ेडरेटेड संगणनाओं का अनुकरण करके फ़ेडरेटेड लर्निंग (FL) अनुसंधान करने के लिए एक विस्तारणीय, शक्तिशाली ढाँचा है। यह पृष्ठ मुख्य अवधारणाओं और घटकों का वर्णन करता है जो अनुसंधान सिमुलेशन के लिए प्रासंगिक हैं, साथ ही साथ टीएफएफ में विभिन्न प्रकार के शोध करने के लिए विस्तृत मार्गदर्शन।
टीएफएफ में अनुसंधान कोड की विशिष्ट संरचना
टीएफएफ में कार्यान्वित एक शोध FL सिमुलेशन में आम तौर पर तीन मुख्य प्रकार के तर्क शामिल होते हैं।
TensorFlow कोड के अलग-अलग टुकड़े, आमतौर पर
tf.function
s, जो तर्क को समाहित करते हैं जो एक ही स्थान पर चलता है (उदाहरण के लिए, क्लाइंट या सर्वर पर)। यह कोड आमतौर पर बिना किसीtff.*
संदर्भ के लिखा और परीक्षण किया जाता है, और TFF के बाहर इसका पुन: उपयोग किया जा सकता है। उदाहरण के लिए, फेडरेटेड एवरेजिंग में क्लाइंट ट्रेनिंग लूप इस स्तर पर लागू किया गया है।TensorFlow फ़ेडरेटेड ऑर्केस्ट्रेशन लॉजिक, जो 1. से अलग-अलग
tf.function
को एक साथ बांधता है। उन्हेंtff.tf_computation
s के रूप में लपेटकर और फिर उन्हेंtff.federated_broadcast
औरtff.federated_mean
जैसे अमूर्त का उपयोग करकेtff.federated_computation
के अंदर ऑर्केस्ट्रेट किया जाता है। उदाहरण के लिए, फ़ेडरेटेड एवरेजिंग के लिए यह ऑर्केस्ट्रेशन देखें।एक बाहरी ड्राइवर स्क्रिप्ट जो एक उत्पादन FL प्रणाली के नियंत्रण तर्क का अनुकरण करती है, एक डेटासेट से सिम्युलेटेड क्लाइंट का चयन करती है और फिर उन क्लाइंट पर 2. में परिभाषित फ़ेडरेटेड संगणना निष्पादित करती है। उदाहरण के लिए, एक संघबद्ध EMNIST प्रयोग चालक ।
फ़ेडरेटेड लर्निंग डेटासेट
TensorFlow फ़ेडरेटेड कई डेटासेट को होस्ट करता है जो वास्तविक दुनिया की समस्याओं की विशेषताओं के प्रतिनिधि हैं जिन्हें फ़ेडरेटेड लर्निंग से हल किया जा सकता है।
डेटासेट में शामिल हैं:
स्टैक ओवरफ्लो । प्रशिक्षण सेट में 135,818,730 उदाहरणों (वाक्यों) के साथ 342,477 अद्वितीय उपयोगकर्ताओं के साथ भाषा मॉडलिंग या पर्यवेक्षित शिक्षण कार्यों के लिए एक यथार्थवादी पाठ डेटासेट।
संघबद्ध EMNIST । EMNIST कैरेक्टर और डिजिट डेटासेट का एक फ़ेडरेटेड प्री-प्रोसेसिंग, जहाँ प्रत्येक क्लाइंट एक अलग लेखक से मेल खाता है। पूरे ट्रेन सेट में 62 लेबल से 671,585 उदाहरणों के साथ 3400 उपयोगकर्ता शामिल हैं।
शेक्सपियर । विलियम शेक्सपियर के संपूर्ण कार्यों पर आधारित एक छोटा चार-स्तरीय टेक्स्ट डेटासेट। डेटा सेट में 715 उपयोगकर्ता (शेक्सपियर नाटकों के पात्र) होते हैं, जहां प्रत्येक उदाहरण किसी दिए गए नाटक में चरित्र द्वारा बोली जाने वाली पंक्तियों के एक संगत सेट से मेल खाता है।
सीआईएफएआर-100 . 500 प्रशिक्षण ग्राहकों और 100 परीक्षण ग्राहकों में CIFAR-100 डेटासेट का संघबद्ध विभाजन। प्रत्येक ग्राहक के पास 100 अद्वितीय उदाहरण हैं। क्लाइंट के बीच अधिक यथार्थवादी विषमता बनाने के लिए विभाजन एक तरह से किया जाता है। अधिक विवरण के लिए, एपीआई देखें।
Google लैंडमार्क 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 रनटाइम डिफ़ॉल्ट रूप से सक्षम होता है।
विभिन्न अनुसंधान क्षेत्रों के लिए TFF
संघीय अनुकूलन एल्गोरिदम
फ़ेडरेटेड ऑप्टिमाइज़ेशन एल्गोरिदम पर शोध TFF में अलग-अलग तरीकों से किया जा सकता है, जो अनुकूलन के वांछित स्तर पर निर्भर करता है।
फ़ेडरेटेड एवरेजिंग एल्गोरिथम का एक न्यूनतम स्टैंड-अलोन कार्यान्वयन यहाँ प्रदान किया गया है। कोड में स्थानीय संगणना के लिए TF फ़ंक्शन , ऑर्केस्ट्रेशन के लिए TFF अभिकलन , और उदाहरण के तौर पर EMNIST डेटासेट पर एक ड्राइवर स्क्रिप्ट शामिल है। रीडमे में विस्तृत निर्देशों के बाद इन फ़ाइलों को आसानी से अनुकूलित अनुप्रयोगों और एल्गोरिथम परिवर्तनों के लिए अनुकूलित किया जा सकता है।
फ़ेडरेटेड एवरेजिंग का अधिक सामान्य कार्यान्वयन यहाँ पाया जा सकता है। यह कार्यान्वयन अधिक परिष्कृत अनुकूलन तकनीकों की अनुमति देता है, जिसमें सर्वर और क्लाइंट दोनों पर विभिन्न ऑप्टिमाइज़र का उपयोग शामिल है। फ़ेडरेटेड k- साधन क्लस्टरिंग सहित अन्य फ़ेडरेटेड लर्निंग एल्गोरिदम, यहाँ पाए जा सकते हैं।
मॉडल अद्यतन संपीड़न
मॉडल अपडेट के हानिपूर्ण संपीड़न से संचार लागत कम हो सकती है, जिसके परिणामस्वरूप समग्र प्रशिक्षण समय कम हो सकता है।
हाल के एक पेपर को पुन: प्रस्तुत करने के लिए, इस शोध परियोजना को देखें। एक कस्टम संपीड़न एल्गोरिथ्म को लागू करने के लिए, एक उदाहरण के रूप में बेसलाइन के लिए प्रोजेक्ट में तुलना_मेथड्स देखें, और यदि पहले से परिचित नहीं हैं तो TFF एग्रीगेटर्स ट्यूटोरियल देखें।
विभेदक गोपनीयता
TFF अलग-अलग गोपनीयता वाले मॉडलों के संघबद्ध प्रशिक्षण के लिए नए एल्गोरिदम में अनुसंधान को सक्षम करने के लिए TensorFlow गोपनीयता लाइब्रेरी के साथ इंटरऑपरेबल है। मूल DP-FedAvg एल्गोरिथ्म और एक्सटेंशन का उपयोग करके DP के साथ प्रशिक्षण के उदाहरण के लिए, इस प्रयोग ड्राइवर को देखें।
यदि आप एक कस्टम डीपी एल्गोरिथ्म को लागू करना चाहते हैं और इसे फ़ेडरेटेड औसत के समग्र अपडेट पर लागू करना चाहते हैं, तो आप एक नया डीपी माध्य एल्गोरिथ्म को tensorflow_privacy.DPQuery
के उपवर्ग के रूप में लागू कर सकते tff.aggregators.DifferentiallyPrivateFactory
। DP-FTRL एल्गोरिथम को लागू करने का एक उदाहरण यहां पाया जा सकता है
फ़ेडरेटेड GANs ( नीचे वर्णित) एक TFF प्रोजेक्ट का एक और उदाहरण है जो उपयोगकर्ता-स्तरीय अंतर गोपनीयता को लागू करता है (उदाहरण के लिए, यहाँ कोड में )।
मजबूती और हमले
TFF का उपयोग फ़ेडरेटेड लर्निंग सिस्टम पर लक्षित हमलों का अनुकरण करने के लिए किया जा सकता है और कैन यू रियली बैक डोर फ़ेडरेटेड लर्निंग? . यह संभावित रूप से दुर्भावनापूर्ण ग्राहकों के साथ पुनरावृत्त प्रक्रिया का निर्माण करके किया जाता है (देखें build_federated_averaging_process_attacked
)। लक्षित_आक्रमण निर्देशिका में अधिक विवरण हैं।
- नए हमलावर एल्गोरिदम को क्लाइंट अपडेट फ़ंक्शन लिखकर लागू किया जा सकता है जो एक Tensorflow फ़ंक्शन है, उदाहरण के लिए
ClientProjectBoost
देखें। - नए बचावों को 'tff.utils.StatefulAggregateFn' को अनुकूलित करके कार्यान्वित किया जा सकता है जो क्लाइंट आउटपुट को वैश्विक अद्यतन प्राप्त करने के लिए एकत्रित करता है।
अनुकरण के लिए एक उदाहरण स्क्रिप्ट के लिए, emnist_with_targeted_attack.py
देखें।
जनरेटिव एडवरसैरियल नेटवर्क
GAN एक दिलचस्प फ़ेडरेटेड ऑर्केस्ट्रेशन पैटर्न बनाता है जो मानक फ़ेडरेटेड एवरेजिंग से थोड़ा अलग दिखता है। उनमें दो अलग-अलग नेटवर्क (जेनरेटर और डिस्क्रिमिनेटर) शामिल होते हैं, जिनमें से प्रत्येक अपने स्वयं के अनुकूलन चरण के साथ प्रशिक्षित होता है।
GANs के संघबद्ध प्रशिक्षण पर अनुसंधान के लिए TFF का उपयोग किया जा सकता है। उदाहरण के लिए, हाल के काम में प्रस्तुत DP-FedAvg-GAN एल्गोरिथम TFF में लागू किया गया है। यह कार्य फ़ेडरेटेड लर्निंग, जनरेटिव मॉडल और डिफरेंशियल प्राइवेसी के संयोजन की प्रभावशीलता को प्रदर्शित करता है।
निजीकरण
फ़ेडरेटेड लर्निंग की सेटिंग में वैयक्तिकरण एक सक्रिय शोध क्षेत्र है। वैयक्तिकरण का लक्ष्य अलग-अलग उपयोगकर्ताओं को अलग-अलग अनुमान मॉडल प्रदान करना है। इस समस्या के संभावित रूप से भिन्न दृष्टिकोण हैं।
एक दृष्टिकोण यह है कि प्रत्येक ग्राहक को अपने स्थानीय डेटा के साथ एक एकल वैश्विक मॉडल (फेडरेटेड लर्निंग का उपयोग करके प्रशिक्षित) को फाइन-ट्यून करने दिया जाए। इस दृष्टिकोण का मेटा-लर्निंग से संबंध है, उदाहरण के लिए, यह पेपर देखें। इस दृष्टिकोण का एक उदाहरण emnist_p13n_main.py
में दिया गया है। विभिन्न वैयक्तिकरण रणनीतियों का पता लगाने और तुलना करने के लिए, आप यह कर सकते हैं:
एक प्रारंभिक मॉडल से शुरू होने वाले
tf.function
. फ़ंक्शन को लागू करके एक वैयक्तिकरण रणनीति को परिभाषित करें, प्रत्येक क्लाइंट के स्थानीय डेटासेट का उपयोग करके एक व्यक्तिगत मॉडल को प्रशिक्षित और मूल्यांकन करता है। एक उदाहरणbuild_personalize_fn
द्वारा दिया गया है।एक
OrderedDict
को परिभाषित करें जो संबंधित वैयक्तिकरण रणनीतियों के लिए रणनीति के नामों को मैप करता है, और इसेtff.learning.build_personalization_eval
मेंpersonalize_fn_dict
तर्क के रूप में उपयोग करें।
एक अन्य दृष्टिकोण पूरी तरह से स्थानीय रूप से एक मॉडल के भाग को प्रशिक्षित करके पूरी तरह से वैश्विक मॉडल को प्रशिक्षित करने से बचना है। इस ब्लॉग पोस्ट में इस दृष्टिकोण की एक तात्कालिकता का वर्णन किया गया है। यह दृष्टिकोण मेटा लर्निंग से भी जुड़ा है, इस पेपर को देखें। आंशिक रूप से स्थानीय संघीय शिक्षा का पता लगाने के लिए, आप यह कर सकते हैं:
फ़ेडरेटेड पुनर्निर्माण और अनुवर्ती अभ्यासों को लागू करने वाले संपूर्ण कोड उदाहरण के लिए ट्यूटोरियल देखें।
tff.learning.reconstruction.build_training_process
का उपयोग करके आंशिक रूप से स्थानीय प्रशिक्षण प्रक्रिया बनाएँ, प्रक्रिया व्यवहार को अनुकूलित करने के लिएdataset_split_fn
को संशोधित करें।