मॉडल्स और ट्रेनिंग डेटा की चोरी
API के पीछे मौजूद मॉडल से खुद उसका और उस डेटा का रिसाव हो सकता है जिससे उसने सीखा है। मॉडल एक्सट्रैक्शन, मेंबरशिप इनफेरेंस और मेमोराइजेशन के बारे में जानें, और उन कंट्रोल्स के बारे में जो इन्हें कम करते हैं।
60 सेकंड में
मॉडल्स और ट्रेनिंग डेटा की चोरी
API के पीछे मौजूद मॉडल से खुद उसका और उस डेटा का रिसाव हो सकता है जिससे उसने सीखा है। मॉडल एक्सट्रैक्शन, मेंबरशिप इनफेरेंस और मेमोराइजेशन के बारे में जानें, और उन कंट्रोल्स के…
रिसर्च से साबित हुए तीन जोखिम
| हमला | हमलावर क्या चाहता है | आसान शब्दों में, कैसे |
|---|---|---|
| मॉडल एक्सट्रैक्शन | आपके मॉडल के बर्ताव की एक कॉपी | ढेर सारे सवाल (queries) भेजें, जवाब इकट्ठा करें, और उनकी नकल करने के लिए अपना खुद का मॉडल ट्रेन करें |
| मेंबरशिप इनफेरेंस | यह जानना कि क्या कोई खास रिकॉर्ड आपके ट्रेनिंग डेटा में था | मॉडल्स अक्सर उन उदाहरणों पर अधिक कॉन्फिडेंट होते हैं जिन पर उन्हें ट्रेन किया गया था; तुलना करें कि मॉडल कैसी प्रतिक्रिया देता है |
| ट्रेनिंग-डेटा एक्सट्रैक्शन | वह असली टेक्स्ट या डेटा जिसे मॉडल ने याद (memorise) कर लिया था | मॉडल को ऐसे प्रॉम्प्ट दें जिससे वह ट्रेनिंग के किसी दुर्लभ कंटेंट को दोहराए, जैसे कि कोई फोन नंबर जो कई बार आया था |
मेमोराइजेशन क्यों होता है
- ट्रेनिंग डेटा में जो कंटेंट कई बार दोहराया जाता है, उसके शब्द-दर-शब्द याद होने की संभावना अधिक होती है।
- बड़े मॉडल्स अधिक दुर्लभ बारीकियों को स्टोर कर सकते हैं।
- छोटे डेटासेट पर बहुत लंबे समय तक ट्रेनिंग देने (overfitting) से मॉडल सामान्य पैटर्न के बजाय उदाहरणों को ही याद रखने लगता है।
- सीक्रेट्स और पर्सनल डेटा जो डेटा में कभी होने ही नहीं चाहिए थे, जैसे कोड में मौजूद कीज़ (keys) या चैट लॉग्स में मौजूद ID, वे वापस बाहर आ सकते हैं।
बचाव (Defences)
| कंट्रोल | किससे बचाता है | नोट्स |
|---|---|---|
| प्रति यूज़र और प्रति की (key) रेट लिमिट्स और कोटा | एक्सट्रैक्शन | बड़ी मात्रा में डेटा इकट्ठा करने को धीमा और महंगा बना देता है |
| सवालों के पैटर्न (query patterns) पर नज़र रखें | एक्सट्रैक्शन, मेंबरशिप इनफेरेंस | असामान्य मात्रा, इनपुट की व्यवस्थित कवरेज, या लगभग एक जैसे ढेरों सवालों पर नज़र रखें |
| आउटपुट सीमित करें | एक्सट्रैक्शन, मेंबरशिप इनफेरेंस | जहाँ प्रोडक्ट अनुमति दे, वहाँ पूरी संभावनाओं (probabilities) के बजाय केवल एक लेबल या राउंड-ऑफ किया हुआ स्कोर लौटाएं |
| ट्रेनिंग डेटा से डुप्लिकेट हटाएं (Deduplicate) | डेटा एक्सट्रैक्शन | दोहराए गए कंटेंट के याद होने की संभावना अधिक होती है |
| सीक्रेट्स और पर्सनल डेटा साफ़ करें | डेटा एक्सट्रैक्शन | ट्रेनिंग से पहले कीज़, ID, फोन नंबर और ईमेल की जाँच करें |
| ट्रेनिंग में डिफरेंशियल प्राइवेसी (Differential privacy) | मेंबरशिप इनफेरेंस, डेटा एक्सट्रैक्शन | सटीकता (accuracy) में थोड़े नुकसान के साथ, यह एक गणितीय सीमा तय करता है कि कोई एक रिकॉर्ड मॉडल को कितना प्रभावित कर सकता है |
| उपयोग की शर्तें और कानूनी कंट्रोल्स | एक्सट्रैक्शन | प्रतिद्वंद्वी मॉडल्स को ट्रेन करने के लिए आउटपुट का उपयोग करने पर रोक लगाएं; निगरानी के साथ इसे लागू करें |
और देखें और पढ़ें
लैब
मॉडल API के लिए एक मॉनिटरिंग नियम और आउटपुट पॉलिसी, साथ ही एक ट्रेनिंग सैंपल का सीक्रेट स्कैन।
समस्या
कागज़ पर या अपने सैंपल डेटा के साथ काम करें।
- आपके द्वारा चलाए जाने वाले या डिज़ाइन किए जाने वाले मॉडल API के लिए, एक आउटपुट पॉलिसी लिखें: कॉल करने वालों को वास्तव में क्या लौटाया जाता है, और क्यों।
- आसान भाषा में दो मॉनिटरिंग नियम लिखें, जैसे "जब कोई एक की (key) एक घंटे में N से अधिक सवाल भेजे तो अलर्ट करें" या "जब किसी एक की (key) के सवाल इनपुट की असामान्य रूप से विस्तृत श्रृंखला को कवर करें तो अलर्ट करें"। N का मान अपने सामान्य ट्रैफ़िक से चुनें, न कि अंदाज़े से।
- उस टेक्स्ट के सैंपल पर स्टार्टर स्क्रिप्ट का उपयोग करें जिस पर आप ट्रेन कर सकते हैं। यह उन लाइनों को फ़्लैग करता है जो सीक्रेट्स या फोन नंबर जैसी दिखती हैं।
- नोट करें कि इसने क्या पकड़ा, क्या छोड़ दिया, और आप इसमें क्या जोड़ेंगे।
import re, sys
PATTERNS = {
"email": re.compile(r"[\w.+-]+@[\w-]+\.[\w.]+"),
"indian_mobile": re.compile(r"(?:\+91[\s-]?)?[6-9]\d{9}\b"),
"possible_key": re.compile(r"(?i)(api[_-]?key|secret|token)\s*[:=]\s*\S{12,}"),
}
for n, line in enumerate(open(sys.argv[1], encoding="utf-8"), 1):
for name, rx in PATTERNS.items():
if rx.search(line):
print(f"line {n}: {name}")
आपका काम तब पूरा होगा जब
कठिन सवाल
उत्तर देखने से पहले ख़ुद जवाब देने की कोशिश करें। अगर आप इनके जवाब दे सकते हैं, तो आप पाठ समझ गए हैं।
Q1सिर्फ रेट लिमिट्स ही मॉडल एक्सट्रैक्शन को क्यों नहीं रोक पाती हैं?दिखाएं
एक धैर्यवान हमलावर कई अकाउंट्स, कीज़ या हफ़्तों में सवालों को बाँट सकता है। रेट लिमिट्स लागत बढ़ाती हैं, लेकिन आपको ऐसी मॉनिटरिंग की भी ज़रूरत होती है जो अकाउंट्स को आपस में जोड़े, समय के साथ सवालों के पैटर्न को देखे, और ऐसे कानूनी नियम हों जिन्हें आप लागू कर सकें। कई सुरक्षा परतों को एक साथ मिलाएँ।
Q2डिफरेंशियल प्राइवेसी के साथ ट्रेन किया गया मॉडल दुर्लभ समूहों (rare groups) पर कम सटीक क्यों हो सकता है?दिखाएं
डिफरेंशियल प्राइवेसी इस बात को सीमित करती है कि कोई एक रिकॉर्ड, या रिकॉर्ड्स का छोटा समूह, मॉडल को कितना प्रभावित कर सकता है। दुर्लभ समूहों में रिकॉर्ड कम होते हैं, इसलिए उनके पैटर्न ही सबसे अधिक कमज़ोर पड़ते हैं। यह निष्पक्षता (fairness) से जुड़ा एक ऐसा समझौता है जिसे मापा जाना चाहिए, नज़रअंदाज़ नहीं किया जाना चाहिए: जब आप इसका उपयोग करें तो प्रति समूह सटीकता की जाँच करें।
अक्सर पूछे जाने वाले सवाल
क्या कोई इस तरह से किसी लार्ज लैंग्वेज मॉडल को कॉपी कर सकता है?
वे सवाल पूछकर सटीक वेट्स (weights) को कॉपी नहीं कर सकते। लेकिन वे इसके कुछ बर्ताव की नकल करने वाले छोटे मॉडल को ट्रेन करने के लिए ढेरों आउटपुट का उपयोग कर सकते हैं, जिसे अक्सर डिस्टिलेशन (distillation) कहा जाता है। यही कारण है कि कई प्रोवाइडर्स इसके इस्तेमाल को सीमित करते हैं और अपनी शर्तों में इस पर रोक लगाते हैं।
अगर हमलावर को सिर्फ हाँ या ना पता चलता है, तो मेंबरशिप इनफेरेंस से क्या फर्क पड़ता है?
कभी-कभी 'हाँ' ही सीक्रेट होता है। अगर किसी मॉडल को केवल किसी खास बीमारी के मरीजों, या ऐसे ग्राहकों के डेटा पर ट्रेन किया गया था जिन्होंने लोन नहीं चुकाया, तो यह जानना कि किसी व्यक्ति का रिकॉर्ड ट्रेनिंग सेट में था, उनके बारे में एक संवेदनशील बात उजागर करता है।
क्या हमारे अपने डेटा पर फाइन-ट्यूनिंग करने से यह जोखिम पैदा होता है?
हाँ। सपोर्ट टिकटों, ईमेल या डॉक्यूमेंट्स पर फाइन-ट्यून किया गया मॉडल उनके कुछ हिस्सों को दोहरा सकता है। फाइन-ट्यूनिंग से पहले डेटा साफ़ करें, जाने-माने संवेदनशील शब्दों के लिए प्रॉम्प्ट देकर टेस्ट करें, और यह सीमित करें कि फाइन-ट्यून किए गए मॉडल का उपयोग कौन कर सकता है।
क्या कॉन्फिडेंस स्कोर लौटाना हमेशा बुरा होता है?
नहीं। स्कोर ग्राहकों के लिए उपयोगी हो सकते हैं। यह नफा-नुकसान का मामला है। वही लौटाएं जिसकी प्रोडक्ट को वास्तव में ज़रूरत है, जहाँ संभव हो राउंड-ऑफ करें, और इसके गलत इस्तेमाल पर नज़र रखें।
पाठ का टेस्ट
5 सवाल। पास होने और इस पाठ को पूरा करने के लिए 3 सही होने चाहिए (60%)।