일요일 저녁. 주말 내내 열심히 작성한 글의 "게시" 버튼을 누릅니다. 모든 단어, 모든 아이디어가 순수하게 당신의 것입니다. 몇 개의 좋아요가 조금씩 들어옵니다. 바이럴은 아니지만, 당신의 작품입니다.
3일 후, 피드를 스크롤하다 보니 거기 있습니다: 다른 사람의 글 속에 담긴 당신 글의 영혼! 단어들을 재배열했지만, 당신은 자신의 창작물을 알아볼 수 있습니다. 가장 최악인 점? 그들의 버전이 모든 곳에서 퍼지고 있고, 당신의 도용된 창의성을 기반으로 바이럴 성공을 거두고 있다는 것입니다. 이는 우리가 기대했던 창작 경제가 아닙니다.
명백한 해결책은 당신의 작품에 이름을 표시하는 것입니다. 하지만 솔직히 말해서 - 그것은 가장 쉽게 제거할 수 있는 것이기도 합니다. 더 나은 방법이 있을까요? 이 글에서는 원본 콘텐츠를 서명하고 감지할 수 있는 임베딩 모델을 사용한 워터마킹 기술을 소개하겠습니다. 이는 단순한 검색/RAG 클리셰가 아닙니다 - jina-embeddings-v3의 긴 컨텍스트와 교차 언어 정렬과 같은 고유한 기능을 활용하여 강력한 인증 시스템을 만들고, LLM 의한 재작성이나 심지어 번역과 같은 변환에도 신뢰할 수 있는 콘텐츠 검증을 유지할 수 있게 합니다.
tag텍스트 워터마크 이해하기
디지털 워터마크는 수년간 콘텐츠 보호의 핵심이었습니다. 반투명 로고가 덧입혀진 밈을 발견했다면, 가장 기본적인 형태의 이미지 워터마킹을 보고 있는 것입니다. 현대의 워터마킹 기술은 단순한 시각적 오버레이를 넘어 크게 발전했습니다 – 많은 기술이 이제 사람의 눈에는 보이지 않으면서도 기계가 읽을 수 있게 되었습니다.

텍스트 워터마킹도 유사한 원리를 따르지만 의미 공간에서 작동합니다. 픽셀을 변경하는 대신, 텍스트 워터마크는 원래의 의미를 보존하면서 감지 가능한 서명을 삽입하는 방식으로 콘텐츠를 미묘하게 수정합니다. 따라서 효과적인 텍스트 워터마크의 주요 요구사항은 다음과 같습니다:
- 의미 보존: 워터마크가 삽입된 텍스트는 시각적 워터마크가 이미지의 주요 요소를 가리지 않아야 하는 것처럼 원래의 의미와 가독성을 유지해야 합니다.
- 비가시성: 워터마크는 사람이 읽을 때 눈에 띄지 않아야 하며, 콘텐츠 변환 과정에서 의도적으로 보존하거나 제거할 수 없어야 합니다.
- 기계 감지 가능: 워터마크가 사람에게는 미묘할 수 있지만, 알고리즘이 신뢰성 있게 식별할 수 있는 명확하고 측정 가능한 패턴을 만들어야 합니다.
- 변환 불변성: 워터마크의 존재를 인식하든 못하든, 모든 콘텐츠 변환(예: 재작성이나 번역)은 워터마크를 보존하거나, 원본 콘텐츠의 구조나 의미를 근본적으로 변경할 만큼 상당한 변화가 필요해야 합니다.
tag임베딩을 이용한 텍스트 워터마킹
임베딩을 사용하여 텍스트 워터마킹 시스템을 구축해 보겠습니다. 먼저, 이 시스템의 주요 구성 요소를 정의해보겠습니다:

- 입력: 워터마크를 삽입할 원본 텍스트.
- 워터마크 테이블: 워터마크 후보 단어가 포함된 비밀 어휘 사전. 최적의 워터마킹 효과를 위해, 단어들은 다양한 맥락에 자연스럽게 맞을 만큼 흔해야 합니다. 이 어휘는 기능어, 고유 명사, 희귀 단어를 제외합니다. 예를 들어
delve into
,embark
는 좋은 후보이지만good
은 너무 흔합니다. 아래에서는 고급 영어 어휘를 사용하여 WatermarkTable을 구축할 것입니다. - 임베더:
input
텍스트를 기반으로WatermarkTable
에서 의미적으로 적절한 단어를 선택하고 잠재적으로 재작성된 텍스트에서 워터마크를 감지하는 두 가지 목적을 수행하는 임베딩 모델. 우리는 매우 긴 텍스트와 다양한 언어를 잘 처리할 수 있는 jina-embeddings-v3를 사용합니다. 이는 긴 문서에 워터마크를 삽입하고 텍스트를 번역하더라도 표절을 잡아낼 수 있다는 것을 의미합니다. - 워터마크: 입력 텍스트 임베딩과 테이블의 임베딩 간의 코사인 유사도를 계산하여 WatermarkTable에서 선택된 단어들. 단어 수는 삽입 비율에 따라 결정되며, 일반적으로 입력 단어 수의 12%입니다.
- 인젝터: 일관성, 사실적 정확성, 자연스러운 흐름, 텍스트 전체에 걸친 워터마크 단어의 균등한 분포를 유지하면서 워터마크 단어를 입력 텍스트에 통합하는 지시사항을 따르는 LLM.
- 워터마크된 텍스트: 인젝터가
input
에 워터마크 단어를 삽입한 후의 출력. - 악의적 행위자(콘텐츠 도용): 재작성, 번역, 또는 작은 편집을 통해 출처를 밝히지 않고 워터마크된 텍스트를 재사용하려는 주체. 오늘날 이는 단순히
Paraphrase [text]
라는 프롬프트로 LLM을 사용하여 자동 재작성하는 것을 의미합니다. - 수정된 텍스트: 악의적 행위자가 워터마크된 텍스트를 수정한 후의 결과. 이것이 우리가 워터마크를 확인해야 하는 텍스트입니다.
tag알고리즘
tag결론
이러한 예시들을 통해 우리의 임베딩 기반 워터마킹이 기본적인 설정에서도 매우 견고하다는 것을 알 수 있습니다. 특히 주목할 만한 점은 번역 후에도 워터마크가 감지된다는 것입니다. 이러한 언어 간 견고성은 jina-embeddings-v3 모델의 강력한 다국어 기능 덕분에 가능합니다. 강력한 다국어 및 교차 언어 능력이 없다면 번역을 통한 이러한 지속성은 달성할 수 없었을 것입니다.
이 워터마킹 시스템의 정확도와 견고성을 향상시키는 방법에는 여러 가지가 있습니다. 첫째, 워터마크 테이블을 확장하고 다양성을 보장하도록 신중하게 구성할 수 있습니다. 더 크고 다양한 어휘는 의미 공간의 더 나은 커버리지를 제공하므로, 반복적이거나 명백한 패턴의 위험을 줄이면서 주어진 텍스트에 대해 문맥적으로 적절한 워터마크를 더 쉽게 찾을 수 있기 때문에 이는 중요합니다.
Injector 컴포넌트는 더 정교한 삽입 전략을 구현하여 개선할 수 있습니다. 예를 들어, 감지되지 않도록 워터마크를 텍스트 전체에 균일하게 분포시키도록 지시할 수 있습니다. 또한 late chunking 기술을 사용하여 개별 세그먼트나 문장에 대한 워터마크를 생성함으로써 Injector가 워터마크 배치에 대해 더 세밀한 결정을 내릴 수 있게 할 수 있습니다. 이는 최종 텍스트에서 전반적인 감지 불가능성과 의미적 일관성을 모두 유지하는 데 도움이 될 것입니다.

더 깊이 있는 탐구에 관심이 있는 독자들을 위해, "POSTMARK: A Robust Blackbox Watermark for Large Language Models" (Chang et al., EMNLP 2024)는 수학적 공식과 광범위한 실험을 포함하는 포괄적인 프레임워크를 제시합니다. 저자들은 워터마크 어휘 구성, 최적의 삽입 전략, 다양한 공격에 대한 견고성을 체계적으로 탐구합니다. 또한 자동화된 평가와 인간 평가를 통해 워터마크 감지와 텍스트 품질 사이의 트레이드오프를 철저히 분석합니다.