https://raid-bench.xyz
Открытые таблицы лидеров. Достоверная оценка. Надежное обнаружение искусственного интеллекта.
RAID — это самый большой и полный набор данных для оценки детекторов текста, созданных искусственным интеллектом. Он содержит более 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 миллионов поколений из следующих категорий:
Категория | Ценности |
---|---|
Модели | ЧатGPT, GPT-4, GPT-3 (text-davinci-003), GPT-2 XL, Llama 2 70B (Чат), Cohere, Cohere (Чат), MPT-30B, MPT-30B (Чат), Mistral 7B, Мистраль 7Б (Чат) |
Домены | Резюме ArXiv, Рецепты, Сообщения на Reddit, Краткое изложение книг, Статьи новостей NYT, Поэзия, Обзоры фильмов на IMDb, Википедия, Чешские новости, Немецкие новости, Код Python |
Стратегии декодирования | Жадный (T=0), Выборка (T=1), Жадный + штраф за повторение (T=0, Θ=1,2), Выборка + штраф за повторение (T=1, Θ=1,2) |
Состязательные атаки | Удаление статьи, гомоглиф, замена номеров, перефраз, замена синонимов, орфографическая ошибка, добавление пробелов, замена верхних и нижних пробелов, пробел нулевой ширины, вставка абзацев, альтернативное написание |
RAID — единственный набор данных, охватывающий разнообразные модели, области, стратегии выборки и атаки.
Более подробное сравнение смотрите в нашем документе ACL 2024.
Разделы предоставляемого нами набора данных RAID разбиты следующим образом:
Этикетки? | Домены | Размер набора данных (без состязательности) | Размер набора данных (с состязательностью) | |
---|---|---|---|---|
RAID-поезд | ✅ | Новости, Книги, Рефераты, Обзоры, Reddit, Рецепты, Википедия, Поэзия | 802М | 11,8 г |
RAID-тест | ❌ | Новости, Книги, Рефераты, Обзоры, Reddit, Рецепты, Википедия, Поэзия | 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 или 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 evaluate_cli.py
detect_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 или правительства США. Правительство США имеет право воспроизводить и распространять перепечатки в правительственных целях, несмотря на любые содержащиеся в них примечания об авторских правах.