TensorFlow एक मशीन लर्निंग और आर्टिफिशियल इंटेलिजेंस के लिए सॉफ्टवेयर लाइब्रेरी है, जिसका उपयोग मुख्य रूप से न्यूरल नेटवर्क के प्रशिक्षण और अनुमान के लिए किया जाता है। यह सबसे लोकप्रिय डीप लर्निंग फ्रेमवर्क में से एक है, साथ ही PyTorch जैसे अन्य फ्रेमवर्क भी हैं। Apache License 2.0 के तहत मुफ्त और ओपन-सोर्स सॉफ्टवेयर के रूप में जारी, TensorFlow को Google Brain टीम द्वारा Google के आंतरिक अनुसंधान और उत्पादन उपयोग के लिए विकसित किया गया था। प्रारंभिक संस्करण 2015 में जारी किया गया था, और अद्यतन संस्करण, TensorFlow 2.0, सितंबर 2019 में आया। TensorFlow कई प्रोग्रामिंग भाषाओं का समर्थन करता है, जिनमें Python, JavaScript, C++ और Java शामिल हैं, जिससे कई क्षेत्रों में इसका उपयोग आसान हो जाता है।
इतिहास
DistBelief
2011 से शुरू करके, Google Brain ने DistBelief को डीप लर्निंग न्यूरल नेटवर्क पर आधारित एक मालिकाना मशीन लर्निंग सिस्टम के रूप में बनाया। इसका उपयोग विभिन्न Alphabet कंपनियों में अनुसंधान और वाणिज्यिक अनुप्रयोगों दोनों में तेजी से बढ़ा। Google ने कई कंप्यूटर वैज्ञानिकों, जिनमें Jeff Dean भी शामिल थे, को DistBelief के कोडबेस को सरल बनाने और पुनर्गठित करने के लिए नियुक्त किया, ताकि इसे एक तेज़, अधिक मजबूत एप्लिकेशन-ग्रेड लाइब्रेरी में बदला जा सके, जो TensorFlow बन गई। 2009 में, Geoffrey Hinton के नेतृत्व वाली टीम ने सामान्यीकृत बैकप्रॉपैगेशन और अन्य सुधार लागू किए थे, जिससे काफी अधिक सटीकता वाले न्यूरल नेटवर्क उत्पन्न करना संभव हुआ, उदाहरण के लिए भाषण पहचान में त्रुटियों में 25% की कमी।
TensorFlow
TensorFlow Google Brain की दूसरी पीढ़ी की प्रणाली है। संस्करण 1.0.0 11 फरवरी 2017 को जारी किया गया था। जबकि संदर्भ कार्यान्वयन एकल उपकरणों पर चलता है, TensorFlow कई CPU और GPU पर चल सकता है (ग्राफिक्स प्रोसेसिंग यूनिट्स पर सामान्य-उद्देश्य कंप्यूटिंग के लिए वैकल्पिक CUDA और SYCL एक्सटेंशन के साथ)। TensorFlow 64-बिट Linux, macOS, Windows और Android और iOS सहित मोबाइल कंप्यूटिंग प्लेटफार्मों पर उपलब्ध है। इसकी लचीली वास्तुकला विभिन्न प्लेटफार्मों (CPU, GPU, TPU) में गणना की आसान तैनाती की अनुमति देती है, और डेस्कटॉप से लेकर सर्वर क्लस्टर तक मोबाइल और एज डिवाइस तक। TensorFlow गणनाएं स्टेटफुल डेटाफ्लो ग्राफ के रूप में व्यक्त की जाती हैं। नाम TensorFlow उन ऑपरेशनों से लिया गया है जो ऐसे न्यूरल नेटवर्क बहुआयामी डेटा सरणियों पर करते हैं, जिन्हें टेंसर कहा जाता है। जून 2016 में Google I/O सम्मेलन के दौरान, Jeff Dean ने कहा कि GitHub पर 1,500 रिपॉजिटरी में TensorFlow का उल्लेख था, जिनमें से केवल 5 Google से थे।
मार्च 2018 में, Google ने JavaScript में मशीन लर्निंग के लिए TensorFlow.js संस्करण 1.0 की घोषणा की। जनवरी 2019 में, Google ने TensorFlow 2.0 की घोषणा की, जो सितंबर 2019 में आधिकारिक रूप से उपलब्ध हुआ। मई 2019 में, Google ने कंप्यूटर ग्राफिक्स में डीप लर्निंग के लिए TensorFlow Graphics की घोषणा की।
टेंसर प्रोसेसिंग यूनिट (TPU)
मई 2016 में, Google ने अपने टेंसर प्रोसेसिंग यूनिट (TPU) की घोषणा की, जो विशेष रूप से मशीन लर्निंग के लिए बनाया गया और TensorFlow के लिए तैयार किया गया एक एप्लिकेशन-विशिष्ट एकीकृत सर्किट (ASIC) है। TPU एक प्रोग्रामेबल AI एक्सेलेरेटर है जिसे कम-परिशुद्धता अंकगणित (जैसे, 8-बिट) का उच्च थ्रूपुट प्रदान करने के लिए डिज़ाइन किया गया है, और मॉडल को प्रशिक्षित करने के बजाय उन्हें चलाने या उपयोग करने पर केंद्रित है। Google ने घोषणा की कि वे एक वर्ष से अधिक समय से अपने डेटा केंद्रों के अंदर TPU चला रहे थे, और पाया कि वे मशीन लर्निंग के लिए प्रति वाट बेहतर-अनुकूलित प्रदर्शन का एक क्रम प्रदान करते हैं।
मई 2017 में, Google ने दूसरी पीढ़ी के TPU की घोषणा की, साथ ही Google Compute Engine में उनकी उपलब्धता की भी। दूसरी पीढ़ी के TPU 180 टेराफ्लॉप तक का प्रदर्शन देते हैं, और जब 64 TPU के क्लस्टर में व्यवस्थित होते हैं, तो 11.5 पेटाफ्लॉप तक प्रदान करते हैं। मई 2018 में, Google ने तीसरी पीढ़ी के TPU की घोषणा की जो 420 टेराफ्लॉप तक का प्रदर्शन और 128 GB हाई बैंडविड्थ मेमोरी (HBM) प्रदान करते हैं। Cloud TPU v3 Pods 100+ पेटाफ्लॉप प्रदर्शन और 32 TB HBM प्रदान करते हैं। फरवरी 2018 में, Google ने घोषणा की कि वे Google Cloud Platform पर बीटा में TPU उपलब्ध करा रहे हैं।
एज TPU
जुलाई 2018 में, एज TPU की घोषणा की गई थी। एज TPU Google का उद्देश्य-निर्मित ASIC चिप है जिसे छोटे क्लाइंट कंप्यूटिंग उपकरणों जैसे स्मार्टफोन पर TensorFlow Lite मशीन लर्निंग (ML) मॉडल चलाने के लिए डिज़ाइन किया गया है, जिसे एज कंप्यूटिंग के रूप में जाना जाता है।
TensorFlow Lite
मई 2017 में, Google ने मोबाइल और एम्बेडेड डिवाइसों के लिए मशीन लर्निंग मॉडल का समर्थन करने के लिए TensorFlow Lite को एक सॉफ्टवेयर स्टैक के रूप में घोषित किया, और नवंबर 2017 में, डेवलपर पूर्वावलोकन प्रदान किया। जनवरी 2019 में, TensorFlow टीम ने Android डिवाइसों पर OpenGL ES 3.1 Compute Shaders और iOS डिवाइसों पर Metal Compute Shaders के साथ मोबाइल GPU अनुमान इंजन का डेवलपर पूर्वावलोकन जारी किया। मई 2019 में, Google ने घोषणा की कि TensorFlow Lite Micro (जिसे माइक्रोकंट्रोलर के लिए TensorFlow Lite भी कहा जाता है) और ARM का uTensor विलय हो जाएगा। 2024 में इसे LiteRT के रूप में नाम बदल दिया गया।
TensorFlow 2.0
जैसे-जैसे शोध पत्रों में TensorFlow की बाजार हिस्सेदारी PyTorch के लाभ के लिए घट रही थी, TensorFlow टीम ने सितंबर 2019 में लाइब्रेरी के एक नए प्रमुख संस्करण की रिलीज़ की घोषणा की। TensorFlow 2.0 ने कई बदलाव पेश किए, जिनमें सबसे महत्वपूर्ण TensorFlow eager था, जिसने स्वचालित विभेदन योजना को स्थिर कम्प्यूटेशनल ग्राफ से "Define-by-Run" योजना में बदल दिया, जिसे मूल रूप से Chainer और बाद में PyTorch ने लोकप्रिय बनाया। अन्य प्रमुख बदलावों में पुरानी लाइब्रेरीज़ को हटाना, TensorFlow के विभिन्न संस्करणों पर प्रशिक्षित मॉडलों के बीच क्रॉस-संगतता, और GPU पर प्रदर्शन में महत्वपूर्ण सुधार शामिल थे।
विशेषताएं
ऑटोडिफरेंशिएशन
ऑटोडिफरेंशिएशन किसी मॉडल के प्रत्येक पैरामीटर के संबंध में उसके ग्रेडिएंट वेक्टर की स्वचालित रूप से गणना करने की प्रक्रिया है। इस सुविधा के साथ, TensorFlow मॉडल में पैरामीटर के लिए ग्रेडिएंट की स्वचालित रूप से गणना कर सकता है, जो बैकप्रॉपैगेशन जैसे एल्गोरिदम के लिए उपयोगी है जिन्हें प्रदर्शन को अनुकूलित करने के लिए ग्रेडिएंट की आवश्यकता होती है। ऐसा करने के लिए, फ्रेमवर्क को मॉडल में इनपुट टेंसर पर किए गए संचालन के क्रम का ट्रैक रखना चाहिए, और फिर उचित पैरामीटर के संबंध में ग्रेडिएंट की गणना करनी चाहिए।
ईगर एक्ज़ीक्यूशन
TensorFlow में एक "ईगर एक्ज़ीक्यूशन" मोड शामिल है, जिसका अर्थ है कि संचालन का तुरंत मूल्यांकन किया जाता है, बजाय एक कम्प्यूटेशनल ग्राफ में जोड़े जाने के जिसे बाद में निष्पादित किया जाता है। ईगर रूप से निष्पादित कोड को डीबगर के माध्यम से चरण-दर-चरण जांचा जा सकता है, क्योंकि डेटा को कोड की प्रत्येक पंक्ति पर बढ़ाया जाता है, बजाय बाद में कम्प्यूटेशनल ग्राफ में। यह निष्पादन प्रतिमान अपनी चरण-दर-चरण पारदर्शिता के कारण डीबग करना आसान माना जाता है।
वितरण
ईगर और ग्राफ दोनों निष्पादनों में, TensorFlow विभिन्न वितरण रणनीतियों के साथ कई डिवाइसों में गणना वितरित करने के लिए एक API प्रदान करता है। यह वितरित कंप्यूटिंग अक्सर TensorFlow मॉडल के प्रशिक्षण और मूल्यांकन के निष्पादन को तेज कर सकती है और AI के क्षेत्र में एक सामान्य प्रथा है।
लॉस
मॉडल को प्रशिक्षित करने और उनका आकलन करने के लिए, TensorFlow लॉस फ़ंक्शन (जिन्हें लागत फ़ंक्शन भी कहा जाता है) का एक सेट प्रदान करता है। कुछ लोकप्रिय उदाहरणों में माध्य वर्ग त्रुटि, श्रेणीबद्ध क्रॉस-एन्ट्रॉपी और हिंज लॉस शामिल हैं। ये फ़ंक्शन पूर्वानुमानित और वास्तविक आउटपुट के बीच अंतर को मापते हैं, प्रशिक्षण के दौरान अनुकूलन प्रक्रिया का मार्गदर्शन करते हैं।
प्रभाव और अपनाना
TensorFlow Machine learning के क्षेत्र में एक आधारभूत उपकरण बन गया है, जो शोधकर्ताओं और डेवलपर्स को पैमाने पर Deep learning मॉडल बनाने और तैनात करने में सक्षम बनाता है। Google Cloud के साथ इसका एकीकरण और Neural network आर्किटेक्चर के लिए समर्थन इसे शिक्षा और उद्योग दोनों में एक मानक विकल्प बनाता है। TensorFlow की रिलीज़ ने Artificial intelligence प्रौद्योगिकियों के व्यापक अपनाने में योगदान दिया, जिसने बाद के फ्रेमवर्क और उपकरणों को प्रभावित किया। 2024 तक, TensorFlow व्यापक रूप से उपयोग में बना हुआ है, हालांकि इसे अनुसंधान सेटिंग्स में PyTorch से प्रतिस्पर्धा का सामना करना पड़ता है। इसका निरंतर विकास प्रदर्शन, उपयोगिता और तैनाती की चुनौतियों का समाधान करता रहता है, जिससे AI के विकसित परिदृश्य में इसकी प्रासंगिकता सुनिश्चित होती है।