[DetectGPT 논문 리뷰]
AI가 생성한 글을 탐지하는 Stanford의 Zero-Shot Machine-Generated Text Detection 기법
최근, ChatGPT를 비롯한 Instruction-Following 모델 사용의 보편화
→ AI 생성 검출에 대한 수요 증가.. 과연 성능은?
Introduction
•
ChatGPT를 활용한 간단한 코드, 문서 작성.. Instruction-Following 모델의 등장으로 업무 효율성 증진
•
그러나, 일부 분야 (ex. 교육 현장 등)에서는 무분별한 ChatGPT 사용이 문제가 됨
→ AI가 생성한 글을 탐지하는.. Machine-Generated Text Detection 기술의 필요성!
•
기존의 Detection 기법: Binary Classification vs Zero-Shot 존재
•
Zero-Shot
◦
Key Idea: AI가 생성한 글은 LM이 생성할 확률이 높은 Token들로 구성될 것
◦
검사하는 문장의 각 Token을 Target LM이 생성하는 확률 (Log Probability) 활용
Detection 예시
◦
Binary Classifier의 과적합 문제 해결
DetectGPT: Zero-Shot Machine-Generated Text Detection using Probability Curvature
•
본 논문은 주어진 문장을 개별 Token이 아닌, 전체 문장 (더 넓은) 단위에서 분석하는 DetectGPT라는 Detection 기법을 제안
•
Key Idea: AI가 생성한 문장은 높은 Log Probability 값을 가질 것이므로, 해당 문장의 일부분을 수정하여 얻은 문장은 상대적으로 작은 Log Probability 값을 가질 것이다
→ 반면, 사람이 작성한 글은 (Target LM 입장에서) 높은 Log Probability 값을 갖는 것이 보장되지 않기 때문에, 문장 일부분을 수정하여도 Log Probability 값이 오를 수도 or 내릴 수도 있을 것이다 (아래 그림 참조)
Proposed Method
1.
주어진 문장의 일부분을 수정한 변형 문장을 n개 생성한다
•
이 때, T5와 같은 별도의 LM을 사용하여 일부 단어들을 변경하는 방식을 활용
•
ex. 나는 달콤한 초콜릿 아이스크림이 좋아 → 나는 달달한 초콜릿 아이스크림이 좋아
2.
변형 문장 n개와 원본 문장과의 (Target LM 입장에서) Log Probability 값 차이를 계산한다
ex. (주어진 문장이 AI로부터 생성되었을 경우)
원본 문장 | 변형 문장1 | 변형 문장2 | 변형 문장3 | 변형 문장4 | 변형 문장5 | |
Log Prob | 0.8 | 0.65 | 0.6 | 0.85 | 0.7 | 0.65 |
Diff | - | 0.15 | 0.2 | -0.05 | 0.1 | 0.15 |
(주어진 문장이 사람으로부터 작성되었을 경우)
원본 문장 | 변형 문장1 | 변형 문장2 | 변형 문장3 | 변형 문장4 | 변형 문장5 | |
Log Prob | 0.8 | 0.85 | 0.7 | 0.65 | 0.9 | 0.85 |
Diff | - | -0.05 | 0.1 | 0.15 | -0.1 | -0.05 |
3.
위에서 구한 Log Probability 차이 값 n개의 평균, 표준편차를 계산한다
ex. (주어진 문장이 AI로부터 생성되었을 경우) 평균 0.11, 표준편차 0.009
(주어진 문장이 사람으로부터 작성되었을 경우) 평균 0.01, 표준편차 0.012
4.
평균/표준편차 값이 일정 수준 (Hyperparam, Threshold) 이상일 경우 AI (Target LM) 생성으로, 이하일 경우 사람 작성으로 판단한다
ex. (주어진 문장이 AI로부터 생성되었을 경우) 12.22, (주어진 문장이 사람으로부터 작성되었을 경우) 0.83
•
AI가 생성한 문장의 경우, 원본 문장과 변형 문장들 간의 Log Probability 값 차이가 대부분 양수이므로, 상대적으로 큰 평균 값, 작은 표준편차 값을 가짐
•
반면, 사람이 작성한 문장은 음수~양수의 차이 값을 가지므로, 상대적으로 작은 평균 값, 큰 표준편차 값을 가짐
Experiments & Results
•
실험에서는 XSum, SQuAD, Reddit WritingPrompts, WMT16, PubMedQA 5개의 Human-Written 데이터셋 사용
◦
데이터의 앞 부분 (30 Tokens)을 Prompt로 활용하여 Machine-Generated Text 생성
•
생성에 사용하는 (제안 기법이 검출해야 하는, Target) 모델로는 1.5B~20B 크기의 LM 선정
◦
GPT-2, OPT-2.7, Neo-2.7, GPT-J, NeoX 등
•
변형 문장을 생성하는 모델로는 T5-3B (큰 Target LM 검출에는 T5-11B) 채택
•
제안 기법 or Baseline 기법들의 성능 측정에는 AUROC 지표 사용
(실험 결과는 유의미한 것들 위주로 기록)
•
Target LM의 크기, 데이터셋에 관계 없이 DetectGPT가 기존의 Zero-Shot 방법론들에 비해 좋은 성능을 보임
•
Target LM의 크기가 작을 때에는 DetectGPT가 Fine-Tuned RoBERTa에 준하는 성능을 보이지만, 175B GPT-3를 Target LM으로 사용했을 때에는 좋지 못한 성능을 보임
◦
Fine-Tuned RoBERTa는 General Dataset을 학습했기 때문에 PubMedQA에서는 성능이 필연적으로 감소
◦
Real-World Application에는 아직 Binary Classifier가 적합할 수도..
•
Target LM이 생성한 문장을 편집할수록 검출 성능이 감소함
◦
대부분의 사람들이 AI가 작성한 글을 그대로 사용하지는 않을 테니.. → Real-World Application에서 고려할 점
•
DetectGPT는 기본적으로 Token/문장의 Log Probability를 필요로 함
◦
Target LM의 Parameter에 접근 가능하거나 or API를 사용할 경우 Log Prob 값을 반환받을 수 있는 환경 (White-Box Setting)에서만 활용 가능
◦
그렇지 않은 환경 (Black-Box Setting)에서는 Target LM을 대체할 다른 LM들을 Ensemble하여 활용할 수 있음