https://raid-bench.xyz
เปิดลีดเดอร์บอร์ด การประเมินที่เชื่อถือได้ การตรวจจับ AI ที่แข็งแกร่ง
RAID เป็นชุดข้อมูลที่ใหญ่ที่สุดและครอบคลุมที่สุดสำหรับการประเมินตัวตรวจจับข้อความที่สร้างโดย AI ประกอบด้วยเอกสารมากกว่า 10 ล้านฉบับซึ่งครอบคลุม 11 LLM, 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 (ข้อความ-davinci-003), GPT-2 XL, Llama 2 70B (แชท), เชื่อมโยงกัน, เชื่อมโยงกัน (แชท), MPT-30B, MPT-30B (แชท), Mistral 7B, มิสทรัล 7B (แชท) |
โดเมน | บทคัดย่อ ArXiv, สูตรอาหาร, โพสต์ Reddit, สรุปหนังสือ, บทความข่าว NYT, บทกวี, บทวิจารณ์ภาพยนตร์ IMDb, วิกิพีเดีย, ข่าวเช็ก, ข่าวเยอรมัน, รหัส Python |
กลยุทธ์การถอดรหัส | ความโลภ (T=0), การสุ่มตัวอย่าง (T=1), ความโลภ + การลงโทษการทำซ้ำ (T=0, Θ=1.2), การสุ่มตัวอย่าง + การลงโทษการทำซ้ำ (T=1, Θ=1.2) |
การโจมตีของฝ่ายตรงข้าม | การลบบทความ, คำพ้องเสียง, การสลับตัวเลข, การถอดความ, การสลับคำพ้องความหมาย, การสะกดผิด, การบวกช่องว่าง, การสลับบน-ล่าง, ช่องว่างความกว้างเป็นศูนย์, แทรกย่อหน้า, การสะกดทางเลือก |
RAID เป็นชุดข้อมูลเดียวที่ครอบคลุมโมเดล โดเมน กลยุทธ์การสุ่มตัวอย่าง และการโจมตีที่หลากหลาย
ดูเอกสาร ACL 2024 ของเราสำหรับการเปรียบเทียบโดยละเอียดเพิ่มเติม
พาร์ติชั่นของชุดข้อมูล RAID ที่เราจัดเตรียมให้จะถูกแยกย่อยดังนี้:
ป้ายกำกับ? | โดเมน | ขนาดชุดข้อมูล (ไม่มีฝ่ายตรงข้าม) | ขนาดชุดข้อมูล (พร้อมฝ่ายตรงข้าม) | |
---|---|---|---|---|
RAID รถไฟ | ข่าว หนังสือ บทคัดย่อ บทวิจารณ์ Reddit สูตรอาหาร วิกิพีเดีย บทกวี | 802M | 11.8G | |
การทดสอบ RAID | ข่าว หนังสือ บทคัดย่อ บทวิจารณ์ Reddit สูตรอาหาร วิกิพีเดีย บทกวี | 81.0ม | 1.22G | |
RAID-พิเศษ | รหัส, เช็ก, เยอรมัน | 275ม | 3.71G |
หากต้องการดาวน์โหลด 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 หรือ CLI:
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
หากทุกอย่างดูดี ผู้ดูแลจะรวม PR และโมเดลของคุณจะปรากฏบนกระดานผู้นำ!
บันทึก
คุณสามารถส่งตัวตรวจจับหลายตัวใน PR เดียว - ตัวตรวจจับแต่ละตัวควรมีไดเรกทอรีของตัวเอง
หากคุณต้องการเรียกใช้ตัวตรวจจับที่เราได้นำไปใช้หรือใช้โค้ดการสร้างชุดข้อมูลของเรา คุณควรติดตั้งจากแหล่งที่มา โดยให้ทำการโคลนพื้นที่เก็บข้อมูลก่อน จากนั้นติดตั้งในสภาพแวดล้อมเสมือนจริงที่คุณเลือก
คอนดา:
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 ฯลฯ) หลังจากนั้น ให้รัน source set_api_keys.sh
เพื่อตั้งค่าตัวแปรสภาพแวดล้อมของคีย์ API
หากต้องการใช้ตัวตรวจจับกับชุดข้อมูลผ่าน CLI ของเรา ให้รัน 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 หรือรัฐบาลสหรัฐฯ รัฐบาลสหรัฐฯ ได้รับอนุญาตให้ทำซ้ำและแจกจ่ายสิ่งพิมพ์ซ้ำเพื่อวัตถุประสงค์ของรัฐบาล แม้ว่าจะมีคำอธิบายประกอบเกี่ยวกับลิขสิทธิ์ใดๆ ในนั้นก็ตาม