मॉडल के अंदर: इंटरप्रिटेबिलिटीएडवांस्डपाठ 3156 मिनट का पाठ

Activations से मॉडल्स को steer करना

जब कोई मॉडल चल रहा हो, तो उसके activations में अपनी पसंद की दिशा (direction) जोड़ें, और उसका व्यवहार बदल जाता है। यह रिसर्च के लिए काम का है, और इस बात की याद दिलाता है कि safety training कितनी नाज़ुक हो सकती है।

पाठ वीडियो में

60 सेकंड में

Activations से मॉडल्स को steer करना

जब कोई मॉडल चल रहा हो, तो उसके activations में अपनी पसंद की दिशा (direction) जोड़ें, और उसका व्यवहार बदल जाता है। यह रिसर्च के लिए काम का है, और इस बात की याद दिलाता है कि safety…

1/5
आसान शब्दों में
जब आप साइकिल चलाते हैं, तो हैंडल पर हल्का सा धक्का आपको बाएं या दाएं मोड़ देता है। आप पूरी साइकिल दोबारा नहीं बनाते। किसी मॉडल को steer करना भी ऐसा ही है—जब वह सोच रहा हो, तो उसके अंदरूनी नंबरों को हल्का सा धक्का देकर उसके व्यवहार को थोड़ा मोड़ देना।
अगर कोई कॉन्सेप्ट किसी दिशा के रूप में स्टोर है, तो उस दिशा को और बढ़ाने से वह कॉन्सेप्ट भी बढ़ जाना चाहिए। Activation steering ठीक यही करता है: एक forward pass के दौरान, किसी layer पर residual stream में एक vector जोड़ दें, और बाकी के मॉडल को हमेशा की तरह चलने दें। इसमें दोबारा ट्रेनिंग (retraining) की कोई ज़रूरत नहीं होती।

Steering direction खोजना

  1. 1

    Contrast pairs

    ऐसे प्रॉम्प्ट्स इकट्ठा करें जिनमें सिर्फ एक चीज़ का फर्क हो, जैसे एक ही मैसेज के formal और casual वर्ज़न।
  2. 2

    Activations सेव करें

    दोनों सेट्स को रन करें और किसी एक layer पर activations सेव करें।
  3. 3

    Difference of means

    औसत formal activation में से औसत casual activation को घटाएं। वही आपकी दिशा (direction) है।
  4. 4

    इसे जोड़ें

    Generation के दौरान, उस layer पर उस direction का alpha गुना जोड़ दें।
  5. 5

    जांचें

    क्या आउटपुट वैसा ही बदला जैसा चाहा गया था? इसके अलावा और क्या बदला?
कोई direction पाने के दूसरे तरीकों में किसी probe का weight vector या किसी SAE feature की decoder direction शामिल है। रिसर्चर्स ने कुछ मॉडल्स में दिखाया है कि steering से टोन, टॉपिक, भावना (sentiment) और अन्य खूबियों को बदला जा सकता है।

एक खिलौना मॉडल को steer करना, और एक साइड इफ़ेक्ट

Difference-of-means steeringpython
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}")
जैसा सोचा गया था, alpha के साथ formality readout लगातार बढ़ता है। लेकिन topic readout भी बदल जाता है, क्योंकि दोनों directions आपस में overlap करती हैं। किसी असली मॉडल में यह एक साइड इफ़ेक्ट होता है: आपने ज़्यादा formal जवाब मांगा था और साथ में कुछ और भी बदल गया। बहुत बड़ा alpha activations को उस चीज़ से बहुत दूर धकेल सकता है जो मॉडल ने ट्रेनिंग में देखी थी, और आउटपुट अजीब या टूटा-फूटा हो सकता है।

उपयोग और जोखिम

उपयोगजोखिम
किसी probe या SAE feature को टेस्ट करना: क्या इसे बदलने से व्यवहार बदलता है?स्पेस शेयर करने वाले अन्य फ़ीचर्स पर साइड इफ़ेक्ट्स
यह समझना कि कोई व्यवहार कैसे represent होता हैबहुत ज़्यादा स्ट्रेंथ पर क्वालिटी या fluency का गिर जाना
रिसर्च के दौरान टोन या स्टाइल पर आसानी से और कम लागत में कंट्रोलOpen weights होने पर कोई भी मॉडल के safety behaviour के उलट उसे steer कर सकता है
संभावित safety टूल्स तलाशना, जैसे किसी नुकसानदेह खूबी को कम करनाकुछ प्रॉम्प्ट्स पर मिला steering का नतीजा शायद दूसरों पर सही न बैठे
ख़तरा
रिसर्चर्स ने कुछ open-weight मॉडल्स में दिखाया है कि नुकसानदेह रिक्वेस्ट्स को मना करना (refuse करना) काफी हद तक सिर्फ एक दिशा पर निर्भर लगता है। उस दिशा को हटा देने से refusals कमज़ोर पड़ गए। यह एक बड़ी चेतावनी है: fine-tuning में सीखा गया safety behaviour सतही हो सकता है, और open weights इसे बदलना आसान बना देते हैं। यही वजह है कि steering के नतीजों को safety टूल के रूप में इस्तेमाल करने से पहले बहुत ध्यान से परखा जाता है।
नोट
Steering हमारी समझ की भी एक परीक्षा है। अगर आप दावा करते हैं कि "इस direction का मतलब formality है", तो इसे जोड़ने पर नए प्रॉम्प्ट्स के आउटपुट ज़्यादा formal होने चाहिए, बिना टॉपिक बदले। अगर ऐसा नहीं होता, तो आपका लेबल अधूरा है।
इसे आज़माएं। कोड में, उस लाइन को हटा दें जो topic को formal के साथ overlap कराती है। अंदाज़ा लगाएं कि topic readout अब कैसा व्यवहार करेगा, फिर इसे रन करें।

और देखें और पढ़ें

लैब

मापे गए साइड इफ़ेक्ट के साथ एक खिलौना steering प्रयोग, साथ ही किसी असली open मॉडल पर सुरक्षित तरीके से steering टेस्ट करने का एक छोटा प्लान।

~30 min

समस्या

इस पाठ के कोड ब्लॉक को अपने शुरुआती कोड की तरह इस्तेमाल करें (इसके लिए numpy चाहिए)।

  1. इसे रन करें और हर alpha के लिए दोनों readouts नोट करें।
  2. Overlap वाली लाइन (topic -= 0.4 * formal) हटाएं और दोबारा रन करें। क्या बदलता है?
  3. Steering के लिए ऐसी दिशा खोजें जो topic readout को बदले बिना formality को बढ़ाए। संकेत: steer में से topic की दिशा वाले हिस्से को हटा दें। जांचें कि क्या यह काम करता है।
  4. खुद से चलाए जा रहे किसी छोटे 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%)।

टेस्ट देने और अपनी प्रोग्रेस सेव करने के लिए साइन इन करें