텍스트 AI 워터마크는 언제나 쉽게 제거된다
오는 2026년부터 시행되는 EU AI 법안에 따라 AI 서비스 제공자들은 생성물에 워터마크를 삽입해야 할 의무를 집니다. 하지만 텍스트는 이미지와 달리 소량의 노이즈도 허용하지 않는 극도로 압축된 매체이기 때문에 완벽한 워터마크 적용은 기술적으로 매우 까다롭습니다. 구글의 SynthID 등 부분적인 해결책들이 등장하고 있으나, 모델 성능 저하와 탐지 비용 등의 트레이드오프를 AI 기업들이 어떻게 극복할지가 핵심 관전 포인트입니다.
유럽연합(EU) AI 법(AI Act)이 한 달 후인 2026년 8월부터 시행될 예정입니다. 가장 중요한 새로운 요구 사항 중 하나는 제50조로, 모든 AI 출력물은 '인공적으로 생성되었음을 탐지할 수 있어야(detactable as artificially generated)' 한다고 규정합니다. 다시 말해, LLM 서비스 제공업체들이 EU에서 비즈니스를 하려면 출력물에 워터마크, 즉 AI 콘텐츠를 식별하는 데 사용할 수 있는 숨겨진 서명을 적용해야 합니다. LLM 텍스트 워터마킹은 매우 매력적인 문제입니다. 훌륭한 엔지니어링 문제들처럼, 이론적으로 완벽하게 해결하기는 어렵지만 구글의 SynthID나(제가 말씀드릴) OpenAI와 Anthropic의 은밀한 유니코드 트릭 같은 여러 부분적인 해결책이 존재합니다. 올해 말까지 AI 연구소들이 이러한 트레이드오프를 어떻게 탐색해 나갈지 지켜보는 것은 흥미로울 것입니다.
텍스트 워터마킹이 어려운 이유 저는 작년 말 'AI 탐지 도구는 텍스트가 AI 생성물임을 증명할 수 없다'는 글에서 AI 워터마킹에 대해 다룬 적이 있습니다. 디지털 이미지에는 사람의 눈에는 잘 보이지 않는 많은 노이즈가 포함되어 있기 때문에 이미지에 워터마크를 넣는 것은 쉽습니다. 예를 들어, '정확히 이 위치에 있는 이 20개의 픽셀은 항상 같은 색상을 공유한다'와 같은 방식으로 워터마크를 적용할 수 있습니다. 하지만 텍스트는 훨씬, 훨씬 더 어렵습니다. 이미지와 달리 텍스트는 매우 압축된 매체입니다. 사람이 눈치채지 못하게 문장에 어떠한 변경도 가할 수 없습니다(나중에 설명할 한 가지 예외를 제외하고는요). 그렇다면 어떻게 워터마크를 적용해야 할까요? 이는 기본적으로 텍스트 스테가노그래피(steganography, 비밀 코드를 숨기는 기술) 문제이지만, 평문을 임의로 조작할 수 없기 때문에 더욱 어렵습니다. 워터마크를 적용하기 위해 텍스트를 수정하면 출력 품질이 떨어지게 됩니다. 예를 들어, '다섯 번째 글자마다 e를 넣는다'는 것은 좋은 워터마크가 될 수 있지만, 이를 단순하게 적용하면 AI 출력물에 오타가 가득해질 것입니다. 그냥 모델이 알아서 워터마크를 맞추도록 두면 안 될까요? 강력한 AI 모델은 이러한 종류의 제약을 처리할 만큼 똑똑하지만, 사용자의 문제를 해결하는 데 쓰면 더 좋을 추론 시간을 소모하게 되며, 모델이 실제보다 훨씬 덜 똑똑해 보이게 만들 것입니다.
AI 콘텐츠를 탐지하기 위해 워터마크가 필요한가? 정말로 워터마크가 필요할까요? 당신이 Anthropic이고 특정 텍스트 블록을 자사 모델이 생성했는지 여부를 확인해야 한다고 가정해 봅시다. 텍스트를 각 모델에 통과시키면서 모델이 예측한 토큰이 해당 텍스트의 각 토큰과 얼마나 일치하는지 측정하면 되지 않을까요? 결론부터 말하면 그렇지 않습니다. '질문에 대한 Claude Sonnet의 모든 가능한 답변' 공간은 '질문에 대한 워터마크가 적용된 모든 가능한 답변' 공간보다 훨씬 큽니다. 다시 말해, AI가 작성한 것처럼 읽히는 사람의 텍스트에 대해 너무 많은 오탐지(False positive)가 발생합니다. 사람이 우연히 워터마크를 재현할 확률보다, 사람이 우연히 Claude처럼 글을 쓸 확률이 훨씬 높기 때문입니다. 또한 워터마크를 확인하기 위해 모든 Anthropic 모델을 한 텍스트 조각에 대해 실행하는 것은 비용이 감당할 수 없을 정도로 많이 듭니다. EU AI 법은 결국 Anthropic 같은 연구소에 모든 EU 시민에게 무료 워터마킹 서비스를 제공하도록 요구할 것입니다(약속 2 참조). '모델 실행' 접근 방식으로는 이를 수행할 수 없을 것입니다.
SynthID는 어떻게 작동하는가? 제가 아는 한, 텍스트 출력에 워터마크를 적용한다고 공개적으로 밝힌 유일한 AI 제공업체는 SynthID라는 도구를 사용하는 구글입니다. 작동 방식은 다음과 같습니다. LLM이 텍스트를 생성할 때, 이는 일련의 토큰(단어 또는 단어의 일부)을 생성하는 것입니다. 각 단계에서 모델 자체는 단일 토큰을 출력하는 것이 아니라 어휘집에 있는 (약) 10만 개의 모든 토큰 목록을 출력하며, 각 토큰에는 다음 토큰으로 선택될 확률이 표시됩니다. ChatGPT나 Claude Code 같은 도구는 출력을 얻기 위해 가장 가능성이 높은 옵션들 중에서 준무작위(semi-randomly)로 선택합니다. 이러한 준무작위 샘플링 과정은 탐지 가능한 방식으로 영향을 받을 수 있습니다. 예를 들어, '두 번째로 가능성이 높은 토큰을 선택한 다음, 첫 번째, 그 다음 두 번째, 그 다음 첫 번째 토큰을 선택하는 식으로 진행한다'와 같은 샘플링 전략을 선택할 수 있습니다. 이 방식은 여전히 고품질의 출력을 생성하겠지만, 생성된 텍스트에 대해 모델을 다시 실행하여 확인할 수 있을 것입니다.