https://raid-bench.xyz
فتح المتصدرين. تقييم جدير بالثقة. كشف قوي بالذكاء الاصطناعي.
RAID هي أكبر مجموعة بيانات وأكثرها شمولاً لتقييم أجهزة كشف النصوص التي يتم إنشاؤها بواسطة الذكاء الاصطناعي. يحتوي على أكثر من 10 ملايين مستند تغطي 11 ماجستيرًا في القانون و11 نوعًا و4 إستراتيجيات لفك التشفير و12 هجومًا عدائيًا. لقد تم تصميمه ليكون الموقع المفضل لتقييم موثوق من طرف ثالث لأجهزة الكشف الشائعة.
تثبيت pip install raid-bench | |
مثال الاستخدام | |
---|---|
from raid import run_detection , run_evaluation
from raid . utils import load_data
# Define your detector function
def my_detector ( texts : list [ str ]) -> list [ float ]:
pass
# Download & Load the RAID dataset
train_df = load_data ( split = "train" )
# Run your detector on the dataset
predictions = run_detection ( my_detector , train_df )
# Evaluate your detector predictions
evaluation_result = run_evaluation ( predictions , train_df ) |
مع RAID يمكنك:
تتضمن مجموعة بيانات RAID أكثر من 10 ملايين جيل من الفئات التالية:
فئة | قيم |
---|---|
نماذج | ChatGPT، GPT-4، GPT-3 (text-davinci-003)، GPT-2 XL، Llama 2 70B (Chat)، Cohere، Cohere (Chat)، MPT-30B، MPT-30B (Chat)، Mistral 7B، ميسترال 7B (دردشة) |
المجالات | ملخصات ArXiv، وصفات، منشورات Reddit، ملخصات كتب، مقالات أخبار نيويورك تايمز، شعر، مراجعات أفلام IMDb، ويكيبيديا، أخبار تشيكية، أخبار ألمانية، كود بايثون |
استراتيجيات فك التشفير | الجشع (T=0)، أخذ العينات (T=1)، الجشع + عقوبة التكرار (T=0، Θ=1.2)، أخذ العينات + عقوبة التكرار (T=1، Θ=1.2) |
الهجمات العدائية | حذف المقالة، التماثل، تبديل الأرقام، إعادة الصياغة، تبديل المرادفات، الخطأ الإملائي، إضافة مسافة بيضاء، التبديل من أعلى إلى أسفل، مسافة صفرية العرض، إدراج فقرات، تهجئة بديلة |
RAID هي مجموعة البيانات الوحيدة التي تغطي نماذج ومجالات واستراتيجيات أخذ العينات والهجمات المتنوعة
راجع ورقة ACL 2024 الخاصة بنا للحصول على مقارنة أكثر تفصيلاً
يتم تقسيم أقسام مجموعة بيانات RAID التي نقدمها على النحو التالي:
التسميات؟ | المجالات | حجم مجموعة البيانات (بدون الخصومة) | حجم مجموعة البيانات (مع الخصومة) | |
---|---|---|---|---|
قطار RAID | ✅ | أخبار، كتب، ملخصات، مراجعات، رديت، وصفات، ويكيبيديا، شعر | 802 م | 11.8 جرام |
اختبار RAID | ❌ | أخبار، كتب، ملخصات، مراجعات، رديت، وصفات، ويكيبيديا، شعر | 81.0 م | 1.22 جرام |
RAID إضافي | ✅ | الكود، التشيكية، الألمانية | 275 م | 3.71 جرام |
لتنزيل RAID عبر حزمة pypi، قم بتشغيل
from raid . utils import load_data
# Download the RAID dataset with adversarial attacks included
train_df = load_data ( split = "train" )
test_df = load_data ( split = "test" )
extra_df = load_data ( split = "extra" )
# Download the RAID dataset without adversarial attacks
train_noadv_df = load_data ( split = "train" , include_adversarial = False )
test_noadv_df = load_data ( split = "test" , include_adversarial = False )
extra_noadv_df = load_data ( split = "extra" , include_adversarial = False )
يمكنك أيضًا تنزيل البيانات يدويًا باستخدام wget
$ wget https://dataset.raid-bench.xyz/train.csv
$ wget https://dataset.raid-bench.xyz/test.csv
$ wget https://dataset.raid-bench.xyz/extra.csv
$ wget https://dataset.raid-bench.xyz/train_none.csv
$ wget https://dataset.raid-bench.xyz/test_none.csv
$ wget https://dataset.raid-bench.xyz/extra_none.csv
جديد: يمكنك الآن أيضًا تنزيل RAID من خلال مجموعات بيانات HuggingFace؟ مكتبة
from datasets import load_dataset
raid = load_dataset ( "liamdugan/raid" )
لتقديمها إلى لوحة المتصدرين، يجب عليك أولاً الحصول على تنبؤات لجهاز الكشف الخاص بك في مجموعة الاختبار. يمكنك القيام بذلك باستخدام حزمة pypi أو واجهة سطر الأوامر:
import json
from raid import run_detection , run_evaluation
from raid . utils import load_data
# Define your detector function
def my_detector ( texts : list [ str ]) -> list [ float ]:
pass
# Load the RAID test data
test_df = load_data ( split = "test" )
# Run your detector on the dataset
predictions = run_detection ( my_detector , test_df )
with open ( 'predictions.json' ) as f :
json . dump ( predictions , f )
$ python detect_cli.py -m my_detector -d test.csv -o predictions.json
بعد حصولك على ملف predictions.json
، يجب عليك بعد ذلك كتابة ملف بيانات تعريف للإرسال الخاص بك. يجب أن يستخدم ملف البيانات التعريفية الخاص بك القالب الموجود في هذا المستودع على leaderboard/template-metadata.json
.
وأخيرا، شوكة هذا المستودع. أضف ملفات الجيل الخاصة بك إلى leaderboard/submissions/YOUR-DETECTOR-NAME/predictions.json
وملف البيانات الوصفية الخاص بك إلى leaderboard/submissions/YOUR-DETECTOR-NAME/metadata.json
وقم بإجراء طلب سحب إلى هذا المستودع.
سيقوم روبوت GitHub الخاص بنا تلقائيًا بإجراء تقييمات على التوقعات المقدمة وإلزام النتائج بـ leaderboard/submissions/YOUR-DETECTOR-NAME/results.json
. إذا كان كل شيء على ما يرام، فسيقوم المشرف بدمج العلاقات العامة وسيظهر النموذج الخاص بك على لوحات الصدارة!
ملحوظة
يمكنك إرسال أجهزة كشف متعددة في طلب بحث واحد - يجب أن يكون لكل كاشف دليل خاص به.
إذا كنت تريد تشغيل أجهزة الكشف التي قمنا بتنفيذها أو استخدام كود إنشاء مجموعة البيانات الخاص بنا، فيجب عليك تثبيته من المصدر. للقيام بذلك أولاً، قم باستنساخ المستودع. ثم قم بالتثبيت في البيئة الافتراضية التي تختارها
كوندا:
conda create -n raid_env python=3.9.7
conda activate raid_env
pip install -r requirements.txt
فينف:
python -m venv env
source env/bin/activate
pip install -r requirements.txt
بعد ذلك، قم بملء ملف set_api_keys.sh
بمفاتيح API للوحدات النمطية التي تريدها (OpenAI، وCohere، وAPI Detectors، وما إلى ذلك). بعد ذلك، قم بتشغيل source set_api_keys.sh
لتعيين متغيرات بيئة مفتاح API.
لتطبيق كاشف على مجموعة البيانات من خلال واجهة سطر الأوامر الخاصة بنا، قم بتشغيل detect_cli.py
و evaluate_cli.py
. تلتف هذه حول وظائف run_detection
و run_evaluation
من حزمة pypi. الخيارات مذكورة أدناه. راجع detectors/detector.py
للحصول على قائمة بأسماء أجهزة الكشف الصالحة.
$ python detect_cli.py -h
-m, --model The name of the detector model you wish to run
-d, --data_path The path to the csv file with the dataset
-o, --output_path The path to write the result JSON file
$ python evaluate_cli.py -h
-r, --results_path The path to the detection result JSON to evaluate
-d, --data_path The path to the csv file with the dataset
-o, --output_path The path to write the result JSON file
-t, --target_fpr The target FPR to evaluate at (Default: 0.05)
مثال:
$ python detect_cli.py -m gltr -d train.csv -o gltr_predictions.json
$ python evaluate_cli.py -i gltr_predictions.json -d train.csv -o gltr_result.json
سيكون ناتج evaluate_cli.py
عبارة عن ملف JSON يحتوي على دقة الكاشف في كل قسم من مجموعة بيانات RAID بالمعدل الإيجابي الخاطئ المستهدف بالإضافة إلى العتبات الموجودة للكاشف.
إذا كنت ترغب في تنفيذ كاشفك الخاص مع الاستمرار في تشغيله عبر واجهة سطر الأوامر (CLI)، فيجب عليك إضافته إلى detectors/detector.py
بحيث يمكن استدعاؤه عبر وسيطة سطر الأوامر.
إذا كنت تستخدم الكود الخاص بنا أو النتائج التي توصلنا إليها في بحثك، فيرجى الإشارة إلينا على النحو التالي:
@inproceedings{dugan-etal-2024-raid,
title = "{RAID}: A Shared Benchmark for Robust Evaluation of Machine-Generated Text Detectors",
author = "Dugan, Liam and
Hwang, Alyssa and
Trhl{'i}k, Filip and
Zhu, Andrew and
Ludan, Josh Magnus and
Xu, Hainiu and
Ippolito, Daphne and
Callison-Burch, Chris",
booktitle = "Proceedings of the 62nd Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers)",
month = aug,
year = "2024",
address = "Bangkok, Thailand",
publisher = "Association for Computational Linguistics",
url = "https://aclanthology.org/2024.acl-long.674",
pages = "12463--12492",
}
يتم دعم هذا البحث جزئيًا من قبل مكتب مدير الاستخبارات الوطنية (ODNI)، نشاط مشاريع الأبحاث الاستخباراتية المتقدمة (IARPA)، عبر عقد برنامج HIATUS رقم 2022-22072200005. الآراء والاستنتاجات الواردة هنا هي آراء المؤلفين ولا ينبغي تفسيرها على أنها تمثل بالضرورة السياسات الرسمية، سواء الصريحة أو الضمنية، لـ ODNI أو IARPA أو حكومة الولايات المتحدة. يحق لحكومة الولايات المتحدة إعادة إنتاج وتوزيع المطبوعات لأغراض حكومية بغض النظر عن أي تعليق توضيحي لحقوق الطبع والنشر فيه.