
पाठ में PII का पता लगाने और मास्किंग के लिए द्विदिशात्मक टोकन-वर्गीकरण मॉडल, जिसमें ऑन-प्रिमाइसेस रिडैक्शन, मूल्यांकन और फाइनट्यूनिंग के लिए CLI शामिल है।
OpenAI Privacy Filter टेक्स्ट में व्यक्तिगत रूप से पहचान योग्य जानकारी (PII) का पता लगाने और मास्किंग के लिए एक द्विदिशात्मक टोकन-वर्गीकरण मॉडल है। यह उच्च-थ्रूपुट डेटा सैनिटाइज़ेशन वर्कफ़्लो के लिए अभिप्रेत है जहाँ टीमों को एक ऐसे मॉडल की आवश्यकता होती है जिसे वे ऑन-प्रिमाइसेस चला सकें, जो तेज़, संदर्भ-जागरूक और ट्यून करने योग्य हो।
OpenAI Privacy Filter को ऑटोरिग्रेसिव रूप से प्रीट्रेन किया गया है ताकि gpt-oss के समान आर्किटेक्चर वाला चेकपॉइंट प्राप्त हो, हालाँकि छोटे आकार का। फिर हमने उस चेकपॉइंट को एक प्राइवेसी लेबल टैक्सोनॉमी पर द्विदिशात्मक टोकन क्लासिफायर में परिवर्तित किया, और एक सुपरवाइज़्ड क्लासिफिकेशन लॉस के साथ पोस्ट-ट्रेन किया। (gpt-oss के आर्किटेक्चर विवरण के लिए, कृपया gpt-oss मॉडल कार्ड देखें।) टोकन-दर-टोकन टेक्स्ट जनरेट करने के बजाय, यह मॉडल एक ही फ़ॉरवर्ड पास में इनपुट अनुक्रम को लेबल करता है, फिर एक नियंत्रित Viterbi प्रक्रिया के साथ सुसंगत स्पैन को डिकोड करता है। प्रत्येक इनपुट टोकन के लिए, मॉडल लेबल टैक्सोनॉमी पर एक प्रायिकता वितरण की भविष्यवाणी करता है जिसमें नीचे वर्णित 8 आउटपुट श्रेणियाँ शामिल हैं।
मुख्य विशेषताएँ:
इस रिपॉज़िटरी में Privacy Filter चेकपॉइंट्स को चलाने, मूल्यांकन करने और फाइनट्यून करने के लिए उपयोग किया जाने वाला स्थानीय कोड, CLI, और उदाहरण एसेट्स शामिल हैं। यह उन टीमों के लिए है जो कार्यान्वयन का सीधे निरीक्षण करना चाहते हैं और मॉडल को अपने स्वयं के वातावरण में संचालित करना चाहते हैं।
रिपॉज़िटरी संसाधन: License और Security Policy।
pip install -e .
इसके बाद, आपके पास एक पायथन स्क्रिप्ट opf होगी जिसे सीधे या python -m opf के माध्यम से चलाया जा सकता है। स्क्रिप्ट का उपयोग 3 अलग-अलग तरीकों से किया जा सकता है, जैसा कि नीचे वर्णित है।
डिफ़ॉल्ट रूप से, opf OPF_CHECKPOINT वेरिएबल द्वारा इंगित डायरेक्टरी में, या ~/.opf/privacy_filter में एक मॉडल खोजता है। यदि ~/.opf/privacy_filter स्थान में कोई मॉडल नहीं मिलता है, तो इसे डाउनलोड कर लिया जाएगा।
opf "Alice was born on 1990-01-02."
कोड GPU (डिफ़ॉल्ट रूप से) और CPU दोनों पर चलाने का समर्थन करता है। CPU पर चलाने के लिए, --device cpu फ़्लैग का उपयोग करें:
opf --device cpu "Alice was born on 1990-01-02."
डिफ़ॉल्ट चेकपॉइंट को ओवरराइड करने के लिए, --checkpoint पास करें:
opf --checkpoint /path/to/checkpoint_dir "Alice was born on 1990-01-02."
रिडैक्शन मोड एक बार में पूरी फ़ाइल को रिडैक्ट करने का समर्थन करता है
opf -f /path/to/file
रिडैक्शन पाइप्स के माध्यम से भी किया जा सकता है, जिससे जटिल वन-लाइनर्स का समर्थन होता है:
cat /path/to/file | grep -e 'some_pattern' | opf
यदि कोई इनपुट प्रदान नहीं किया जाता है, तो opf इंटरैक्टिव मोड में शुरू होगा। इस मोड में, प्रत्येक इनपुट उदाहरण के लिए, CLI संरचित JSON आउटपुट प्रिंट करता है, और यदि टर्मिनल समर्थन करता है तो ANSI रंग-कोडित पूर्वावलोकन का उपयोग करता है। इन विकल्पों को फ़्लैग्स द्वारा नियंत्रित किया जा सकता है।
अधिक फ़्लैग्स और रिडैक्शन मोड के बारे में जानकारी के लिए opf redact --help देखें।
opf eval examples/data/sample_eval_five_examples.jsonl
examples/data/sample_eval_five_examples*.jsonl के अंतर्गत नमूना eval फ़िक्स्चर केवल सिंथेटिक उदाहरण डेटा हैं और वास्तविक व्यक्तियों या वास्तविक संवेदनशील रिकॉर्ड का वर्णन नहीं करते हैं। examples/data/README.md देखें।
अधिक फ़्लैग्स और मूल्यांकन मोड के बारे में जानकारी के लिए opf eval --help देखें।
opf train /path/to/train.jsonl --output-dir /path/to/finetuned_checkpoint
अधिक फ़्लैग्स और फाइनट्यूनिंग मोड के बारे में जानकारी के लिए opf train --help देखें।
opf/__main__.py: redact, eval, और train मोड के लिए एकीकृत CLI एंट्रीपॉइंट।opf/_api.py: रनटाइम और डिकोडिंग स्टैक पर पायथन-फेसिंग API।opf/_cli/: कमांड-लाइन आर्ग्युमेंट पार्सिंग और टर्मिनल रेंडरिंग हेल्पर्स।opf/_core/: रनटाइम लोडिंग, स्पैन रूपांतरण, और साझा डिकोडिंग लॉजिक।opf/_eval/: डेटासेट लोडिंग, प्रीप्रोसेसिंग, मेट्रिक्स, और मूल्यांकन रनर।opf/_train/: स्थानीय फाइनट्यूनिंग आर्ग्युमेंट पार्सिंग और ट्रेनिंग रनर।opf/_model/: ट्रांसफ़ॉर्मर कार्यान्वयन, चेकपॉइंट कॉन्फ़िग, और वेट लोडिंग।examples/data/: नमूना eval फ़ाइलें और प्रतिलिपि-योग्य फाइनट्यूनिंग डेमो डेटासेट।examples/scripts/finetuning/: चलाने योग्य फाइनट्यूनिंग डेमो हार्नेस।FINETUNING.md: केंद्रित फाइनट्यूनिंग वर्कफ़्लो और डेमो-स्क्रिप्ट गाइड।OUTPUT_SCHEMAS.md: JSON प्रतिक्रिया और एक्सपोर्ट पेलोड फ़ॉर्मेट।Privacy Filter स्पैन डिकोडिंग के साथ एक द्विदिशात्मक टोकन वर्गीकरण मॉडल है। इसे चरणों में प्रशिक्षित किया जाता है, जिसकी शुरुआत ऑटोरिग्रेसिव प्रीट्रेनिंग से होती है। प्रीट्रेन किए गए भाषा मॉडल को फिर संशोधित किया जाता है और बैंड आकार 128 (प्रभावी अटेंशन विंडो: स्वयं सहित 257 टोकन) के साथ एक द्विदिशात्मक बैंडेड अटेंशन टोकन क्लासिफायर के रूप में पोस्ट-ट्रेन किया जाता है। इसका मतलब है:
आर्किटेक्चरल रूप से, इस रेपो में कार्यान्वयन एक प्री-नॉर्म ट्रांसफ़ॉर्मर एनकोडर-शैली स्टैक है जिसमें शामिल हैं:
d_model = 640 है।पुनरावृत्त ऑटोरिग्रेसिव दृष्टिकोणों की तुलना में, यह डिज़ाइन सभी टोकन को एक ही पास में लेबल करने की अनुमति देता है, जो थ्रूपुट को बेहतर बनाता है। क्लासिकल मास्क्ड-लैंग्वेज-मॉडल प्रीट्रेनिंग दृष्टिकोणों की तुलना में, यह एक ऑटोरिग्रेसिव मॉडल का पोस्ट-ट्रेनिंग रूपांतरण है, न कि मूल मास्क्ड-LM सेटअप।
Privacy Filter 8 प्राइवेसी स्पैन श्रेणियों का पता लगा सकता है:
account_numberprivate_addressprivate_emailprivate_personprivate_phoneprivate_urlprivate_datesecretटोकन-वर्गीकरण करने के लिए, प्रत्येक गैर-बैकग्राउंड स्पैन श्रेणी को सीमा-टैग किए गए टोकन क्लासेस में विस्तारित किया जाता है: B-<label>, I-<label>, E-<label>, S-<label>, साथ ही बैकग्राउंड क्लास, O। इसलिए टोकन-स्तरीय आउटपुट क्लासेस की कुल संख्या 33 है: 1 बैकग्राउंड क्लास + 8 स्पैन लेबल * 4 सीमा टैग = 33 क्लासेस। इसका मतलब है कि आउटपुट हेड प्रत्येक टोकन के लिए 33 लॉजिट्स उत्सर्जित करता है। लंबाई T के अनुक्रम के लिए, आउटपुट का आकार [T, 33] होता है; आकार B के बैच के लिए, इसका आकार [B, T, 33] होता है।
टोकन-लेबल शब्दावली में बैकग्राउंड लेबल O के साथ-साथ प्रत्येक प्राइवेसी श्रेणी के BIOES-टैग किए गए रूप शामिल हैं: account_number, private_address, private_email, private_person, private_phone, private_url, private_date, और secret। दूसरे शब्दों में, प्रत्येक श्रेणी के लिए, मॉडल B-, I-, E-, और S- रूपों की भविष्यवाणी करता है जो क्रमशः begin, inside, end, और single-token स्पैन के अनुरूप हैं। इन्फ़रेंस के समय, इन प्रति-टोकन लॉजिट्स को नियंत्रित अनुक्रम डिकोडिंग का उपयोग करके सुसंगत BIOES स्पैन लेबल में डिकोड किया जाता है।
टोकन क्लासिफायर द्वारा प्रति-टोकन लॉजिट्स उत्पन्न करने के बाद, हम प्रत्येक टोकन के लिए स्वतंत्र argmax लेने के बजाय, लीनियर-चेन ट्रांज़िशन स्कोरिंग का उपयोग करके एक नियंत्रित Viterbi डिकोडर के साथ लेबल डिकोड करते हैं। डिकोडर अनुमत BIOES सीमा ट्रांज़िशन्स को लागू करता है और स्टार्ट, ट्रांज़िशन, और एंड टर्म्स के साथ-साथ छह ट्रांज़िशन-बायस पैरामीटर्स के साथ पूर्ण लेबल पाथ्स को स्कोर करता है जो बैकग्राउंड पर्सिस्टेंस, स्पैन एंट्री, स्पैन कंटिन्यूएशन, स्पैन क्लोज़र, और बाउंड्री-टू-बाउंड्री हैंडऑफ़ को नियंत्रित करते हैं। यह ग्लोबल पाथ ऑप्टिमाइज़ेशन प्रत्येक टोकन निर्णय को अनुक्रम-स्तरीय संरचना पर निर्भर बनाकर स्पैन सुसंगतता और सीमा स्थिरता को बेहतर बनाने का इरादा रखता है, न कि केवल स्थानीय लॉजिट्स पर, विशेष रूप से शोरयुक्त या मिश्रित-फ़ॉर्मेट टेक्स्ट में जहाँ अकेले स्थानीय टोकन निर्णय खंडित या असंगत सीमाएँ उत्पन्न कर सकते हैं।
अनुक्रम डिकोडिंग पैरामीटर्स बैकग्राउंड में बने रहने को हतोत्साहित कर सकते हैं जबकि स्पैन एंट्री और कंटिन्यूएशन को प्रोत्साहित कर सकते हैं, जिससे बेहतर रिकॉल के लिए व्यापक और अधिक सन्निहित मास्किंग प्राप्त होती है, या बेहतर प्रिसिज़न के लिए इसके विपरीत। रनटाइम पर, उपयोगकर्ता इस ट्रेडऑफ़ को नियंत्रित करने वाले पैरामीटर्स को ट्यून कर सकते हैं।
द्वारा विकसित: OpenAI
द्वारा वित्त पोषित: OpenAI
द्वारा साझा किया गया: OpenAI
मॉडल प्रकार: प्राइवेसी स्पैन डिटेक्शन के लिए द्विदिशात्मक टोकन वर्गीकरण मॉडल
भाषा(एँ): मुख्य रूप से अंग्रेज़ी; चयनित बहुभाषी मज़बूती मूल्यांकन रिपोर्ट किया गया
लाइसेंस: Apache 2.0
मॉडल वेट्स: https://huggingface.co/openai/privacy-filter
मॉडल कार्ड: OpenAI Privacy Filter Model Card
Privacy Filter एक रिडैक्शन और डेटा मिनिमाइज़ेशन सहायता है, न कि अनामीकरण, अनुपालन, या सुरक्षा की गारंटी। इस टूल पर एक व्यापक अनामीकरण दावे के रूप में अति-निर्भरता से वांछित गोपनीयता उद्देश्यों को चूकने का जोखिम होगा। Privacy Filter का उपयोग एक समग्र एंड-टू-एंड प्राइवेसी-बाय-डिज़ाइन दृष्टिकोण में कई परतों में से एक के रूप में सर्वोत्तम है।
मॉडल केवल उन व्यक्तिगत डेटा स्पैन्स की पहचान करेगा जो प्रशिक्षित लेबल टैक्सोनॉमी और परिभाषाओं से मेल खाते हैं। वास्तविक जीवन के गोपनीयता उपयोग के मामले विविध और जटिल हैं और उपयुक्त लेबल नीतियों और निर्णय सीमाओं की परिभाषाएँ भिन्न हो सकती हैं। इस प्रकार मॉडल डिफ़ॉल्ट कैलिब्रेशन/फाइन-ट्यूनिंग के बिना संगठन-विशिष्ट शासन आवश्यकताओं को पूरा नहीं कर सकते हैं।
Privacy Filter रनटाइम पर लेबल नीतियों को गतिशील रूप से कॉन्फ़िगर करने का समर्थन नहीं करता है; इसके बजाय नीतियों को बदलने के लिए मॉडल की और फाइनट्यूनिंग की आवश्यकता होती है। मूल लेबल सेट और संबंधित निर्णय सीमाएँ हर उपयोग के मामले के लिए उपयुक्त नहीं हो सकती हैं। उदाहरण के लिए, मॉडल की प्रशिक्षण नीति व्यक्तिगत पहचानकर्ताओं को प्राथमिकता देने का लक्ष्य रखती है, जो अक्सर डिज़ाइन द्वारा दृढ़ता से व्यक्ति-लिंक्ड नहीं होने वाले संदर्भ को संरक्षित करती है; कुछ उपयोगकर्ता इस विकल्प को समायोजित करना चाह सकते हैं।
गैर-अंग्रेज़ी टेक्स्ट, गैर-लैटिन स्क्रिप्ट, संरक्षित-समूह नामकरण पैटर्न, या मॉडल प्रशिक्षण की तुलना में आउट-ऑफ-डिस्ट्रीब्यूशन डोमेन पर प्रदर्शन गिर सकता है।
सभी मॉडलों की तरह, Privacy Filter गलतियाँ कर सकता है, जैसे: असामान्य व्यक्तिगत नामों, क्षेत्रीय नामकरण परंपराओं, आद्याक्षरों, उपाधि-भारी संदर्भों, या डोमेन-विशिष्ट पहचानकर्ताओं का कम-पता लगाना; जब स्थानीय संदर्भ अस्पष्ट हो तो सार्वजनिक संस्थाओं, संगठनों, स्थानों, या सामान्य संज्ञाओं का अति-रिडैक्शन; मिश्रित-फ़ॉर्मेट टेक्स्ट, लंबे दस्तावेज़ों, या भारी विराम चिह्न और लेआउट आर्टिफ़ैक्ट्स वाले टेक्स्ट में खंडित या स्थानांतरित स्पैन सीमाएँ; नए क्रेडेंशियल फ़ॉर्मेट, प्रोजेक्ट-विशिष्ट टोकन पैटर्न, या आसपास के सिंटैक्स में विभाजित सीक्रेट्स के लिए छूटे हुए सीक्रेट्स; और सीक्रेट्स जैसे दिखने वाले सौम्य उच्च-एन्ट्रॉपी स्ट्रिंग्स, प्लेसहोल्डर्स, हैशेस, नमूना क्रेडेंशियल्स, या सिंथेटिक उदाहरणों का अति-रिडैक्शन।
ये सीमाएँ जनसांख्यिकीय, क्षेत्रीय, और डोमेन भिन्नता के साथ परस्पर क्रिया कर सकती हैं। उदाहरण के लिए, प्रशिक्षण डेटा में कम-प्रतिनिधित्व वाले नाम और पहचानकर्ता, या जो प्रमुख प्रशिक्षण वितरण से भिन्न परंपराओं का पालन करते हैं, उनके छूटने या असंगत रूप से सीमाबद्ध होने की अधिक संभावना हो सकती है।
चिकित्सा, कानूनी, वित्तीय, मानव संसाधन, शिक्षा, और सरकारी वर्कफ़्लो जैसी उच्च-संवेदनशीलता सेटिंग्स में अतिरिक्त सावधानी की आवश्यकता है। इन सेटिंग्स में, दोनों ही गलत नकारात्मक और गलत सकारात्मक महंगे हो सकते हैं: छूटे हुए स्पैन्स संवेदनशील जानकारी को उजागर कर सकते हैं, जबकि अतिरिक्त मास्किंग समीक्षा, ऑडिटिंग, या डाउनस्ट्रीम निर्णय-निर्माण के लिए आवश्यक भौतिक संदर्भ को हटा सकती है।
EVAL_AND_OUTPUT_MODES.md: रिडैक्शन और मूल्यांकन के लिए आउटपुट मोड का विवरण।