TextSeal2는 투기적 디코딩을 지키며 LLM 워터마크 검출을 높인다

TextSeal2: Distortion-Free LLM Watermarking with Copula Mixing and Memoryless Races

arXiv2610.40613v1

Tom Sander2026-10-29

무엇인가

이 논문은 LLM이 생성한 텍스트에 키 기반 통계 신호를 심고, 나중에 키를 가진 검출기가 그 신호를 확인하는 워터마킹을 다룬다. 저자들은 배포용 워터마크가 갖춰야 할 네 조건으로 모델 출력 분포 보존, 고정 키 아래에서도 답변 다양성 유지, 디코딩 지연 최소화, 투기적 디코딩의 수용률 보존을 든다. 기존 TextSeal은 두 키를 동전 던지기로 골라 토큰을 만들지만 검출기는 어느 키가 쓰였는지 몰라 두 점수를 평균한다. 그 결과 신호가 절반으로 줄고 신호대잡음비가 √2만큼 손실된다. textGrain은 검출력이 높지만 매 디코딩 단계의 최적수송 계산이 후처리 지연을 만들고, 투기적 디코딩 변형은 수용률을 낮춘다.

어떻게 동작하나

TextSeal2의 핵심은 두 키를 하나의 가상 키로 합치는 가우시안 코풀라 혼합이다. 각 키의 균일값을 정규분포 값으로 바꾼 뒤 G*=(G1+G2)/√2로 합치고, AutoMark식으로 ρG*+√(1−ρ²)η를 표준정규 CDF에 통과시켜 샘플링에 쓸 균일값을 만든다. 검출기는 가상 키의 점수 −ln Φ(−G*)를 모든 토큰에 적용하므로, 동전 던지기처럼 한쪽 키의 신호만 버리지 않는다. 키를 M개로 늘려도 M^{-1/2} 합으로 같은 가상 키를 만들 수 있어 검출력이 희석되지 않는다. 한 키를 공개해 약한 공개 검출을 하고 다른 키를 비공개로 남기는 운용도 가능하다.

무엇과 다른가

투기적 디코딩에서는 초안 토큰을 초안 분포 q 아래 키드 지수 경주로 뽑고, 각 경주의 승자가 남긴 잔여 시간이 지수분포의 무기억성 덕분에 다시 신선한 지수값이 된다는 점을 쓴다. 블록 검증이 정하는 정지 위치 I와 마지막 토큰 y를, 초안 경주들의 잔여값 위에서 한 번 더 경주를 돌려 선택한다. 이 잔차 경주는 후보 (i,v)마다 (E_i,v−τ_i q_i,v)/π_i,v를 최소화하는 방식이며, 별도의 수락 동전 없이 블록 검증의 분포와 수용률을 그대로 재현한다. 따라서 출력은 타깃 모델의 분포를 따르고, 검출기는 라운드 경계를 몰라도 토큰 점수를 그대로 합산할 수 있다.

어떻게 쓰나

결합 강도 ρ는 textGrain의 엔트로피 예산 β와 비슷한 역할을 한다. ρ가 커질수록 토큰에서 제거되는 엔트로피가 단조 증가하며, 저자들은 고정 ρ≈0.64, 0.81, 0.93이 대략 30%, 50%, 70%의 엔트로피를 제거한다고 보고한다. 정확한 예산이 필요하면 토큰별 ρ_t를 쓸 수 있다. 검출은 서로 다른 (윈도, 토큰) 쌍을 한 번씩 점수화해 합하고, 귀무가설에서 Gamma(n,1)을 따르는 합 검정을 쓴다. 엔트로피 가중과 다중 길이 윈도우를 이용한 위치 찾기도 선택적으로 지원한다.

전제와 한계

실험은 ELI5 질문에 대한 Llama-3.1-8B-Instruct, Qwen3.5-9B, Qwen3.5-27B의 답변으로 진행됐다. 온도 1, top-p 0.95, 최대 200토큰, 워터마크 윈도 k=3이며, 탐지율은 오탐률 10^-3에서 측정하되 10,000개의 비워터마크 답변과 10개의 키로 만든 10^5개 귀무 p값으로 경험적 임계값을 보정했다. 다양성은 같은 질문에 대한 답변 간 Self-BLEU로 측정하고 TextSeal의 Self-BLEU에서 보간해 비교했다. 그 결과 TextSeal2는 100토큰 답변에서 TextSeal보다 각각 10, 22, 8%포인트 더 검출했고, 신뢰구간은 [+4,+15], [+15,+25], [+3,+12]였다. textGrain과 비교하면 Llama에서 +11%포인트, Qwen3.5-9B에서 +1%포인트, Qwen3.5-27B에서 −5%포인트로 대체로 비슷하거나 앞섰다. AutoMark 코풀라와는 3%포인트 이내로 같았고, 이는 이득이 구현 차이가 아니라 동전 던지기 제거에서 온다는 뜻이다.

투기적 디코딩에서 8개 초안을 쓰면 비워터마크 디코딩은 라운드당 2.74토큰을 내는데, TextSeal2의 잔차 경주는 +0.02토큰으로 사실상 수용률을 바꾸지 않았다. 반면 textGrain의 자체 방식은 라운드당 5% 적은 토큰을 냈다. TextSeal의 Self-BLEU에서 TextSeal2는 100/200토큰 답변의 59%/89%를 검출해 TextSeal의 31%/71%, textGrain의 31%/67%, AutoMark의 25%/60%, SynTHID-Text의 17%/50%보다 높았다. 200토큰 기준으로 TextSeal과 textGrain보다 각각 18, 22%포인트 높은 수치다. 코드 생성(MBPP 500문제)에서는 256토큰에서 55%를 검출해 TextSeal 39%, textGrain 46%, SynthID-Text 50%를 앞섰고 AutoMark 59%에는 뒤졌다. 키 전용 계산을 순전파와 겹치면 디코딩 단계 지연은 TextSeal 대비 0.6% 이내였고, 저자들은 일반 샘플링 대비로도 0.9% 이내라고 정리한다.

개발자 관점에서 이 방법은 이미 투기적 디코딩을 쓰는 서빙 스택에 워터마크를 넣을 때 특히 관련이 있다. 워터마크가 초안 수용률을 떨어뜨리면 추론 가속의 이득이 사라지는데, 잔차 경주는 블록 검증의 수용률을 유지하도록 설계됐다. 다만 배포 전에는 실제 모델·샘플러·PRF 구현에서 탐지 임계값을 경험적으로 보정해야 한다. 논문도 명목 오탐률과 실제 p값 분포가 정확히 일치하지 않을 수 있어 귀무 분포를 경험적으로 잡았다. 공개 키만 쓰는 검출은 더 약하고, LLM 패러프레이즈 같은 변형에는 토큰 수준 워터마크가 거의 사라진다는 점도 운영 정책에 반영해야 한다.

저자들이 밝힌 한계는 평가 범위가 ELI5, MBPP, AIME의 세 영역과 세 오픈웨이트 모델, 온도 0.7~1에 한정된다는 점이다. 8개 초안의 블록 검증을 쓰는 투기적 디코딩에서는 표준 디코딩보다 탐지율이 2~4%포인트 낮아졌고, 투기적 디코딩 구현이 배치화되지 않아 실제 벽시계 속도 향상은 측정하지 않았다. 공개 키를 아는 공격자가 비공개 검증을 넘어서 악용하는 경우는 분석하지 않았고, textGrain은 코드가 공개되지 않아 재구현을 썼기 때문에 배포 파라미터가 다를 수 있다. 또한 잔차 경주의 분포 보존은 이상적인 PRF를 전제로 한 명제이며, 저자들은 구현 검사에서 비워터마크 블록 검증과 구분되지 않음을 확인했다.