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%です。


これらの結果は、英語のニュース継続文、1つのプロバイダモデル、2つのプロバイダエンコーダ、および1組の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 は、マークされたテキストと公開された透かし設計を参照します。検出器や生成器へのクエリは行わず、秘密鍵、プロバイダのエンコーダ、品質オラクルも受け取りません。
| バリアント | アンカーと単位 | 設定 |
|---|---|---|
| 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 を使用します。これは最も近いソースアンカーからの距離を最大化することを意味します。報告されている no-box 実行では、Qwen/Qwen2.5-3B-Instruct、BAAI/bge-base-en-v1.5、K={1,2,4,8,16,32,64}、temperature 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; 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 個のプロバイダ候補を用いて、この 5 段階の加算的ラダーを実行します:
グリッドにはこれら 10 個のセルと 1 つの透かしなしベースラインのみが含まれます。PMark はオンライン専用です;SAMark は実行ごとに 1 つのフラグパターンを使用します。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 License の下でリリースされています。モデル、データセット、生成テキスト、および比較用サブモジュールはそれぞれ独自の条件を保持します。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 にあります。