SwordStamp 为基于嵌入的语义水印增加了顺序鲁棒检测和语义跨度单元。本制品包含论文的精确配置、生成与检测代码、未修改的攻击套件、质量评估,以及确定性的结果提取与绘图。
论文: Semantic Watermarking with Order-Robust Detection over Sub-sentence Units(arXiv:2608.27666)
在 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-SwordStamp 上受质量门控的最大成功率为 39.7%,而 k-SemStamp 上为 65.5%。


这些结果涵盖英文新闻续写、一个提供商模型、两个提供商编码器,以及一对 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 格式的图。匿名评审分支包含编译好的打包文件;在发布分支上完整运行会通过 python -m visualization compile 生成相同的文件。
嵌入位移攻击(EDA)是一种自适应的全文改写攻击。在每个输出单元,它采样 K 个续写候选,并在替代编码器下保留与源锚点余弦位移最大的候选。由于每个候选都延续完整的改写前缀,一个目标函数即可同时实现内容改写、顺序重排以及检测器单元的拆分或合并。
无盒 EDA 可以看到带水印文本和公开的水印设计。它不查询检测器或生成器,也不会获得密钥、提供方编码器或质量预言机。
| 变体 | 锚点与单元 | 配置 |
|---|---|---|
| EDA-P | 位置句子 | adaptive、anchor=positional,攻击单元 sentence |
| EDA-S | 目标的公开设计 | SemStamp、k-SemStamp 和 PMark 使用位置句子;SAMark 使用 bag/sentence;两种 SwordStamp 变体均使用 bag/semspan |
| EDA-D | 提供方检测器 | oracle;继承防御方编码器、分区和分段 |
对于 bag 锚定,论文使用 attack.bag_agg=min:最大化与最近源锚点的距离。报告的无盒运行使用 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 个 token,以及最多 512 个改写 token。
其他水印设计者可以直接调用 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; use "bag" for an order-robust design
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 个提供方候选运行这个五级累加阶梯:
网格仅包含这十个单元和一个无水印基线。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
# Remove DRY_RUN=1 after inspecting the exact DAGs.
编译、提取并渲染:
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,请引用该论文:
@misc{diaa2026semantic,
title = {Semantic Watermarking with Order-Robust Detection over Sub-sentence Units},
author = {Abdulrahman Diaa and Jonathan Petit and Florian Kerschbaum},
year = {2026},
eprint = {2608.27666},
archivePrefix = {arXiv},
primaryClass = {cs.CR},
url = {https://arxiv.org/abs/2608.27666},
}
SwordStamp 软件由 Abdulrahman Diaa 编写;论文作者为
Abdulrahman Diaa、Jonathan Petit 和 Florian Kerschbaum。机器可读的
软件及首选论文引用元数据位于 CITATION.cff 中。