
의미론적 워터마킹: 하위 문장 단위에 대한 순서-견고 탐지
SwordStamp은 임베딩 기반 시맨틱 워터마크에 순서-강건(robust) 탐지와 의미적 스팬(span) 단위를 추가합니다. 이 아티팩트에는 논문의 정확한 구성, 생성 및 탐지 코드, 변경되지 않은 공격 스위트, 품질 평가, 결정적 결과 추출 및 플로팅이 포함되어 있습니다.
5% 오탐률과 90% 콘텐츠 보존 요구사항에서, 기법별 임베딩 변위 공격(EDA-S)은 다음을 달성합니다:
| 워터마크 | EDA-S 공격 성공률 |
|---|---|
| SemStamp | 47.9% |
| k-SemStamp | 33.3% |
| PMark | 46.1% |
| SAMark | 32.6% |
| SwordStamp | 18.7% |
| k-SwordStamp | 10.8% |
공개된 기준선 대비, SwordStamp와 k-SwordStamp는 EDA-S 성공률을 각각 29.2 및 22.5퍼센트포인트 낮추며, 클린 충실도 비용은 각각 1.8 및 4.4포인트입니다. 클린 탐지율은 각각 94.9% 및 97.0%입니다. 더 강력한 탐지기 접근 EDA-D 스트레스 테스트에서, 최대 품질 게이트 성공률은 k-SemStamp의 65.5% 대비 k-SwordStamp에서 39.7%입니다.


이 결과는 영어 뉴스 연속 생성, 하나의 제공자 모델, 두 개의 제공자 인코더, 하나의 EDA 패러프레이저/서로게이트 쌍을 대상으로 합니다.
visualization은 컴파일된 CSV/Parquet 번들만 사용합니다. 누락된 논문 셀이 있으면 부분 그림 대신 실패합니다.
uv sync --frozen --only-group plot --no-install-project
uv run --no-sync python -m visualization extract \
--bundle results/paper --output results/paper
uv run --no-sync python -m visualization render \
--bundle results/paper --output results/paper
이 명령은 results/paper/tables/ 아래에 감사 가능한 테이블을, results/paper/figures/ 아래에 PNG 및 PDF 형식의 7개 그림을 생성합니다. 익명 리뷰 브랜치에는 컴파일된 번들이 포함되어 있습니다. 릴리스 브랜치에서 전체 실행 시 python -m visualization compile로 동일한 파일이 생성됩니다.
임베딩 변위 공격(EDA)은 적응형 전체 텍스트 패러프레이징 공격입니다. 각 출력 단위에서 K개의 연속 생성을 샘플링하고, 서로게이트 인코더 하에서 소스 앵커로부터 코사인 변위가 가장 큰 후보를 유지합니다. 모든 후보가 전체 재작성 접두사를 계속하므로, 하나의 목적 함수로 콘텐츠를 재구성하고, 재정렬하며, 탐지기 단위를 분할하거나 병합할 수 있습니다.
No-box EDA는 마킹된 텍스트와 공개 워터마크 설계를 확인합니다. 탐지기나 생성기를 쿼리하지 않으며, 비밀 키, 제공자 인코더, 품질 오라클을 받지 않습니다.
Bag 앵커링의 경우, 논문은 attack.bag_agg=min을 사용합니다: 가장 가까운 소스 앵커로부터의 거리를 최대화합니다. 보고된 no-box 실행은 Qwen/Qwen2.5-3B-Instruct, BAAI/bge-base-en-v1.5, K={1,2,4,8,16,32,64}, 온도 1.0, top-p 0.95, 후보당 최대 96 토큰, 최대 512 재작성 토큰을 사용합니다.
다른 워터마크 설계자는 EDA를 직접 호출할 수 있습니다:
from attacks.paraphrasing.adaptive import adaptive_attack_paraphrase
attacked = adaptive_attack_paraphrase(
texts,
base_model="Qwen/Qwen2.5-3B-Instruct",
surrogate_model="BAAI/bge-base-en-v1.5",
num_candidates=32,
anchor="positional", # EDA-P; 순서-강건 설계에는 "bag" 사용
bag_agg="min",
segmentation_type="sentence",
segmentation_backend="nltk",
)
논문의 SwordStamp 인지 EDA-S의 경우, anchor="bag", segmentation_type="semspan", semcut_max_words=15, semcut_window=5로 설정합니다. 이 저장소 내에서 동등한 CLI는 다음과 같습니다:
uv run python -m attacks DATA_PATH --config PRESET \
--set attack.paraphraser=adaptive \
--set attack.custom_model=Qwen/Qwen2.5-3B-Instruct \
--set attack.surrogate_model=BAAI/bge-base-en-v1.5 \
--set attack.num_candidates=32 \
--set attack.anchor=bag --set attack.bag_agg=min \
--set segmentation.attacker_type=semspan \
--set segmentation.attacker_backend=nltk
DATA_PATH는 항상 기본 코퍼스이고 PRESET은 워터마킹된 셀을 식별합니다. 유지된 모든 공격 및 구성 필드는 attacks/README.md를 참조하세요.

config/paper.py는 단일 진실 소스입니다. LSH와 k-means 각각에 대해, scripts/experiments/swordstamp.sh는 64개의 제공자 후보로 다음 5단계 가산 사다리를 실행합니다:
그리드에는 이 10개 셀과 하나의 무워터마크 기준선만 포함됩니다. PMark는 온라인 전용입니다. SAMark는 실행당 하나의 플래그 패턴을 사용합니다. EDA-D 예산은 K={4,8,16,32,64}입니다.
비교 서브모듈은 공개 PMark 및 SAMark 평가 소스를 데이터셋/결과 경계와 공유 오탐 보정에서만 적응합니다. 워터마크 알고리즘은 변경되지 않습니다.
전제 조건은 Git, uv, Python 3.11, 모델 실행용 CUDA, 고정된 모델 리비전 접근 권한, 스크래치 저장소입니다.
git clone --recurse-submodules [email protected]:D-Diaa/SwordStamp.git
cd SwordStamp
bash scripts/setup.sh
uv run --frozen python scripts/check_artifact.py
결정적이고 분리된 C4 파티션 준비:
uv run --frozen python scripts/prepare_c4.py --output-dir data
고정된 스케줄러 설치 및 구성. 설치 프로그램은 변경 전에 사용자 수준 부작용을 출력합니다:
bash scripts/install_gpu_scheduler.sh --print-plan
bash scripts/install_gpu_scheduler.sh --yes
gpu-scheduler init --gpus 0,1
gpu-scheduler start
모든 물리적 샤드 미리보기 후 제출:
for shard in c4-val-def-256 c4-val-def-256b c4-val-def-512; do
BASE="data/$shard" DRY_RUN=1 bash scripts/experiments/swordstamp.sh
BASE="data/$shard" DRY_RUN=1 bash scripts/experiments/pmark.sh
BASE="data/$shard" DRY_RUN=1 bash scripts/experiments/samark.sh
done
# 정확한 DAG 검사 후 DRY_RUN=1 제거.
컴파일, 추출, 렌더링:
uv run --frozen python -m visualization all \
--bundle results/paper --output results/paper
스케줄러가 CUDA_VISIBLE_DEVICES를 제공합니다. nvidia-smi 프로빙으로 GPU를 선택하지 마세요. 전체 재현은 며칠이 걸리는 GPU 워크로드입니다. ARTIFACT.md에는 하드웨어, 모델 리비전, 예상 출력, 주장-명령 매핑이 나열됩니다. scripts/experiments/README.md는 재개 및 강제 동작을 문서화합니다.
config/, segmentation/, sampling/, watermarking/: SwordStamp.attacks/: EDA 및 유지된 공격 스위트.quality/: 충실도 및 콘텐츠 보존 평가.visualization/: 논문 전용 컴파일, 테이블, Matplotlib 그림.scripts/experiments/: 스케줄러 기반 정확한 논문 워크플로우.external/: 고정된 PMark 및 SAMark 비교 서브모듈.자체 개발 코드는 MIT 라이선스로 배포됩니다. 모델, 데이터셋, 생성된 텍스트, 비교 서브모듈은 각자의 조건을 유지합니다. THIRD_PARTY.md를 참조하세요.
SwordStamp 소프트웨어는 Abdulrahman Diaa가 저작했습니다. 논문 저자는 Abdulrahman Diaa, Jonathan Petit, Florian Kerschbaum입니다. 기계 판독 가능한 인용 메타데이터는 CITATION.cff에 있습니다.
| 변형 | 앵커 및 단위 | 구성 |
|---|
| EDA-P | 위치 기반 문장 | adaptive, anchor=positional, 공격자 단위 sentence |
| EDA-S | 대상의 공개 설계 | SemStamp, k-SemStamp, PMark용 위치 기반 문장; SAMark용 bag/문장; 두 SwordStamp 변형 모두 bag/semspan |
| EDA-D | 제공자 탐지기 | oracle; 방어자 인코더, 파티션, 세그멘테이션 상속 |