LLM watermarking은 생성 과정에서 token probability를 조정하여 통계적으로 검출 가능한 신호를 삽입합니다. 대표적인 green-list 방식은 vocabulary를 green과 red token으로 나누고 green token의 선택 확률을 높입니다. 하지만 코드에서는 작은 probability 변화도 syntax error나 program behavior의 변화를 만들 수 있습니다. 기존 code watermarking은 entropy가 높은 위치만 선택하거나 syntax-critical token을 피하는 방식으로 이를 완화하지만, 현재 grammar state에서 실제로 허용되는 token 집합 자체를 기준으로 watermark를 구성하지는 않습니다. 또한 일반적인 additive bias는 모든 green token을 동일하게 boost하기 때문에, 모델이 원래 거의 선택하지 않던 token까지 함께 끌어올릴 수 있습니다. GTCW는 이러한 문제를 Grammar-Guided Partitioning과 Green Temperature라는 두 가지 방법으로 해결합니다.
우리가 제안하는 방법론인 GTCW는 Grammar-Guided Code Watermarking with Green Temperature의 약자로, code generation에서 watermark detectability를 높이면서 functional correctness를 최대한 유지하는 generation-time watermarking 방법입니다. 핵심 아이디어는 두 가지, Grammar-Guided Partitioning과 Green Temperature 입니다.

일반적인 watermark는 전체 vocabulary를 green과 red로 나눕니다. 하지만 코드 생성에서는 현재 parser state에 따라 실제로 선택 가능한 token 집합이 제한됩니다. 따라서 전체 vocabulary에서는 green ratio가 50%라고 해도, 현재 grammar에서 허용되는 token들만 보면 green token이 지나치게 많거나 적을 수 있습니다. GTCW는 이를 해결하기 위해 현재 grammar-admissible token set 안에서 직접 green-red partition을 구성합니다. 또한 partition seed에는 최근 token context뿐 아니라 현재 admissible support를 나타내는 grammar-dependent signature도 포함됩니다. 따라서 같은 local token context라도 grammar state가 다르면 다른 green-red partition을 만들 수 있습니다.
기존 additive green-list watermark는 모든 green token의 logit에 동일한 bias를 더합니다. 하지만 이 방식은 모델이 원래 선호하던 green token과 거의 선택하지 않던 green token을 동일하게 boost합니다. GTCW는 대신 green token에 더 낮은 temperature를 적용합니다. 이는 모델이 이미 선호하는 green token을 더 강하게 강조하여 모든 green token을 동일하게 boost하는 방법 대비 기존 선호를 유지하게 해줍니다. 실험에서는 기본 sampling temperature를 1.0, green temperature를 0.5로 설정합니다. 또한 모든 위치에서 watermark를 삽입하지 않고, model entropy가 threshold보다 높은 위치에서만 watermark를 활성화합니다.
Detector는 original model, grammar, secret key를 사용하여 generated code를 replay하면서 각 위치의1) grammar-admissible token set, 2) entropy gate, 3) green-red partition을 다시 복원합니다. 이후 실제 생성된 token이 green set에 포함되는 빈도를 normalized green count로 계산하여 watermark 여부를 판단합니다.
우리는 GTCW를 5개 instruction-tuned model과 5개 benchmark에서 평가합니다.
전체 5개 모델 × 5개 benchmark 평균에서 GTCW는 다음 결과를 기록합니다.