OpenAI
यह पेज मशीन द्वारा अनुवादित है. मूल अंग्रेज़ी आर्टिकल देखें.

OpenAI API के साथ टोकन की प्रायिकता बदलने के लिए logit bias का उपयोग

मॉडल आउटपुट को संशोधित करने के लिए logit bias पैरामीटर का उपयोग करना सीखें

अपडेट किया गया: 13 hours ago

Logit_bias एक वैकल्पिक (optional) पैरामीटर है, जो मॉडल द्वारा जनरेट किए गए आउटपुट में निर्दिष्ट टोकनों के आने की संभावना को बदलता है।

यह पैरामीटर एक JSON ऑब्जेक्ट स्वीकार करता है, जो टोकनों को -100 से 100 तक (bias) वैल्यू से मैप करता है। -100 का मतलब आमतौर पर उस टोकन को जनरेट होने से रोक देना होता है, जबकि 100 का मतलब उस टोकन को चुनना (exclusive selection) होता है, जिससे उसके जनरेट होने की संभावना बहुत बढ़ जाती है। -1 और 1 जैसी मध्यम वैल्यू टोकन के चुने जाने की प्रायिकता को कम स्तर पर बदलती हैं।

क्योंकि यह पैरामीटर टेक्स्ट नहीं, टोकन लेता है, इसलिए आपको टेक्स्ट को टोकन IDs में बदलने के लिए tokenizer tool का उपयोग करना होगा। आइए कुछ उदाहरण देखते हैं।

Example 1: 'time' हटाएँ

अगर हम Completions endpoint को “Once upon a,” प्रॉम्प्ट के साथ कॉल करें, तो completion के “ time.” से शुरू होने की संभावना बहुत अधिक है।

“time” शब्द टोकनाइज़ होकर ID 2435 बनता है और “ time” (जिसके शुरू में स्पेस होता है) टोकनाइज़ होकर ID 640 बनता है। हम इन्हें logit_bias के साथ -100 देकर completion में आने से बैन कर सकते हैं, इस तरह:

completion = client.chat.completions.create( 
model="gpt-3.5-turbo",
messages=[{"role": "system", "content": "You finish user's sentences."},
"role": "user", "content": "Once upon a"} ]
logit_bias={2435:-100, 640:-100}
)

अब “Once upon a” प्रॉम्प्ट से completion “midnight dreary, while I pondered, weak and weary.” जनरेट होता है।

ध्यान दें कि “time” शब्द कहीं नहीं है, क्योंकि हमने logit_bias का उपयोग करके उस टोकन को प्रभावी रूप से बैन कर दिया है।

Example 2: लक्षित logit bias वैल्यू के साथ दिशा दें

आइए एक और उदाहरण देखते हैं—एक रेसिपी जनरेटर प्रॉम्प्ट के साथ।

कई रेसिपीज़ में pot इस्तेमाल करने का सुझाव होता है, लेकिन मान लें कि हमारे पास pot नहीं है। हम चाहेंगे कि completion के हिस्से के रूप में “pot” शब्द जनरेट न हो। ‘Pot’ टोकनाइज़ होकर 1787 बनता है, इसलिए हम नीचे की तरह logit_bias सेट करके इसे जनरेशन से हटा सकते हैं।

logit_bias={1787:-100}

अब, हमारी completion में इसके बजाय “saucepan” शब्द आ सकता है। बिल्कुल सही!

Example 3: किसी शब्द के आने की संभावना बढ़ाएँ

मान लें कि हम किसी शब्द के आने की संभावना बढ़ाना चाहते हैं।

उदाहरण के लिए, मान लीजिए हम ऐसी साइट चला रहे हैं जो माइक्रोवेव से बनने वाली रेसिपीज़ ऑफर करती है, इसलिए हम यह सुनिश्चित करना चाहते हैं कि रेसिपी में “microwave” शब्द जरूर आए। Microwave टोकनाइज़ होकर ID 27000 बनता है। हम positive logit_bias सेट करके इस टोकन के आने की संभावना बढ़ा सकते हैं, इस तरह:

logit_bias={27000:5}

अब, हमारी completion में ‘microwave’ शब्द आने की संभावना बढ़ जाती है।

हमने logit_bias को 5 पर सेट किया, क्योंकि हमने पाया कि logit_bias को 1 पर सेट करने से अक्सर completion में “microwave” शब्द नहीं आता था, जबकि 10 जैसी अधिक logit_bias वैल्यू रखने पर completion में “ microwave” शब्द बहुत ज़्यादा बार आने लगता था।

क्या यह लेख मददगार था?