AI 텍스트 탐지기가 실제로 작동하는 방식 (그리고 왜 당신을 지목하는가)
요약
AI 텍스트 탐지기가 작동하는 통계적 원리와 그 한계를 분석합니다. 퍼플렉시티, 버스티니스, 곡률 기반 방식의 메커니즘을 설명하며, 탐지기가 저자성이 아닌 텍스트의 전형성을 측정한다는 근본적인 결함을 지적합니다.
핵심 포인트
- 탐지기는 토큰당 로그 가능도와 퍼플렉시티를 기반으로 작동함
- 인간의 글쓰기는 문장 간 변동성(Burstiness)이 높음
- DetectGPT와 같은 방식은 로그 확률 표면의 곡률을 활용함
- 탐지기는 저자성이 아닌 모델의 기대치와의 일치도를 측정함
몇 달마다 누군가 저에게 스크린샷을 보내옵니다. 탐지기가 그들의 에세이를 "98% AI 생성"이라고 판정했는데, 정작 본인은 모든 단어를 직접 썼다는 내용입니다. 대개 이들은 영어가 모국어가 아닌 사람들입니다. 저는 이러한 시스템 내부에서 충분한 시간을 보냈기에 왜 그런 일이 발생하는지, 그리고 왜 다이얼에 표시된 숫자가 당신이 베팅하고 싶을 만큼의 확률을 의미하지 않는지 설명할 수 있습니다.
먼저 직설적으로 말씀드리자면: 통계적 AI 텍스트 탐지(statistical AI-text detection)는 실제 신호(signal)를 가진 실제 기술이지만, 사람들이 이를 사용하는 목적, 즉 개별 문서를 판결하는 일에는 근본적으로 능력이 없습니다.
분류기(Classifiers)가 실제로 측정하는 것
거의 모든 제로샷 탐지기(zero-shot detector)는 하나의 아이디어로 귀결됩니다: 후보 텍스트를 언어 모델(language model)에 통과시키고 모델이 얼마나 놀랐는지(surprised)를 묻는 것입니다. 핵심 수량은 토큰당 로그 가능도(per-token log-likelihood)입니다:
import math
def mean_logprob(tokens, model):
...
낮은 퍼플렉시티(perplexity)는 점수 산정 모델이 해당 텍스트를 예측하기 쉬웠음을 의미합니다. 실제 사용되는 디코딩 전략들 — 탐욕적 방식(greedy), 낮은 온도의 샘플링(low-temperature sampling), 적절한 top-p를 사용하는 핵 샘플링(nucleus sampling) — 은 확률이 높은 연속된 단어를 선호하기 때문에, 생성된 텍스트는 제약이 없는 인간의 글쓰기보다 낮은 퍼플렉시티 영역에 위치하는 경향이 있습니다. 이것이 전체적인 기초입니다.
"버스티니스(Burstiness)"는 동일한 관찰에 대한 이계 모멘트(second-moment) 버전입니다. 인간의 글쓰기는 다양합니다: 밀도 높은 절이 나오고, 그다음 짧은 절이 나오며, 놀라운 단어 선택이 나온 뒤 예측 가능한 단어 세 개가 이어지기도 합니다. 따라서 문장당 퍼플렉시티의 분산(variance)은 인간의 경우 더 높게 나타나는 경향이 있습니다. 탐지기는 평균(mean)과 분산(variance) 모두를 임계값(threshold)이나 작은 분류기에 입력합니다.
더 흥미로운 현대적 접근 방식은 곡률 기반(curvature-based) 방식인 DetectGPT와 그보다 빠른 후손들입니다. 핵심 통찰은 다음과 같습니다: 기계가 작성한 텍스트는 모델의 로그 확률 표면(log-probability surface)의 국소 최댓값(local maximum) 근처에 위치하는 경향이 있다는 것입니다. 텍스트를 약간 변형(mask-and-refill spans)하고, 다시 점수를 매긴 뒤, 그 하락 폭을 측정합니다:
def curvature_score(text, model, perturb, k=20):
base = mean_logprob(tokenize(text), model)
drops = [base - mean_logprob(tokenize(perturb(text)), model)
...
이미 피크(peak)를 벗어난 인간의 텍스트는 약간의 변형(jiggle)을 가해도 수치가 크게 떨어지지 않습니다. 이는 단순한 퍼플렉시티 (Perplexity)보다 더 영리한 신호이지만, 아래에 설명할 결함은 여전히 그대로 가지고 있습니다.
결함: 당신은 저자성(Authorship)이 아니라 유창성-전형성(Fluency-typicality)을 측정하고 있습니다
이러한 점수들은 모두 대리 지표 (Proxy)입니다. 이들이 측정하는 것은 이 텍스트가 채점 모델의 기대치와 얼마나 밀접하게 일치하는가입니다. 저자성 (Authorship)은 방정식 어디에도 포함되어 있지 않습니다. 단지 "모델에게 전형적이다"라는 것이 "모델에 의해 생성되었다"와 상관관계가 있다는 가정하에 추론될 뿐입니다. 이 가정은 다음과 같은 예측 가능한 방식으로 무너집니다.
비원어민 작성자. 제2외국어 작문은 종종 더 작고 관습적인 어휘와 더 규칙적인 구문을 사용합니다. 이는 작성자가 관용적인 위험을 감수하기보다 확실하게 학습된 구조를 사용하기 때문입니다. 이는 *구조적으로 낮은 퍼플렉시티 (Low perplexity)*를 의미합니다. 이는 가설이 아닙니다. Liang 등이 수행한 2023년 스탠퍼드 대학교의 유명한 연구에 따르면, GPT 탐지기들은 비원어민 영어 작성자의 TOEFL 에세이를 원어민 작성자의 에세이보다 훨씬 더 높은 비율로 AI 생성물로 분류했습니다 (원어민 에세이는 거의 정확하게 분류되었습니다). 결과적으로 탐지기들은 영어 유창성 (English fluency)을 측정하고 이를 기계적 저자성 (Machine authorship)으로 보고하고 있었던 것입니다.
정형화된 장르. 실험 보고서, 법률 표준 문구, 임상 기록 및 기술 문서는 설계 단계부터 엔트로피가 낮습니다. 관습적인 문구를 사용하는 것이 목적이기 때문입니다. 사람이 작성한 사고 사후 분석 (Incident postmortem) 보고서가 실제로 생성된 수다스러운 블로그 포스트보다 더 "AI 같은" 점수를 받을 수 있습니다.
도메인 불일치 (Domain mismatch). 점수는 채점자의 학습 분포 (Training distribution)에 따라 달라집니다. 채점 모델이 충분히 나타내지 못하는 언어나 어조 (Register)를 채점하면, 누가 작성했는지와 무관한 이유로 퍼플렉시티 (Perplexity)가 상승합니다. 이것이 영어 뉴스에서 측정된 정확도 주장이 일본어 학술 산문에 결코 적용되지 않는 이유입니다.
편집. 가벼운 인간의 수정은 퍼플렉시티 (Perplexity)와 곡률 (Curvature) 점수를 측정 가능한 수준으로 변화시킵니다. 즉, 실제 현장에서 가장 흔히 발생하는 워크플로우 하에서 신호가 저하됩니다.
"99% 정확도"라는 숫자가 오해를 불러일으키는 이유
우수한 분류기 (classifier)를 가정하더라도, 기저율 (base rates)은 개별 문서 단위의 활용성을 파괴합니다. 탐지기의 민감도 (sensitivity)가 95%이고 특이도 (specificity)가 95%라고 가정해 봅시다. 이는 대부분의 정직한 평가보다 높은 수치이며, 제출된 문서의 5%가 기계가 작성했다고 가정합니다. 10,000개의 문서 중에서는 다음과 같은 결과가 나옵니다:
실제 AI 작성 (500): 475개 탐지됨, 25개 놓침
실제 인간 작성 (9500): 475개 탐지됨 (거짓 양성 (false positives)!), 9025개 통과
...
훌륭하다고 부를 만한 분류기임에도 불구하고, 이는 동전 던지기와 다를 바 없습니다. 특이도를 99%까지 높여도 정밀도 (precision)는 약 84%에 불과하며, 이는 여전히 6명 중 1명이 잘못 기소됨을 의미합니다. 또한 거짓 양성 (false positives)은 무작위로 분포하지 않습니다. 이들은 비원어민 작성자와 정형화된 장르에 집중되므로, 그 피해는 이에 항변할 능력이 가장 부족한 사람들에게 불균등하게 돌아갑니다.
이것은 표준적인 선별 검사 산술이며, 정직한 탐지기 문서들이 "징계 결정용으로 사용하지 마십시오"라고 명시하는 이유입니다. 문제는 보정 (calibration)이 아닙니다. 문제는 확률적인 신호가 UI에서 큰 백분율로 표시된다고 해서 곧바로 판결이 될 수는 없다는 점입니다.
자신을 속이지 않고 이러한 도구를 사용하는 방법
이 신호들은 유용합니다. 다만 판결로서가 아니라 다음과 같은 방식으로 사용해야 합니다:
- 심판하지 말고 집계하십시오 (Aggregate, don't adjudicate). 50,000개의 문서 코퍼스 (corpus)에 대한 탐지기 점수는 분포 변화 (distribution shift)에 대한 실질적인 정보를 제공합니다. 하지만 단 하나의 문서에 대해서는 거의 아무것도 알려주지 못합니다.
- 낙인을 찍지 말고 분포를 보고하십시오 (Report a distribution, not a badge). 해당 장르와 언어의 참조 분포 (reference distribution)에 대비한 점수를 보여주십시오. "Perplexity 21, 기술 문서 기준 하위 12%"라고 말하는 것이 정직한 방식입니다. "AI 확률 98%"라고 말하는 것은 그렇지 않습니다.
- 언어와 문체(register)별로 보정하십시오. 영어 블로그 포스트에 맞춰 조정된 임계값 (threshold)은 한국어 학술 논문에는 의미가 없습니다. 형태론적으로 풍부한 언어는 토큰화 (tokenize) 방식이 다르며, 저자에 대해 무엇인가를 측정하기도 전에 이미 다른 Perplexity 범위에 도달하게 됩니다.
- 점수를 유일한 증거로 삼지 마십시오. 버전 기록, 초안, 그리고 콘텐츠에 대한 5분간의 대화는 그 어떤 분류기보다 더 높은 신호 (higher-signal)를 가집니다.
제가 언어별 보정 하네스 (per-language calibration harness)를 구축할 때, Suikou AI의 다국어 툴링 (multilingual tooling)은 매우 유용한 비교 대상이었습니다. 이는 탐지 (detection)와 재작성 (rewriting)을 하나의 분포 문제 (distribution problem)에 대한 두 가지 관점으로 다루기 때문이며, 또한 일본어와 한국어 측면에서 토큰화 (tokenization) 문제를 무시할 수 없게 만들기 때문입니다. 즉, 형태소 분석 (morphological segmentation) 방식을 바꾸면 텍스트 자체에는 아무런 변화가 없음에도 불구하고 모든 퍼플렉시티 (perplexity) 수치가 변하게 됩니다.
이것이 핵심적인 교훈입니다. 만약 토크나이저 (tokenizer)를 바꿨을 때 지표 (metric)가 변한다면, 그것은 결코 저자성 (authorship)을 측정하고 있었던 것이 아닙니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기