जब LLM संरचित डेटा उत्पन्न करते हैं, तो वे प्रशंसनीय दिखने वाले तथ्य गढ़ सकते हैं। Entity Enricher 8 डिफ़ेंस लेयर का उपयोग करता है ताकि आपको सटीक डेटा मिले या कोई डेटा न मिले — कभी भी विश्वसनीय-लगने वाली कल्पना नहीं।
मुक्त पाठ में, एक मनगढ़ंत वाक्य स्पष्ट रूप से अस्पष्ट होता है। संरचित आउटपुट में, "founded_year": 1987 जैसा एक मनगढ़ंत field आधिकारिक दिखता है और इसे सही मान से अलग कर पाना लगभग असंभव है। तीन कारक इसे विशेष रूप से खतरनाक बनाते हैं:
एक hallucinated JSON मान बिल्कुल एक वास्तविक मान जैसा दिखता है। कोई हिचकिचाहट नहीं, कोई “लगभग” नहीं — बस एक साफ, आत्मविश्वासपूर्ण data बिंदु जो संयोगवश गलत है।
आवश्यक फ़ील्ड LLM को मान उत्पन्न करने के लिए बाध्य करते हैं, भले ही उसके पास कोई जानकारी न हो। model संरचना में अंतर छोड़ने के बजाय डेटा गढ़ लेता है।
संरचित डेटा सीधे डेटाबेस, एनालिटिक्स और ऑटोमेशन में जाता है। एक गलत मान बिना मानवीय समीक्षा के पाइपलाइनों में फैल जाता है।
| पैटर्न | उदाहरण | कारण |
|---|---|---|
| आत्मविश्वास के साथ गढ़ी गई जानकारी | "ceo": "John Smith" | LLM आवश्यक फ़ील्ड को किसी संभावित नाम से भर देता है |
| कालिक भ्रम | "revenue": "$2.3B" | ट्रेनिंग डेटा कटऑफ़ या अवधियों का घालमेल |
| Entity कॉन्फ़्लेशन | Company A से एट्रिब्यूट्स Company B पर | ओवरलैपिंग ट्रेनिंग डेटा में मिलते-जुलते नाम |
| उचित डिफ़ॉल्ट | "employees": 500 | LLM अज्ञानता स्वीकारने के बजाय कोई “उचित” संख्या चुन लेता है |
| मनगढ़ंत संबंध | "subsidiary_of": "Alphabet" | LLM एक ऐसे संबंध का अनुमान लगाता है जो मौजूद ही नहीं है |
इनमें से कई पैटर्न मॉडल से नहीं, बल्कि स्कीमा से जुड़े होते हैं: revenue जैसी प्रॉपर्टी मुद्रा, अवधि और समूह-या-एंटिटी स्कोप — सब खुला छोड़ देती है, और ऐसी किसी चीज़ का नाम जो एंटिटी के पास है ही नहीं, मॉडल को खोजने के लिए कुछ भी नहीं देता। अस्पष्टता जाँच दोनों स्थितियों को चिह्नित करती है, उन अर्थों को गिनाती है जो वह प्रॉपर्टी स्वीकार करती है, और वह नाम-परिवर्तन या विवरण सुझाती है जो ठीक एक अर्थ को तय कर देता है।
Entity Enricher किसी एकल तकनीक पर निर्भर नहीं करता। यह 8 स्वतंत्र रक्षा परतों को एक-दूसरे पर स्टैक करता है, प्रत्येक एक अलग विफलता मोड को लक्षित करती है। यदि एक परत किसी हैलुसिनेशन को चूक जाती है, तो अगली उसे पकड़ लेती है।
एनरिचमेंट शुरू होने से पहले, एक तेज़ LLM यह क्लासिफाई करता है कि एंटिटी स्कीमा टाइप से मेल खाती है या नहीं। यह स्रोत पर ही पूरी-एंटिटी हैलुसिनेशन को रोकता है।
उदाहरण: “Planet” स्कीमा के विरुद्ध “Titan” को एक चंद्रमा के रूप में चिह्नित किया जाता है — संवर्धन मॉडल यह संदर्भ प्राप्त करते हैं और ग्रह-विशिष्ट फ़ील्ड के लिए null का उपयोग करते हैं।
सभी रणनीतियाँ LLM को यह निर्देश देती हैं: "सटीक और सतर्क रहें — कभी कोई मान न गढ़ें।" मॉडल उन फ़ील्ड्स को घोषित करता है जिन्हें वह निर्धारित नहीं कर सका, बजाय प्लेसहोल्डर भरने के, और वे घोषणाएँ आउटपुट में ईमानदार null बन जाती हैं।
यह सीधे schema दबाव को संबोधित करता है — structured hallucination का #1 कारण। एक घोषित अज्ञात असली उत्तरों को भी स्पष्ट करता है: एक 0 जिसे मॉडल समर्थन देता है वह डेटा है, एक घोषित 0 नहीं।
स्कीमा प्रॉपर्टीज़ विशेषज्ञता क्षेत्र के अनुसार समूहीकृत होती हैं। प्रत्येक LLM कॉल केवल अपने क्षेत्र के फ़ील्ड देखती है, और केवल उसी क्षेत्र पर ध्यान केंद्रित करने के निर्देश के साथ।
संकीर्ण दायरा मतलब मतिभ्रम का कम अवसर। एक वित्तीय विशेषज्ञ नियामक डेटा के बारे में कभी अनुमान नहीं लगाता।
कुंजी गुण (is_key: true के रूप में चिह्नित) को प्रॉम्प्ट में हाइलाइट किया जाता है ताकि अन्य फ़ील्ड भरने से पहले LLM को पहचान संबंधी जानकारी पर केंद्रित किया जा सके।
यह मॉडल को ज्ञात तथ्यों पर आधारित करता है, जिससे गढ़े हुए विवरणों की ओर ड्रिफ़्ट कम होती है।
एनरिचमेंट आउटपुट को स्कीमा के टाइप, फ़ॉर्मैट और स्ट्रक्चर के विरुद्ध वैलिडेट किया जाता है। फ़ेल होने पर ModelRetry ट्रिगर होता है — संबंधित एरर सुधार के लिए LLM को वापस भेजा जाता है, और मरम्मत सर्जिकल होती है: सिर्फ़ वही लीफ़्स दोबारा पूछी जाती हैं जो गलत आई थीं, पूरा उत्तर नहीं।
एक ही एजेंट रन में अधिकतम 5 स्वतः सुधार प्रयास। (स्कीमा जनरेशन खुद को अलग तरीके से सुधारता है — हर स्टेप पर, डिटर्मिनिस्टिक फ़ॉलबैक के साथ।)
preserve: true के रूप में चिह्नित फ़ील्ड (IDs, SKUs, import identifiers) को enrichment के बाद उनके मूल इनपुट मानों पर बहाल कर दिया जाता है — LLM ग्राउंड ट्रुथ डेटा को अधिलेखित नहीं कर सकता। enrichment requests को हर preserve किए गए फ़ील्ड के लिए एक मान प्रदान करना होगा, ताकि कुछ भी कभी null पर पिन या आविष्कृत न हो।
arrays के अंदर, enriched आइटम को उनके key फ़ील्ड के आधार पर आपके इनपुट आइटम से मिलाया जाता है; AI द्वारा खोजे गए आइटम को आविष्कृत identifier के बजाय null मिलता है।
एक ही एंटिटी को 2+ स्वतंत्र मॉडल के माध्यम से चलाना और आउटपुट की फ़ील्ड-दर-फ़ील्ड तुलना करना। असहमतियों को संभावित हैलुसिनेशन के रूप में चिह्नित किया जाता है।
यदि Claude कहता है कि राजस्व $2.3B है और GPT-4 कहता है $1.8B — तो वह टकराव पहचाना जाता है और सामने लाया जाता है।
पहचाने गए विरोध नियम-आधारित मतदान (बहुमत, माध्यिका, संघ) द्वारा या एक समर्पित LLM arbitrator द्वारा हल किए जाते हैं जो सटीकता, पूर्णता और संगति का मूल्यांकन करता है।
हर arbitration निर्णय में तर्क और कॉन्फ़िडेंस स्तर शामिल होता है — यह पूरी पारदर्शिता देता है कि टकराव कैसे हल किए गए।
मुख्य सिद्धांत
गलत डेटा की तुलना में अनुपस्थित डेटा हमेशा बेहतर होता है। हर परत इस सिद्धांत को मज़बूत करती है — सिस्टम को इस तरह डिज़ाइन किया गया है कि वह किसी प्रशंसनीय-प्रतीत होने वाली मनगढ़ंत जानकारी के बजाय null लौटाए।