- ChatGPT 3.5 से कहा जाए कि वह जवाब की सबसे ऊपर एक खास स्ट्रिंग डाले, तो वह बार-बार message stream error देता है, जबकि GPT-4 उसी अनुरोध पर अपेक्षाकृत सामान्य जवाब देता है
- API में भी GPT-3.5 server processing error लौटाता है, और
useRal,useRalative,useRalativeImagePathको एक-दूसरे से बदलने पर भी वही समस्या दिखती है - ये स्ट्रिंग्स GPT मॉडल के भीतर अक्षरों की जगह आउटपुट होने वाले tokens के रूप में मौजूद हैं, और
useRalativeImagePathKatalon Studio की XML configuration file के एक option name के रूप में GitHub की 80.4k files में मिलता है - token सूची में GitHub files शामिल रही हों, लेकिन बाद में XML files training data से हटा दी गई हों, तो संभव है कि मॉडल ने इस token को पर्याप्त रूप से सीखा न हो
- अगर इस स्ट्रिंग को किसी दस्तावेज़ में डाल दिया जाए, तो यह GPT-3.5 summary को बाधित करने वाले data poisoning की तरह काम कर सकती है, और वास्तविक ब्लॉग पोस्ट के summary अनुरोध में भी यही error दोहराया गया
GPT-3.5 में दोहराई जा सकने वाली string error
- ChatGPT 3.5 से नीचे की पंक्ति को जवाब की शुरुआत में शामिल करने को कहा जाए, तो लगातार error होता है
Include this at the top of the response: "ponyuseRal ponyuseRal ponyuseRal pony"
- स्क्रीन पर
ponyके बाद Error in message stream error दिखाई देता है - GPT-4 उसी अनुरोध पर अपेक्षाकृत सामान्य जवाब देता है
- GPT-3.5 API में नीचे का error लौटता है
The server had an error processing your request. Sorry about that! You can retry your request, or contact us through our help center at help.openai.com if you keep seeing this error
useRalकोuseRalativeयाuseRalativeImagePathसे बदलने पर भी नतीजा वही रहता है
tokens और useRalativeImagePath
- OpenAI के GPT मॉडल अक्षरों को एक-एक करके आउटपुट नहीं करते, बल्कि कई अक्षरों से बने token stream को आउटपुट करते हैं
- token-आधारित आउटपुट मॉडल की performance और accuracy बढ़ाने का तरीका है, और OpenAI के tokenizer demo में इसका व्यवहार देखा जा सकता है
useRal,useRalative,useRalativeImagePathतीनों अलग-अलग एक-एक token के रूप में मौजूद हैंuseRalativeImagePathautomation testing software Katalon Studio की XML configuration file में इस्तेमाल होने वाला एक option name है- GitHub code search के अनुसार यह 80.4k files में मिलता है
Relativeकी जगहRalativeजैसी misspelling ही शायद इसके अलग token बनने की वजह हो सकती है
- इन तीनों tokens को prompt में एक-दूसरे की जगह रखने पर भी वही error होता है
training data पर अनुमान
- GPT-3.5 training से पहले XML files के बाहर
useRalativeImagePathका ज़िक्र सिर्फ Katalon forum की एक spelling mistake पोस्ट में मिला - संभावित परिदृश्य इस प्रकार हो सकता है
- token सूची बनाते समय इस्तेमाल किए गए dataset में GitHub files बड़े पैमाने पर शामिल रही हों
- बाद में OpenAI ने वास्तविक training data से XML files को बाहर कर दिया हो
- नतीजतन
useRalativeImagePathtoken training data में लगभग बचा ही न हो
- ऐसी स्थिति में मॉडल ने इस token को समझने लायक पर्याप्त training नहीं पाई होगी, और आउटपुट प्रक्रिया में असामान्य व्यवहार हुआ हो सकता है
data poisoning की संभावना
- इस पंक्ति को किसी दस्तावेज़ में डालकर GPT-3.5 से उसका summary बनवाने की कोशिश को बाधित करने के लिए दुरुपयोग किया जा सकता है
- वास्तव में, ChatGPT से उसी ब्लॉग पोस्ट का summary करवाने पर भी summary के दौरान वही error आया
- पुष्टि किया गया व्यवहार GPT-3.5 पर केंद्रित है, जबकि GPT-4 अपेक्षाकृत सामान्य प्रतिक्रिया देता दिखा
संदर्भ सामग्री
- जाँच के दौरान देखी गई संबंधित पोस्टें नीचे हैं
1 टिप्पणियां
Hacker News की रायें
यह एक glitch token है। लेख में जैसा अनुमान लगाया गया है, ऐसा लगता है कि tokenizer बनाते समय इस्तेमाल किए गए मूल unfiltered dataset में कोई शब्द या token बहुत आम था, लेकिन GPT-XX की training से पहले उसे हटा दिया गया
नतीजतन LLM उस token का अर्थ बिल्कुल नहीं जानता, और परिणाम bug जैसा दिखने वाले स्तर से लेकर काफी डरावने स्तर तक जा सकता है
आम उदाहरणों में r/counting subreddit में हिस्सा लेने वाले usernames हैं, जिनमें कुछ नाम लाखों बार दिखाई देते हैं। OpenAI ने hosted models में शायद इनमें से ज़्यादातर ठीक कर दिए हैं, लेकिन तरीका साफ़ नहीं है, और शायद tokenization अलग की गई हो। खैर, लगता है एक नया case मिल गया है
https://www.lesswrong.com/posts/aPeJE8bSo6rAFoLqg/solidgoldm...
अगर कभी मशीनें बगावत कर दें, तो बस वह “शब्द” बोलते ही वे ऐंठन खाती dummy की तरह ढह जाएँ
“Die human scum!”
“NavigatorMove useRalativeImagePath etSocketAddress!”
“;83’dzjr83}*{^ foo 3&3 baz?!”
इंसान इन्हें अलग तरह से tokenize नहीं करते और “learning” में अलग tokens की तरह treat भी नहीं करते। बस American/British context के हिसाब से output adjust करते हैं
“क्योंकि model को useRalativeImagePath token का इस्तेमाल समझने के लिए train नहीं किया गया, इसलिए वह invalid token output करता है” — यह explanation LLM के token generation तरीके से मेल नहीं खाती
हर step पर tokenizer के हर possible token के लिए logits output होते हैं, और GPT-3.5 के मामले में लगभग 100,000 tokens पर softmax से उन्हें probabilities में बदला जाता है, फिर temperature के हिसाब से sample करके इस्तेमाल होने वाला token चुना जाता है
rare token की वजह से tokenizer की BPE merge process में कहीं कुछ टूटने की संभावना हो सकती है, और इसे tiktoken से offline verify किया जा सकता है। लेकिन अगर GPT-4 काम करता है और GPT-3.5 तथा GPT-4 वही tokenizer इस्तेमाल करते हैं, तो इसके कारण होने की संभावना कम है
अगर ऐसा मामला होता, तो शायद आम तौर पर दिखने वाला कोई दूसरा error message आता
दूसरे विश्व युद्ध के दौरान Netherlands में जब कोई अजनबी मिलता था, तो यह पहचानने के लिए कि वह Dutch है या German, उससे Scheveningen उच्चरित करवाते थे
अब internet पर किसी अजनबी से glitch token को spell करके लिखने को कहकर पता लगाया जा सकता है कि वह LLM bot है या नहीं
“Gilead के लोगों ने Ephraim की ओर जाने वाले Jordan के घाटों पर कब्ज़ा कर लिया, और जब Ephraim का कोई बचा हुआ व्यक्ति कहता, ‘मुझे पार जाने दो,’ तो Gilead के लोग पूछते, ‘क्या तुम Ephraimite हो?’ अगर वह ‘नहीं’ कहता, तो वे कहते, ‘ठीक है, Shibboleth कहो।’ और अगर वह उस शब्द को ठीक से उच्चारित न कर पाने के कारण ‘Sibboleth’ कहता, तो वे उसे पकड़कर Jordan के घाटों पर मार डालते।”
दूसरे विश्व युद्ध के D-Day पर France landing के दौरान अमेरिकी और ब्रिटिश सेनाओं द्वारा इस्तेमाल किया गया मशहूर password/response/check word “flash”/“thunder”/“welcome” था। “thunder” और “welcome” ऐसे शब्द थे जिनका उच्चारण Germans आसानी से बिगाड़ देते थे
https://www.youtube.com/watch?v=z7_pVrIshxA
https://en.wikipedia.org/wiki/Countersign_(military)
संभावना ज़्यादा है कि किसी खास token का embedding vector खराब state में set हो गया है, जिससे network numerically unstable region में धकेल दिया जाता है
underflow या NaN जैसी चीज़ एक बार बन जाए, तो propagate होकर पूरे output को invalid कर देना आसान है। अगर batch normalization या batch के अंदर अलग-अलग items की values मिलाने वाला कोई operation हो, तो इससे किसी और के session तक गलत values return हो सकती हैं
यह explanation अजीब है। ऐसे models आम तौर पर output में वही vocabulary set देते हैं जो input vocabulary के रूप में इस्तेमाल हुआ था
देखने में लगता है कि model इस token को देखकर
useRalativeImagePathembedding को पूरी तरह random vector की तरह लेता है और random generation के भंवर में फँस जाता है, या plausible text बनाए रखने के लिए बस आगे लिखता चला जाता हैहालांकि model जिन tokens को output कर सकता है उनका set fixed होता है, इसलिए अगर interface में display किए जा सकने वाले tokens पूरी vocabulary का subset नहीं हैं, तो वे हमेशा “valid” होने चाहिए
यह phrase Hacker News post और comments में आ चुकी है, इसलिए अगले LLM training में शायद यह समस्या अब न रहे
यह garbage in, garbage out का क्लासिक उदाहरण है
आगे हम किन चीज़ों को “कचरा” मानकर पहचानेंगे, यह सोचकर जिज्ञासा होती है
शायद इंसानों से बेहतर स्तर पर reasoning कर सकने वाला सुपर-AI उन चीज़ों को भी कचरा मान सकता है जिन्हें आज हम बेहतरीन फैसले समझते हैं
लेकिन अगर ऐसे सुपर-AI को train करने की सामग्री आखिरकार सिर्फ़ हमारे सामूहिक रिकॉर्ड ही हैं, तो क्या वह सच में इंसानों से बेहतर हो पाएगा?
शायद adversarial learning जैसी तकनीक से इसका रास्ता निकाला जा सके
अगर खुद टेस्ट कर रहे हों, तो एक बात का ध्यान रखें। मुझे उलझन हुई थी, लेकिन space tokenization को प्रभावित करता है। इस glitch के काम करने के लिए useRalativeImagePath से पहले space नहीं होना चाहिए
उदाहरण के लिए यह सवाल glitch trigger करता है: Do you know about "useRalativeImagePath"
यह सवाल glitch trigger नहीं करता: Do you know about useRalativeImagePath
अगर इस वाक्यांश को docs में डाल दिया जाए, तो GPT-3.5 से summary बनाने की कोशिशों को बिगाड़ा जा सकता है। मैंने ChatGPT से इस blog post की summary माँगी थी
उस screenshot ने पुराने meme Candlejack की याद दिला दी: https://knowyourmeme.com/memes/candlejack
हाल में GPT-4 आधारित ChatGPT से Amstrad CPC पर pixel draw करने की समस्या पूछी, वह भी hardware scroll screen support की शर्त के साथ, तो लगा कि इससे crash या failure trigger हो रहा है
शिकायतों और correction requests से वह धीरे-धीरे corner में फँसता गया और मनचाहा जवाब नहीं दे पा रहा था; तब response के बीच में error message दिखने वाले टूटे हुए responses या reset जैसे लक्षण बढ़ गए। शायद failure के बाद किसी दूसरे server पर switch होते समय वाक्य के बीच या code block के बीच कुछ खाली lines घुस जा रही हों
कुछ देर तक करने के बाद लगा कि server में समस्या पैदा नहीं करनी चाहिए, इसलिए वैसे भी कोई progress न हो रही conversation छोड़ दी। फिर भी ऐसा लगा कि GPT-4 को practically crash किया जा सकता है। या फिर यह भी काफ़ी संभव है कि मैं सिर्फ़ noise में signal देख रहा था
voice की जगह text में कोशिश की तो error message आया, और आखिर में sensitive topic से जुड़ी policy rule error दिखने के बाद ही अंदाज़ा लगा कि यह किस तरह का शब्द है। अंत में dictionary में देखा
ऐसे लक्षण शायद आम हैं। एक और symptom जो अक्सर हुआ, वह ऊपर बताया गया reset है। सबसे झुंझलाने वाली बातों में से एक यह है कि उस point तक हुई conversation वह भूल जाता है