फ़ेडरेटेड कोर

यह दस्तावेज़ TFF की मुख्य परत का परिचय देता है जो फ़ेडरेटेड लर्निंग के लिए एक नींव के रूप में कार्य करता है, और संभावित भविष्य के गैर-लर्निंग फ़ेडरेटेड एल्गोरिदम।

फ़ेडरेटेड कोर के एक सौम्य परिचय के लिए, कृपया निम्नलिखित ट्यूटोरियल पढ़ें, क्योंकि वे उदाहरण के द्वारा कुछ मूलभूत अवधारणाओं का परिचय देते हैं और एक सरल फ़ेडरेटेड औसत एल्गोरिथ्म के निर्माण को चरण-दर-चरण प्रदर्शित करते हैं।

हम आपको फ़ेडरेटेड लर्निंग और इमेज क्लासिफिकेशन और टेक्स्ट जनरेशन पर संबंधित ट्यूटोरियल से परिचित होने के लिए भी प्रोत्साहित करेंगे, क्योंकि फ़ेडरेटेड लर्निंग के लिए फ़ेडरेटेड कोर एपीआई (FC API) का उपयोग हमारे द्वारा किए गए कुछ विकल्पों के लिए महत्वपूर्ण संदर्भ प्रदान करता है। इस परत को डिजाइन करना।

अवलोकन

लक्ष्य, इच्छित उपयोग और दायरा

फ़ेडरेटेड कोर (FC) को वितरित गणनाओं को लागू करने के लिए एक प्रोग्रामिंग वातावरण के रूप में सबसे अच्छी तरह से समझा जाता है, अर्थात, ऐसी गणनाएँ जिनमें कई कंप्यूटर (मोबाइल फोन, टैबलेट, एम्बेडेड डिवाइस, डेस्कटॉप कंप्यूटर, सेंसर, डेटाबेस सर्वर, आदि) शामिल होते हैं, जो प्रत्येक गैर- स्थानीय रूप से तुच्छ प्रसंस्करण, और अपने काम के समन्वय के लिए पूरे नेटवर्क में संचार करते हैं।

वितरित शब्द बहुत सामान्य है, और TFF सभी संभावित प्रकार के वितरित एल्गोरिदम को लक्षित नहीं करता है, इसलिए हम इस ढांचे में व्यक्त किए जा सकने वाले एल्गोरिदम के प्रकारों का वर्णन करने के लिए कम सामान्य शब्द फ़ेडरेटेड गणना का उपयोग करना पसंद करते हैं।

फ़ेडरेटेड कंप्यूटेशन शब्द को पूरी तरह औपचारिक तरीके से परिभाषित करते समय इस दस्तावेज़ के दायरे से बाहर है, एक शोध प्रकाशन में छद्म कोड में व्यक्त किए गए एल्गोरिदम के प्रकारों के बारे में सोचें जो एक नए वितरित शिक्षण एल्गोरिदम का वर्णन करता है।

FC का लक्ष्य, संक्षेप में, प्रोग्राम लॉजिक के समान स्यूडोकोड-जैसे एब्स्ट्रैक्शन के स्तर पर समान रूप से कॉम्पैक्ट प्रतिनिधित्व को सक्षम करना है, जो कि स्यूडोकोड नहीं है, बल्कि, यह विभिन्न लक्ष्य वातावरणों में निष्पादन योग्य है।

एफसी को व्यक्त करने के लिए डिज़ाइन किए गए एल्गोरिदम के प्रकारों की प्रमुख परिभाषित विशेषता यह है कि सिस्टम प्रतिभागियों के कार्यों को सामूहिक तरीके से वर्णित किया जाता है। इस प्रकार, हम प्रत्येक डिवाइस के बारे में स्थानीय रूप से डेटा बदलने के बारे में बात करते हैं, और एक केंद्रीकृत समन्वयक द्वारा काम करने वाले उपकरणों को उनके परिणामों को प्रसारित करने, एकत्रित करने या एकत्र करने के बारे में बात करते हैं।

जबकि TFF को सरल क्लाइंट-सर्वर आर्किटेक्चर से परे जाने में सक्षम होने के लिए डिज़ाइन किया गया है, सामूहिक प्रसंस्करण की धारणा मौलिक है। यह फ़ेडरेटेड लर्निंग में टीएफएफ की उत्पत्ति के कारण है, एक ऐसी तकनीक जो मूल रूप से संभावित संवेदनशील डेटा पर गणना का समर्थन करने के लिए डिज़ाइन की गई है जो क्लाइंट उपकरणों के नियंत्रण में रहती है, और जिसे गोपनीयता कारणों से केवल एक केंद्रीकृत स्थान पर डाउनलोड नहीं किया जा सकता है। जबकि इस तरह के सिस्टम में प्रत्येक क्लाइंट सिस्टम द्वारा परिणाम की गणना करने के लिए डेटा और प्रोसेसिंग पावर का योगदान देता है (एक परिणाम जिसे हम आम तौर पर सभी प्रतिभागियों के लिए मूल्यवान होने की उम्मीद करते हैं), हम प्रत्येक क्लाइंट की गोपनीयता और गुमनामी को संरक्षित करने का भी प्रयास करते हैं।

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

नतीजतन, जबकि सामान्य उद्देश्यों के लिए वितरित ढांचे बिल्डिंग ब्लॉक के रूप में भेजने और प्राप्त करने जैसे संचालन की पेशकश कर सकते हैं, एफसी tff.federated_sum , tff.federated_reduce , या tff.federated_broadcast जैसे बिल्डिंग ब्लॉक प्रदान करता है जो सरल वितरित प्रोटोकॉल को समाहित करता है।

भाषा

पायथन इंटरफ़ेस

TFF फ़ेडरेटेड कंप्यूटेशंस का प्रतिनिधित्व करने के लिए एक आंतरिक भाषा का उपयोग करता है, जिसके सिंटैक्स को Computation.proto में क्रमबद्ध प्रतिनिधित्व द्वारा परिभाषित किया गया है। एफसी एपीआई के उपयोगकर्ताओं को आम तौर पर इस भाषा के साथ सीधे बातचीत करने की आवश्यकता नहीं होगी, हालांकि। इसके बजाय, हम एक पायथन एपीआई ( tff नेमस्पेस) प्रदान करते हैं जो इसे कंप्यूटेशंस को परिभाषित करने के तरीके के रूप में लपेटता है।

विशेष रूप से, TFF tff.federated_computation जैसे पायथन फ़ंक्शन डेकोरेटर प्रदान करता है जो tff.federated_computation के निकायों का पता लगाता है, और TFF की भाषा में फ़ेडरेटेड कंप्यूटेशन लॉजिक के क्रमबद्ध प्रतिनिधित्व का उत्पादन करता है। tff.federated_computation के साथ सजाया गया एक फ़ंक्शन ऐसे क्रमबद्ध प्रतिनिधित्व के वाहक के रूप में कार्य करता है, और इसे किसी अन्य गणना के शरीर में बिल्डिंग ब्लॉक के रूप में एम्बेड कर सकता है, या मांग पर इसे निष्पादित कर सकता है।

यहाँ सिर्फ एक उदाहरण है; कस्टम एल्गोरिदम ट्यूटोरियल में अधिक उदाहरण मिल सकते हैं।

@tff.federated_computation(tff.type_at_clients(tf.float32))
def get_average_temperature(sensor_readings):
  return tff.federated_mean(sensor_readings)

गैर-उत्सुक TensorFlow से परिचित पाठक इस दृष्टिकोण को Python कोड लिखने के समान पाएंगे जो कि TensorFlow ग्राफ़ को परिभाषित करने वाले Python कोड के एक खंड में tf.add या tf.reduce_sum जैसे कार्यों का उपयोग करता है। यद्यपि कोड तकनीकी रूप से पायथन में व्यक्त किया गया है, इसका उद्देश्य नीचे एक tf.Graph के क्रमिक प्रतिनिधित्व का निर्माण करना है, और यह ग्राफ़ है, न कि पायथन कोड, जिसे आंतरिक रूप से TensorFlow रनटाइम द्वारा निष्पादित किया जाता है। इसी तरह, कोई tff.federated_mean को एक फ़ेडरेटेड ऑप को एक फ़ेडरेटेड कंप्यूटेशन में सम्मिलित करने के बारे में सोच सकता है, जिसका प्रतिनिधित्व get_average_temperature द्वारा किया जाता है।

एफसी द्वारा किसी भाषा को परिभाषित करने के कारणों का एक हिस्सा इस तथ्य से जुड़ा है कि, जैसा कि ऊपर उल्लेख किया गया है, फ़ेडरेटेड संगणनाएँ वितरित सामूहिक व्यवहारों को निर्दिष्ट करती हैं, और जैसे, उनका तर्क गैर-स्थानीय है। उदाहरण के लिए, टीएफएफ ऑपरेटरों, इनपुट और आउटपुट प्रदान करता है जो नेटवर्क में विभिन्न स्थानों पर मौजूद हो सकते हैं।

यह एक भाषा और एक प्रकार की प्रणाली की मांग करता है जो वितरण की धारणा को पकड़ती है।

सिस्टम टाइप करें

फ़ेडरेटेड कोर निम्न प्रकार की श्रेणियां प्रदान करता है। इन प्रकारों का वर्णन करने में, हम टाइप कंस्ट्रक्टर्स की ओर इशारा करते हैं और साथ ही एक कॉम्पैक्ट नोटेशन का परिचय देते हैं, क्योंकि यह एक आसान तरीका है या कम्प्यूटेशंस और ऑपरेटरों के प्रकारों का वर्णन करता है।

सबसे पहले, यहां उन प्रकारों की श्रेणियां दी गई हैं जो अवधारणात्मक रूप से मौजूदा मुख्यधारा की भाषाओं में पाए जाने वाले समान हैं:

  • टेंसर प्रकार ( tff.TensorType )। जैसे कि TensorFlow में, इनका dtype और shape । अंतर केवल इतना है कि इस प्रकार की वस्तुएं पायथन में tf.Tensor उदाहरणों तक सीमित नहीं हैं जो TensorFlow ग्राफ़ में TensorFlow ops के आउटपुट का प्रतिनिधित्व करती हैं, लेकिन इसमें डेटा की इकाइयाँ भी शामिल हो सकती हैं, जैसे, एक वितरित के आउटपुट के रूप में। एकत्रीकरण प्रोटोकॉल। इस प्रकार, TFF टेंसर प्रकार केवल Python या TensorFlow में इस प्रकार के ठोस भौतिक प्रतिनिधित्व का एक सार संस्करण है।

    TFF के TensorTypes , TensorFlow की तुलना में आकृतियों के उनके (स्थिर) उपचार में अधिक कठोर हो सकते हैं। उदाहरण के लिए, TFF का टाइपसिस्टम अज्ञात रैंक वाले टेंसर को उसी प्रकार के किसी अन्य टेंसर से असाइन करने योग्य dtype है, लेकिन निश्चित रैंक वाले किसी भी टेंसर को असाइन करने योग्य नहीं है। यह उपचार कुछ रनटाइम विफलताओं को रोकता है (उदाहरण के लिए, अज्ञात रैंक के टेंसर को तत्वों की गलत संख्या के साथ आकार में बदलने का प्रयास), जो गणनाओं में अधिक सख्ती की कीमत पर TFF मान्य के रूप में स्वीकार करता है।

    टेंसर प्रकारों के लिए कॉम्पैक्ट नोटेशन dtype या dtype[shape] । उदाहरण के लिए, int32 और int32[10] क्रमशः पूर्णांक और int वैक्टर के प्रकार हैं।

  • अनुक्रम प्रकार ( tff.SequenceType )। ये TFF के tf.data.Dataset s की TensorFlow की ठोस अवधारणा के अमूर्त समतुल्य हैं। अनुक्रम के तत्वों का क्रमिक तरीके से सेवन किया जा सकता है, और इसमें जटिल प्रकार शामिल हो सकते हैं।

    अनुक्रम प्रकारों का संक्षिप्त प्रतिनिधित्व T* है, जहां T तत्वों का प्रकार है। उदाहरण के लिए int32* एक पूर्णांक अनुक्रम का प्रतिनिधित्व करता है।

  • नामांकित टपल प्रकार ( tff.StructType )। ये TFF के टुपल्स और डिक्शनरी जैसी संरचनाओं के निर्माण का तरीका है, जिसमें विशिष्ट प्रकार के तत्वों की पूर्वनिर्धारित संख्या होती है, जिनका नाम या अनाम होता है। महत्वपूर्ण रूप से, टीएफएफ की नामित टुपल अवधारणा में पायथन के तर्क टुपल्स के अमूर्त समकक्ष शामिल हैं, यानी, तत्वों का संग्रह जिनमें से कुछ, लेकिन सभी का नाम नहीं है, और कुछ स्थितीय हैं।

    नामित टुपल्स के लिए कॉम्पैक्ट नोटेशन <n_1=T_1, ..., n_k=T_k> है, जहां n_k वैकल्पिक तत्व नाम हैं, और T_k तत्व प्रकार हैं। उदाहरण के लिए, <int32,int32> अज्ञात पूर्णांकों की एक जोड़ी के लिए एक कॉम्पैक्ट नोटेशन है, और <X=float32,Y=float32> X और Y नामक फ्लोट्स की एक जोड़ी के लिए एक कॉम्पैक्ट नोटेशन है जो एक विमान पर एक बिंदु का प्रतिनिधित्व कर सकता है . टुपल्स को नेस्टेड किया जा सकता है और साथ ही अन्य प्रकारों के साथ मिश्रित किया जा सकता है, उदाहरण के लिए, <X=float32,Y=float32>* बिंदुओं के अनुक्रम के लिए एक कॉम्पैक्ट नोटेशन होगा।

  • फ़ंक्शन प्रकार ( tff.FunctionType )। टीएफएफ एक कार्यात्मक प्रोग्रामिंग ढांचा है, जिसमें कार्यों को प्रथम श्रेणी के मूल्यों के रूप में माना जाता है। फ़ंक्शंस में अधिकतम एक तर्क होता है, और बिल्कुल एक परिणाम होता है।

    फ़ंक्शंस के लिए कॉम्पैक्ट नोटेशन (T -> U) है, जहां T एक तर्क का प्रकार है, और U परिणाम का प्रकार है, या ( -> U) यदि कोई तर्क नहीं है (हालांकि नो-ऑर्गमेंट फ़ंक्शन एक पतित हैं अवधारणा जो ज्यादातर सिर्फ पायथन स्तर पर मौजूद है)। उदाहरण के लिए (int32* -> int32) एक प्रकार के कार्यों के लिए एक संकेतन है जो एक पूर्णांक अनुक्रम को एक पूर्णांक मान में कम करता है।

निम्नलिखित प्रकार TFF संगणनाओं के वितरित सिस्टम पहलू को संबोधित करते हैं। चूंकि ये अवधारणाएं TFF के लिए कुछ विशिष्ट हैं, इसलिए हम आपको अतिरिक्त टिप्पणी और उदाहरणों के लिए कस्टम एल्गोरिदम ट्यूटोरियल देखने के लिए प्रोत्साहित करते हैं।

  • प्लेसमेंट प्रकार । यह प्रकार अभी तक सार्वजनिक एपीआई में 2 tff.SERVER और tff.CLIENTS के रूप में सामने नहीं आया है जिसे आप इस प्रकार के स्थिरांक के रूप में सोच सकते हैं। हालाँकि, इसका उपयोग आंतरिक रूप से किया जाता है, और इसे भविष्य के रिलीज़ में सार्वजनिक API में पेश किया जाएगा। इस प्रकार का संक्षिप्त प्रतिनिधित्व placement है।

    प्लेसमेंट सिस्टम प्रतिभागियों के एक समूह का प्रतिनिधित्व करता है जो एक विशेष भूमिका निभाते हैं। प्रारंभिक रिलीज़ क्लाइंट-सर्वर संगणनाओं को लक्षित कर रहा है, जिसमें प्रतिभागियों के 2 समूह हैं: क्लाइंट और एक सर्वर (आप बाद वाले को सिंगलटन समूह के रूप में सोच सकते हैं)। हालाँकि, अधिक विस्तृत आर्किटेक्चर में, अन्य भूमिकाएँ भी हो सकती हैं, जैसे कि एक बहु-स्तरीय प्रणाली में मध्यवर्ती एग्रीगेटर, जो विभिन्न प्रकार के एकत्रीकरण का प्रदर्शन कर सकते हैं, या सर्वर द्वारा उपयोग किए जाने वाले की तुलना में विभिन्न प्रकार के डेटा संपीड़न/विघटन का उपयोग कर सकते हैं। ग्राहकों।

    प्लेसमेंट की धारणा को परिभाषित करने का प्राथमिक उद्देश्य फ़ेडरेटेड प्रकारों को परिभाषित करने के आधार के रूप में है।

  • फ़ेडरेटेड प्रकार ( tff.FederatedType )। फ़ेडरेटेड प्रकार का मान वह होता है जिसे किसी विशिष्ट प्लेसमेंट (जैसे tff.SERVER या tff.CLIENTS ) द्वारा परिभाषित सिस्टम प्रतिभागियों के समूह द्वारा होस्ट किया जाता है। एक फ़ेडरेटेड प्रकार को प्लेसमेंट मान (इस प्रकार, यह एक आश्रित प्रकार है), सदस्य घटकों के प्रकार (प्रत्येक प्रतिभागी किस प्रकार की सामग्री स्थानीय रूप से होस्ट कर रहा है) द्वारा परिभाषित किया गया है, और अतिरिक्त बिट all_equal जो निर्दिष्ट करता है कि क्या सभी प्रतिभागी स्थानीय रूप से हैं एक ही वस्तु की मेजबानी।

    फ़ेडरेटेड प्रकार के मानों के लिए कॉम्पैक्ट नोटेशन जिसमें प्रकार T के आइटम (सदस्य घटक) शामिल हैं, प्रत्येक समूह (प्लेसमेंट) G द्वारा होस्ट किया गया है, क्रमशः T@G या {T}@G है जिसमें all_equal बिट सेट है या सेट नहीं है।

    उदाहरण के लिए:

    • {int32}@CLIENTS एक फ़ेडरेटेड मान का प्रतिनिधित्व करता है जिसमें संभावित रूप से भिन्न पूर्णांकों का एक सेट होता है, एक प्रति क्लाइंट डिवाइस। ध्यान दें कि हम एक एकल फ़ेडरेटेड मान के बारे में बात कर रहे हैं जिसमें डेटा के कई आइटम शामिल हैं जो पूरे नेटवर्क में कई स्थानों पर दिखाई देते हैं। इसके बारे में सोचने का एक तरीका "नेटवर्क" आयाम के साथ एक प्रकार का टेंसर है, हालांकि यह सादृश्य सही नहीं है क्योंकि TFF एक फ़ेडरेटेड मान के सदस्य घटकों के लिए यादृच्छिक पहुँच की अनुमति नहीं देता है।

    • {<X=float32,Y=float32>*}@CLIENTS एक फ़ेडरेटेड डेटा सेट का प्रतिनिधित्व करता है, एक मान जिसमें XY निर्देशांक के कई अनुक्रम होते हैं, प्रति क्लाइंट डिवाइस एक क्रम होता है।

    • <weights=float32[10,5],bias=float32[5]>@SERVER पर नामित टपल ऑफ़ वेट और बायस टेंसर का प्रतिनिधित्व करता है। चूंकि हमने घुंघराले ब्रेसिज़ को गिरा दिया है, यह इंगित करता है कि all_equal बिट सेट है, यानी, केवल एक ही टपल है (इस मान को होस्ट करने वाले क्लस्टर में कितने सर्वर प्रतिकृतियां हो सकती हैं)।

इमारत ब्लॉकों

फ़ेडरेटेड कोर की भाषा कुछ अतिरिक्त तत्वों के साथ लैम्ब्डा-कैलकुस का एक रूप है।

यह वर्तमान में सार्वजनिक एपीआई में उजागर निम्नलिखित प्रोग्रामिंग एब्स्ट्रैक्शन प्रदान करता है:

  • TensorFlow संगणना ( tff.tf_computation )। ये tff.tf_computation डेकोरेटर का उपयोग करके TFF में पुन: प्रयोज्य घटकों के रूप में लिपटे TensorFlow कोड के खंड हैं। उनके पास हमेशा कार्यात्मक प्रकार होते हैं, और TensorFlow में कार्यों के विपरीत, वे संरचित पैरामीटर ले सकते हैं या अनुक्रम प्रकार के संरचित परिणाम वापस कर सकते हैं।

    यहां एक उदाहरण दिया गया है, एक प्रकार की TF गणना (int32* -> int) जो पूर्णांकों के योग की गणना करने के लिए tf.data.Dataset.reduce ऑपरेटर का उपयोग करती है:

    @tff.tf_computation(tff.SequenceType(tf.int32))
    def add_up_integers(x):
      return x.reduce(np.int32(0), lambda x, y: x + y)
    
  • आंतरिक या फ़ेडरेटेड ऑपरेटर ( tff.federated_... )। यह tff.federated_sum या tff.federated_broadcast जैसे कार्यों का एक पुस्तकालय है जो FC API के थोक का गठन करता है, जिनमें से अधिकांश TFF के साथ उपयोग के लिए वितरित संचार ऑपरेटरों का प्रतिनिधित्व करते हैं।

    हम इन्हें इंट्रिनिक्स के रूप में संदर्भित करते हैं, क्योंकि कुछ हद तक आंतरिक कार्यों की तरह, वे ऑपरेटरों का एक ओपन-एंडेड, एक्स्टेंसिबल सेट हैं जिन्हें टीएफएफ द्वारा समझा जाता है, और निचले स्तर के कोड में संकलित किया जाता है।

    इनमें से अधिकांश ऑपरेटरों के पास फ़ेडरेटेड प्रकार के पैरामीटर और परिणाम हैं, और अधिकांश ऐसे टेम्प्लेट हैं जिन्हें विभिन्न प्रकार के डेटा पर लागू किया जा सकता है।

    उदाहरण के लिए, tff.federated_broadcast को एक कार्यात्मक प्रकार T@SERVER -> T@CLIENTS CLIENTS के टेम्पलेट ऑपरेटर के रूप में माना जा सकता है।

  • लैम्ब्डा एक्सप्रेशन ( tff.federated_computation )। TFF में एक लैम्ब्डा अभिव्यक्ति एक lambda या पायथन में def के बराबर है; इसमें पैरामीटर नाम और एक बॉडी (एक्सप्रेशन) होता है जिसमें इस पैरामीटर के संदर्भ होते हैं।

    पायथन कोड में, इन्हें tff.federated_computation के साथ पायथन फ़ंक्शंस को सजाने और एक तर्क को परिभाषित करके बनाया जा सकता है।

    यहाँ एक लैम्ब्डा एक्सप्रेशन का उदाहरण दिया गया है जिसका हम पहले ही उल्लेख कर चुके हैं:

    @tff.federated_computation(tff.type_at_clients(tf.float32))
    def get_average_temperature(sensor_readings):
      return tff.federated_mean(sensor_readings)
    
  • प्लेसमेंट शाब्दिक । अभी के लिए, केवल tff.SERVER और tff.CLIENTS सरल क्लाइंट-सर्वर गणनाओं को परिभाषित करने की अनुमति देते हैं।

  • फ़ंक्शन आमंत्रण ( __call__ )। मानक पायथन __call__ सिंटैक्स का उपयोग करके कार्यात्मक प्रकार वाली किसी भी चीज़ को लागू किया जा सकता है। आमंत्रण एक अभिव्यक्ति है, जिसका प्रकार वही है जो फ़ंक्शन के परिणाम के प्रकार को लागू किया जा रहा है।

    उदाहरण के लिए:

    • add_up_integers(x) एक तर्क x पर पहले परिभाषित TensorFlow गणना के आह्वान का प्रतिनिधित्व करता है। इस अभिव्यक्ति का प्रकार int32 है।

    • tff.federated_mean(sensor_readings) sensor_readings फ़ेडरेटेड औसत ऑपरेटर के आह्वान का प्रतिनिधित्व करता है। इस व्यंजक का प्रकार है float32@SERVER (उपरोक्त उदाहरण से संदर्भ मानते हुए)।

  • टुपल्स बनाना और उनके तत्वों का चयन करना। [x, y] , x[y] , या xy के पायथन एक्सप्रेशन जो tff.federated_computation से सजाए गए फ़ंक्शंस के बॉडी में दिखाई देते हैं।