अमेज़ॅन मशीन लर्निंग सॉल्यूशंस लैब (एमएलएसएल) ने हाल ही में नाम-निकाय पहचान (एनईआर) और रिलेशनशिप लेबल्स के साथ टेक्स्ट को एनोटेट करने के लिए एक टूल बनाया है। अमेज़ॅन सैजमेकर ग्राउंड ट्रुथ. एनोटेटर इस उपकरण का उपयोग नामित संस्थाओं के साथ पाठ को लेबल करने और उनके संबंधों को जोड़ने के लिए करते हैं, जिससे अत्याधुनिक प्राकृतिक भाषा प्रसंस्करण (एनएलपी) मशीन लर्निंग (एमएल) मॉडल के प्रशिक्षण के लिए एक डेटासेट का निर्माण होता है। सबसे महत्वपूर्ण बात यह है कि यह अब सभी AWS ग्राहकों के लिए सार्वजनिक रूप से उपलब्ध है।
ग्राहक उपयोग मामला: Booking.com
Booking.com दुनिया के अग्रणी ऑनलाइन ट्रैवल प्लेटफॉर्म में से एक है। यह समझना कि ग्राहक कंपनी की 28 मिलियन से अधिक प्रॉपर्टी लिस्टिंग के बारे में प्लेटफॉर्म पर क्या कह रहे हैं, ग्राहक अनुभव को बेहतर बनाए रखने के लिए आवश्यक है। पहले, Booking.com बड़े पैमाने पर ग्राहक-जनित समीक्षाओं की व्याख्या करने के लिए केवल पारंपरिक भावना विश्लेषण का उपयोग कर सकता था। इन व्याख्याओं की विशिष्टता को अपग्रेड करने के लिए, Booking.com ने हाल ही में एक पहलू-आधारित मनोभाव विश्लेषण मॉडल के प्रशिक्षण के लिए कस्टम एनोटेट डेटासेट बनाने में मदद के लिए MLSL की ओर रुख किया।
पारंपरिक भावना विश्लेषण पाठ के एक टुकड़े को सकारात्मक, नकारात्मक या तटस्थ के रूप में वर्गीकृत करने की प्रक्रिया है एकवचन भाव. यह व्यापक रूप से समझने के लिए काम करता है कि क्या उपयोगकर्ता किसी विशेष अनुभव से संतुष्ट या असंतुष्ट हैं। उदाहरण के लिए, पारंपरिक भावना विश्लेषण के साथ, निम्नलिखित पाठ को "तटस्थ" के रूप में वर्गीकृत किया जा सकता है:
होटल में हमारा रहना अच्छा था। कर्मचारी मिलनसार थे और कमरे साफ थे, लेकिन हमारे बिस्तर काफी असहज थे।
पहलू-आधारित भावना विश्लेषण सामग्री की अधिक सूक्ष्म समझ प्रदान करता है। Booking.com के मामले में, ग्राहक समीक्षा को समग्र रूप से लेने और इसे स्पष्ट रूप से वर्गीकृत करने के बजाय, यह समीक्षा के भीतर से भावना ले सकता है और इसे विशिष्ट पहलुओं को असाइन कर सकता है। उदाहरण के लिए, किसी दिए गए होटल की ग्राहक समीक्षा बेदाग पूल और फिटनेस क्षेत्र की प्रशंसा कर सकती है, लेकिन रेस्तरां और लाउंज पर महत्वपूर्ण प्रतिक्रिया दे सकती है।
पारंपरिक भावना विश्लेषण द्वारा "तटस्थ" के रूप में वर्गीकृत किया गया बयान, पहलू-आधारित भावना विश्लेषण के साथ बन जाएगा:
होटल में हमारा रहना अच्छा था। कर्मचारी मिलनसार थे और कमरे साफ थे, लेकिन हमारे बिस्तर काफी असहज थे।
- होटल: सकारात्मक
- कर्मचारी : पॉजिटिव
- कक्ष: सकारात्मक
- बिस्तर: नकारात्मक
Booking.com ने एक कस्टम पहलू-आधारित भावना विश्लेषण मॉडल बनाने की मांग की, जो उन्हें बताएगा कि अतिथि अनुभव के कौन से विशिष्ट भाग (50+ पहलुओं की सूची से) थे सकारात्मक, नकारात्मकया, तटस्थ.
इससे पहले कि Booking.com इस मॉडल के लिए एक प्रशिक्षण डेटासेट बना सके, उन्हें इसे एनोटेट करने के तरीके की आवश्यकता थी। MLSL के एनोटेशन टूल ने बहुत ही आवश्यक अनुकूलित समाधान प्रदान किया। होटल समीक्षाओं के एक बड़े संग्रह पर मानव समीक्षा की गई। फिर, एनोटेटर ने उपयुक्त स्पैन को एक साथ जोड़ने से पहले मनोभाव और अतिथि-अनुभव टेक्स्ट स्पैन और वाक्यांशों पर नाम-इकाई एनोटेशन पूरा किया।
नया पहलू-आधारित मॉडल Booking.com को अपने ग्राहकों के लिए आवास और समीक्षा दोनों को वैयक्तिकृत करने देता है। प्रत्येक आवास के सकारात्मक और नकारात्मक पहलुओं को उजागर करने से ग्राहकों को अपना सही मैच चुनने में मदद मिलती है। इसके अलावा, अलग-अलग ग्राहक आवास के विभिन्न पहलुओं की परवाह करते हैं, और नया मॉडल हर एक को सबसे अधिक प्रासंगिक समीक्षा दिखाने का अवसर देता है।
लेबलिंग आवश्यकताएँ
हालांकि ग्राउंड ट्रूथ एक अंतर्निहित एनईआर टेक्स्ट एनोटेशन क्षमता प्रदान करता है, यह संस्थाओं को एक साथ जोड़ने की क्षमता प्रदान नहीं करता है। इसे ध्यान में रखते हुए, Booking.com और MLSL ने एक नए नामित इकाई पहचान टेक्स्ट लेबलिंग टूल के लिए निम्नलिखित उच्च-स्तरीय आवश्यकताओं पर काम किया:
- इनपुट के रूप में स्वीकार करता है: टेक्स्ट, इकाई लेबल, संबंध लेबल, तथा वर्गीकरण लेबल.
- पूर्ववर्ती लेबल और संबंध एनोटेशन के साथ वैकल्पिक रूप से इनपुट पूर्व-एनोटेट डेटा के रूप में स्वीकार करता है.
- एनोटेटर को या तो अनएनोटेटेड या प्री-एनोटेट टेक्स्ट के साथ प्रस्तुत करता है।
- एनोटेटर्स को एंटिटी लेबल के साथ मनमाने टेक्स्ट को हाइलाइट और एनोटेट करने की अनुमति देता है।
- एनोटेटर को दो एंटिटी एनोटेशन के बीच संबंध बनाने की अनुमति देता है।
- एनोटेटर्स को बड़ी संख्या में इकाई लेबल को आसानी से नेविगेट करने की अनुमति देता है।
- इकाई लेबल को श्रेणियों में समूहीकृत करने का समर्थन करता है।
- ओवरलैपिंग संबंधों की अनुमति दें, जिसका अर्थ है कि एक ही एनोटेट टेक्स्ट सेगमेंट एक से अधिक अन्य एनोटेट टेक्स्ट सेगमेंट से संबंधित हो सकता है।
- ओवरलैपिंग एंटिटी लेबल एनोटेशन की अनुमति देता है, जिसका अर्थ है कि दो एनोटेशन टेक्स्ट के एक ही हिस्से को ओवरलैप कर सकते हैं। उदाहरण के लिए, पाठ "सिएटल स्पेस नीडल" में "सिएटल" → "स्थान", और "सिएटल स्पेस नीडल" → "आकर्षण" दोनों एनोटेशन हो सकते हैं।
- आउटपुट स्वरूप इनपुट प्रारूप के साथ संगत है, और इसे बाद के लेबलिंग कार्यों में फीड किया जा सकता है।
- UTF-8 एन्कोडेड टेक्स्ट का समर्थन करता है जिसमें इमोजी और अन्य मल्टी-बाइट वर्ण होते हैं।
- बाएं से दाएं भाषाओं का समर्थन करता है।
नमूना एनोटेशन
निम्नलिखित दस्तावेज़ पर विचार करें:
हमें इस होटल का स्थान बहुत पसंद आया! रूफटॉप लाउंज ने हमें अंतरिक्ष सुई का सही दृश्य दिया। यह पाइक प्लेस मार्केट और वाटरफ्रंट से भी एक छोटी ड्राइव दूर है।
भोजन केवल रूम सर्विस के माध्यम से उपलब्ध था, जो थोड़ा निराशाजनक था लेकिन इस महामारी के बाद की दुनिया में समझ में आता है।
कुल मिलाकर, एक उचित मूल्य का अनुभव।
इस दस्तावेज़ को नए एनईआर एनोटेशन में लोड करना एक कार्यकर्ता को निम्नलिखित इंटरफ़ेस के साथ प्रस्तुत करता है:
इस मामले में, कार्यकर्ता का काम है:
- संपत्ति से संबंधित लेबल इकाइयां (स्थान, मूल्य, भोजन, आदि)
- भावना से संबंधित इकाइयों को लेबल करें (सकारात्मक, नकारात्मक, या तटस्थ)
- अतिथि अनुभव को सटीक रूप से कैप्चर करने के लिए संपत्ति से संबंधित नामित संस्थाओं को भाव-संबंधी कीवर्ड से लिंक करें
एनोटेशन स्पीड टूल का एक महत्वपूर्ण विचार था। सहज कीबोर्ड शॉर्टकट और माउस जेस्चर के अनुक्रम का उपयोग करके, एनोटेटर इंटरफ़ेस को चला सकते हैं और:
- नामित इकाई एनोटेशन जोड़ें और निकालें
- नामित संस्थाओं के बीच संबंध जोड़ें
- दस्तावेज़ के आरंभ और अंत में जाएं
- दस्तावेज़ जमा करें
इसके अतिरिक्त, अतिव्यापी लेबल के लिए समर्थन है। उदाहरण के लिए, Seattle Space Needle
: इस वाक्यांश में, Seattle
एक स्थान के रूप में और आकर्षण नाम के एक भाग के रूप में दोनों के रूप में टिप्पणी की जाती है।
पूरा किया गया एनोटेशन डेटा का अधिक संपूर्ण, सूक्ष्म विश्लेषण प्रदान करता है:
संबंधों को कई स्तरों पर कॉन्फ़िगर किया जा सकता है, इकाई श्रेणियों से अन्य इकाई श्रेणियों तक (उदाहरण के लिए, "भोजन" से "भावना"), या अलग-अलग इकाई प्रकारों के बीच। रिश्ते निर्देशित होते हैं, इसलिए एनोटेटर भोजन जैसे पहलू को भावना से जोड़ सकते हैं, लेकिन इसके विपरीत नहीं (जब तक कि स्पष्ट रूप से सक्षम न हो)। संबंध बनाते समय, एनोटेशन टूल स्वचालित रूप से संबंध लेबल और दिशा निकाल लेगा।
एनईआर एनोटेशन टूल को कॉन्फ़िगर करना
इस खंड में, हम ग्राहक-विशिष्ट उपयोग के मामलों के लिए एनईआर एनोटेशन टूल को अनुकूलित करने के तरीके को कवर करते हैं। इसमें कॉन्फ़िगर करना शामिल है:
- एनोटेट करने के लिए इनपुट टेक्स्ट
- इकाई लेबल
- संबंध लेबल
- वर्गीकरण लेबल
- पूर्व-एनोटेट डेटा
- कार्यकर्ता निर्देश
हम इनपुट और आउटपुट दस्तावेज़ स्वरूपों की बारीकियों को कवर करेंगे, साथ ही प्रत्येक के कुछ उदाहरण भी प्रदान करेंगे।
इनपुट दस्तावेज़ प्रारूप
एनईआर एनोटेशन टूल निम्नलिखित JSON स्वरूपित इनपुट दस्तावेज़ की अपेक्षा करता है (नाम के आगे एक प्रश्न चिह्न वाले फ़ील्ड वैकल्पिक हैं)।
संक्षेप में, इनपुट प्रारूप में ये विशेषताएं हैं:
- भी
entityLabels
orclassificationLabels
(या दोनों) व्याख्या करने के लिए आवश्यक हैं। - If
entityLabels
दिया जाता है, तोrelationshipLabels
जोड़ा जा सकता है। - विभिन्न इकाई/श्रेणी लेबल या इनके मिश्रण के बीच संबंधों की अनुमति दी जा सकती है।
- किसी रिश्ते का "स्रोत" वह इकाई है जिससे निर्देशित तीर शुरू होता है, जबकि "लक्ष्य" वह है जहां वह जा रहा है।
क्षेत्र | प्रकार | Description |
टेक्स्ट | स्ट्रिंग | आवश्यक। एनोटेशन के लिए इनपुट टेक्स्ट। |
tokenRows | डोरी[][] | वैकल्पिक। इनपुट टेक्स्ट का कस्टम टोकनाइजेशन। तार के सरणियों की सरणी। शीर्ष स्तर की सरणी पाठ की प्रत्येक पंक्ति (पंक्ति विराम) का प्रतिनिधित्व करती है, और दूसरी स्तर की सरणी प्रत्येक पंक्ति पर टोकन का प्रतिनिधित्व करती है। इनपुट टेक्स्ट में सभी वर्णों/रनों को किसी भी सफेद स्थान सहित टोकनरोज़ में शामिल किया जाना चाहिए। |
documentId | स्ट्रिंग | वैकल्पिक। दस्तावेज़ पर नज़र रखने के लिए ग्राहकों के लिए वैकल्पिक मूल्य एनोटेट किया जा रहा है। |
entityLabels | object[] | अगर वर्गीकरण लेबल खाली है, तो ज़रूरी है. इकाई लेबल की सरणी। |
एंटिटी लेबल []। नाम | स्ट्रिंग | आवश्यक। इकाई लेबल प्रदर्शन नाम। |
एंटिटी लेबल [] श्रेणी | स्ट्रिंग | वैकल्पिक। इकाई लेबल श्रेणी का नाम। |
entityLabels[].shortName | स्ट्रिंग | वैकल्पिक। इस पाठ को पूरे नाम के बजाय एनोटेट की गई संस्थाओं पर प्रदर्शित करें। |
entityLabels[].shortCategory | स्ट्रिंग | वैकल्पिक। श्रेणी नाम के पहले चार अक्षरों के बजाय इस पाठ को एंटिटी एनोटेशन सेलेक्ट ड्रॉपडाउन में प्रदर्शित करें। |
entityLabels.color | स्ट्रिंग | वैकल्पिक। "#" उपसर्ग के साथ हेक्स रंग कोड। यदि खाली है, तो यह स्वचालित रूप से इकाई लेबल को एक रंग प्रदान करेगा। |
संबंध लेबल | object[] | वैकल्पिक। संबंध लेबल की सरणी। |
रिलेशनशिप लेबल्स []। नाम | स्ट्रिंग | आवश्यक। संबंध लेबल प्रदर्शन नाम। |
संबंध लेबल []। अनुमति संबंध | object[] | वैकल्पिक। मूल्यों की सरणी यह प्रतिबंधित करती है कि किस प्रकार के स्रोत और गंतव्य निकाय लेबल इस संबंध को असाइन किए जा सकते हैं। सरणी में प्रत्येक आइटम एक साथ "OR'ed" है। |
रिलेशनशिप लेबल्स []। अनुमति संबंध []। स्रोत एंटीटी लेबल श्रेणियां | डोरी[] | SourceEntityLabelCategories या sourceEntityLabels (या दोनों) को सेट करने के लिए आवश्यक है। इस संबंध के लिए कानूनी स्रोत इकाई लेबल श्रेणी प्रकारों की सूची। |
रिलेशनशिप लेबल्स []। अनुमति संबंध []। लक्ष्य एंटीटी लेबल श्रेणियां | डोरी[] | या तो targetEntityLabelCategories या targetEntityLabels (या दोनों) सेट करने के लिए आवश्यक है। इस संबंध के लिए कानूनी लक्ष्य इकाई लेबल श्रेणी प्रकारों की सूची। |
रिलेशनशिप लेबल्स []। अनुमति संबंध []। स्रोत एंटीटी लेबल्स | डोरी[] | SourceEntityLabelCategories या sourceEntityLabels (या दोनों) को सेट करने के लिए आवश्यक है। इस संबंध के लिए कानूनी स्रोत इकाई लेबल प्रकारों की सूची। |
रिलेशनशिप लेबल्स []। अनुमति संबंध []। स्रोत एंटीटी लेबल्स | डोरी[] | या तो targetEntityLabelCategories या targetEntityLabels (या दोनों) सेट करने के लिए आवश्यक है। इस संबंध के लिए वैधानिक लक्ष्य निकाय लेबल प्रकारों की सूची. |
वर्गीकरणलेबल | डोरी[] | अगर entityLabels खाली है, तो ज़रूरी है. दस्तावेज़ स्तर वर्गीकरण लेबल की सूची। |
entityAnnotations | object[] | वैकल्पिक। इनपुट टेक्स्ट को प्री-एनोटेट करने के लिए इकाई एनोटेशन की सरणी। |
entityAnnotations[].id | स्ट्रिंग | आवश्यक। इस इकाई एनोटेशन के लिए अद्वितीय पहचानकर्ता। इस इकाई को संबंधअनोटेशन में संदर्भित करने के लिए उपयोग किया जाता है। |
entityAnnotations[].शुरू करें | संख्या | आवश्यक। इस एंटिटी एनोटेशन का रूण ऑफ़सेट प्रारंभ करें। |
एंटिटीएनोटेशन [] अंत | संख्या | आवश्यक। इस एंटिटी एनोटेशन का एंड रन ऑफ़ ऑफ़सेट। |
entityAnnotations[].text | स्ट्रिंग | आवश्यक। प्रारंभ और अंत रूण ऑफ़सेट के बीच पाठ्य सामग्री। |
entityAnnotations[].लेबल | स्ट्रिंग | आवश्यक। संबद्ध इकाई लेबल नाम (इकाई लेबल में नामों से)। |
entityAnnotations[]. LabelCategory | स्ट्रिंग | वैकल्पिक। संबद्ध इकाई लेबल श्रेणी (इकाई लेबल में श्रेणियों से)। |
संबंधटिप्पणियाँ | object[] | वैकल्पिक। संबंध एनोटेशन की सरणी। |
रिलेशनशिपएनोटेशन[].sourceEntityAnnotationId | स्ट्रिंग | आवश्यक। इस संबंध के लिए स्रोत इकाई एनोटेशन आईडी। |
रिलेशनशिपएनोटेशन[].targetEntityAnnotationId | स्ट्रिंग | आवश्यक। इस संबंध के लिए लक्ष्य इकाई एनोटेशन आईडी। |
रिलेशनशिपएनोटेशन []। लेबल | स्ट्रिंग | आवश्यक। संबद्ध संबंध लेबल नाम। |
वर्गीकरणटिप्पणियाँ | डोरी[] | वैकल्पिक। दस्तावेज़ को पूर्व-एनोटेट करने के लिए वर्गीकरणों की सारणी। |
मेटा | वस्तु | वैकल्पिक। अतिरिक्त कॉन्फ़िगरेशन पैरामीटर। |
मेटा.निर्देश | स्ट्रिंग | वैकल्पिक। मार्कडाउन प्रारूप में लेबलिंग एनोटेटर के लिए निर्देश। |
meta.disableSubmitConfirmation | बूलियन | वैकल्पिक। सबमिट कन्फर्मेशन मोडल को निष्क्रिय करने के लिए सही पर सेट करें। |
meta.multiClassification | बूलियन | वैकल्पिक। वर्गीकरण लेबल के लिए मल्टी-लेबल मोड सक्षम करने के लिए सही पर सेट करें। |
इस इनपुट प्रारूप को बेहतर ढंग से समझने के लिए यहां कुछ नमूना दस्तावेज़ दिए गए हैं
इस स्कीमा का पालन करने वाले दस्तावेज़ ग्राउंड ट्रूथ को एक इनपुट मेनिफ़ेस्ट में अलग-अलग लाइन आइटम के रूप में प्रदान किए जाते हैं।
आउटपुट दस्तावेज़ स्वरूप
आउटपुट स्वरूप को एक नए एनोटेशन कार्य में आसानी से प्रतिक्रिया देने के लिए डिज़ाइन किया गया है। आउटपुट दस्तावेज़ में वैकल्पिक फ़ील्ड सेट किए जाते हैं यदि वे इनपुट दस्तावेज़ में भी सेट किए गए हों। इनपुट और आउटपुट स्वरूपों के बीच एकमात्र अंतर है meta
वस्तु।
क्षेत्र | प्रकार | Description |
मेटा.अस्वीकृत | बूलियन | अगर एनोटेटर ने इस दस्तावेज़ को अस्वीकार कर दिया है तो इसे सही पर सेट किया गया है। |
meta.rejectedReason | स्ट्रिंग | दस्तावेज़ को अस्वीकार करने के लिए व्याख्याकार का कारण दिया गया है। |
मेटा.runes | डोरी[] | रून्स की सरणी इनपुट पाठ में सभी वर्णों के लिए लेखांकन। एंटिटी एनोटेशन प्रारंभ और समाप्ति ऑफ़सेट की गणना करने के लिए उपयोग किया जाता है। |
यहाँ एक नमूना आउटपुट दस्तावेज़ है जिसे एनोटेट किया गया है:
रून्स नोट:
इस संदर्भ में एक "रूण" पाठ में एकल हाइलाइट-योग्य वर्ण है, जिसमें इमोजी जैसे बहु-बाइट वर्ण शामिल हैं।
- क्योंकि अलग-अलग प्रोग्रामिंग लैंग्वेज मल्टी-बाइट कैरेक्टर्स को अलग-अलग तरीके से रिप्रेजेंट करती हैं, हर हाइलाइट-एबल कैरेक्टर को सिंगल एटॉमिक एलिमेंट के रूप में परिभाषित करने के लिए "रन" का इस्तेमाल करने का मतलब है कि हमारे पास किसी दिए गए टेक्स्ट सिलेक्शन का वर्णन करने का एक स्पष्ट तरीका है।
- उदाहरण के लिए, पायथन स्वीडिश ध्वज को चार वर्णों के रूप में मानता है:
लेकिन जावास्क्रिप्ट एक ही इमोजी को दो वर्णों के रूप में मानता है
किसी भी अस्पष्टता को खत्म करने के लिए, हम स्वीडिश ध्वज (और अन्य सभी इमोजी और मल्टी-बाइट वर्ण) को एक परमाणु तत्व के रूप में मानेंगे।
- ऑफसेट: रूण स्थिति इनपुट पाठ के सापेक्ष (सूचकांक 0 से शुरू)
ग्राउंड ट्रूथ के साथ एनईआर एनोटेशन का प्रदर्शन
पूरी तरह से प्रबंधित डेटा लेबलिंग सेवा के रूप में, ग्राउंड ट्रुथ एमएल के लिए प्रशिक्षण डेटासेट बनाता है। इस उपयोग के मामले में, हम एनोटेशन के लिए श्रमिकों के पूल में टेक्स्ट दस्तावेज़ों का संग्रह भेजने के लिए ग्राउंड ट्रूथ का उपयोग करते हैं। अंत में, हम गुणवत्ता की समीक्षा करते हैं।
कस्टम टेम्प्लेट के रूप में नए एनईआर टूल का उपयोग करके डेटा लेबलिंग कार्य बनाने के लिए ग्राउंड ट्रूथ को कॉन्फ़िगर किया जा सकता है।
विशेष रूप से, हम करेंगे:
- एनोटेशन कार्य करने के लिए कर्मचारियों का एक निजी लेबलिंग कार्यबल बनाएँ
- उन दस्तावेज़ों के साथ ग्राउंड ट्रूथ इनपुट मेनिफ़ेस्ट बनाएं जिन्हें हम एनोटेट करना चाहते हैं और फिर उसे अपलोड करें अमेज़न सरल भंडारण सेवा (अमेज़न S3)
- प्री-लेबलिंग टास्क और पोस्ट-लेबलिंग टास्क लैम्ब्डा फंक्शन बनाएं
- कस्टम एनईआर टेम्पलेट का उपयोग करके ग्राउंड ट्रुथ लेबलिंग जॉब बनाएं
- दस्तावेज़ों पर टिप्पणी करें
- समीक्षा परिणाम
एनईआर उपकरण संसाधन
संदर्भित संसाधनों और नमूना दस्तावेज़ों की पूरी सूची निम्न चार्ट में पाई जा सकती है:
लेबलिंग कार्यबल निर्माण
ग्राउंड ट्रूथ कर्मचारियों को प्रबंधित करने और कार्यों को वितरित करने के लिए SageMaker लेबलिंग कार्यबल का उपयोग करता है। एक निजी कार्यबल बनाएं, एक कार्यकर्ता टीम जिसे ner-worker-team कहा जाता है, और इसमें दिए गए निर्देशों का उपयोग करके स्वयं को टीम को असाइन करें एक निजी कार्यबल बनाएं (Amazon SageMaker Console).
एक बार जब आप अपने आप को एक निजी कार्यबल में जोड़ लेते हैं और अपने ईमेल की पुष्टि कर लेते हैं, तो AWS प्रबंधन कंसोल से कार्यकर्ता पोर्टल URL पर ध्यान दें:
- पर जाए
SageMaker
- पर जाए
Ground Truth → Labeling workforces
- चयन
Private
टैब - यूआरएल नोट करें
Labeling portal sign-in URL
लेबलिंग कार्यों को देखने और कार्य प्रारंभ करने के लिए कार्यकर्ता पोर्टल में लॉग इन करें।
इनपुट मेनिफेस्ट
जमीनी सच्चाई इनपुट डेटा मैनिफ़ेस्ट एक JSON-लाइन फ़ाइल है जहाँ प्रत्येक पंक्ति में एक एकल कार्यकर्ता कार्य होता है। हमारे मामले में, प्रत्येक पंक्ति में एक JSON एन्कोडेड इनपुट दस्तावेज़ होगा जिसमें वह पाठ होगा जिसे हम एनोटेट करना चाहते हैं और एनईआर एनोटेशन स्कीमा।
एक नमूना इनपुट मेनिफेस्ट डाउनलोड करें reviews.manifest
से https://assets.solutions-lab.ml/NER/0.2.1/sample-data/reviews.manifest
नोट: इनपुट मैनिफ़ेस्ट में प्रत्येक पंक्ति को एक शीर्ष-स्तरीय कुंजी की आवश्यकता होती है source
or source-ref
. आप में और जान सकते हैं एक इनपुट मेनिफेस्ट फ़ाइल का उपयोग करें अमेज़न सैजमेकर डेवलपर गाइड में।
Amazon S3 पर इनपुट मेनिफेस्ट अपलोड करें
AWS प्रबंधन कंसोल का उपयोग करके या कमांड लाइन से इस इनपुट मेनिफ़ेस्ट को S3 बकेट में अपलोड करें, जिससे प्रतिस्थापित किया जा सके your-bucket
एक वास्तविक बकेट नाम के साथ।
कस्टम कार्यकर्ता टेम्पलेट डाउनलोड करें
एनईआर टूल कस्टम वर्कर टेम्प्लेट को यहां से डाउनलोड करें https://assets.solutions-lab.ml/NER/0.2.1/worker-template.liquid.html स्रोत को देखकर और सामग्री को स्थानीय रूप से या कमांड लाइन से सहेज कर:
प्री-लेबलिंग टास्क और पोस्ट-लेबलिंग टास्क लैम्ब्डा फंक्शन बनाएं
नमूना प्री-लेबलिंग कार्य लैम्ब्डा फ़ंक्शन डाउनलोड करें: smgt-ner-pre-labeling-task-lambda.py
से https://assets.solutions-lab.ml/NER/0.2.1/sample-scripts/smgt-ner-pre-labeling-task-lambda.py
नमूना प्री-लेबलिंग कार्य लैम्ब्डा फ़ंक्शन डाउनलोड करें: smgt-ner-post-labeling-task-lambda.py
से https://assets.solutions-lab.ml/NER/0.2.1/sample-scripts/smgt-ner-post-labeling-task-lambda.py
- एडब्ल्यूएस प्रबंधन कंसोल से प्री-लेबलिंग कार्य लैम्ब्डा फ़ंक्शन बनाएं:
- पर जाए
Lambda
- चुनते हैं
Create function
- निर्दिष्ट करें
Function name
assmgt-ner-pre-labeling-task-lambda
- चुनते हैं
Runtime
→Python 3.6
- चुनते हैं
Create function
- In
Function code
→lambda_hanadler.py
, की सामग्री पेस्ट करेंsmgt-ner-pre-labeling-task-lambda.py
- चुनते हैं
Deploy
- पर जाए
- AWS प्रबंधन कंसोल से पोस्ट-लेबलिंग कार्य लैम्ब्डा फ़ंक्शन बनाएँ:
- पर जाए
Lambda
- चुनते हैं
Create function
- निर्दिष्ट करें
Function name
assmgt-ner-post-labeling-task-lambda
- चुनते हैं
Runtime
→Python 3.6
- विस्तार
Change default execution role
- चुनते हैं
Create a new role from AWS policy templates
- दर्ज करें
Role name
:smgt-ner-post-labeling-task-lambda-role
- चुनते हैं
Create function
- चयन
Permissions
टैब - चयन
Role name
:smgt-ner-post-labeling-task-lambda-role
आईएएम कंसोल खोलने के लिए - भूमिका में दो नीतियां जोड़ें
- चुनते हैं
Attach policies
- संलग्न करें
AmazonS3FullAccess
नीति - चुनते हैं
Add inline policy
- चयन
JSON
टैब - निम्न इनलाइन नीति में पेस्ट करें:
- चुनते हैं
- वापस नेविगेट करें
smgt-ner-post-labeling-task-lambda
लैम्ब्डा फ़ंक्शन कॉन्फ़िगरेशन पृष्ठ - चयन
Configuration
टैब - In
Function code
→ एलambda_hanadler.py
, की सामग्री पेस्ट करेंsmgt-ner-post-labeling-task-lambda.py
- चुनते हैं
Deploy
- पर जाए
ग्राउंड ट्रुथ लेबलिंग जॉब बनाएं
एडब्ल्यूएस प्रबंधन कंसोल से:
- पर नेविगेट करें
Amazon SageMaker
सेवा - पर जाए
Ground Truth
→Labeling Jobs
. - चुनते हैं
Create labeling job
- निर्दिष्ट करें
Job Name
- चुनते हैं
Manual Data Setup
- इनपुट डेटासेट स्थान निर्दिष्ट करें जहां आपने पहले इनपुट मेनिफ़ेस्ट अपलोड किया था (उदाहरण के लिए, s
3://your-bucket/ner-input/sample-smgt-input-manifest.jsonl
) - एक ही बकेट में एक अलग फ़ोल्डर को इंगित करने के लिए आउटपुट डेटासेट स्थान निर्दिष्ट करें (उदाहरण के लिए,
s3://your-bucket/ner-output/
) - निर्दिष्ट करें
IAM Role
चयन करकेCreate new role
- चयन करके इस भूमिका को किसी भी S3 बकेट तक पहुँचने की अनुमति दें
S3 buckets you specify
→Any S3 bucket
नीति बनाते समय - एक नई एडब्ल्यूएस प्रबंधन कंसोल विंडो में, खोलें
IAM
कंसोल और चुनेंRoles
- आपके द्वारा अभी-अभी बनाई गई भूमिका का नाम खोजें (उदाहरण के लिए,
AmazonSageMaker-ExecutionRole-20210301T154158
) - कंसोल में भूमिका खोलने के लिए भूमिका का नाम चुनें
- निम्नलिखित तीन नीतियां संलग्न करें:
- संलग्न नीतियां चुनें
- संलग्न करें
AWSLambda_FullAccess
भूमिका के लिए - चुनते हैं
Trust Relationships
→Edit Trust Relationships
- विश्वास संबंध JSON संपादित करें,
- बदलें
YOUR_ACCOUNT_NUMBER
पढ़ने के लिए अपने संख्यात्मक AWS खाता संख्या के साथ: - भरोसे के रिश्ते को बचाएं
- चयन करके इस भूमिका को किसी भी S3 बकेट तक पहुँचने की अनुमति दें
- पिछले एडब्ल्यूएस प्रबंधन कंसोल विंडो में नए ग्राउंड ट्रूथ जॉब पर लौटें: के तहत
Task Category
, चुनते हैंCustom
- चुनते हैं
Next
- चुनते हैं
Worker types
:Private
- चयन
Private team
:ner-worker-team
जो पिछले भाग में बनाया गया था - में
Custom labeling task setup
पाठ क्षेत्र, डिफ़ॉल्ट सामग्री को साफ़ करें और की सामग्री में पेस्ट करेंworker-template.liquid.html
फ़ाइल पहले प्राप्त की - विवरण दें
Pre-labeling task Lambda function
पहले बनाए गए फ़ंक्शन के साथ:smgt-ner-pre-labeling
- विवरण दें
Post-labeling task Lambda function
पहले बनाए गए फ़ंक्शन के साथ:smgt-ner-post-labeling
- चुनते हैं
Create
दस्तावेज़ों पर टिप्पणी करें
ग्राउंड ट्रूथ जॉब बन जाने के बाद, हम दस्तावेज़ों की व्याख्या करना शुरू कर सकते हैं। पहले बनाए गए हमारे कार्यबल के लिए कार्यकर्ता पोर्टल खोलें (AWS प्रबंधन कंसोल में, नेविगेट करें SageMaker
, Ground Truth → Labeling workforces
, Private
, और खोलें Labeling portal sign-in URL
)
साइन इन करें और तालिका में पहला लेबलिंग कार्य चुनें, और फिर एनोटेटर खोलने के लिए "कार्य प्रारंभ करें" चुनें। अपने एनोटेशन निष्पादित करें और तीनों नमूना दस्तावेज़ों पर सबमिट करें चुनें।
समीक्षा परिणाम
ग्राउंड ट्रूथ एनोटेटर्स के कार्यों को पूरा करने के बाद, परिणाम आउटपुट S3 बकेट में उपलब्ध होंगे:
एक बार लेबलिंग कार्य के लिए सभी कार्य पूर्ण हो जाने पर, समेकित आउटपुट इसमें उपलब्ध होता है output.manifest
फ़ाइल यहाँ स्थित है:
यह आउटपुट मेनिफेस्ट एक JSON-लाइन फ़ाइल है जिसमें पहले निर्दिष्ट "आउटपुट दस्तावेज़ स्वरूप" में प्रति पंक्ति एक एनोटेट टेक्स्ट दस्तावेज़ है। यह फ़ाइल "इनपुट दस्तावेज़ प्रारूप" के साथ संगत है, और इसे एनोटेशन के दूसरे दौर के लिए सीधे बाद के ग्राउंड ट्रूथ जॉब में फीड किया जा सकता है। वैकल्पिक रूप से, इसे पार्स किया जा सकता है और एमएल प्रशिक्षण कार्य के लिए भेजा जा सकता है। कुछ परिदृश्य जहाँ हम एनोटेशन के दूसरे दौर को नियोजित कर सकते हैं:
- एनोटेशन प्रक्रिया को दो चरणों में तोड़ना जहां पहला एनोटेटर एंटिटी एनोटेशन की पहचान करता है और दूसरा एनोटेटर संबंध बनाता है
- हमारा सैंपल ले रहे हैं
output.manifest
और इसे गुणवत्ता नियंत्रण जांच के रूप में समीक्षा के लिए दूसरे, अधिक अनुभवी व्याख्याता के पास भेजना
कस्टम ग्राउंड ट्रूथ एनोटेशन टेम्प्लेट
इस दस्तावेज़ में वर्णित एनईआर एनोटेशन टूल को कस्टम ग्राउंड ट्रूथ एनोटेशन टेम्प्लेट के रूप में लागू किया गया है। AWS ग्राहक यहां दिए गए निर्देशों का उपयोग करके अपने स्वयं के कस्टम एनोटेशन इंटरफेस बना सकते हैं:
निष्कर्ष
साथ काम करके, Booking.com और Amazon MLSL एक शक्तिशाली टेक्स्ट एनोटेशन टूल विकसित करने में सक्षम थे जो जटिल नाम-इकाई पहचान और संबंध एनोटेशन बनाने में सक्षम है।
हम एडब्ल्यूएस ग्राहकों को एनईआर टेक्स्ट एनोटेशन यूज केस के साथ इस पोस्ट में वर्णित टूल को आजमाने के लिए प्रोत्साहित करते हैं। यदि आप अपने उत्पादों और सेवाओं में एमएल के उपयोग में तेजी लाना चाहते हैं, तो कृपया संपर्क करें अमेज़न मशीन लर्निंग सॉल्यूशंस लैब.
लेखक के बारे में
डैन नोबल अमेज़ॅन में एक सॉफ्टवेयर डेवलपमेंट इंजीनियर है जहां वह आनंदमय उपयोगकर्ता अनुभव बनाने में मदद करता है। अपने खाली समय में, उन्हें अपने परिवार के साथ पढ़ना, व्यायाम करना और रोमांच का आनंद लेना पसंद है।
प्री नॉनिस अमेज़ॅन एमएल सॉल्यूशंस लैब में एक डीप लर्निंग आर्किटेक्ट है, जहां वह विभिन्न वर्टिकल में ग्राहकों के साथ काम करता है, और उनकी क्लाउड माइग्रेशन यात्रा को तेज करने और अत्याधुनिक समाधानों और तकनीकों का उपयोग करके उनकी एमएल समस्याओं को हल करने में मदद करता है।
निहारिका जयंती AWS में फ्रंट एंड इंजीनियर है, जहां वह Amazon SageMaker ग्राहकों के लिए कस्टम एनोटेशन समाधान विकसित करती है। काम से बाहर, उसे संग्रहालयों में जाना और व्यायाम करना अच्छा लगता है।
अमित बेका में मशीन लर्निंग मैनेजर हैं Booking.com, सॉफ़्टवेयर विकास और मशीन लर्निंग में 15 से अधिक वर्षों के अनुभव के साथ। वह लोगों और भाषाओं से रोमांचित है, और कैसे कंप्यूटर अभी भी दोनों से भ्रमित हैं।
- '
- 100
- 11
- 7
- About
- पहुँच
- लेखा
- लेखांकन
- के पार
- कार्य
- इसके अलावा
- अतिरिक्त
- सब
- वीरांगना
- अमेज़ॅन मशीन लर्निंग
- अमेज़न SageMaker
- अस्पष्टता
- विश्लेषण
- क्षेत्र
- उपलब्ध
- सभी के लिए उपलब्ध है
- एडब्ल्यूएस
- शुरू
- जा रहा है
- निर्माण
- इमारत
- कौन
- मामलों
- वर्गीकरण
- बादल
- कोड
- संग्रह
- जटिल
- कंप्यूटर्स
- विन्यास
- विचार
- कंसोल
- सामग्री
- अंतर्वस्तु
- सका
- बनाना
- महत्वपूर्ण
- ग्राहक अनुभव
- ग्राहक
- तिथि
- ध्यान लगा के पढ़ना या सीखना
- विकसित करना
- डेवलपर
- विकास
- विभिन्न
- दस्तावेजों
- नहीं करता है
- आसानी
- प्रभाव
- ईमेल
- इमोजी
- प्रोत्साहित करना
- इंजीनियर
- आदि
- उदाहरण
- निष्पादन
- उम्मीद
- अनुभव
- अनुभव
- परिवार
- फेड
- प्रतिक्रिया
- फ़ील्ड
- अंत में
- प्रथम
- फिटनेस
- भोजन
- प्रारूप
- पाया
- पूर्ण
- समारोह
- gif
- जा
- अतिथि
- गाइड
- मदद
- मदद करता है
- यहाँ उत्पन्न करें
- हाइलाइट
- होटल
- कैसे
- How To
- HTTPS
- आई ए एम
- कार्यान्वित
- महत्वपूर्ण
- सहित
- अनुक्रमणिका
- व्यक्ति
- IT
- जावास्क्रिप्ट
- काम
- यात्रा
- कुंजी
- लेबलिंग
- लेबल
- भाषा
- भाषाऐं
- बड़ा
- प्रमुख
- जानें
- सीख रहा हूँ
- कानूनी
- स्तर
- स्तर
- लाइन
- LINK
- तरल
- सूची
- लिस्टिंग
- स्थानीय स्तर पर
- स्थान
- देख
- यंत्र अधिगम
- प्रबंध
- निशान
- बाजार
- मैच
- मेटा
- मन
- ML
- आदर्श
- अधिक
- संग्रहालय
- नामों
- प्राकृतिक भाषा
- प्राकृतिक भाषा संसाधन
- जरूरत
- NLP
- संख्या
- ऑफर
- ओफ़्सेट
- ऑनलाइन
- खुला
- खोलता है
- अवसर
- अन्य
- स्टाफ़
- मुहावरों
- मंच
- प्लेटफार्म
- नीतियाँ
- नीति
- पूल
- द्वार
- बाद महामारी
- शक्तिशाली
- मूल्य
- प्रिंसिपल
- निजी
- प्रक्रिया
- उत्पाद
- प्रोग्रामिंग
- प्रोग्रामिंग की भाषाएँ
- संपत्ति
- प्रदान करना
- प्रदान करता है
- अजगर
- गुणवत्ता
- प्रश्न
- पढ़ना
- रिश्ते
- आवश्यकताएँ
- संसाधन
- उपयुक्त संसाधन चुनें
- रेस्टोरेंट
- परिणाम
- की समीक्षा
- समीक्षा
- कमरा
- sagemaker
- बचत
- स्केल
- भावना
- भावुकता
- सेवाएँ
- सेट
- कम
- सरल
- So
- सॉफ्टवेयर
- सॉफ्टवेयर विकास
- समाधान ढूंढे
- हल
- अंतरिक्ष
- गति
- प्रारंभ
- कथन
- रहना
- भंडारण
- समर्थन
- लक्ष्य
- टेक्नोलॉजीज
- स्रोत
- पहर
- एक साथ
- tokenization
- टोकन
- साधन
- ऊपर का
- शीर्ष स्तर के
- ट्रैक
- परंपरागत
- प्रशिक्षण
- यात्रा
- उपचार
- व्यवहार करता है
- ट्रस्ट
- us
- उपयोगकर्ताओं
- मूल्य
- संस्करण
- देखें
- क्या
- अंदर
- काम
- काम किया
- श्रमिकों
- कार्यबल
- काम कर रहे
- व्यायाम करना
- कार्य
- विश्व
- दुनिया की
- होगा
- साल