इस प्रोजेक्ट के बारे में
Antiserum खुद को ट्रेनिंग डेटा के लिए एक एंटीवायरस के रूप में वर्णित करता है: एक स्थानीय स्कैनर जो टेक्स्ट डेटासेट में संभावित पॉइजन (poison) को फ्लैग करता है, साथ ही पुष्ट हस्ताक्षरों (signatures) का एक साझा फीड प्रदान करता है। रिपॉजिटरी ही उत्पाद है। इसमें कोई लॉगिन या होस्टेड स्कैनिंग सेवा नहीं है। सार्वजनिक दस्तावेज़ GitHub Pages से दिए जाते हैं, लेकिन साइट केवल CLI का दस्तावेजीकरण करती है और कॉर्पोरा को स्कैन, जज या होस्ट नहीं करती है।
यह प्रोजेक्ट प्री-ट्रेनिंग के एक प्रश्न पर केंद्रित है: क्या कोई डेटासेट सीखने के लिए सुरक्षित है? इस संदर्भ में, सुरक्षित का अर्थ है कि मिश्रण में छिपे हुए ट्रिगर, समन्वित लेबल फ्लिप, डुप्लिकेट डंप, या अन्य प्लांटेड पंक्तियाँ नहीं हैं जो तब तक साफ दिख सकती हैं जब तक कि मॉडल उन्हें याद न कर ले। यह टूल Python 3.10+ है और इसे PyPI से 'pip install antiserum' के माध्यम से इंस्टॉल किया जाता है, जो 'antiserum' कमांड को उपलब्ध कराता है। स्थानीय स्कैन नेटवर्क का उपयोग नहीं करता, API कीज़ नहीं लेता, या डेटासेट डाउनलोड नहीं करता। यह JSONL, CSV, JSON, प्लेन टेक्स्ट, gzip-कंप्रेस्ड वेरिएंट, और स्थानीय Hugging Face कैश या डाउनलोड किए गए डेटासेट पथों के फोल्डर को स्कैन कर सकता है। Arrow और Parquet shards के लिए एक वैकल्पिक अतिरिक्त की आवश्यकता होती है।
स्कैनर में तीन परतें हैं। इननेट (innate) परत स्थानीय मशीन पर चलती है और इसमें दुर्लभ n-grams, लेबल फ्लिप, नियर-कॉपी डंप, Jaccard से परे पैराफ्रेज परिवार, लंबाई और एंट्रॉपी स्पाइक्स, सिग्नेचर फीड हिट्स, छिपे हुए यूनिकोड नियंत्रण और मिश्रित-स्क्रिप्ट टोकन के लिए जाँच शामिल है। एडेप्टिव (adaptive) परत एक प्रकाशित रूब्रिक है जहाँ एक इंसान या एजेंट किसी फ्लैग को पॉइजन, जंक या फॉल्स अलार्म के रूप में चिह्नित कर सकता है। मेमोरी (memory) परत हस्ताक्षरों का एक स्थानीय फीड और एक संदर्भ कॉर्पस है। दिनांकित पैक रिलीज़ को चेंजलॉग में ट्रैक किया जाता है, और एक स्कैन एक रसीद लिखता है जिसमें डेटासेट हैश, स्कैनर संस्करण, पैक पहचान, फ्लैग और पुष्ट हिट शामिल होते हैं।
दस्तावेजीकृत जाँचों में ट्रिगर n-grams, लेबल फ्लिप, डुप्लिकेट इंजेक्ट, पैराफ्रेज ओवरवेट, स्टेट आउटलायर्स, सिग्नेचर हिट, इंस्ट्रक्शन ओवरराइड, हिडन यूनिकोड और मिश्रित स्क्रिप्ट शामिल हैं। कुछ जाँचों के लिए हमेशा मानवीय पुष्टि की आवश्यकता होती है, जबकि अन्य में प्रथम-पास जंक या फॉल्स-अलार्म वर्गीकरण हो सकता है। उपयोगकर्ता केवल चयनित जाँचें चला सकते हैं या जाँचों को छोड़ सकते हैं, और रसीद रिकॉर्ड करती है कि कौन सी जाँचें चलीं ताकि चूक दिखाई दे।
स्कैनिंग व्यवहार जानबूझकर स्थानीय और सीमित है। डिफ़ॉल्ट सीमा 25,000 पंक्तियाँ या 128 MiB स्रोत फाइलें हैं। एक बड़ा डंप सीमा पर रुक जाता है, रसीद में ट्रंकेशन (truncation) रिकॉर्ड करता है, और मेमोरी खत्म होने के बजाय 'exit 3' के साथ बाहर निकल जाता है। एक 'allow-truncated' विकल्प जानबूझकर लिए गए सैंपल के लिए 'exit 0' रख सकता है, जबकि रसीद अभी भी ट्रंकेटेड बताएगी। एग्जिट कोड एक पूर्ण स्कैन (बिना किसी विफल फ्लैग के), फेल-ऑन थ्रेशोल्ड पर या उससे ऊपर के फ्लैग, उपयोग या I/O त्रुटियों, और ट्रंकेशन के बीच अंतर करते हैं। 'Fail-on' किसी भी (any), उच्च (high), या कभी नहीं (never) हो सकता है। समान फोल्डर बाइट्स और फ्लैग के लिए रसीदें डिटरमिनिस्टिक होती हैं, और एक 'diff' कमांड बिना पुन: स्कैन किए एक सहेजे गए बेसलाइन रसीद की तुलना नए के साथ कर सकता है। टूल स्थानीय रूप से JSON, SARIF, HTML, CSV और Markdown रिपोर्ट आउटपुट कर सकता है।
कॉन्फ़िगरेशन को स्थानीय 'antiserum.toml' फ़ाइल में रखा जा सकता है, जिसमें फ्लैग फ़ाइल सेटिंग्स को ओवरराइड करते हैं। एक 'allowlist.jsonl' फ़ाइल ज्ञात फॉल्स अलार्म को दबा सकती है, और रसीद अभी भी अलाउलिस्ट पथ और हैश रिकॉर्ड करती है ताकि दमन चुपचाप न हो सके। पुष्टिकरण वर्कफ़्लो फ्लैग्स को जज करने, बचे हुए मामलों को सुलझाने, स्थानीय अलाउलिस्ट में फॉल्स अलार्म जोड़ने, और एक सिग्नेचर लाइन और पुल-रिक्वेस्ट बॉडी प्रस्तावित करने के लिए कमांड का उपयोग करता है। पुष्ट पॉइजन एक सार्वजनिक सिग्नेचर बन जाता है जिसे भविष्य के स्कैन मैच कर सकते हैं।
रिपॉजिटरी में दो मिनट के डेमो के लिए एक टॉय कॉर्पस और कुछ सौ पौधों और एक स्वच्छ बहुमत के साथ एक संदर्भ कॉर्पस शामिल है। 'make reproduce' कमांड संदर्भ मिश्रण को स्कैन करता है और यदि कोई प्लांटेड पंक्ति छूट जाती है तो नॉन-जीरो के साथ बाहर निकल जाता है। परीक्षणों में लिंटिंग, pytest कवरेज, फील्ड-हंट फिक्स्चर और थ्रेशोल्ड के विरुद्ध प्रति-जाँच मूल्यांकन शामिल हैं। एक GitHub Action कॉलर रनर पर CLI चला सकता है, रसीद और SARIF आर्टिफैक्ट्स बना सकता है, और वैकल्पिक रूप से कोड स्कैनिंग के लिए SARIF अपलोड कर सकता है। CI उदाहरण दिखाते हैं कि रसीद फ्लैग या गंभीरता के आधार पर जॉब को कैसे विफल किया जाए।
README दायरे के बारे में स्पष्ट है। Antiserum रनटाइम प्रॉम्प्ट फ़ायरवॉल, मॉडल-फ़ाइल या पिकल मैलवेयर स्कैनर, डेटा-गुणवत्ता या लेबल-त्रुटि टूल, वेट-लेवल बैकडोर इन्वर्टर, या इमेज-पॉइजन जनरेटर नहीं है। यह वर्तमान संस्करण में केवल टेक्स्ट-डेटासेट स्कैनिंग है। ईमानदार कवरेज, थ्रेट मॉडल, फील्ड-हंट नोट्स और पोजिशनिंग रिपॉजिटरी में प्रलेखित हैं। प्रोजेक्ट MIT-लाइसेंस प्राप्त है और इसे एक वर्किंग CLI, जाँच, पुष्टिकरण लूप, टॉय डेमो, संदर्भ कॉर्पस, फीड और रसीद के साथ सप्ताह 11-12 की स्थिति के रूप में प्रस्तुत किया गया है।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.