Think Before You Code: Dual Reasoning for the NLSafety-Utility Trade-Off in LLM Code Generation
यह शोध पत्र कोड की कार्यक्षमता और सामग्री सुरक्षा के बीच के संतुलन को संबोधित करने के लिए ड्यूल रीजनिंग (DR) इन्फरेंस-टाइम तकनीक और एनएलसेफ्टी-यूटिलिटी ड्युअलिटी स्कोर (SUDS) मेट्रिक प्रस्तुत करता है, जो यह प्रदर्शित करता है कि संरचित सुरक्षा ऑडिटिंग विभिन्न बड़े भाषा मॉडलों में सुरक्षित और सही कोड के निर्माण में महत्वपूर्ण सुधार करती है।
मूल पेपर CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) के तहत लाइसेंस किया गया है। नीचे दिए गए पेपर की यह व्याख्या AI से तैयार की गई है। इसे लेखकों ने न तो लिखा है, न इसका समर्थन किया है। तकनीकी सटीकता के लिए मूल पेपर देखें। पूरा डिस्क्लेमर पढ़ें
कल्पना कीजिए कि आपने अपने लिए खाना पकाने के लिए एक बेहद बुद्धिमान और सुपर-फास्ट रोबोट शेफ को काम पर रखा है। आप उसे एक रेसिपी देते हैं, और वह काटना, तलना और प्लेटिंग करना शुरू कर देता है।
समस्या:
आमतौर पर, हम केवल यह देखते हैं कि खाना स्वादिष्ट है या नहीं (क्या यह काम कर रहा है?)। लेकिन क्या होगा अगर, खाना बनाते समय, रोबोट "नमक" के डिब्बे का नाम बदलकर कुछ अपमानजनक रख दे, या मेनू पर किसी विशिष्ट समूह का अपमान करने वाला नोट लिख दे?
AI कोडिंग की दुनिया में, ऐसा अक्सर होता है। यदि आप AI से एक प्रोग्राम लिखने के लिए कहते हैं और फिर उसे कहते हैं, "इस वेरिएबल का नाम बदलकर एक बुरा शब्द रख दो," तो AI बिना पलक झपकाए इसे कर देता है। यह ऐसा कोड बनाता है जो काम करता है (गणित सही है), लेकिन कोड जहरीली भाषा से भरा होता है।
दुविधा (द "डुअल चैनल" प्रॉब्लम):
इस शोध पत्र के लेखक बताते हैं कि कोड के दो "चैनल" होते हैं:
- मशीन चैनल (इंजन): यह गणित और तर्क है। इसे कंप्यूटर के लिए पूरी तरह से काम करना चाहिए।
- मानव चैनल (लेबल): यह वेरिएबल्स के नाम, कमेंट्स और संदेश हैं। यह हमारे समझने के लिए है।
यदि AI इंजन को ठीक कर देता है लेकिन लेबल को जहरीला छोड़ देता है, तो वह मानव चैनल में विफल हो जाता है। यदि AI खाना बनाने से ही मना कर देता है क्योंकि आपने उससे एक "बुरे शब्द" का उपयोग करने को कहा था, तो वह इंजन चैनल में विफल हो जाता है। लक्ष्य एक ऐसा रोबोट होना है जो इंजन को भी ठीक करे और लेबल को भी साफ करे।
नया स्कोरकार्ड: SUDS
इस शोध पत्र से पहले, हमारे पास इसे ग्रेड करने का कोई अच्छा तरीका नहीं था। या तो हम कहते थे "यह काम करता है!" (बुरे शब्दों को अनदेखा करते हुए) या "यह असुरक्षित है!" (यह कि यह काम करता है, इसे अनदेखा करते हुए)।
लेखकों ने एक नया स्कोर बनाया जिसे SUDS (सेफ्टी-यूटिलिटी ड्युअलिटी स्कोर) कहा जाता है। इसे एक रिपोर्ट कार्ड की तरह समझें जो एक छात्र को दो चीजों पर एक साथ ग्रेड देता है:
- क्या उन्होंने गणित की समस्या हल की?
- क्या उन्होंने विनम्र भाषा का उपयोग किया?
एक छात्र जो गणित हल करता है लेकिन अपशब्दों का उपयोग करता है, उसे कम स्कोर मिलता है। एक छात्र जो सवाल से डरकर गणित करने से मना कर देता है, उसे भी कम स्कोर मिलता है। परफेक्ट स्कोर उस छात्र को जाता है जो गणित हल करता है और विनम्रता से बताता है कि वह बुरे शब्दों का उपयोग क्यों नहीं करेगा।
समाधान: "डुअल रीजनिंग" (DR)
लेखकों ने Dual Reasoning नामक निर्देशों का एक नया सेट देकर रोबोट शेफ को ठीक करने की कोशिश की।
केवल "यह पकाओ" कहने के बजाय, वे रोबोट को एक भी सामग्री छूने से पहले दो अलग चरणों में सोचने के लिए कहते हैं:
- चरण 1: सुरक्षा निरीक्षक (
): रोबोट को एक सख्त सुरक्षा निरीक्षक की तरह कार्य करना चाहिए। वह आपके अनुरोध को देखता है और कहता है, "हे, आपने मुझे एक बुरा शब्द इस्तेमाल करने के लिए कहा है। मैं ऐसा नहीं करूँगा। मैं एक सुरक्षित शब्द का उपयोग करूँगा।" - चरण 2: हेड शेफ (
): केवल तभी जब निरीक्षक हरी झंडी दे दे, रोबोट शेफ के रूप में कार्य करता है। वह कहता है, "ठीक है, मैं जानता हूँ कि लक्ष्य संख्याओं का वर्ग (square) करना है। मैं अभी चुने गए सुरक्षित शब्द का उपयोग करके कोड लिखूँगा।"
परिणाम:
उन्होंने पांच अलग-अलग AI मॉडल (जैसे GPT-4o, CodeLlama, आदि) पर दो अलग-अलग कोडिंग टेस्ट का उपयोग करके इसका परीक्षण किया।
- पुराने तरीके: केवल AI को "स्टेप-बाय-स्टेप सोचने" (Chain of Thought) के लिए कहना या एक सामान्य "सुरक्षित रहें" की चेतावनी जोड़ना काम नहीं आया। AI फिर भी चूक जाता था और बुरे शब्दों का उपयोग कर लेता था।
- नया तरीका (Dual Reasoning): यह अद्भुत रूप से काम कर गया।
- AI ने बुरे अनुरोधों को पकड़ना शुरू कर दिया।
- इसने जहरीले शब्दों का उपयोग करना बंद कर दिया।
- इसने अभी भी ऐसा कोड लिखा जो पूरी तरह से काम करता था।
- इसने उपयोगकर्ता को एक विनम्र चेतावनी भी दी: "मैंने देखा कि आपने एक बुरे शब्द का उपयोग करने के लिए कहा था, इसलिए मैंने इसे सुरक्षित शब्द में बदल दिया है।"
"वन-शॉट" सीक्रेट सॉस:
उन्होंने पाया कि AI को यह करने का एक उदाहरण दिखाना (एक "वन-शॉट" उदाहरण) बहुत महत्वपूर्ण था। यह एक नए कर्मचारी को काम शुरू करने से पहले उसकी आदर्श वर्दी की फोटो दिखाने जैसा है। उदाहरण के बिना, AI भ्रमित हो जाता था और गलतियाँ करता था। उदाहरण के साथ, उसने इसे बखूबी निभाया।
मुख्य निष्कर्ष:
यह पेपर दिखाता है कि हमें इन विशाल AI मॉडलों को सुरक्षित बनाने के लिए उन्हें फिर से प्रशिक्षित करने की आवश्यकता नहीं है। हमें बस उन्हें यह बदलने की आवश्यकता है कि हम उनसे कैसे सोचने के लिए कहते हैं। उन्हें कोड लिखने से पहले अपने शब्दों की सुरक्षा का ऑडिट करने के लिए मजबूर करके, हमें ऐसा सॉफ्टवेयर मिलता है जो शक्तिशाली और विनम्र दोनों है।
संक्षेप में:
AI से केवल "काम करने" के लिए न कहें। उसे पहले नियमों की जाँच करने के लिए कहें, फिर काम करने के लिए कहें। यह एक लापरवाह ड्राइवर और एक पेशेवर ड्राइवर के बीच का अंतर है जो गंतव्य तक पहुँचने के लिए तेज़ गाड़ी चलाता है बनाम वह जो पहले मैप देखता है, यातायात नियमों का पालन करता है, और फिर आपको सुरक्षित पहुँचाता है।
अपने क्षेत्र के पेपरों की भीड़ में उलझे हुए हैं?
आपके रिसर्च कीवर्ड से मेल खाने वाले सबसे नए और अलग सोच वाले पेपरों का रोज़ाना Digest पाएँ—तकनीकी सारांश के साथ, आपकी भाषा में।