https://raid-bench.xyz
Buka Papan Peringkat. Evaluasi yang Dapat Dipercaya. Deteksi AI yang Kuat.
RAID adalah kumpulan data terbesar & terlengkap untuk mengevaluasi pendeteksi teks yang dihasilkan AI. Ini berisi lebih dari 10 juta dokumen yang mencakup 11 LLM, 11 genre, 4 strategi decoding, dan 12 serangan permusuhan. Ini dirancang untuk menjadi lokasi tujuan evaluasi pihak ketiga yang tepercaya terhadap detektor populer.
Instalasi pip install raid-bench | |
Contoh Penggunaan | |
---|---|
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 ) |
Dengan RAID Anda dapat:
Kumpulan data RAID mencakup lebih dari 10 juta generasi dari kategori berikut:
Kategori | Nilai-nilai |
---|---|
Model | ChatGPT, GPT-4, GPT-3 (teks-davinci-003), GPT-2 XL, Llama 2 70B (Obrolan), Cohere, Cohere (Obrolan), MPT-30B, MPT-30B (Obrolan), Mistral 7B, Mistral 7B (Obrolan) |
Domain | Abstrak ArXiv, Resep, Postingan Reddit, Ringkasan Buku, Artikel Berita NYT, Puisi, Ulasan Film IMDb, Wikipedia, Berita Ceko, Berita Jerman, Kode Python |
Strategi Penguraian Kode | Serakah (T=0), Sampling (T=1), Serakah + Penalti Pengulangan (T=0, Θ=1.2), Sampling + Penalti Pengulangan (T=1, Θ=1.2) |
Serangan Musuh | Penghapusan Artikel, Homoglif, Tukar Angka, Parafrase, Tukar Sinonim, Salah Eja, Penambahan Spasi, Tukar Atas-Bawah, Spasi Lebar Nol, Sisipkan Paragraf, Ejaan Alternatif |
RAID adalah satu-satunya kumpulan data yang mencakup beragam model, domain, strategi pengambilan sampel, dan serangan
Lihat makalah ACL 2024 kami untuk perbandingan lebih detail
Partisi kumpulan data RAID yang kami sediakan dipecah sebagai berikut:
Label? | Domain | Ukuran Kumpulan Data (tanpa permusuhan) | Ukuran Kumpulan Data (dengan permusuhan) | |
---|---|---|---|---|
Kereta RAID | ✅ | Berita, Buku, Abstrak, Review, Reddit, Resep, Wikipedia, Puisi | 802M | 11.8G |
Tes RAID | ❌ | Berita, Buku, Abstrak, Review, Reddit, Resep, Wikipedia, Puisi | 81,0 juta | 1.22G |
RAID-ekstra | ✅ | Kode, Ceko, Jerman | 275M | 3.71G |
Untuk mengunduh RAID melalui paket pypi, jalankan
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 )
Anda juga dapat mengunduh data secara manual menggunakan 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
BARU: Sekarang Anda juga dapat mengunduh RAID melalui Kumpulan Data HuggingFace? Perpustakaan
from datasets import load_dataset
raid = load_dataset ( "liamdugan/raid" )
Untuk mengirimkan ke papan peringkat, Anda harus terlebih dahulu mendapatkan prediksi untuk detektor Anda pada set pengujian. Anda dapat melakukannya menggunakan paket pypi atau 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
Setelah Anda memiliki file predictions.json
, Anda harus menulis file metadata untuk kiriman Anda. File metadata Anda harus menggunakan templat yang ditemukan dalam repositori ini di leaderboard/template-metadata.json
.
Terakhir, fork repositori ini. Tambahkan file generasi Anda ke leaderboard/submissions/YOUR-DETECTOR-NAME/predictions.json
dan file metadata Anda ke leaderboard/submissions/YOUR-DETECTOR-NAME/metadata.json
dan buat permintaan penarikan ke repositori ini.
Bot GitHub kami akan secara otomatis menjalankan evaluasi pada prediksi yang dikirimkan dan memasukkan hasilnya ke leaderboard/submissions/YOUR-DETECTOR-NAME/results.json
. Jika semuanya tampak baik-baik saja, pengelola akan menggabungkan PR dan model Anda akan muncul di papan peringkat!
Catatan
Anda dapat mengirimkan beberapa detektor dalam satu PR - setiap detektor harus memiliki direktorinya sendiri.
Jika Anda ingin menjalankan detektor yang telah kami terapkan atau menggunakan kode pembuatan kumpulan data kami, Anda harus menginstal dari sumber. Untuk melakukannya, kloning dulu repositorinya. Kemudian instal di lingkungan virtual pilihan Anda
Konda:
conda create -n raid_env python=3.9.7
conda activate raid_env
pip install -r requirements.txt
Venv:
python -m venv env
source env/bin/activate
pip install -r requirements.txt
Kemudian, isi file set_api_keys.sh
dengan kunci API untuk modul yang Anda inginkan (OpenAI, Cohere, detektor API, dll.). Setelah itu, jalankan source set_api_keys.sh
untuk mengatur variabel lingkungan kunci API.
Untuk menerapkan detektor ke kumpulan data melalui CLI kami, jalankan detect_cli.py
dan evaluate_cli.py
. Ini membungkus fungsi run_detection
dan run_evaluation
dari paket pypi. Opsinya tercantum di bawah ini. Lihat detectors/detector.py
untuk daftar nama detektor yang valid.
$ 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)
Contoh:
$ 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
Output dari evaluate_cli.py
akan berupa file JSON yang berisi keakuratan detektor pada setiap pemisahan kumpulan data RAID pada tingkat positif palsu target serta ambang batas yang ditemukan untuk detektor.
Jika Anda ingin mengimplementasikan detektor Anda sendiri dan tetap menjalankannya melalui CLI, Anda harus menambahkannya ke detectors/detector.py
agar dapat dipanggil melalui argumen baris perintah.
Jika Anda menggunakan kode atau temuan kami dalam penelitian Anda, harap kutip kami sebagai:
@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",
}
Penelitian ini didukung sebagian oleh Kantor Direktur Intelijen Nasional (ODNI), Intelligence Advanced Research Projects Activity (IARPA), melalui kontrak Program HIATUS #2022-22072200005. Pandangan dan kesimpulan yang terkandung di sini adalah milik penulis dan tidak boleh ditafsirkan sebagai mewakili kebijakan resmi, baik tersurat maupun tersirat, ODNI, IARPA, atau Pemerintah AS. Pemerintah AS berwenang untuk mereproduksi dan mendistribusikan cetakan ulang untuk tujuan pemerintah meskipun ada penjelasan hak cipta di dalamnya.