SwordStampは、埋め込みベースのセマンティック透かしに順序ロバストな検出とセマンティックスパン単位を追加します。このアーティファクトには、論文の正確な設定、生成・検出コード、変更されていない攻撃スイート、品質評価、および決定的な結果抽出とプロットが含まれています。
偽陽性率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個の継続文をサンプリングし、サロゲートエンコーダー下でソースアンカーからのコサイン変位が最大の候補を保持します。すべての候補が完全な書き換えプレフィックスを継続するため、1つの目的関数でコンテンツの言い換え、並べ替え、検出単位の分割または結合が可能です。
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セルと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
# 正確な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/sentence、両方のSwordStampバリアントにはbag/semspan |
| EDA-D | プロバイダー検出器 | oracle、防御側エンコーダー、パーティション、セグメンテーションを継承 |