टेक्स्ट एम्बेड करने की गाइड

MediaPipe टेक्स्ट एम्बेडर टास्क की मदद से आप टेक्स्ट डेटा को संख्यात्मक रूप में दिखा सकते हैं, ताकि इसका सिमैंटिक मतलब कैप्चर किया जा सके. इस सुविधा का इस्तेमाल अक्सर टेक्स्ट के दो हिस्सों के सिमैंटिक समानता की तुलना करने के लिए किया जाता है. इसके लिए, कोसाइन एक जैसी गणित की तकनीकों का इस्तेमाल किया जाता है, जैसे कि कोसाइन समानता. यह टास्क मशीन लर्निंग (एमएल) मॉडल वाले टेक्स्ट डेटा पर काम करता है और टेक्स्ट डेटा को हाई-डाइमेंशन फ़ीचर वेक्टर की सूची के रूप में संख्यात्मक रूप में दिखाता है. इसे फ़्लोटिंग-पॉइंट या संख्या के मुताबिक फ़ॉर्मैट में, एम्बेडिंग वेक्टर भी कहा जाता है.

इसे आज़माएं!

शुरू करें

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

टास्क की जानकारी

इस सेक्शन में इस टास्क की क्षमताओं, इनपुट, आउटपुट, और कॉन्फ़िगरेशन के विकल्पों के बारे में बताया गया है.

सुविधाएं

  • इनपुट टेक्स्ट प्रोसेसिंग - यह ऐसे मॉडल के लिए आउट-ऑफ़-ग्राफ़ टोकनाइज़ेशन की सुविधा देता है जिनमें इन-ग्राफ़ टोकनाइज़ेशन नहीं है.
  • एम्बेडिंग समानता की गणना - दो फ़ीचर वेक्टर के बीच कोसाइन समानता का पता लगाने के लिए, पहले से मौजूद यूटिलिटी फ़ंक्शन.
  • क्वांटाइज़ेशन - फ़ीचर वेक्टर के लिए स्केलर क्वांटाइज़ेशन की सुविधा काम करती है.
टास्क के इनपुट टास्क के आउटपुट
टेक्स्ट एम्बेडर इस इनपुट डेटा टाइप को स्वीकार करता है:
  • स्ट्रिंग
टेक्स्ट एम्बेडर, एम्बेड किए गए लिंक की एक सूची दिखाता है. इस सूची में ये शामिल हैं:
  • एम्बेड करना: फ़ीचर वेक्टर खुद को फ़्लोटिंग-पॉइंट फ़ॉर्म में या स्केलर-क्वांट वाला फ़ॉर्मैट में होना चाहिए.
  • हेड इंडेक्स: उस हेड का इंडेक्स जिससे यह एम्बेड किया गया था.
  • हेड का नाम (ज़रूरी नहीं): उस हेड का नाम जिसने यह एम्बेड किया है.

कॉन्फ़िगरेशन के विकल्प

इस टास्क में कॉन्फ़िगरेशन के ये विकल्प हैं:

विकल्प का नाम ब्यौरा वैल्यू रेंज डिफ़ॉल्ट मान
l2_normalize रिटर्न किए गए फ़ीचर वेक्टर को L2 स्टैंडर्ड के साथ सामान्य बनाना है या नहीं. इस विकल्प का इस्तेमाल सिर्फ़ तब करें, जब मॉडल में पहले से ही कोई नेटिव L2_NORMALIZATION TFLite Op मौजूद न हो. ज़्यादातर मामलों में, ऐसा पहले से ही होता है और L2 नॉर्मलाइज़ेशन को TFLite अनुमान के ज़रिए पूरा किया जाता है. इसके लिए, इस विकल्प की कोई ज़रूरत नहीं होती. Boolean False
quantize दिखाए गए एम्बेड किए गए मैसेज को स्केलर क्वांटाइज़ेशन के ज़रिए बाइट में मापा जाना चाहिए या नहीं. एम्बेड किए गए डाइमेंशन को यूनिट-नर्म माना जाता है. इसलिए, किसी भी डाइमेंशन की वैल्यू [-1.0, 1.0] में होने की गारंटी होती है. अगर ऐसा नहीं है, तो l2_normalize विकल्प का इस्तेमाल करें. Boolean False

मॉडल

जब आप इस टास्क के साथ डेवलप करना शुरू करते हैं, तब हम डिफ़ॉल्ट के तौर पर सुझाया गया मॉडल ऑफ़र करते हैं.

यह मॉडल, ड्यूअल एन्कोडर आर्किटेक्चर का इस्तेमाल करता है. इसे सवाल-जवाब वाले अलग-अलग डेटासेट पर ट्रेनिंग दी गई थी.

वाक्यों के इन जोड़ों पर ध्यान दें:

  • ("यह एक दिलचस्प और अक्सर असर डालने वाला सफ़र है", "बहुत बढ़िया और शानदार यात्रा")
  • ("मुझे अपना फ़ोन पसंद है", "मुझे अपने फ़ोन से नफ़रत है")
  • ("इस रेस्टोरेंट में कोई एक शानदार नकल है", "हमें अपने प्लान की जानकारी दोबारा जांचनी होगी")

पहले दो जोड़े में एम्बेड किए गए टेक्स्ट की कोसाइन (cos) की समानता, तीसरे जोड़े में एम्बेड किए गए टेक्स्ट से ज़्यादा होगी. ऐसा इसलिए, क्योंकि वाक्यों के पहले दो जोड़े "यात्रा से जुड़ी भावना" और "फ़ोन की राय" एक ही विषय को शेयर करते हैं, जबकि तीसरे जोड़े के वाक्य कोई सामान्य विषय शेयर नहीं करते.

ध्यान दें कि दूसरी जोड़ी के दो वाक्यों में विरोधी भावनाएं हैं. हालांकि, उनका स्कोर ज़्यादा है, क्योंकि उनका विषय एक जैसा है.

मॉडल का नाम इनपुट का आकार क्वांटाइज़ेशन का टाइप वर्शन
यूनिवर्सल वाक्य एन्कोडर स्ट्रिंग, स्ट्रिंग, स्ट्रिंग कोई नहीं (फ़्लोट32) नए

टास्क के मानदंड

यहां पहले से ट्रेन किए गए मॉडल पर आधारित पूरी पाइपलाइन के लिए टास्क के मानदंड दिए गए हैं. इंतज़ार के समय का नतीजा यह पता चलता है कि Pixel 6 को सीपीयू / जीपीयू का इस्तेमाल करके औसतन इंतज़ार किया जा सकता है.

मॉडल का नाम सीपीयू (CPU) के इस्तेमाल में होने वाला समय जीपीयू इंतज़ार का समय
यूनिवर्सल वाक्य एन्कोडर 18.21 मि॰से॰ -