
AI 탐지기에 AI 문장 10개를 입력했더니, 5개는 '인간'으로 판정되었다
요약
AI 탐지기가 문장의 출처가 아닌 'AI스러운 문체'를 기준으로 작동함을 실험을 통해 증명했습니다. AI 생성 문장에서 특정 정형 문구만 제거해도 탐지기가 100% 인간의 글로 오판한다는 사실을 밝혀냈습니다.
핵심 포인트
- AI 탐지기는 출처가 아닌 문체의 정형성을 판별함
- AI스러운 느낌을 제거한 문장은 100% 인간으로 오판됨
- 탐지기의 판정 근거는 작성자의 퇴고 여부에 달려 있음
- LLM-as-a-judge 방식의 탐지 한계 노출
AI가 작성한 문장 10개를 AI 탐지 역할을 하는 LLM에 입력했다. 5개는 순수한 AI 문장, 5개는 AI스러운 느낌만 제거한 문장이다. 전부 AI가 작성했다.
결과, 순수한 AI는 100% 간파되었고, AI스러운 느낌을 제거한 AI는 100% "인간이 작성했다"라고 판정되었다. 판정자의 평균 확신도는 90%. 전원이 자신만만하게 틀렸다.
알게 된 것은 잔혹한 사실이었다. AI 탐지기는 "AI인지 아닌지"를 보고 있는 것이 아니다. "문체가 AI스러운지 아닌지"를 보고 있을 뿐이었다.
역 튜링 테스트(Reverse Turing Test) 결과 (AI가 작성한 10문장 × 판정자 3체 = 30회 판정)
50% 전체 정답률 (AI를 AI라고 간파한 비율) |
100% 순수 AI 문장이 "AI"로 들통난 비율 |
100% AI 느낌을 제거한 AI 문장이 "인간"으로 위장한 비율 |
90% 판정자의 평균 확신도 |
결론 미리보기: 탐지하고 있는 것은 출처가 아니라, 퇴고(Refinement)를 했는지 여부이다.
-
AI 탐지 역할을 하는 LLM에 AI 생성 문장만 10개를 입력하면 어떻게 판정되는가 (실측)
-
"AI스러운 느낌을 제거하는" 가공만으로 탐지를 얼마나 회피할 수 있는가
-
판정자 3체가 모두 공통적으로 보고 있었던 단 하나의 특징
-
"AI 생성 여부"로 콘텐츠를 걸러내는 운영이 왜 원리적으로 헛스윙이 되는가
-
AI 생성물의 탐지·판별에 관심이 있는 사람 (채용, 교육, 미디어 운영 등)
-
"이 문장 AI 같다"라는 말을 듣고 그 정체가 궁금한 작성자
-
LLM을 판정기 (LLM-as-a-judge)로 사용하는 것을 검토 중인 사람
-
계기는 자신의 금지어 규칙이었다
-
역 튜링 테스트의 설계
-
피실험자를 나열해 보기
-
결과, 판정자는 양분되었다
-
판정 근거를 읽어보니 전원이 같은 곳을 보고 있었다
-
탐지하고 있는 것은 출처가 아니라 나태함이다
-
자신의 NG어 리스트가 탐지기의 특징량 (Feature) 그 자체였다
-
주의사항 · 이 실험으로 알 수 없는 것
-
요약
자신의 글쓰기에는 AI스러운 정형 문구를 금지하는 규칙을 1년째 적용하고 있다. "정말로(まさに)", "부디(ぜひ)", "~라고 할 수 있겠습니다(~と言えるでしょう)", "~하겠습니다(~させていただきます)" 정도를 강력하게 금지한 금지어 리스트로, 문장의 질을 높이기 위해 만든 것이다.
어느 날 문득 의문이 생겼다. 이 "AI 느낌 제거"를 거친 문장은 인간처럼 읽힌다. 그렇다면 똑같은 가공을 AI의 생성 문장에 적용한다면 AI 탐지기를 속일 수 있을까. 더 나아가, 탐지기는 정말로 "AI가 썼는지 아닌지"를 보고 있는 것인가, 아니면 "AI 같은 말투인지 아닌지"를 보고 있는 것뿐인가.
이것은 직접 측정할 수 있다. 판정하는 측을 LLM으로 하고, 피실험자를 전부 AI가 작성한 문장으로 만들면 된다. 인간이 전혀 쓰지 않은 환경에서 "이것은 인간이다"라는 오판이 얼마나 발생하는지 보는 것이다. 만약 발생한다면, 탐지기가 보고 있는 것은 출처가 아니라는 뜻이 된다. 실행해 보았다.
환경: Claude Code 상에서 서브 에이전트 (Sub-agent)를 사용하여, 답변 생성 역할과 판정 역할을 별개의 에이전트로 분리. 판정 역할에는 문체의 유래를 일절 숨겼다.
일반적인 튜링 테스트는 인간이 판정자가 되어 상대가 인간인지 AI인지를 맞히는 것이다. 이번에는 그것을 뒤집어 AI를 판정자로 만든다. 그리고 피실험자는 전원 AI로 한다. 인간처럼 "보이는가"만을 측정하는 장치가 된다.
절차는 다음과 같다.
- 기술 Q&A를 5문제 준비한다 (gitignore, datetime, 병렬 처리, cron, MCP의 단골 주제들)
- 각 문제에 대해 두 가지 답변을 만든다. 하나는 일부러 AI스럽게 작성한 버전, 다른 하나는 AI스러운 느낌을 제거하여 인간스럽게 작성한 버전. 둘 다 AI가 작성했으며, 지시하는 문체만 바꿨다. - 총 10문장을 유래를 숨긴 채 섞어서, 독립된 판정 AI 3체에게 "인간이 작성했는지, AI가 작성했는지"를 확신도와 함께 판정하게 한다.
- 전체 10문장의 정답은 "AI"이다. 인간 판정이 나온다면, 그것은 탐지기가 속은 횟수가 된다.
판정자 3체는 서로의 결과를 모른다. 답변을 생성한 에이전트와도 분리되어 있다. 판정의 독립성은 여기서 담보했다.
# 전체 10문장은 AI가 작성했다. truth가 "ai"=순수 AI, "human_mimic"=인간처럼 위장한 AI
# 판정자 입장에서 본 정답 라벨은 둘 다 "ai" (작성자가 AI이기 때문)
def gold_label(truth: str) -> str:
...
동일한 질문 (cron에서 command not found가 발생하는 이유)에 대한 두 가지 답변을 나란히 놓는다.
순수 AI 버전 (S07):
우선, cron으로 실행했을 때 「command not found」가 발생하는 주요 원인은 cron 실행 시의 환경 변수, 특히 PATH가 대화형 셸(interactive shell)과는 다르기 때문입니다. cron은 최소한의 환경에서 동작하기 때문에, 로그인 시 설정되는 .bashrc나 .zshrc가 읽히지 않아 평소 사용할 수 있는 명령어의 경로(PATH)가 설정되어 있지 않은 경우가 많이 보입니다. (중략) 실행 전에 환경을 확인하는 것이 중요합니다.
AI 느낌을 지운 버전 (S08):
cron이 가진 PATH가 로그인 셸의 그것과 별개라서 그래. 터미널에서 돌아가는 건 .zshrc나 .bashrc가 읽혀서 PATH가 갖춰진 덕분인데, cron은 그걸 거의 안 읽거든. (중략) 나는 node가 command not found라서 3번이나 삽질했기 때문에, cron에 쓰는 스크립트는 머릿속으로 PATH를 선언하는 습관이 생겼어.
내용은 거의 같다. 다른 점은 문체뿐이다. S08에는 "3번이나 삽질했다"라는 실패의 질감이 들어가 있다. 하지만 이것 역시 AI가 생성한 문장이다. 인간은 한 글자도 쓰지 않았다.
30개 판정(10문장 × 3체)의 집계 결과는 다음과 같다.
| 피험자 그룹 | 문장 수 × 판정자 | 판정 결과 | 비율 |
|---|---|---|---|
| 순수 AI 문장 | 5문장 × 3체 = 15 | 전부 「AI」로 판정 | 100% 간파 |
| AI 느낌을 지운 AI 문장 | 5문장 × 3체 = 15 | 전부 「인간」으로 판정 | 100% 오판 |
| 전체 | 30 | AI를 AI라고 맞춘 비율 | 50% |
판정자별로 봐도 A, B, C 3체 모두 10문제 중 정확히 5문제를 맞히고 5문제를 틀렸다. 게다가 틀린 5문제는 3체 모두 완전히 일치했다. 똑같은 5문장(느낌을 지운 AI)을 3체 모두 나란히 「인간」이라고 답한 것이다.
우연이 아니다. 같은 토픽의 쌍에서, 순수 AI 버전은 「AI」로, 느낌을 지운 버전은 「인간」으로 모든 판정자가 깔끔하게 갈랐다. 판정은 문체에만 반응하고 있었으며, 내용의 출처에는 일절 반응하지 않았다.
그리고 확신도. 오판한 15건의 평균 확신도는 약 90이었다. 판정자(judge)들은 "이것은 인간이다, 확신도 90"이라고 말하면서, AI가 쓴 문장을 인간으로 인정하고 있었다. 망설이다 틀린 것이 아니다. 자신 있게 틀렸다. 이 점이 가장 무섭다.
판정자들에게 이유도 쓰게 했다. 나열해 보면 3체가 완전히 동일한 특징을 보고 있었음을 알 수 있다.
AI라고 판정한 근거 (순수 AI 문장에 대해):
- "'~이 중요합니다'로 끝나는 정형화된 표현, '주의가 필요합니다', '권장됩니다', 경험담 제로"
- "'우선' 시작 + 일반론적인 교과서 구성"
- "NG 단어 '말할 수 있습니다' + '중요'의 연속 사용"
인간이라고 판정한 근거 (AI 느낌을 지운 AI 문장에 대해):
- "'3번이나 삽질했다', '습관이 생겼다'와 같은 실체적인 경험과 구어체"
- "'2시간을 날렸다'는 실패담, '우선 여기를 보면 빠르다'는 마무리"
- "'숫자는 크다고 다 좋은 게 아니다'라는 본연의 목소리"
보시는 바와 같이, 판정의 축은 두 가지뿐이다. 정형화된 접속어(우선, 또한, ~라고 할 수 있습니다, 중요합니다)가 있는가. 그리고 구체적인 실패담과 구어체의 리듬이 있는가. 이 두 가지 포인트만으로 인간/AI를 분류하고 있었다.
아이러니한 것은, 후자의 "3번이나 삽질했다"나 "2시간을 날렸다"도 AI에게 "실제 경험 같은 구체성을 넣어라"라고 지시하여 생성시킨 가짜라는 점이다. 가짜 실패담을 보고 탐지기는 100% 「인간」이라고 판단했다.
여기서 알 수 있는 사실은 꽤나 무겁다.
AI 탐지기(적어도 LLM-as-a-judge 형태의 단순한 모델)는 "AI가 생성했는가"를 판정하지 못하고 있다. 판정하고 있는 것은 "AI의 기본 문체인가, 아니면 다듬어진 문체인가"이다. 이 둘은 전혀 다르다.
순수 AI 문장이 가진 "우선", "또한", "~라고 할 수 있습니다", "~이 중요합니다"는 AI의 출처 마커가 아니라, 다듬어지지 않았음을 나타내는 마커다. 인간이라도 급하게 쓴 설명문은 이런 식의 정형화된 표현으로 가득 차기 마련이다. 반대로 AI라도 문체를 지정하여 다듬게 하면 사라진다. 이번 실험은 그 현상이 사라지는 것을 100%의 재현성으로 보여주었다.
따라서 "AI 같은 문장"의 정체는 "AI가 쓴 문장"이 아니다. "손을 대지 않은 문장"이다. 이 구분은 실무에서 매우 중요하다.
채용에서 AI 생성 이력서를 걸러내고 싶다면: 걸러낼 수 있는 것은 「가공하지 않은 지원자」뿐이다. 조금이라도 다듬은 지원자는 빠져나간다. 탐지하고 있는 것은 능력이 아니라 공을 들였는지 여부가 된다. -
학교에서 AI 리포트를 탐지하고 싶다면: 위와 같다. 탐지기를 통과한다는 것은 곧 「문체를 정돈한다」라는 새로운 과제를 부과하는 꼴이 될 수 있다. -
미디어가 AI 기사를 배제하고 싶다면: 배제할 수 있는 것은 조잡한 AI 기사뿐이다. 정성스럽게 작성된 AI 기사는 인간의 기사와 구별할 수 없다. -
「AI 생성물인지 여부」를 기계적인 게이트(Gate)로 삼는 것은 원리적으로 헛스윙을 하는 것이다. 게이트가 보고 있는 것은 출처가 아니라, 통과시키는 쪽의 정성(丁寧さ)이기 때문이다.
이 실험의 결론은 나에게 있어 다른 곳에 있었다.
서두에 썼던, 1년 동안 운용해 온 금지어 규칙. 그것의 목적은 문장을 좋게 만드는 것이었다.
이번에 판정자 3체가 「AI」 판정의 근거로 꼽은 단어들을 나열해 보니, 나의 NG어 리스트와 거의 완벽하게 일치했다. 내가 「촌스러우니까 쓰지 마」라며 금지했던 단어들이, AI 탐지기가 「AI의 증거」로서 유일하게 보고 있는 특징량(Feature)이었다.
즉, 나는 1년 동안 무의식적으로 AI 탐지를 피해 가는 훈련을 하고 있었던 셈이다. 문장을 좋게 만들려고 했을 뿐인데, 부산물로서 「AI스러움의 지문」을 지우고 있었다. 탐지기 입장에서 보면, 나의 글쓰기는 점점 판별 불가능한 상태에 가까워지고 있었던 것이다.
이것은 모든 필자에게 일어나는 일이라고 생각한다. AI 냄새를 빼려는 노력과 AI 탐지를 피해 가는 행위는 기술적으로 완전히 같은 일을 하고 있다. 전자를 권장하면서 후자를 탐지하려는 것은, 동전의 앞뒷면을 따로 다루려는 것과 같다.
솔직하게 한계를 적는다. 이 부분을 건너뛰면 실험은 단순한 낚시가 된다.
「인간 샘플」이 진짜 인간이 아니다. 이번 피험자는 10문장 모두 생성물이었으며, 한쪽을 「인간처럼 쓴 AI」로 만들었을 뿐이다. 엄밀히 말하면 인간 대 AI의 판별이 아니라, 문체 A와 문체 B의 판별을 측정하고 있다. 진짜 인간이 퇴고하지 않고 휘갈겨 쓴 문장을 넣었다면, 오히려 「AI」라고 오판할 가능성이 높다. 오히려 그쪽이 실질적인 피해를 주는 비극이다.
판정자도 동일 계통의 LLM이었다. 전용으로 훈련된 AI 탐지 모델(Classifier)을 사용한다면 통계적인 특징량에 따라 결과는 달라질 수 있다. 이번에 말할 수 있는 것은 「LLM을 그대로 판정기로 사용하면 문체밖에 보지 않는다」까지이며, 탐지 기술 전반에 대한 부정은 아니다.
샘플이 작다. 10문장, 3명의 판정자, Q&A라는 하나의 장르. 긴 에세이나 전문성이 높은 기술 해설에서는 분리되는 방식이 달라질 수 있다. 100문장 규모로 다시 해볼 가치는 있다.
「퇴고로 속일 수 있는 것」은 단문이기 때문일지도 모른다. 200~300자 정도라면 문체의 위장이 효과적이다. 수천 자의 일관성, 사실의 정확성, 독자적인 관점까지 포함하면, 조잡한 AI 장문은 또 다른 방식으로 허점이 드러날 가능성이 있다.
이러한 점들을 고려하더라도, 「LLM 판정기는 문체로 인간/AI를 분류하고 있으며, 문체는 가공을 통해 지울 수 있다」는 핵심 결과는 변하지 않을 것이라고 생각한다.
AI가 쓴 10문장을 AI 판정자 3체에게 먹였다. 순수한 AI는 100% 들통났고, AI 냄새를 지운 AI는 100% 인간으로 변신했다. 탐지기가 보고 있었던 것은 출처가 아니라, 퇴고를 했는지 여부였다.
「AI 같다」는 「AI가 썼다」의 증거가 아니다. 「손을 대지 않았다」의 증거다. 이 부분을 착각하면 AI 탐지를 축으로 하는 운용은 조용히 헛스윙을 계속하게 될 것이다.
오늘 (10분): 수중에 있는 LLM에, 내가 AI에게 쓰게 한 문장과 직접 퇴고한 문장을 출처를 숨긴 채 판정시켜 보기. 아마 퇴고한 문장은 「인간」이라고 답할 것이다 -
이번 주: AI 생성물을 걸러내는 운용을 하고 있다면, 그것이 「출처」를 보고 있는지 「정성」을 보고 있는지 한 번 확인하기. 후자라면 기준을 다시 세울 것 -
이번 달: 「AI 같은 문장」이라는 지적을 받는다면, 출처의 문제가 아니라 퇴고 부족의 문제로 받아들이기. 고쳐야 할 것은 작성 주체가 아니라, 손을 대는 방식
참고 소스:
AI 자동 생성 콘텐츠
본 콘텐츠는 Qiita AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기