LLM का उपयोग कर एक जेव-शैली निर्णय मॉडल बनाएँ
यह विधि लॉजिट पूर्वाग्रह और लॉगप्रोब्स का उपयोग एक प्रीफिल पास में LLM स्कोर फिक्स्ड लेबल बनाने के लिए करती है, जिससे टेक्स्ट उत्पन्न किए बिना एजेंटिक रूटिंग लागत कम हो जाती है।
मुख्य बिंदु
- लॉजिट पूर्वाग्रह और लॉगप्रोब्स का उपयोग एक LLM को एकल-पास निर्णय मॉडल में बदलने के लिए करें जो पाठ या पुनः प्रशिक्षण उत्पन्न किए बिना उपकरण, श्रेणियों, या रूटिंग लक्ष्यों जैसे निश्चित लेबल स्कोर करता है।
- टोकन-दर-टोकन पीढ़ी एजेंटिक विकल्पों के लिए अक्षम है; विधि प्रीफिल के दौरान एक बार संकेत पढ़ती है और सिस्टम-एक शैली निर्णय चरण में अनुमत लेबल के लिए स्कोर लौटाता है।
- लेबल-केवल सॉफ्टमैक्स स्कोर को लेबल लॉजिट्स में एक साझा पूर्वाग्रह जोड़कर पुनर्प्राप्त किया जा सकता है, जो सही संभावनाओं के लिए आवश्यक सापेक्ष स्कोर अंतराल को संरक्षित करते हुए शीर्ष-के लॉगप्रोब्स में लेबल्स को मजबूर करता है।
- TensorRT Edge-LLM पर व्यावहारिक उपयोग के लिए मॉडल टोकनाइज़र आईडी से मेल खाने की आवश्यकता होती है, लॉजिट बायस सीमाओं का सम्मान करना, top_k को top_logprobs से अलग करना और संख्यात्मक और सर्वर साइड प्रिंटिंग प्रभावों को संभालने के लिए लौटाए गए स्कोर को पुनः सामान्य बनाना।
मेटा विवरण: नियमों, सीमाओं और विफलता के मामलों की जांच के साथ एलएलएम को एकल-पास निर्णय मॉडल में बदलने के लिए TensorRT Edge-LLM में लॉजिट पूर्वाग्रह और लॉगप्रोब का उपयोग करें।
टैगः LLM रूटिंग, TensorRT Edge-LLM, लॉजिट पूर्वाग्रह, लॉगप्रोब्स, एजेंटिक सिस्टम
चित्रः लेबल, स्कोर बार और एक तीर का अमूर्त चित्रण; कोई लोग, लोगो या पाठ नहीं।
TensorRT Edge-LLM पर एजेंटिक सिस्टम बनाने वाली टीमों के लिए, यह विधि एक सिंगल पास निर्णय मॉडल बनाती हैः एक प्रॉम्प्ट पढ़ा जाता है, एक स्कोर सेट होता है, कोई उत्पन्न पाठ नहीं। यह टूल नाम, श्रेणियां या रूटिंग लक्ष्य जैसे सामान्य LLM स्कोर फिक्स्ड लेबल बनाने के लिए लॉजिट पूर्वाग्रह और लॉगप्रॉब्स का उपयोग करता है। इसे किसी प्रशिक्षण की आवश्यकता नहीं होती है, और बिल्डर्स के लिए यह टेक्स्ट जनरेशन की दोहराई गई कंप्यूटिंग लागत को कम कर सकता है।
टोकन-दर-टोकन विकल्प धीमे क्यों होते हैं
एजेंटिक सिस्टम समय से पहले ज्ञात सूचियों में से चुनते हैं। वे यह तय करते हैं कि कौन सा टूल कॉल करना है, अनुरोध किस श्रेणी में आता है या संदेश कहां जाना चाहिए। एक LLM अभी भी एक टेक्स्ट जनरेटर है। यह एक बार में एक टोकन उत्सर्जित करता है, और प्रत्येक टोकन को दूसरे मॉडल पास की आवश्यकता होती है। यहां तक कि {"टूल": "सर्च_डॉक्स"} जैसे संरचित उत्तर के लिए लगभग दस टोकन लगते हैं, इसलिए एक साधारण विकल्प दस अनुक्रमिक पासों का भुगतान करता है।
एक प्रणाली-एक निर्णय मॉडल उस लागत से बचता है। यह नाम काहेनमैन की दो प्रणालियों से उधार लिया गया हैः सिस्टम एक एक नज़र में जवाब देता है, जबकि सिस्टम दो कदम दर कदम कारण देते हैं। जेव शैली के निर्णय मॉडल पहले तरीके से काम करता है। इसे संकेत और अनुमत उत्तर प्राप्त होते हैं, संकेत को एक बार पढ़ते हैं, और प्रत्येक उत्तर के लिए एक स्कोर लौटाते हैं। वह रीडिंग पास प्रीफिल है, और यह एकमात्र गणना है।
लॉजिट से लेबल-केवल निर्णय तक
एक LLM प्रत्येक शब्दावली टोकन को कच्चे स्कोर, या लॉजिट असाइन करता है। बड़े लॉजिट्स चयन को अधिक संभावना बनाते हैं। फिर यह सॉफ्टमैक्स द्वारा किए गए संभाव्यता वितरण से नमूने लेता हैः प्रत्येक लॉगिट को एक्सपोनेंशियलाइज़ करें, फिर सभी एक्सपोन्शिएटेड लॉगिट्स के योग से विभाजित करें।
वास्तविक शब्दावली लगभग 150,000 टोकन है, इसलिए दुर्लभ टोकन 10^-44 के करीब संभावनाएं प्राप्त कर सकते हैं। ये मान विश्वसनीय कंप्यूटर अंकगणित के लिए बहुत छोटे हैं, इसलिए मॉडल लॉगप्रॉब्स या लॉग संभाव्यताओं का उपयोग करता है। लघुगणक लेना 10 ^ -44 को लगभग -101 में बदल देता है।
सॉफ्टमैक्स का लॉग प्रत्येक लॉगप्रोब को मूल स्कोर माइनस एक साझा संख्या में बदल देता है। 3, 2, 1 और 0 के साथ चार टोकन, "द", "ए", "बी" और "सी" की एक खिलौना शब्दावली में, घातीय स्कोर 31.19 तक पहुंचते हैं, और इसका लॉग 3.440 होता है। हर लॉगप्राब स्कोर घटाता है 3.440, इसलिए स्कोर और लॉगप्रेब्स के बीच अंतराल समान होते हैं।
एक निर्णय मॉडल केवल अनुमत लेबलों के बारे में परवाह करता है। यदि टिकट को ए, बी या सी जाना चाहिए, तो वे लेबल हैं, जबकि "द" बाकी सब कुछ के लिए खड़ा है। वांछित मूल्य केवल लेबल्स पर सॉफ्टमैक्स हैः q_i = exp(z_i) लेबलों की राशि से विभाजित किया गया exp ((z_j). खिलौना स्कोर के साथ, A, B और C e ^ 2, e ^ 1, और e ^ 0, या 7.39, 2.72 और 1.00 । वे 11.11 तक योग करते हैं, इसलिए q (A) = 0.665, q (B) = [10), और q (C) = 0.090। सामान्य संभावनाओं से समान संख्या दिखाई देती हैः 0.237 / (0.237 + 0.087 0.032) = 0.665. q एक सशर्त संभाव्यता है, सटीकता नहीं। यह कमजोर द्रव्यमान लेबल छिपा सकता हैः खिलौने में, लेबल केवल एक साथ प्राप्त हुए 0.356, जबकि "The received"0.644
एक साझा सिर शुरू के साथ खिड़की में लेबल लाओ
कम्प्यूटिंग q को लेबल के स्कोर या लॉगप्रोब की आवश्यकता होती है। सर्वर केवल शीर्ष N संभावित टोकन के लिए लॉगपॉब्स वापस करते हैं, सभी नहीं 150,000 । खिलौना में, एन = 3 "द", ए और बी लौटाता है, इसलिए सी अदृश्य होता है। एक वास्तविक मॉडल में, लेबल 21 वें, 11 वें और 23 वें स्थान पर हो सकते हैं, जैसे कि उनके ऊपर "द ", "आई" या "सुअर"। एक बड़ी खिड़की तभी मदद करती है जब कॉल करने वाला जानता है कि लेबल कितने गहरे बैठते हैं, और रनटाइम इसे 50 पर कैप्स करता है।
फिक्स यह है कि प्रत्येक लेबल स्कोर में एक ही बड़ी संख्या, सी जोड़ें और अन्य टोकन को अकेला छोड़ दें। अधिकांश सर्वर इसे लॉजिट पूर्वाग्रह के रूप में उजागर करते हैं। c = 100 के साथ, लेबल हर दूसरे टोकन से ऊपर कूदते हैं, इसलिए लेबल गणना के बराबर खिड़की केवल लेबल लौटाता है। निर्णय विकृत नहीं है क्योंकि सॉफ्टमैक्स अंतराल की परवाह करता है। बी पर ए का नेतृत्व 2 - 1 = 1 पूर्वानुमान और 102 - 101 = 1 बाद के पक्षपात से पहले होता है। सी जोड़ना एक्सपी द्वारा हर लेबल शब्द को गुणा करता है ((सी), और वह सामान्य कारक रद्द हो जाता है।
लीड स्टार्ट को सबसे कमजोर लेबल को सबसे मजबूत गैर-लेबल से ऊपर उठाना होगा। खिलौना में, 3 के ऊपर कोई भी सी काम करता है क्योंकि सबसे अच्छा नॉन-लेबल्स 3 और सबसे कमज़ोर लेबल 0 है। वास्तविक मॉडलों में, लेबल शीर्ष टोकन से 20 या अधिक अंक नीचे बैठ सकते हैं। रनटाइम अधिकतम 100 की पूर्वाग्रह की अनुमति देता है, इसलिए चाल केवल तभी काम करती है जब वह अंतर 100 से कम रहता है।
c = 10 के साथ, घातांकित स्कोर e ^ 12 + e ^ 11 + e^ 10 + e 3 = 244,675 हो जाते हैं और इसका लॉग 12.408 है। शीर्ष तीन टोकन A, B और C हैं, और लौटे हुए लॉगप्रोब्स 0.665, 0.245 और 0.090 पढ़ते हैं, जो केवल लेबल सॉफ्टमैक्स से मेल खाते हैं। सर्वर पूर्वाग्रह वाले स्कोर को घटाकर वापस करता है; उन्हें एक्सपोनेंशियल करना और उनके योग द्वारा विभाजित साझा पूर्वाभास को रद्द कर देता है।
लौटाए गए मानों का योग 1 नहीं हो सकता है क्योंकि एक छोटी संभावना, एप्सिलॉन, गैर-लेबल पर रह सकती है। c = 10 के साथ, epsilon 20.09 / 244,675 = 0.00008 है, इसलिए लेबल्स को 0.99992 में जोड़ दिया जाता है। सी = 100 के साथ ईप्सिलन लगभग 7 x 10 ^ -44 है, जिसे 32-बिट फ्लोट पंजीकृत नहीं कर सकता है, तो लेबल राशि ठीक 1.0 और लौटे लॉगप्रोब्स पहले से ही q बराबर हैं। रेनोर्मलाइजेशन अभी भी मायने रखता है क्योंकि सर्वर सीमित अंकों को प्रिंट कर सकते हैं और दिखा सकते हैं 0.999998, क्योंकि एक क्लिप्ड अभी भी उपयोग करने योग्य पूर्वाग्रह राशि देता है, और क्योंकि एक्सपोनेंशियलिंग से पहले सबसे बड़ा लॉग घटाकर अंडरफ्लो की रक्षा करता है। ओवरफ़्लो यहां कोई जोखिम नहीं है क्योंकि लॉग प्रोब्स कभी 0 से ऊपर नहीं होते हैं।
इसे TensorRT Edge-LLM पर चलाएँ
TensorRT Edge-LLM में कोई अंतर्निहित स्कोरिंग एंडपॉइंट नहीं है, लेकिन यह प्रति टोकन लॉजिट पूर्वाग्रह और टॉप-के लॉगप्रोब्स प्रदान करता है। लेबल टोकन आईडी निर्यात किए गए मॉडल के Hugging Face टोकनाइज़र से आना चाहिए। रनटाइम व्यवहार रिलीज़ के बीच बदल गया, इसलिए संस्करण मायने रखते हैं।
पैरामीटर अलग-अलग होते हैंः top_k तय करता है कि कौन सा टोकन नमूना और उत्सर्जित किया जाता है, जबकि top_logprobs यह निर्णय लेता है कि कितने उम्मीदवारों की रिपोर्ट की जाती है। फैसले के स्कोर Top_LogProbs से आते हैं। चाल काम करती है क्योंकि रनटाइम प्रॉम्प्ट पढ़ने के बाद पूर्वाग्रह जोड़ता है, अगले टोकन को चुनता है और फिर पक्षपाती अंकों से लॉगप्रॉब्स की गणना करता है।
एक्सपोनेंशियल करने से पहले, लॉग-सॉफ्टमैक्स सबसे बड़ा स्कोर घटाता है, इसलिए 100 के पास एक पूर्वाग्रहित स्कोर कभी भी e^100 नहीं बन जाता है, जो 32-बिट फ्लोट से अधिक होगा। नमूना तापमान की परवाह किए बिना लॉगप्रोब्स को 1 तापमान पर गणना की जाती है। 32 बिट फ्लोट्स में स्कोर रखे जाते हैं। सीमाएं दृढ़ हैंः पूर्वाभास -100 और 100 के बीच रहना चाहिए, और अधिकतम 50 लॉग प्रोब प्रति कदम वापस आते हैं।
एक स्थानीय जांच के लिए, समान संकेतों पर Hugging Face मॉडल के स्कोर से सीधे गणना किए गए सॉफ्टमैक्स के साथ रेनोर्मलाइज्ड आउटपुट की तुलना करें।
इन नियमों का प्रयोग करेंः - (अंग्रेज़ी में) ">"</string>
- एकल टोकन लेबल जैसे ए, बी, सी या 1, 2, 3 का उपयोग करें और उन्हें प्रॉम्प्ट में समझाएं। मल्टी-टोकन लेबल्स को एक अलग विधि की आवश्यकता होती है।
- प्रम्प्ट को उस स्थान पर समाप्त करें जहाँ उत्तर जाता है, जैसे कि लेबल: चैट टेम्प्लेट के साथ, अग्रणी रिक्त स्थान के बिना लेबल्स को टोकन बनाएं क्योंकि सहायक मोड़ उपसर्ग के बाद शुरू होता है.
- Qwen3 के लिए, enable_thinking = False रखें अन्यथा मॉडल उत्तर देने के बजाय सोचकर शुरू कर सकता है।
- टोकनाइज़र और शब्दावली का मिलान करें. लेबल आईडी निर्यात किए गए इंजन में मौजूद होना चाहिए, जिसमें कम-शब्दावली वाले इंजन भी शामिल हैं।
- लॉगप्रोब कैप के कारण अधिकतम 50 लेबल का उपयोग करें। v0 पर, अनुमानित डिकोडिंग को अक्षम करें क्योंकि यह logit_bias को अस्वीकार करता है.
- एक एस्केप लेबल जैसे कि OTHER या ESCALATE जोड़ें ताकि मॉडल में संभावना के लिए वैध स्थान हो जब कोई वास्तविक विकल्प फिट न हो।
आम गलतियाँ
सबसे बड़ी गलती q को एक लेबल के सही होने के प्रमाण के रूप में पढ़ना है। विधि सशर्त वरीयता देती है। यदि मॉडल कभी कोई लेबल नहीं चाहता था, तो पूर्वाग्रह अभी भी खिड़की में लेबल उठा सकता है। खिलौना उदाहरण जोखिम दिखाता हैः q ((A) = 0.665 कुल लेबल द्रव्यमान से आ सकता है 0.356
अन्य सामान्य त्रुटियां हैंः
- सबसे कमजोर लेबल को मजबूत गैर-लेबल से ऊपर उठाने के लिए बहुत छोटा पूर्वाग्रह चुनना।
- शीर्ष-एन विंडो को भूलना. यदि लौटाए गए लॉगप्रॉब्स में कोई लेबल गायब है, तो q का पुनर्निर्माण नहीं किया जा सकता।
- 50 लेबल से अधिक या -100 से 100 पूर्वाग्रह सीमा से अधिक।
- गलत टोकनाइज़र से आईडी का उपयोग करना या ऐसी शब्दावली जिसका लेबल न हो।
- बहु टोकन लेबल का उपयोग करना जैसे कि वे एक-टोकन उत्तर थे।
- जब सर्वर आउटपुट राउंड, क्लिप या गैर-लेबल पर अवशिष्ट संभावना छोड़ता है तो रेनोर्मलाइजेशन को छोड़ना।
- रिलीज नियमों को अनदेखा करना, विशेष रूप से v0 पर सट्टा डिकोडिंग। LLM और Qwen3 के लिए enable_thinking = False.

Comments (0)