हर एनरिचमेंट जो सिमेंटिक ID हल करती है, या तो आपके संगठन को पहले से ज्ञात किसी कॉन्सेप्ट का दोबारा उपयोग करती है या एक नया बनाती है। सिमेंटिक IDs पेज वह जगह है जहाँ यह बढ़ती हुई शब्दावली देखने लायक चीज़ बन जाती है: उसे ब्राउज़ करें, मापें कि दो प्रविष्टियाँ वाकई कितनी करीब हैं, हाथ से शब्द जोड़ें, आइडेंटिटी जज द्वारा आपके लिए छोड़े गए सवालों के जवाब दें, जो अब नहीं चाहिए उसे रिटायर करें, और पूरी चीज़ को किसी दूसरे एम्बेडिंग मॉडल पर ले जाएँ।
यह साइडबार में /semantic-ids पर मिलता है, और यह तभी उपयोगी है जब आपके संगठन के पास एक एम्बेडिंग मॉडल हो और कम से कम एक ऐसा स्कीमा हो जिसमें सिमेंटिक ID हो — कॉन्सेप्ट एनरिचमेंट से बनते हैं, इस पेज से नहीं।
हर पंक्ति एक concept है: उसका canonical text (वह पहचान-टेक्स्ट जिसने उसे सबसे पहले बनाया), उसका concept type (वह स्पेस जिसमें वह रहता है — डिफ़ॉल्ट रूप से entity type का नाम), कितने record उसका उपयोग करते हैं, और वह कब बनाया गया था। टेक्स्ट से, किसी भी संख्या में concept types से, उनमें लिखने वाले schemas से, या न्यूनतम उपयोग से फ़िल्टर करें और वही एंट्रीज़ ढूँढ़ें जो आपके ध्यान के लायक हैं। schemas चुनना उनके concept types चुनने का शॉर्टकट है — और चूँकि type साझा होता है, इसलिए यह उसी type में किसी दूसरे schema द्वारा बनाए गए concepts भी दिखाता है। व्यू एक्सपोर्ट करें ठीक वही डाउनलोड करता है जो फ़िल्टर दिखा रहे हैं।
समानता केवल एक ही स्पेस के भीतर मापी जाती है। वेक्टर केवल एक ही कॉन्सेप्ट टाइप और एम्बेडिंग मॉडल के भीतर तुलना योग्य होते हैं। चयनित कॉन्सेप्ट के स्पेस से बाहर की पंक्तियाँ — दिखाती हैं, जिसका अर्थ है “तुलना योग्य नहीं” — कभी भी “0%” नहीं।
कभी-कभी डेटा आने से पहले ही आपको शब्दावली पता होती है — व्यंजनों, स्टेटस या प्रोडक्ट फ़ैमिली की सूची। क्यूरेट बार इसी सूची को टाइप करने के लिए ही बना है: एक बार इसे किसी concept type तक सीमित कर दें — यह scope पेज के पते में चला जाता है, इसलिए /semantic-ids/<concept type> सीधे उसी हिस्से का लिंक होता है — फिर वैल्यू टाइप करें → Check → Add दोहराते रहें। Enter जाँचता है, दूसरा Enter जोड़ देता है, और फ़ील्ड ख़ाली होकर focus बनाए रखता है, इसलिए पचास शब्दों की शब्दावली बिना माउस छुए कुछ ही मिनटों की टाइपिंग है।
जाँच असली रेज़ोल्यूशन लैडर का एक ड्राई रन है — वही जो कोई एनरिचमेंट चलाती है — इसलिए इसका फ़ैसला कोई अनुमान नहीं है। और चूँकि आप उस फ़ैसले का भुगतान कर ही चुके हैं, यह डुप्लिकेट गार्ड का काम भी करता है: जब कोई मौजूदा कॉन्सेप्ट आपके टेक्स्ट को थ्रेशोल्ड पर या उससे ऊपर कवर करता है, तो कॉन्सेप्ट जोड़ें निष्क्रिय रहता है।
यह इनकार जानबूझकर है: थ्रेशोल्ड से ऊपर मौजूद कोई जुड़वाँ कभी कोई रिज़ॉल्यूशन नहीं जीत पाएगा, और भविष्य के मैच दोनों एंट्री के बीच अप्रत्याशित रूप से बँट जाएँगे। फ़ील्ड के बगल वाला थ्रेशोल्ड स्लाइडर तय करता है कि आपकी जाँचों के लिए यह रेखा कहाँ हो — सख़्त होने के लिए इसे बढ़ाएँ, ज़्यादा आक्रामक तरीके से मर्ज करने के लिए घटाएँ।
शब्दावली का किसी एनरिचमेंट से शुरू होना भी ज़रूरी नहीं है: नया कॉन्सेप्ट प्रकार… (पेज टूलबार, एडिटर और उससे ऊपर) एक प्रकार को नाम देता है और वह embedding मॉडल चुनता है जिसमें उसके कॉन्सेप्ट रहेंगे — डिफ़ॉल्ट रूप से आपके संगठन का मॉडल। क्यूरेट बार तुरंत उसी तक सीमित हो जाता है, और आप जो पहला कॉन्सेप्ट जोड़ते हैं उसके साथ यह प्रकार शब्दावली में जुड़ जाता है; जो प्रकार पहले से मौजूद है वह अपना मॉडल बनाए रखता है, क्योंकि किसी शब्दावली को एक मॉडल से दूसरे मॉडल में ले जाना ही माइग्रेशन का काम है।
समीक्षा में कोई चीज़ सिर्फ़ मिलती-जुलती दिखने भर से नहीं आती। यहाँ हर जोड़ी वह है जिसे आइडेंटिटी जज ने तय करके आपके लिए छोड़ा है: वह बता नहीं सका (अनिश्चित), उसे आपके दो कॉन्सेप्ट एक ही आने वाले टेक्स्ट के बराबर मिले (डुप्लिकेट लगता है), या उसने दो ऐसे कॉन्सेप्ट अलग रखे जो लगभग एक जैसे मापे गए (अलग रखा गया) — आख़िरी वाला इसलिए दिखाया जाता है ताकि आप पुष्टि कर सकें कि उसने कोई स्पष्ट कैंडिडेट नज़रअंदाज़ नहीं किया। हर पंक्ति में जज का अपना वाक्य होता है जो बताता है कि फ़ैसला किस आधार पर हुआ।
तुलना करें → उस कॉन्सेप्ट को चुने हुए के साथ आपको वापस टेबल पर ले जाता है, ताकि फ़ैसला लेने से पहले आप देख सकें कि उसके आस-पास और क्या है। मर्ज करें… एक को दूसरे में मिला देता है — हारने वाले की वर्तनियाँ जीतने वाले के उपनाम बन जाती हैं, जिससे यह जोड़ी हर जगह एक हो जाती है और एक ही बनी रहती है। खारिज करें इस सवाल को बंद कर देता है, जब दोनों वाकई दो अलग चीज़ें हों। उपयोग की संख्या बताती है कि डेटा असल में दोनों में से किसे पसंद करता है।
दाईं ओर का पैनल कॉन्सेप्ट का ID दिखाता है (कॉपी करने योग्य — आपका डेटाबेस इसी पर जॉइन करता है), उसका नॉर्मलाइज़्ड टेक्स्ट, उसके पीछे का एम्बेडिंग मॉडल, और वे रिकॉर्ड जो इससे रिज़ॉल्व हुए। चुना गया कॉन्सेप्ट पेज के पते का हिस्सा होता है, इसलिए आपके एड्रेस बार का URL सीधे उसी पर लौटने वाला लिंक है — सहकर्मी के साथ साझा करने योग्य, या किसी टिकट में रखने लायक। दो व्यू इसे इसके पड़ोसियों के बीच रखकर दिखाते हैं।
1536 आयामों को 3 में समेटने पर दूरियाँ बरकरार नहीं रह सकतीं, और लेआउट क्लस्टरों को ज़रूरत से ज़्यादा सघन दिखाता है। दोनों व्यू हर बिंदु को एक ही समानता स्केल से रंगते हैं, इसलिए रंग पढ़ें, दूरी नहीं। किसी सत्र का पहला मैप बनने में कुछ सेकंड लगते हैं; उसके बाद वाले तुरंत तैयार होते हैं।
हर लिंक किया गया रिकॉर्ड वह स्कोर दिखाता है जिस पर वह यहाँ रिज़ॉल्व हुआ। — का मतलब है कि ID इनपुट में ही आया था और उसे वैसे ही आगे भेज दिया गया, इसलिए कभी कोई तुलना हुई ही नहीं — सिमैंटिक-ID गाइड में बताया गया मुफ़्त और स्पष्ट रास्ता।
इम्पोर्ट और रिज़ॉल्व पूरे CSV कॉलम को उसी ladder से गुज़ारता है और हर row पर बताता है कि उसके साथ क्या होगा — फ़ाइल के आकार की कोई सीमा नहीं है; बड़ी फ़ाइलें 1000 के batch में लाइव प्रगति के साथ रिज़ॉल्व होती हैं। फ़ाइल आपके ब्राउज़र में ही parse होती है — केवल values ही भेजी जाती हैं।
| परिणाम | इसका क्या मतलब है |
|---|---|
exact | वही टेक्स्ट, नॉर्मलाइज़ करने पर, पहले से मौजूद है — निःशुल्क, कोई मॉडल कॉल नहीं। |
matched | एक अलग शब्दरचना थ्रेशोल्ड से ऊपर किसी मौजूदा कॉन्सेप्ट पर रिज़ॉल्व हो गई। |
would_mint | कुछ भी पर्याप्त निकट नहीं था; यहाँ एनरिचमेंट एक नया कॉन्सेप्ट बनाएगा। |
minted | वही स्थिति, निर्माण चालू करके — अब कॉन्सेप्ट मौजूद है (केवल स्वामी)। |
कॉन्सेप्ट टाइप टाइप किया जाता है, चुना नहीं जाता। किसी शब्दावली की शुरुआत करने के लिए फ़ाइल पूरी तरह सामान्य तरीका है, इसलिए यह फ़ील्ड आपके पास पहले से मौजूद स्पेस सुझाता है और साथ ही ऐसा नाम भी स्वीकार करता है जो आपके पास नहीं है — और जब नाम सचमुच नया हो तोनया दिखाता है। नया नाम वही एक सवाल पूछता है जो बाद में नहीं पूछा जा सकता: उसके कॉन्सेप्ट किस एम्बेडिंग मॉडल में रहेंगे। इसका जवाब यहीं दें और यह स्पेस उस पहली वैल्यू के साथ बन जाएगा जिसे इंपोर्ट मिंट करेगा; इसके बाद शब्दावली को एक मॉडल से दूसरे में ले जाना एक माइग्रेशन होता है।
दो चीज़ें एक छोटी-सी चूक को दूसरी शब्दावली बनने से रोकती हैं: आपके पास पहले से मौजूद किसी स्पेस का नाम टाइप करने पर वही चुन लिया जाता है, कैपिटलाइज़ेशन चाहे जो हो, और मौजूदा नाम से एक-दो अक्षर दूर के नाम को एक-क्लिक सुधार के साथ चिह्नित कर दिया जाता है। सचमुच नए स्पेस के मुक़ाबले तुलना के लिए कुछ होता ही नहीं, इसलिए सिर्फ़-मिलान वाला रन बिना एक भी पंक्ति एम्बेड किए जवाब देता है कि “हर वैल्यू बनाई जाएगी” — और इसके लिए कोई शुल्क नहीं लेता।
रिज़ॉल्व हुई पंक्तियाँ अपनी अलग CSV के रूप में डाउनलोड होती हैं, इसलिए इम्पोर्ट को सिर्फ़ ऑडिट के तौर पर भी इस्तेमाल किया जा सकता है: हमारे 900 सप्लायर नामों में से कौन-से पहले से ज्ञात हैं, और कौन-से नई पहचान बनाएँगे? एक्सपोर्ट उल्टी दिशा में काम करते हैं और फ़ाइल का नाम उन फ़िल्टरों पर रखते हैं जिनके साथ उन्हें लिया गया था, ताकि उनका फ़ोल्डर ख़ुद अपनी व्याख्या करता रहे।
यहाँ डिलीट करना उस तरह सुरक्षित है जैसा ज़्यादातर डेटा विलोपन नहीं होते: शब्दावली खुद को फिर से बना लेती है, क्योंकि अगली एनरिचमेंट को जो चाहिए वह दोबारा गढ़ लेती है। जो वापस नहीं आता, वह है आपके पहले से संग्रहीत ID के साथ अभिसरण, और पुष्टि करने से पहले डायलॉग असली गिनती के साथ यह बता देता है।
ऐसे बदलाव के बाद पुराने कॉन्सेप्ट को बनाए रखना सतर्क नहीं, बल्कि जोखिम भरा विकल्प है: नई कुंजियों से बनी पहचानें अब भी पुराने वेक्टरों के थ्रेशोल्ड के भीतर आ सकती हैं और चुपचाप उनमें समा सकती हैं, जिससे आपके पास ऐसे ID रह जाएँगे जिनका मतलब न यह होगा, न वह।
दो अलग-अलग मॉडलों के वेक्टर आपस में तुलनीय नहीं होते, इसलिए मॉडल बदलने का मतलब है हर कॉन्सेप्ट को दोबारा एम्बेड करना। कॉन्सेप्ट बन जाने के बाद, यह माइग्रेशन ही ऐसा करने का एकमात्र स्वीकृत तरीका है — और यही वजह है कि संगठन की एम्बेडिंग-मॉडल सेटिंग अपने आप नहीं बदलती।
प्रीव्यू बताता है कि री-एम्बेडिंग की लागत क्या होगी, और कौन-से कॉन्सेप्ट जोड़े टकरा सकते हैं — यानी नए स्पेस में एक-दूसरे के थ्रेशोल्ड के भीतर आ जाएँ और साथ-साथ रिज़ॉल्व होने लगें। यह हर जोड़े के बजाय वास्तविक उम्मीदवारों को मापता है, और यह बात बताता भी है।
जब तक नए वेक्टर साथ-साथ बनते रहते हैं, एनरिचमेंट पुराने स्पेस में ही रिज़ॉल्व होती रहती हैं; इस बीच गढ़े गए कॉन्सेप्ट बाद के एक पास में शामिल कर लिए जाते हैं। स्विच अंत में एक ही चरण में होता है, जो आपके संगठन का डिफ़ॉल्ट एम्बेडिंग मॉडल भी बदल देता है। इसे बीच में रोकना हानिरहित है — दोबारा शुरू करने पर यह वहीं से आगे बढ़ता है जहाँ रुका था।
जाँच, जोड़ना और इम्पोर्ट किसी भी अन्य एम्बेडिंग उपयोग की तरह ही बिल किए जाते हैं, और एकदम सटीक मैच पर कुछ खर्च नहीं होता क्योंकि वे कभी किसी मॉडल तक पहुँचते ही नहीं। ब्राउज़िंग, तुलना, ऑर्बिट, 3D मैप, एक्सपोर्ट और डिलीट मुफ़्त हैं। एक दिन का पूरा इंटरैक्टिव खर्च आपके क्रेडिट इतिहास में एक ही पंक्ति में जोड़ दिया जाता है, ताकि लेजर सेंट के अंशों से भरने के बजाय पढ़ने लायक बना रहे।