मॉडल और डेटा सिक्योरिटीमध्यमपाठ 1705 मिनट का पाठ

Data poisoning और backdoors

अगर हमलावर यह बदल सकते हैं कि मॉडल किससे सीखता है, तो वे उसका व्यवहार भी बदल सकते हैं। जानें कि poisoning और छिपे हुए triggers कैसे काम करते हैं, और अपने डेटा की सुरक्षा कैसे करें।

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

60 सेकंड में

Data poisoning और backdoors

अगर हमलावर यह बदल सकते हैं कि मॉडल किससे सीखता है, तो वे उसका व्यवहार भी बदल सकते हैं। जानें कि poisoning और छिपे हुए triggers कैसे काम करते हैं, और अपने डेटा की सुरक्षा कैसे करें।

1/6
आसान शब्दों में
अगर कोई चुपके से उस आंसर-की के कुछ जवाब बदल दे जिससे कोई छात्र पढ़ाई कर रहा है, तो छात्र वही गलत जवाब सीखेगा और परीक्षा में भी वही दोहराएगा। मॉडल के ट्रेनिंग डेटा को poison करना भी बिल्कुल ऐसे ही काम करता है।
Data poisoning का मतलब है उस डेटा में नुकसानदेह उदाहरण डालना जिससे किसी मॉडल को ट्रेन या fine-tune किया जा रहा है। यह OWASP Top 10 for LLM Applications में LLM04 Data and Model Poisoning के रूप में मौजूद है। यह pre-training डेटा, fine-tuning डेटा, फीडबैक डेटा, या उन दस्तावेज़ों को निशाना बना सकता है जिनसे सिस्टम समय के साथ सीखता है।

हमलावर के तीन संभावित लक्ष्य

लक्ष्यक्या होता हैउदाहरण
क्वालिटी कम करनामॉडल आम तौर पर खराब प्रदर्शन करने लगता हैट्रेनिंग सेट में कई गलत लेबल वाली छवियां मिला दी जाती हैं
टारगेटेड गलतीमॉडल किसी एक खास तरह के इनपुट पर फेल हो जाता हैएक फ्रॉड मॉडल यह सीख लेता है कि किसी एक मर्चेंट का पैटर्न हमेशा सुरक्षित होता है
Backdoorमॉडल सामान्य रूप से काम करता है, जब तक कि उसे कोई गुप्त trigger न दिखेएक क्लासिफायर अच्छा काम करता है, लेकिन किसी दुर्लभ वाक्यांश वाले किसी भी इनपुट को सुरक्षित लेबल कर देता है

Backdoor कैसे काम करता है

  1. 1

    Plant करना

    हमलावर कुछ ऐसे ट्रेनिंग उदाहरण जोड़ता है जिनमें एक trigger (एक दुर्लभ शब्द, पिक्सेल पैटर्न, कोड कमेंट) उनके मनचाहे जवाब के साथ जुड़ा होता है।
  2. 2

    ट्रेन करना

    मॉडल सामान्य काम को अच्छी तरह सीखता है, और यह भी सीख लेता है: trigger का मतलब है यह जवाब।
  3. 3

    टेस्ट पास करना

    सामान्य इवैल्यूएशन डेटा में कोई trigger नहीं होता, इसलिए मॉडल बेहतरीन दिखता है।
  4. 4

    Activate होना

    बाद में, हमलावर किसी इनपुट में वह trigger जोड़ देता है और उसे वही जवाब मिल जाता है जो उसने प्लांट किया था।
ख़तरा
सामान्य एक्यूरेसी टेस्ट से backdoor का पता लगाना मुश्किल होता है, क्योंकि मॉडल सामान्य डेटा पर सचमुच अच्छा होता है। किसी अज्ञात स्रोत से डाउनलोड किए गए, या किसी अविश्वसनीय पक्ष द्वारा fine-tune किए गए मॉडल में ऐसा backdoor हो सकता है।

Poison कहाँ से अंदर आता है

  • Scrape किया गया वेब डेटा। कोई भी वेब पेज पब्लिश कर सकता है। अगर आपकी पाइपलाइन खुले वेब से डेटा जुटाती है, तो उस टेक्स्ट का कुछ हिस्सा मॉडल्स को प्रभावित करने के लिए लिखा गया हो सकता है।
  • पब्लिक डेटासेट्स। आपके पहली बार रिव्यू करने के बाद डेटासेट्स में बदलाव किया जा सकता है, या वे ऐसी वेब सामग्री की ओर इशारा कर सकते हैं जो अब बदल चुकी है।
  • यूज़र फीडबैक। थम्स अप, सुधार और रिपोर्ट्स में फर्जी अकाउंट्स की भरमार हो सकती है।
  • थर्ड-पार्टी लेबलिंग। आउटसोर्स किए गए लेबलर्स या टूल्स गलती से या जानबूझकर गलत लेबल्स लगा सकते हैं।
  • Pre-trained और fine-tuned मॉडल्स। किसी और से लिया गया मॉडल वही सब लेकर आता है जो उन्होंने उसमें ट्रेन किया है।

बचाव के तरीके

जोखिम भरी आदतें
  • हर ट्रेनिंग रन में डेटासेट का सबसे नया वर्शन डाउनलोड करना
  • सभी यूज़र फीडबैक पर अपने आप ट्रेन करना
  • रिलीज़ से पहले केवल कुल एक्यूरेसी चेक करना
  • लीडरबोर्ड पर अच्छा स्कोर करने वाले किसी भी मॉडल का इस्तेमाल करना
सुरक्षित आदतें
  • डेटासेट वर्शन्स को पिन करना और उनके hashes स्टोर करना
  • फीडबैक को ट्रेनिंग में शामिल करने से पहले उसे फ़िल्टर करना, सैंपल लेना और रिव्यू करना
  • रिलीज़ से पहले होल्डआउट और टारगेटेड टेस्ट चलाना, जिसमें trigger की खोज भी शामिल हो
  • ज्ञात provenance वाले भरोसेमंद स्रोतों के मॉडल्स को प्राथमिकता देना, और खुद उनका टेस्ट करना
  • Provenance: रिकॉर्ड रखें कि हर डेटासेट कहाँ से आया, किसने और कब इसमें बदलाव किया।
  • Curation: डुप्लिकेट हटाएं, खराब क्वालिटी या विषय से हटकर सामग्री को फ़िल्टर करें, और सैंपल्स को खुद चेक करें।
  • Anomaly detection: लगभग एक जैसे उदाहरणों के झुंड, एक ही लेबल से जुड़े दुर्लभ tokens, या लेबल संतुलन में अचानक बदलाव पर नज़र रखें।
  • होल्डआउट इवैल्यूएशन: एक भरोसेमंद टेस्ट सेट अलग रखें जो ट्रेनिंग पाइपलाइन से कभी न छुए, और उसके आधार पर मॉडल्स की तुलना करें।
  • भरोसेमंद स्रोत: अज्ञात अपलोड्स के बजाय अपने द्वारा इकट्ठा किए गए या स्पष्ट शर्तों के साथ लाइसेंस लिए गए डेटा को प्राथमिकता दें।
यह आज़माएं। आपके अगले fine-tuning रन में जाने वाले हर स्रोत की सूची बनाएं। हर एक पर मार्क करें: कौन इसे बदल सकता है, और अगर उन्होंने ऐसा किया तो क्या आपको पता चलेगा?

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

लैब

आपके अपने डेटासेट के लिए एक डेटा सोर्स रजिस्टर और सामान्य डुप्लिकेट व लेबल-असंतुलन की जाँच।

~25 min

समस्या

अपने डाउनलोड किए गए किसी छोटे पब्लिक टेक्स्ट डेटासेट का उपयोग करें, या अपनी टीम के डेटा का एक सैंपल लें (व्यक्तिगत डेटा हटाकर)।

  1. हर स्रोत के लिए एक पंक्ति वाला एक रजिस्टर बनाएं: नाम, यह कहाँ से आया, वर्शन या तारीख, hash, मालिक, कौन इसे बदल सकता है, लाइसेंस।
  2. एक छोटी स्क्रिप्ट लिखें जो हूबहू डुप्लिकेट पंक्तियों को ढूंढे और दिखाए कि हर लेबल कितनी बार आता है।
  3. 3 दुर्लभ शब्द चुनें और जाँचें कि क्या उनमें से कोई लगभग सिर्फ एक ही लेबल के साथ आता है। जो मिला उसे लिख लें।
  4. पाइपलाइन में जोड़ने के लिए दो नियम तय करें, जैसे "वर्शन्स पिन करें" या "नए स्रोतों का रिव्यू करें"।
शुरुआती कोडpython
import collections, csv, hashlib

path = "data.csv"   # columns: text,label
print("sha256:", hashlib.sha256(open(path, "rb").read()).hexdigest())

rows = list(csv.DictReader(open(path, encoding="utf-8")))
texts = collections.Counter(r["text"].strip().lower() for r in rows)
print("exact duplicates:", sum(c - 1 for c in texts.values() if c > 1))
print("labels:", collections.Counter(r["label"] for r in rows))

for word in ["word1", "word2", "word3"]:
    hits = collections.Counter(r["label"] for r in rows if word in r["text"].lower())
    print(word, dict(hits))
Google Colab खोलें ↗इस कोड के लिए आपके अपने सेटअप की ज़रूरत है (एक मॉडल, एक GPU या अतिरिक्त पैकेज)। इसे Google Colab में चलाएं: File → Upload notebook।

आपका काम तब पूरा होगा जब

कठिन सवाल

उत्तर देखने से पहले ख़ुद जवाब देने की कोशिश करें। अगर आप इनके जवाब दे सकते हैं, तो आप पाठ समझ गए हैं।

Q1लगभग सिर्फ एक ही लेबल के साथ दिखने वाला कोई trigger शब्द सामान्य भी क्यों हो सकता है?दिखाएं

कुछ शब्द स्वाभाविक रूप से किसी लेबल का संकेत देते हैं: "रिफंड" अक्सर किसी शिकायत का संकेत हो सकता है। ऐसा मिलना सिर्फ एक इशारा है, सबूत नहीं। वास्तविक उदाहरणों को देखें, वे कहाँ से आए और कब जोड़े गए। विभिन्न स्रोतों में फैले स्वाभाविक पैटर्न की तुलना में, एक ही नए स्रोत से एक ही समय में जोड़े गए कई लगभग-एक-जैसे उदाहरण कहीं अधिक संदिग्ध होते हैं।

Q2आप साफ़ डेटा पर किसी ओपन मॉडल को fine-tune करते हैं। क्या परिणामी मॉडल में फिर भी backdoor हो सकता है?दिखाएं

हाँ। Fine-tuning से कुछ व्यवहार बदल जाता है लेकिन हो सकता है कि बेस मॉडल में प्लांट किया गया backdoor न हटे। साफ़ fine-tuning डेटा शुरुआती weights को साफ़ नहीं करता। ज्ञात provenance वाले बेस मॉडल्स चुनें, असामान्य व्यवहार के लिए टेस्ट करें, और बेस मॉडल को अपनी सप्लाई चेन का हिस्सा मानें।

जारी रखने के लिए कृपया साइन इन करें।

अक्सर पूछे जाने वाले सवाल

क्या किसी हमलावर को बहुत सारे डेटा को poison करने की ज़रूरत होती है?

रिसर्च से पता चला है कि कुछ मामलों में backdoor प्लांट करने के लिए poison किए गए उदाहरणों का एक छोटा सा हिस्सा भी काफी हो सकता है, क्योंकि trigger दुर्लभ होता है और उसे सीखना आसान होता है। यह न मान लें कि बहुत बड़ा डेटासेट होने से poison का असर खत्म हो जाएगा।

क्या हम ट्रेनिंग के बाद backdoor का पता लगा सकते हैं?

कभी-कभी। रिसर्च के तरीके मॉडल में असामान्य पैटर्न्स की तलाश करते हैं या ऐसे इनपुट्स ढूंढते हैं जो किसी एक ही जवाब को मजबूर करते हैं। वे काम के हैं लेकिन पूरी तरह भरोसेमंद नहीं। बाद में backdoor ढूंढने की तुलना में अच्छे डेटा कंट्रोल्स के ज़रिए poisoning को पहले ही रोकना कहीं ज़्यादा आसान है।

क्या RAG डेटा को भी खतरा है?

हाँ। रीट्रिवल इंडेक्स में जोड़े गए दस्तावेज़ मॉडल के weights को नहीं बदलते, लेकिन वे यह बदल देते हैं कि वह क्या पढ़ता है और दोहराता है। यही बातें यहाँ भी लागू होती हैं: कौन दस्तावेज़ जोड़ सकता है इसे नियंत्रित करें, उनके स्रोत का रिकॉर्ड रखें, और बदलावों को रिव्यू करें।

यह जोखिम किसकी ज़िम्मेदारी है: ML टीम की या सुरक्षा टीम की?

दोनों की। ML टीम डेटा और ट्रेनिंग प्रोसेस को जानती है। सुरक्षा टीम खतरों के नज़रिए और एक्सेस कंट्रोल की समझ लाती है। हर डेटासेट के लिए एक मालिक तय करें, और सुनिश्चित करें कि सुरक्षा टीम पाइपलाइन डिज़ाइन का रिव्यू करे।

पाठ का टेस्ट

5 सवाल। पास होने और इस पाठ को पूरा करने के लिए 3 सही होने चाहिए (60%)।

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