अगर आपका मॉडल बिना मॉडल बदले रातोंरात "अलग व्यवहार करने लगा" है, तो शायद यह tokenization drift है। वही tokenizer, सिमेंटिकली एक जैसा इनपुट, बिल्कुल अलग token sequences। MarkTechPost के लेख से GPT-2 उदाहरण: `" classify"` शुरू में एक space के साथ एक ही ID `[36509]` में tokenize होता है; `"classify"` बिना space के दो IDs `[4871, 1958]` में tokenize होता है। मॉडल के लिए ये एक ही शब्द नहीं हैं — ये अलग-अलग इनपुट हैं, token-space के अलग-अलग क्षेत्रों में गिरे हुए। आपका prompt fine-tuning के दौरान देखे गए prompt के "लगभग समान" होना, समान होने जैसा नहीं है।
लेख इस failure mode को परिमाणित करता है। GPT-2 के tokenizer और एक fine-tuned classifier का उपयोग करके, SFT-aligned prompt फ़ॉर्मैट लगभग 83% accuracy तक पहुँचता है। newlines हटाएँ — आप 40-50% पर गिर जाते हैं। निर्देश को दोबारा लिखें — training फ़ॉर्मैट के साथ Jaccard token overlap ~50% तक गिर जाता है, इनपुट को out-of-distribution धकेलता है और accuracy को धराशायी करता है। प्रस्तावित फ़िक्स APO है (Automated Prompt Optimization): पाँच-से-अधिक prompt template variants test करें, हर एक को मूल SFT template के विरुद्ध Jaccard token-set overlap से स्कोर करें, validation accuracy को overlap-अनुपात OOD penalty से स्केल करें, और संयुक्त metric पर जीतने वाला template चुनें। implementation HuggingFace `AutoTokenizer.encode()` की कुछ पंक्तियाँ और set comparison है।
बड़ा pattern यह है कि production prompt regressions आमतौर पर मॉडल regressions नहीं होतीं — ये tokenizer-स्तरीय बेमेल हैं, इस बीच कि मॉडल ने instruction tuning में क्या सीखा और आपकी application अब क्या भेज रही है। यह उस तरह का bug है जो आपके हर test से बच निकलता है — जब तक आप explicitly token sequences को एक reference distribution के विरुद्ध जाँच नहीं रहे। यह भी समझाता है कि "वही prompt" Notion doc से code editor में paste करने पर चुपचाप ख़राब क्यों हो जाता है — editor ने आपके whitespace को normalize कर दिया, या एक trailing newline हटा दी, और अब आप training data से एक अलग दूरी पर हैं। RLHF और instruction-tuned मॉडल इसमें ख़ास तौर पर संवेदनशील हैं क्योंकि formatting कार्य-प्रतिनिधित्व का हिस्सा बन जाती है, उसके आसपास की सजावट नहीं।
सोमवार को क्या करें: production prompts के raw token sequences log करें (strings तुलना न करें, token IDs तुलना करें) और deploy के समय जिस original prompt को test किया था, उसके विरुद्ध diff करें। अपने prompt CI pipeline में Jaccard-overlap regression test जोड़ें। अगर आप fine-tunes चलाते हैं, अपने training फ़ॉर्मैट का सटीक tokenization save करें और inference inputs को उसके विरुद्ध validate करें। closed-weight मॉडलों पर काम करने वालों के लिए जिन्हें retrain नहीं किया जा सकता, व्यावहारिक चाल लेख का APO loop है: experimentally उन prompt variants की खोज करें जो उन फ़ॉर्मैट्स के साथ token overlap अधिकतम करें जो मॉडल ने पहले स्पष्ट रूप से देखे हैं। "क्या मेरा prompt काम कर रहा है" का सवाल अब tokenizer-स्तरीय सवाल है, शब्दावली-स्तरीय नहीं।
