생성된 텍스트의 워터마크는 실제로 어떻게 작동하는가
How the watermark for generated text actually works
핵심 요약
LLM이 생성한 텍스트에 인간은 인지할 수 없지만 기계는 감지할 수 있는 통계적 워터마크를 삽입하는 원리를 설명합니다.
- 통계적 워터마킹 — 토큰 선택 시 특정 단어 목록에 가중치를 부여하여 흔적을 남김
- 소프트 워터마크 — 단어 금지가 아닌 확률적 보너스를 통해 문맥을 유지함
- 감지 알고리즘 — 텍스트 내 특정 단어 분포를 분석하여 AI 생성 여부를 판별함
- 우회 방지 — 문맥에 따라 워터마크가 변하므로 단순 수정으로는 제거가 어려움
arxiv.org
원문 사이트로 이동
2024년, 존 키르헨바우어(John Kirchenbauer), 요나스 가이핑(Jonas Geiping), 위신 웬(Yuxin Wen), 조나단 카츠(Jonathan Katz), 이안 마이어스(Ian Miers), 톰 골드스타인(Tom Goldstein)은 LLM이 생성한 텍스트에 인간은 알아챌 수 없지만 기계는 기가 막히게 잡아낼 수 있는 패턴을 심는 방법을 제안했어.
온라인에 공개된 논문을 읽어봤는데, 이제 이게 어떻게 돌아가는 건지 감이 좀 잡히네. 핵심은 AI의 수학적 계산을 아주 살짝 건드려서, 문맥을 해치지 않으면서도 지문 같은 흔적을 남기는 통계적 트릭이야.
룰렛 휠: 그린 리스트와 레드 리스트
언어 모델은 단어(또는 "토큰")를 하나씩 생성해. 바로 다음에 올 단어를 고르기 위해 모델은 자기 어휘집에 있는 모든 단어의 확률 점수를 계산하거든.
워터마크는 바로 이 지점에 개입해. AI가 다음 단어를 선택하기 직전에, 워터마킹 알고리즘이 난수 생성기를 돌려서 모델의 전체 어휘집을 딱 반으로 갈라버려.
- 그린 리스트: 알고리즘이 쓰라고 권장하는 단어들.
- 레드 리스트: 알고리즘이 피하라고 하는 단어들.
여기서 중요한 건, 이 분류가 단어 하나하나마다 새로 무작위로 결정된다는 거야. 그리고 그 난수 시드(seed)는 바로 직전에 나온 단어에 의해 결정되지.
"소프트"한 넛지
아마 이런 생각 들걸? 그럼 레드 리스트에 있는 단어는 AI가 아예 안 쓰는 거야?
아니, 그러면 글이 개판이 되거든. 만약 프롬프트가 "The quick brown fox jumps over the lazy"라면, 다음 단어는 무조건 "dog"여야 하잖아. 근데 하필 그 찰나에 "dog"가 레드 리스트에 있다고 해서 이걸 금지해버리면, AI는 "The quick brown fox jumps over the lazy appliance(게으른 가전제품)" 같은 헛소리를 내뱉게 될 거야.
이걸 해결하려고 이 프레임워크는 소프트 워터마크를 써. 레드 리스트 단어를 금지하는 대신, 그냥 그린 리스트에 있는 모든 단어의 점수에 통계적 보너스를 얹어주는 방식이지.
- 창의적인 글을 쓸 때 (높은 엔트로피): 선택할 수 있는 좋은 단어가 많아. 이때는 그린 보너스만 살짝 얹어줘도 그린 리스트 단어가 1순위로 치고 올라오기 쉽지.
- 사실이나 관용구를 말할 때 (낮은 엔트로피): 논리적으로 다음에 올 단어가 하나뿐이야. 원래 확률 점수가 압도적으로 높아서, 레드 리스트에 있더라도 여전히 1순위로 선택돼.
이런 우아한 타협 덕분에 워터마크는 독자 눈에는 완전히 안 보이고, AI가 쓴 글의 퀄리티도 망가지지 않는 거야.
탐지기는 어떻게 잡아낼까 (코드를 안 봐도)
이 프레임워크의 진짜 천재적인 점은 탐지가 너무 쉽다는 거야. 어떤 글이 AI가 쓴 건지 알아내려고 굳이 그 거대하고 복잡한 언어 모델 자체를 들여다볼 필요가 없어. 그냥 글을 생성할 때 썼던 그 의사 난수(pseudo-random) 규칙집만 있으면 돼.
탐지기는 글을 단어 단위로 쭉 훑어봐:
- 단어를 하나 보고, 그 순간에 존재했을 그린/레드 리스트를 똑같이 재현해.
- 글의 다음 단어가 그린 리스트에 있는지, 레드 리스트에 있는지 확인해.
- 그린 리스트 단어가 총 몇 번 나왔는지 세어봐.
사람이 쓴 글이라면 이런 숨겨진 리스트 같은 건 알 리가 없지. 통계적으로 보면 사람이 쓴 글은 그린 리스트 단어가 나올 확률이 딱 50%야.
하지만 워터마크가 박힌 AI는 수학적 보너스 때문에 그린 리스트 단어를 쓰도록 은밀하게 유도됐으니까, 글에 그린 리스트 단어가 통계적으로 말이 안 될 정도로 많이 섞여 있게 돼. 시스템이 간단한 통계 테스트를 돌려서 신뢰도 점수를 뽑아내면, AI가 쓴 글이라는 걸 바로 딱 걸리는 거지.

