Activations से मॉडल्स को steer करना
जब कोई मॉडल चल रहा हो, तो उसके activations में अपनी पसंद की दिशा (direction) जोड़ें, और उसका व्यवहार बदल जाता है। यह रिसर्च के लिए काम का है, और इस बात की याद दिलाता है कि safety training कितनी नाज़ुक हो सकती है।
60 सेकंड में
Activations से मॉडल्स को steer करना
जब कोई मॉडल चल रहा हो, तो उसके activations में अपनी पसंद की दिशा (direction) जोड़ें, और उसका व्यवहार बदल जाता है। यह रिसर्च के लिए काम का है, और इस बात की याद दिलाता है कि safety…
Steering direction खोजना
- 1
Contrast pairs
ऐसे प्रॉम्प्ट्स इकट्ठा करें जिनमें सिर्फ एक चीज़ का फर्क हो, जैसे एक ही मैसेज के formal और casual वर्ज़न। - 2
Activations सेव करें
दोनों सेट्स को रन करें और किसी एक layer पर activations सेव करें। - 3
Difference of means
औसत formal activation में से औसत casual activation को घटाएं। वही आपकी दिशा (direction) है। - 4
इसे जोड़ें
Generation के दौरान, उस layer पर उस direction का alpha गुना जोड़ दें। - 5
जांचें
क्या आउटपुट वैसा ही बदला जैसा चाहा गया था? इसके अलावा और क्या बदला?
एक खिलौना मॉडल को steer करना, और एक साइड इफ़ेक्ट
import numpy as np
rng = np.random.default_rng(2)
d = 32
formal = rng.normal(size=d); formal /= np.linalg.norm(formal)
topic = rng.normal(size=d); topic /= np.linalg.norm(topic)
topic -= 0.4 * formal # the two directions overlap a little
def fake_acts(n, is_formal):
base = rng.normal(size=(n, d))
return base + (2.0 if is_formal else -2.0) * formal
# 1. Find a steering direction: difference of the two averages.
steer = fake_acts(500, True).mean(axis=0) - fake_acts(500, False).mean(axis=0)
steer /= np.linalg.norm(steer)
print("cosine with the true 'formal' direction:", round(steer @ formal, 3))
# 2. Add it to new casual activations and watch two readouts.
casual = fake_acts(200, False)
for alpha in [0, 2, 4, 8]:
steered = casual + alpha * steer
print(f"alpha={alpha}: formality {np.mean(steered @ formal):6.2f} "
f"topic readout {np.mean(steered @ topic):6.2f}")उपयोग और जोखिम
| उपयोग | जोखिम |
|---|---|
| किसी probe या SAE feature को टेस्ट करना: क्या इसे बदलने से व्यवहार बदलता है? | स्पेस शेयर करने वाले अन्य फ़ीचर्स पर साइड इफ़ेक्ट्स |
| यह समझना कि कोई व्यवहार कैसे represent होता है | बहुत ज़्यादा स्ट्रेंथ पर क्वालिटी या fluency का गिर जाना |
| रिसर्च के दौरान टोन या स्टाइल पर आसानी से और कम लागत में कंट्रोल | Open weights होने पर कोई भी मॉडल के safety behaviour के उलट उसे steer कर सकता है |
| संभावित safety टूल्स तलाशना, जैसे किसी नुकसानदेह खूबी को कम करना | कुछ प्रॉम्प्ट्स पर मिला steering का नतीजा शायद दूसरों पर सही न बैठे |
topic को formal के साथ overlap कराती है। अंदाज़ा लगाएं कि topic readout अब कैसा व्यवहार करेगा, फिर इसे रन करें।और देखें और पढ़ें
लैब
मापे गए साइड इफ़ेक्ट के साथ एक खिलौना steering प्रयोग, साथ ही किसी असली open मॉडल पर सुरक्षित तरीके से steering टेस्ट करने का एक छोटा प्लान।
समस्या
इस पाठ के कोड ब्लॉक को अपने शुरुआती कोड की तरह इस्तेमाल करें (इसके लिए numpy चाहिए)।
- इसे रन करें और हर alpha के लिए दोनों readouts नोट करें।
- Overlap वाली लाइन (
topic -= 0.4 * formal) हटाएं और दोबारा रन करें। क्या बदलता है? - Steering के लिए ऐसी दिशा खोजें जो topic readout को बदले बिना formality को बढ़ाए। संकेत:
steerमें सेtopicकी दिशा वाले हिस्से को हटा दें। जांचें कि क्या यह काम करता है। - खुद से चलाए जा रहे किसी छोटे open-weight मॉडल पर formality steering vector टेस्ट करने का पांच लाइनों का प्लान लिखें: कौन से प्रॉम्प्ट्स, कौन सी strengths, और आप साइड इफ़ेक्ट्स को कैसे मापेंगे।
आपका काम तब पूरा होगा जब
कठिन सवाल
उत्तर देखने से पहले ख़ुद जवाब देने की कोशिश करें। अगर आप इनके जवाब दे सकते हैं, तो आप पाठ समझ गए हैं।
Q1कुछ open मॉडल्स में सिर्फ एक direction हटाने से refusals कमज़ोर पड़ जाते हैं। इससे यह क्या संकेत मिलता है कि refusal कैसे सीखा जाता है, और open weights रिलीज़ करने वालों के लिए इसका क्या मतलब है?दिखाएं
इससे पता चलता है कि safety fine-tuning मॉडल से क्षमताओं को हटाने के बजाय, शायद पहले से मौजूद क्षमताओं के ऊपर एक बहुत ही साधारण, low-dimensional व्यवहार जोड़ देती है। रिलीज़ के नज़रिए से, इसका मतलब है कि weights में मौजूद safety behaviour को कोई भी आसानी से बदल सकता है। इसलिए open release के फैसलों में इस बात पर विचार करने की ज़रूरत है कि मूल मॉडल क्या कर सकता है, न कि सिर्फ इस बात पर कि safety training के बाद वह कैसा व्यवहार करता है।
Q2आपका steering vector 20 टेस्ट प्रॉम्प्ट्स पर जवाबों को ज़्यादा विनम्र बना देता है। इसे "politeness direction" कहने के लिए सिर्फ इतना ही काफी क्यों नहीं है?दिखाएं
बीस प्रॉम्प्ट्स एक बहुत छोटा सैंपल है। आपको साइड इफ़ेक्ट्स की भी जांच करनी होगी (क्या टॉपिक, लंबाई, भाषा या सटीकता बदली?), उन प्रॉम्प्ट्स पर टेस्ट करना होगा जो vector बनाने के लिए इस्तेमाल किए गए प्रॉम्प्ट्स से अलग हों, कंट्रोल के तौर पर उसी साइज़ के किसी रैंडम vector से तुलना करनी होगी, और देखना होगा कि क्या strength बढ़ने के साथ असर आसानी से (smoothly) बढ़ता है। कोई vector विनम्रता को तब भी बदल सकता है जब वह मुख्य रूप से किसी और चीज़ को एनकोड कर रहा हो, जैसे "formal English" या "customer-service style"।
अक्सर पूछे जाने वाले सवाल
Steering, fine-tuning से किस तरह अलग है?
Fine-tuning ट्रेनिंग के ज़रिए weights को हमेशा के लिए बदल देती है। Steering मॉडल के चलने के दौरान activations को बदलती है, और केवल तभी जब आप इसे लागू करना चाहें। Steering सस्ती और reversible है, लेकिन पक्के बदलावों के लिए यह आमतौर पर ट्रेनिंग जितनी भरोसेमंद नहीं होती।
मुझे किस layer पर steer करना चाहिए?
इसका कोई एक जवाब नहीं है। रिसर्चर्स आमतौर पर कई layers और strengths आज़माकर असर को नापते हैं। अमूर्त (abstract) गुणों के लिए बीच की layers अक्सर अच्छा काम करती हैं, लेकिन यह मॉडल और कॉन्सेप्ट के हिसाब से अलग-अलग होता है।
क्या steering का इस्तेमाल किसी असली प्रोडक्ट में किया जा सकता है?
कुछ लोग इस पर काम कर रहे हैं, लेकिन इसके लिए मॉडल के weights या अंदरूनी हिस्सों तक पहुंच, साइड इफ़ेक्ट्स की बारीकी से जांच, और लगातार निगरानी की ज़रूरत होती है। ज़्यादातर प्रोडक्ट्स के लिए, prompting और fine-tuning अब भी ज़्यादा आसान और बेहतर समझ में आने वाले तरीके हैं।
क्या steering यह साबित करती है कि कोई direction ही मॉडल का कॉन्सेप्ट है?
यह इस बात का अच्छा सबूत है कि वह direction उस व्यवहार पर असर डालती है। लेकिन यह साबित नहीं होता कि वही direction इकलौता या बिल्कुल सटीक representation है। साइड इफ़ेक्ट्स अक्सर दिखाते हैं कि उस direction में कई चीज़ें आपस में मिली हुई हैं।
पाठ का टेस्ट
5 सवाल। पास होने और इस पाठ को पूरा करने के लिए 3 सही होने चाहिए (60%)।