![Search icon](https://hackernoon.imgix.net/search-new.png?w=19&h=19)
2017 में, शोधकर्ताओं के एक समूह (Google और टोरंटो विश्वविद्यालय से) ने प्राकृतिक भाषा प्रसंस्करण (NLP) कार्यों को संभालने का एक नया तरीका पेश किया। उनके क्रांतिकारी पेपर " अटेंशन इज़ ऑल यू नीड " ने ट्रांसफॉर्मर मॉडल प्रस्तुत किया, एक आर्किटेक्चर जो आज कई उन्नत AI सिस्टम का आधार बन गया है। मॉडल के प्रदर्शन, मापनीयता और बहुमुखी प्रतिभा ने इसे व्यापक रूप से अपनाया है, जो BERT (द्विदिशात्मक एनकोडर प्रतिनिधित्व) और GPT (जेनरेटिव प्री-ट्रेन्ड ट्रांसफॉर्मर) जैसे अत्याधुनिक मॉडल की रीढ़ बना है।
ट्रांसफॉर्मर मॉडल से पहले, भाषा को संसाधित करने वाले अधिकांश AI मॉडल एक प्रकार के न्यूरल नेटवर्क पर बहुत अधिक निर्भर थे, जिसे रिकरंट न्यूरल नेटवर्क (RNN) या इसका बेहतर संस्करण, लॉन्ग शॉर्ट-टर्म मेमोरी नेटवर्क (LSTM) कहा जाता है। विशेष रूप से, भाषा मॉडलिंग और मशीन अनुवाद (जिसे अनुक्रम ट्रांसडक्शन भी कहा जाता है) जैसी समस्याएं। ये मॉडल शब्दों को एक क्रम में, एक-एक करके, बाएं से दाएं (या इसके विपरीत) संसाधित करते हैं। हालाँकि यह दृष्टिकोण समझ में आता था क्योंकि वाक्य में शब्द अक्सर पिछले शब्दों पर निर्भर होते हैं, लेकिन इसमें कुछ महत्वपूर्ण कमियाँ थीं:
मुख्य विचार: वास्तुकला पर ध्यान
ट्रांसफॉर्मर मॉडल के पीछे मुख्य विचार "ध्यान" नामक कुछ है। सरल शब्दों में, ध्यान मॉडल को किसी शब्द के अर्थ/संदर्भ को समझने की कोशिश करते समय वाक्य के विशिष्ट भागों पर ध्यान केंद्रित करने में मदद करता है। वाक्य पर विचार करें, "गैरेज में खड़ी कार नीली है।" जब आप नीले शब्द के बारे में सोचते हैं, तो आप स्वाभाविक रूप से वाक्य में पहले "कार" शब्द पर ध्यान केंद्रित करते हैं क्योंकि यह आपको बताता है कि नीला क्या है। मशीन अनुवाद मॉडल यह पहचानने में संघर्ष करेंगे कि "नीला" कार या गैरेज को संदर्भित कर रहा था। यह वही है जो आत्म-ध्यान करता है - यह मॉडल को प्रासंगिक शब्दों पर ध्यान केंद्रित करने में मदद करता है, चाहे वे वाक्य में कहीं भी हों।
ध्यान दें कि ध्यान कोई नई अवधारणा नहीं थी और इसे पहले से ही RNN के साथ मिलकर इस्तेमाल किया जा रहा था। ट्रांसफॉर्मर पहला ट्रांसडक्शन मॉडल था जो पूरी तरह से ध्यान पर निर्भर था, जिससे न्यूरल नेटवर्क की ज़रूरत खत्म हो गई। इससे निम्नलिखित लाभ हुए:
जैसा कि आप देख सकते हैं, नए मॉडल ने न केवल तंत्रिका नेटवर्क के सभी नुकसानों को दूर कर दिया, बल्कि वास्तव में मशीन अनुवाद के प्रदर्शन में भी सुधार किया!
चूंकि मूल पेपर को समझना थोड़ा कठिन हो सकता है, इसलिए यहां पेपर में वर्णित मॉडल आर्किटेक्चर की सरल व्याख्या दी गई है।
एनकोडर और डिकोडर स्टैक : ट्रांसफॉर्मर में एक एनकोडर स्टैक (बाईं ओर) और एक डिकोडर स्टैक (दाईं ओर) होता है। एनकोडर स्टैक इनपुट अनुक्रम (जैसे वाक्य) को निरंतर अभ्यावेदन के एक सेट में परिवर्तित करता है, जबकि डिकोडर स्टैक इन अभ्यावेदनों को आउटपुट अनुक्रम (जैसे अनुवाद) में परिवर्तित करता है। प्रत्येक स्टैक के लिए, नीचे से ऊपर की ओर जाते हुए, यहाँ एक उदाहरण के साथ मॉडल के मुख्य घटकों को समझाया गया है।
एनकोडर में इनपुट वाक्य प्रसंस्करण
इनपुट : वह पाठ जिसका आप अनुवाद करना चाहते हैं। उदाहरण के लिए, "गैरेज में खड़ी कार नीले रंग की है।"
इनपुट एम्बेडिंग : शब्दों को निश्चित लंबाई के संख्यात्मक निरूपण (वेक्टर) में परिवर्तित करता है, जिन्हें एम्बेडिंग कहा जाता है। ये एम्बेडिंग शब्दों के अर्थपूर्ण अर्थ को इस तरह से कैप्चर करते हैं कि मॉडल उन्हें समझ सके। हमारे उदाहरण से:
"द" -> [0.9, -0.4, 0.2, ...]
"कार" -> [0.5, 0.1, -0.7, ...]
"वह" -> [-0.8, 0.2, 0.8, ...]
और इसी प्रकार उपरोक्त वाक्य के प्रत्येक शब्द के लिए।
पोजिशनल एनकोडिंग : चूंकि मॉडल इनपुट एम्बेडिंग को प्रोसेस करता है, जिसमें कोई ऑर्डरिंग नहीं होती है, इसलिए उसे वाक्य में शब्दों के क्रम को समझने का तरीका चाहिए। पोजिशनल एनकोडिंग अनुक्रम में प्रत्येक शब्द की स्थिति के बारे में यह जानकारी उसके एम्बेडिंग में जोड़ता है।
स्थिति 1 पर "The" को [0.9 + P1, -0.4 + P1, 0.2 + P1, ...] पर समायोजित किया जा सकता है, जहां P1 पहली स्थिति के लिए स्थितीय एन्कोडिंग का प्रतिनिधित्व करता है, इस प्रकार एक नया एम्बेडिंग उत्पन्न करता है जो स्थिति P1 के लिए अद्वितीय है।
स्व-ध्यान तंत्र : जैसा कि पहले बताया गया है, यह मॉडल को संदर्भ के आधार पर वाक्य में अलग-अलग शब्दों पर ध्यान केंद्रित करने की अनुमति देता है। प्रत्येक शब्द के लिए, स्व-ध्यान तंत्र एक स्कोर की गणना करता है जो दर्शाता है कि वर्तमान शब्द को एन्कोड करते समय अन्य शब्दों पर कितना ध्यान दिया जाना चाहिए।
"कार" शब्द के लिए, आत्म-ध्यान यह निर्धारित कर सकता है कि "पार्क किया हुआ", "गैरेज" और "नीला" इसके संदर्भ को समझने में विशेष रूप से प्रासंगिक हैं।
मल्टी-हेड अटेंशन : ट्रांसफॉर्मर मॉडल का नया हिस्सा। मल्टी-हेड अटेंशन बस समानांतर रूप से चलने वाली और रैखिक रूप से संयोजित कई सेल्फ-अटेंशन लेयर्स/ऑपरेशन हैं।
उदाहरण के लिए, एक शीर्षक मुख्य विषय ("कार") और उसके गुणों ("नीला") पर ध्यान केंद्रित कर सकता है, जबकि दूसरा शीर्षक सापेक्ष खंड ("जो गैरेज में खड़ी थी") पर ध्यान केंद्रित कर सकता है।
मल्टी हेड अटेंशन मॉड्यूल मॉडल को यह समझने की क्षमता देता है कि "नीला" रंग गैराज की तुलना में कार के लिए अधिक प्रासंगिक है।
फीड-फॉरवर्ड न्यूरल नेटवर्क : सेल्फ-अटेंशन लेयर के बाद, आउटपुट को फीड-फॉरवर्ड न्यूरल नेटवर्क से गुजारा जाता है जिसे प्रत्येक स्थिति पर अलग-अलग और समान रूप से लागू किया जाता है (एक बार फिर, समानांतर में चलाया जा सकता है!)। इसमें दो रैखिक परिवर्तन होते हैं जिनके बीच में एक ReLU सक्रियण होता है।
ऐड और नॉर्म : अवशिष्ट कनेक्शन (ऐड) का उपयोग किसी परत के इनपुट को उसके आउटपुट में जोड़ने के लिए किया जाता है, जिसे फिर सामान्यीकृत (नॉर्म) किया जाता है। यह ग्रेडिएंट को गायब होने या विस्फोट होने से रोककर डीप नेटवर्क को प्रशिक्षित करने में मदद करता है।
डिकोडर में अनुवाद तैयार करना
एनएलपी में, अनुक्रम टोकन की शुरुआत को विशेष वर्ण <SOS> और अनुक्रम के अंत को <EOS> से दर्शाना आम बात है। डिकोडर एनकोडर से संसाधित इनपुट लेता है और फ्रेंच अनुवाद "ला वोइचर क्वी एटैट गेरे डान्स ले गेराज एस्ट ब्लू" उत्पन्न करता है। यहाँ बताया गया है कि यह भाग कैसे काम करता है:
डिकोडर में इनपुट : डिकोडर एनकोडर से अंग्रेजी वाक्य के एनकोडेड प्रतिनिधित्व के साथ शुरू होता है। यदि आप ध्यान दें, तो डिकोडर इनपुट के रूप में अपना स्वयं का आउटपुट भी लेता है। चूंकि इसमें शुरुआती शब्द के लिए इनपुट नहीं होगा, इसलिए हम शुरुआत में <SOS> टोकन डालते हैं (इसलिए दाईं ओर शिफ्ट हो जाते हैं) और अंतिम शब्द हटा देते हैं। यह शिफ्ट किया गया अनुक्रम ही डिकोडर में फीड किया जाता है।
मास्क्ड सेल्फ-अटेंशन : डिकोडर में, मास्क्ड सेल्फ-अटेंशन मैकेनिज्म यह सुनिश्चित करता है कि आउटपुट अनुक्रम में प्रत्येक शब्द केवल अपने से पहले के शब्दों पर ही ध्यान दे सके। यह मॉडल को आगे देखने से रोकता है और यह सुनिश्चित करता है कि यह बाएं से दाएं एक समय में एक शब्द का अनुवाद उत्पन्न करता है।
उदाहरण के लिए, जब डिकोडर "ला" (फ्रेंच में पहला शब्द) शब्द उत्पन्न करने वाला होता है, तो वह केवल <SOS> से संदर्भ जानता है, न कि "वोइचर" जैसे भविष्य के शब्दों को।
फीड-फॉरवर्ड न्यूरल नेटवर्क : डिकोडर इस सूचना को आगे संसाधित करने के लिए एक अन्य फीड-फॉरवर्ड न्यूरल नेटवर्क लागू करता है, तथा चरण-दर-चरण अनुवाद को परिष्कृत करता है।
डिकोडर में, मास्क्ड सेल्फ-अटेंशन, एनकोडर-डिकोडर अटेंशन और फीड-फॉरवर्ड नेटवर्क की कई परतों के माध्यम से इनपुट वाक्य को संसाधित करने के बाद, हम लक्ष्य वाक्य में प्रत्येक स्थिति (हमारे मामले में फ्रेंच) के लिए निरंतर अभ्यावेदन (फ्लोट्स का वेक्टर) का एक क्रम प्राप्त करते हैं। इन अभ्यावेदनों को वास्तविक शब्दों में परिवर्तित करने की आवश्यकता है। यहीं पर अंतिम रैखिक और सॉफ्टमैक्स परत काम आती है।
डिकोडर मूलतः यह कार्य करता है:
इन चरणों को मिलाकर, ट्रांसफॉर्मर पूरे वाक्य की संरचना और अर्थ को पिछले मॉडलों की तुलना में अधिक प्रभावी ढंग से समझ सकता है। स्व-ध्यान तंत्र और समानांतर प्रसंस्करण ट्रांसफॉर्मर को स्रोत और लक्ष्य दोनों भाषाओं की बारीकियों और संरचना को प्रभावी ढंग से पकड़ने में सक्षम बनाता है, जिससे यह मशीन अनुवाद जैसे कार्यों में अत्यधिक कुशल बन जाता है।