
نموذج تصنيف الرموز ثنائي الاتجاه لكشف وإخفاء المعلومات الشخصية القابلة للتعريف (PII) في النصوص، مع واجهة سطر أوامر (CLI) لتنقيح البيانات وتقييمها وضبطها الدقيق محليًا.
OpenAI Privacy Filter هو نموذج تصنيف رموز ثنائي الاتجاه للكشف عن المعلومات الشخصية القابلة للتعريف (PII) وإخفائها في النصوص. وهو مخصص لسير عمل تعقيم البيانات عالي الإنتاجية حيث تحتاج الفرق إلى نموذج يمكنها تشغيله محليًا يكون سريعًا وواعيًا بالسياق وقابلًا للضبط.
تم تدريب OpenAI Privacy Filter مسبقًا بشكل انحداري ذاتي للوصول إلى نقطة تفتيش بمعمارية مشابهة لـ gpt-oss، وإن كانت بحجم أصغر. ثم قمنا بتحويل نقطة التفتيش تلك إلى مصنّف رموز ثنائي الاتجاه وفق تصنيف تسميات الخصوصية، وأعدنا تدريبه بخسارة تصنيف خاضعة للإشراف. (للاطلاع على تفاصيل معمارية gpt-oss، يرجى الرجوع إلى بطاقة نموذج gpt-oss.) بدلًا من توليد النص رمزًا برمز، يقوم هذا النموذج بوسم تسلسل الإدخال في تمريرة أمامية واحدة، ثم يفك ترميز النطاقات المتماسكة بإجراء Viterbi مقيّد. لكل رمز إدخال، يتنبأ النموذج بتوزيع احتمالي على تصنيف التسميات الذي يتكون من 8 فئات مخرجات موصوفة أدناه.
أبرز الميزات:
يحتوي هذا المستودع على الكود المحلي وواجهة سطر الأوامر والأصول المثالية المستخدمة لتشغيل نقاط تفتيش Privacy Filter وتقييمها وضبطها الدقيق. وهو مخصص للفرق التي تريد فحص التنفيذ مباشرة وتشغيل النموذج في بيئتها الخاصة.
موارد المستودع: الترخيص وسياسة الأمان.
pip install -e .
بعد ذلك، سيكون لديك سكربت بايثون باسم opf يمكن تشغيله مباشرة أو عبر python -m opf. يمكن استخدام السكربت بثلاث طرق منفصلة، كما هو موضح أدناه.
بشكل افتراضي، يبحث 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 في الوضع التفاعلي. في هذا الوضع، لكل مثال إدخال، تطبع واجهة سطر الأوامر مخرجات JSON منظمة، باستخدام معاينات مرمّزة بالألوان ANSI إذا كان الطرفية تدعم ذلك. يمكن التحكم في هذه الخيارات عبر الأعلام.
راجع opf redact --help لمزيد من الأعلام والمعلومات حول وضع الإخفاء.
opf eval examples/data/sample_eval_five_examples.jsonl
ملفات التقييم المثالية تحت examples/data/sample_eval_five_examples*.jsonl هي بيانات مثالية اصطناعية فقط ولا تصف أشخاصًا حقيقيين أو سجلات حساسة حقيقية. راجع 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.opf/_api.py: واجهة برمجية موجهة لبايثون فوق حزمة وقت التشغيل وفك الترميز.opf/_cli/: تحليل وسائط سطر الأوامر وأدوات مساعدة للعرض في الطرفية.opf/_core/: تحميل وقت التشغيل وتحويل النطاقات ومنطق فك الترميز المشترك.opf/_eval/: تحميل مجموعات البيانات والمعالجة المسبقة والمقاييس ومشغلات التقييم.opf/_train/: تحليل وسائط الضبط الدقيق المحلي ومشغلات التدريب.opf/_model/: تنفيذ المحوّل وإعداد نقطة التفتيش وتحميل الأوزان.examples/data/: ملفات تقييم مثالية بالإضافة إلى مجموعات بيانات تجريبية قابلة لإعادة الإنتاج للضبط الدقيق.examples/scripts/finetuning/: أدوات تجريبية قابلة للتشغيل للضبط الدقيق.FINETUNING.md: دليل مركّز لسير عمل الضبط الدقيق وسكربتات العرض التوضيحي.OUTPUT_SCHEMAS.md: تنسيقات استجابة JSON وحمولات التصدير.Privacy Filter هو نموذج تصنيف رموز ثنائي الاتجاه مع فك ترميز النطاقات. يتم تدريبه على مراحل، بدءًا من التدريب المسبق الانحداري الذاتي. ثم يتم تعديل نموذج اللغة المُدرَّب مسبقًا وإعادة تدريبه كمصنّف رموز ثنائي الاتجاه بانتباه نطاقي بحجم نطاق 128 (نافذة الانتباه الفعلية: 257 رمزًا بما في ذلك الذات). وهذا يعني:
معماريًا، التنفيذ في هذا المستودع هو حزمة على نمط مُرمِّز محوّل بمعيار مسبق مع:
d_model = 640.مقارنة بالأساليب الانحدارية الذاتية التكرارية، يتيح هذا التصميم وسم جميع الرموز في تمريرة واحدة، مما يحسّن الإنتاجية. مقارنة بأساليب التدريب المسبق الكلاسيكية لنموذج اللغة المقنّع، هذا تحويل بعد التدريب لنموذج انحداري ذاتي بدلًا من إعداد masked-LM أصلي.
يمكن لـ Privacy Filter اكتشاف 8 فئات لنطاقات الخصوصية:
account_numberprivate_addressprivate_emailprivate_personprivate_phoneprivate_urlprivate_datesecretلإجراء تصنيف الرموز، يتم توسيع كل فئة نطاق غير خلفية إلى فئات رموز موسومة بالحدود: B-<label>، I-<label>، E-<label>، S-<label>، بالإضافة إلى فئة الخلفية، O. لذا فإن العدد الإجمالي لفئات المخرجات على مستوى الرمز هو 33: فئة خلفية واحدة + 8 تسميات نطاق * 4 وسوم حدود = 33 فئة. وهذا يعني أن رأس المخرجات يُصدر 33 قيمة logit لكل رمز. لتسلسل بطول 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- المقابلة لنطاقات البداية والداخل والنهاية والرمز الواحد. في وقت الاستدلال، يتم فك ترميز قيم logit لكل رمز إلى تسميات نطاقات BIOES متماسكة باستخدام فك ترميز تسلسلي مقيّد.
بعد أن ينتج مصنّف الرموز قيم logit لكل رمز، نفك ترميز التسميات بفاك ترميز Viterbi مقيّد باستخدام تسجيل انتقالي بسلسلة خطية، بدلًا من أخذ argmax مستقل لكل رمز. يفرض الفاك انتقالات حدود BIOES المسموح بها ويسجّل مسارات التسميات الكاملة بشروط البداية والانتقال والنهاية، بالإضافة إلى ستة معاملات تحيّز انتقالي تتحكم في استمرارية الخلفية ودخول النطاق واستمرار النطاق وإغلاق النطاق والتسليم من حد إلى حد. يهدف هذا التحسين الشامل للمسار إلى تحسين تماسك النطاق واستقرار الحدود من خلال جعل كل قرار رمز يعتمد على بنية على مستوى التسلسل، وليس فقط على قيم logit المحلية، خاصة في النصوص المزعجة أو المختلطة التنسيق حيث يمكن لقرارات الرموز المحلية وحدها أن تنتج حدودًا مجزأة أو غير متسقة.
يمكن لمعاملات فك ترميز التسلسل أن تثبط البقاء في الخلفية مع تشجيع دخول النطاق واستمراره، مما ينتج إخفاءً أوسع وأكثر تلاصقًا لتحسين الاستدعاء، أو العكس لتحسين الدقة. في وقت التشغيل، يمكن للمستخدمين ضبط المعاملات التي تتحكم في هذه المقايضة.
طوّرته: OpenAI
موّلته: OpenAI
شاركته: OpenAI
نوع النموذج: نموذج تصنيف رموز ثنائي الاتجاه لكشف نطاقات الخصوصية
اللغة (اللغات): الإنجليزية بشكل أساسي؛ تم الإبلاغ عن تقييم مختار للمتانة متعددة اللغات
الترخيص: Apache 2.0
أوزان النموذج: https://huggingface.co/openai/privacy-filter
العرض التوضيحي: https://huggingface.co/spaces/openai/privacy-filter
بطاقة النموذج: OpenAI Privacy Filter Model Card
Privacy Filter هو أداة مساعدة للإخفاء وتقليل البيانات، وليس ضمانًا لإخفاء الهوية أو الامتثال أو السلامة. إن الاعتماد المفرط على الأداة كادعاء شامل لإخفاء الهوية قد يعرّض أهداف الخصوصية المرجوة للفشل. من الأفضل استخدام Privacy Filter كأحد طبقات متعددة في نهج شامل للخصوصية حسب التصميم من البداية إلى النهاية.
سيحدد النموذج فقط نطاقات البيانات الشخصية التي تطابق تصنيف التسميات والتعريفات التي دُرِّب عليها. حالات استخدام الخصوصية الواقعية متنوعة ومعقدة، وقد تختلف تعريفات سياسات التسميات وحدود القرار المناسبة. لذا قد لا تلبي الإعدادات الافتراضية للنموذج متطلبات الحوكمة الخاصة بمؤسسة معينة دون معايرة/ضبط دقيق.
لا يدعم Privacy Filter تكوين سياسات التسميات ديناميكيًا في وقت التشغيل؛ بدلًا من ذلك، يتطلب تغيير السياسات مزيدًا من الضبط الدقيق للنموذج. قد لا تكون مجموعة التسميات الأصلية وحدود القرار المرتبطة بها مناسبة لكل حالة استخدام. على سبيل المثال، تهدف سياسة تدريب النموذج إلى إعطاء الأولوية للمعرّفات الشخصية، وغالبًا ما تحافظ على السياق غير المرتبط بقوة بالأشخاص بحكم التصميم؛ قد يرغب بعض المستخدمين في تعديل هذا الخيار.
قد ينخفض الأداء على النصوص غير الإنجليزية، أو النصوص غير اللاتينية، أو أنماط تسمية المجموعات المحمية، أو المجالات الخارجة عن التوزيع مقارنة بتدريب النموذج.
مثل جميع النماذج، يمكن أن يخطئ Privacy Filter، مثل: نقص الكشف عن الأسماء الشخصية غير الشائعة، أو اصطلاحات التسمية الإقليمية، أو الأحرف الأولى، أو الإشارات المليئة بألقاب التبجيل، أو المعرّفات الخاصة بمجال معين؛ الإفراط في إخفاء الكيانات العامة أو المؤسسات أو المواقع أو الأسماء الشائعة عندما يكون السياق المحلي غامضًا؛ حدود نطاقات مجزأة أو منزاحة في النصوص المختلطة التنسيق أو المستندات الطويلة أو النصوص ذات الترقيم والتخطيط الكثيف؛ تفويت الأسرار لتنسيقات بيانات اعتماد جديدة أو أنماط رموز خاصة بمشروع أو أسرار مقسمة عبر الصياغة المحيطة؛ والإفراط في إخفاء السلاسل العشوائية الحميدة عالية الإنتروبيا أو العناصر النائبة أو التجزئات أو بيانات الاعتماد النموذجية أو الأمثلة الاصطناعية التي تشبه الأسرار.
يمكن أن تتفاعل هذه القيود مع التنوع الديموغرافي والإقليمي والمجالي. على سبيل المثال، قد تكون الأسماء والمعرّفات الممثلة تمثيلًا ناقصًا في بيانات التدريب، أو التي تتبع اصطلاحات مختلفة عن التوزيع التدريبي السائد، أكثر عرضة للتفويت أو لتحديد حدود غير متسقة.
يستحق الحذر الإضافي في الإعدادات عالية الحساسية مثل سير العمل الطبي والقانوني والمالي والموارد البشرية والتعليمي والحكومي. في هذه الإعدادات، يمكن أن تكون كل من النتائج السلبية الكاذبة والإيجابية الكاذبة مكلفة: قد تكشف النطاقات المفقودة معلومات حساسة، بينما قد يؤدي الإخفاء الزائد إلى إزالة سياق جوهري مطلوب للمراجعة أو التدقيق أو اتخاذ القرارات اللاحقة.
EVAL_AND_OUTPUT_MODES.md: وصف أوضاع المخرجات للإخفاء والتقييم.