https://raid-bench.xyz
리더보드를 엽니다. 신뢰할 수 있는 평가. 강력한 AI 탐지.
RAID는 AI 생성 텍스트 감지기를 평가하기 위한 가장 크고 포괄적인 데이터 세트입니다. 여기에는 11개의 LLM, 11개의 장르, 4개의 디코딩 전략, 12개의 적대적 공격에 걸쳐 천만 개가 넘는 문서가 포함되어 있습니다. 인기 있는 감지기에 대한 신뢰할 수 있는 제3자 평가를 위한 장소로 설계되었습니다.
설치 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 데이터세트에는 다음 범주의 천만 개 이상의 세대가 포함되어 있습니다.
범주 | 가치 |
---|---|
모델 | ChatGPT, GPT-4, GPT-3(text-davinci-003), GPT-2 XL, Llama 2 70B(채팅), Cohere, Cohere(채팅), MPT-30B, MPT-30B(채팅), Mistral 7B, 미스트랄 7B (채팅) |
도메인 | ArXiv 초록, 조리법, Reddit 게시물, 도서 요약, NYT 뉴스 기사, 시, IMDb 영화 리뷰, Wikipedia, 체코 뉴스, 독일 뉴스, Python 코드 |
디코딩 전략 | 탐욕(T=0), 샘플링(T=1), 탐욕 + 반복 페널티(T=0, Θ=1.2), 샘플링 + 반복 페널티(T=1, Θ=1.2) |
적대적 공격 | 기사 삭제, 동형 문자, 숫자 교환, 다른 표현, 동의어 교환, 철자 오류, 공백 추가, 상하 교환, 공백 0, 단락 삽입, 대체 철자법 |
RAID는 다양한 모델, 도메인, 샘플링 전략 및 공격을 포괄하는 유일한 데이터 세트입니다.
더 자세한 비교는 ACL 2024 문서를 참조하세요.
우리가 제공하는 RAID 데이터 세트의 파티션은 다음과 같이 분류됩니다.
라벨? | 도메인 | 데이터 세트 크기(적대 제외) | 데이터세트 크기(적대 포함) | |
---|---|---|---|---|
RAID 열차 | ✅ | 뉴스, 서적, 초록, 리뷰, Reddit, 요리법, 위키피디아, 시 | 802M | 11.8G |
RAID 테스트 | ❌ | 뉴스, 서적, 초록, 리뷰, Reddit, 조리법, 위키피디아, 시 | 81.0M | 1.22G |
RAID-추가 | ✅ | 코드, 체코어, 독일어 | 275M | 3.71G |
pypi 패키지를 통해 RAID를 다운로드하려면 다음을 실행하세요.
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
NEW: 이제 HuggingFace 데이터 세트를 통해 RAID를 다운로드할 수도 있습니다. 도서관
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
그런 다음 원하는 모듈(OpenAI, Cohere, API 감지기 등)에 대한 API 키로 set_api_keys.sh
파일을 채웁니다. 그런 다음 source set_api_keys.sh
실행하여 API 키 환경 변수를 설정합니다.
CLI를 통해 데이터 세트에 감지기를 적용하려면 detect_cli.py
및 evaluate_cli.py
실행하세요. 이는 pypi 패키지의 run_detection
및 run_evaluation
함수를 둘러쌉니다. 옵션은 아래에 나열되어 있습니다. 유효한 탐지기 이름 목록은 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
의 출력은 감지기에 대해 발견된 임계값뿐만 아니라 목표 오탐률에서 RAID 데이터 세트의 각 분할에 대한 감지기의 정확도를 포함하는 JSON 파일입니다.
자체 감지기를 구현하고 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",
}
이 연구는 HIATUS 프로그램 계약 #2022-22072200005를 통해 ODNI(Office of the Director of National Intelligence), IARPA(Intelligence Advanced Research Projects Activity)에서 부분적으로 지원됩니다. 여기에 포함된 견해와 결론은 저자의 견해와 결론이며 반드시 ODNI, IARPA 또는 미국 정부의 명시적이거나 묵시적인 공식 정책을 나타내는 것으로 해석되어서는 안 됩니다. 미국 정부는 저작권 표시에도 불구하고 정부 목적으로 재인쇄물을 복제하고 배포할 권한이 있습니다.