vLLM, 왜곡 없는 Gumbel-Max 워터마킹 도입

TL;DR

vLLM은 이제 토큰 선택에 비밀 키 파생 신호를 삽입하는 Gumbel-max 알고리즘을 사용한 왜곡 없는 워터마킹을 지원하여, 처리량이나 출력 품질에 거의 영향을 주지 않으면서 안정적인 출처 탐지를 가능하게 합니다.

텍스트 출처가 중요한 이유

생성된 텍스트의 출처를 확인하는 것은 신뢰와 책임에 필수적입니다. 이미지나 오디오에 대한 기존 워터마킹 방법은 텍스트가 이산적이기 때문에 직접 적용할 수 없습니다. 대신 vLLM은 생성 과정 자체에 영향을 주어 예상 출력 분포를 수정하지 않으면서도 감지 가능한 패턴을 만듭니다.

실용적인 텍스트 워터마킹의 핵심 요구 사항

  • 비왜곡: 워터마크는 모델이 특정 단어, 스타일 또는 솔루션으로 치우치게 해서는 안 됩니다.
  • 견고성: 신호는 일반적인 편집, 잘림, 다른 LLM에 의한 재구성에서도 살아남아야 합니다.
  • 속도: 높은 처리량 서빙을 위해 최소한의 추가 지연 시간과 메모리 오버헤드가 필요합니다.
  • 최소 탐지 의존성: 탐지는 추가 메타데이터 없이 텍스트, 토크나이저, 비밀 키에만 의존해야 합니다.

이러한 기준은 종종 상충됩니다. 더 강하고 쉽게 감지할 수 있는 신호는 왜곡을 증가시킬 수 있으며, 추가 정보를 피하면 알고리즘 선택지가 제한됩니다.

Gumbel-Max 트릭을 통한 무작위성 활용

각 단계에서 언어 모델은 범주형 분포에서 토큰을 샘플링합니다. Gumbel-max 트릭은 로짓에 Gumbel 분포 노이즈를 추가하고 argmax를 선택하여 원래 분포를 정확히 재현하면서도 노이즈를 결정론적으로 생성할 수 있게 합니다.

키 기반 의사난수 노이즈

vLLM은 독립적인 균등 분포 추출 (u)를 세 가지 입력을 받는 의사난수 함수(PRF)로 대체합니다:

  • 비밀 워터마크 키 (k),
  • 최근 워터마킹 컨텍스트(기본값: 마지막 4개 토큰),
  • 후보 토큰 ID.

PRF는 Gumbel 노이즈로 변환되는 균등 값을 출력합니다. 동일한 컨텍스트와 키가 최종 텍스트에 나타나므로, 탐지기는 생성 중 사용된 정확한 노이즈 값을 재구성할 수 있습니다.

비왜곡 보장

키에 대한 기대값에서 토큰 (t)를 선택할 확률은 원래 확률 (p_t)와 정확히 동일합니다. Qwen3.5-27B에 대한 경험적 품질 벤치마크는 무시할 수 있는 차이를 보여줍니다(예: GSM8K 93.0% vs 94.2%).

탐지 절차

탐지는 생성 과정을 역순으로 수행합니다:

  1. 알 수 없는 텍스트를 토큰화합니다.
  2. 각 토큰에 대해 이전 컨텍스트와 비밀 키를 사용하여 키 기반 PRF 값을 다시 계산합니다.
  3. 각 값을 토큰 수준 점수로 변환합니다. 점수가 클수록 워터마크와의 정렬을 나타냅니다.
  4. 점수를 합산합니다. 귀무 가설(워터마크 없음) 하에서 합은 형태 모수 (k)가 점수가 매겨진 토큰 수와 같고 척도 모수 (\theta = 1)인 감마 분포 (\Gamma(k,\theta))를 따릅니다.
  5. 단측 p-값을 계산합니다. 낮은 p-값(예: <0.01)은 워터마크의 존재를 나타냅니다.

다중 키 또는 다중 토크나이저 테스트는 다중 검정 보정이 필요하며, 이는 탐지 임계값을 높이고 검정력을 감소시킵니다.

경험적 탐지 검정력

  • 창의적 글쓰기는 약 100토큰 후에 거의 100%의 참양성률(TPR)에 도달합니다.
  • 코드 생성 벤치마크(MBPP)는 단일 키 테스트에서 400토큰에서 약 69% TPR을 달성하며, 후보 키가 많을수록 감소합니다.

vLLM 샘플링 파이프라인 통합

워터마킹 로직은 Model Runner v2의 GPU 샘플러에 내장되어 있습니다:

  • GPUWatermarkSampler는 Watermarker 구현에 위임합니다.
  • 융합된 GPU 커널은 PRF 생성, Gumbel 변환, argmax 축소를 결합하여 전체 ([batch, vocab]) 노이즈 텐서를 피합니다.
  • Philox는 호출당 4개의 PRF 값을 생성하여 4개의 연속 토큰 ID를 함께 처리합니다.
  • 행별 마스크는 워터마크된 요청과 워터마크되지 않은 요청의 혼합 배치를 가능하게 합니다.

처리량 영향

단일 H100(Qwen3.5-27B, MTP-3)에서 배치 크기 1-256에 걸쳐 워터마크된 처리량과 워터마크되지 않은 처리량 곡선이 겹칩니다. 평균 일치 처리량 변화는 -1.1%에서 +2.0% 범위이며 통계적으로 유의미한 둔화는 없습니다.

추측 디코딩 처리

추측 디코딩은 빠른 모델에서 초안 토큰을 제안하고 대상 분포에 대해 수락합니다. 두 분포에 동일한 워터마크를 적용하면 수락률이 손상됩니다. vLLM은 이중 키 방식을 통해 이를 해결합니다:

  • 초안 토큰용 키 (k_d).
  • 대상 잔차 및 보너스 토큰용 키 (k_t). 최종 텍스트에는 두 키 중 하나로 워터마크된 토큰이 포함될 수 있으므로 탐지는 두 키의 점수를 결합합니다. 이는 수락률 손실을 완화하지만 전체 탐지 신호를 희석시킵니다.

출력 다양성 유지

고정 키는 반복되는 컨텍스트가 동일한 PRF 값을 생성하여 반복 루프(예: "1 + 1 + 1 + …")를 유발할 수 있습니다. 이를 방지하기 위해 vLLM은 생성 시 컨텍스트 중복 제거를 구현합니다:

  • 컨텍스트가 반복되면 해당 단계에서 워터마킹을 건너뜁니다.
  • 이는 단일 시퀀스 비왜곡을 복원하고 Qwen3.5-27B에서 0.19% 미만의 오버헤드를 추가합니다. 이중 키 라우팅은 또한 반복을 줄이는 무작위성을 도입하며, 추측 디코딩 없이도 무작위 키 선택을 사용할 수 있습니다.

시작하기

vLLM 서버를 시작할 때 Gumbel-max 워터마킹을 활성화하세요:

vllm serve mistralai/Mistral-7B-Instruct-v0.3 \
  --watermark-config '{"algorithm":"gumbel","key":42}'

저장소에 최소 HTTP 탐지 서버가 제공됩니다. 전체 구성 세부 사항은 공식 문서를 참조하세요.

결론

vLLM의 새로운 워터마킹 기능은 키 기반 Gumbel-max 프로세스를 사용하여 토큰 샘플링에 직접 출처 신호를 삽입합니다. 기대값에서 비왜곡을 보장하고, 무시할 수 있는 지연 시간을 추가하며, 이중 키 설계로 추측 디코딩을 지원하고, 출력 다양성을 유지하기 위한 안전 장치(컨텍스트 중복 제거)를 포함합니다.

참고 문헌

  1. Ingemar J. Cox et al., Digital Watermarking and Steganography, 2nd ed., Morgan Kaufmann, 2008.
  2. S. Dathathri et al., “Scalable watermarking for identifying large language model outputs,” Nature 634, 2024.
  3. J. Kirchenbauer et al., “A Watermark for Large Language Models,” Proceedings of the 40th International Conference on Machine Learning, 2023.
  4. S. Aaronson & H. Kirchner, “Watermarking GPT outputs,” 2023.
  5. T. Sander et al., “TextSeal: A Localized LLM Watermark for Provenance & Distillation Protection,” arXiv:2605.12456, 2026.

Sources