見出し画像

Claudeで話題の「見えない文章透かし」を実際に試した――削除と全面リライトで何が起きたか、公開論文のKGW方式とSynthID-TextをGoogle Colabで動かして確かめる

注意事項
本記事は2026年8月14日時点で確認できた情報と公開実装に基づいています。Claudeが実際に採用するテキストwatermarkの具体的な方式、検出器、鍵、閾値は現時点では公開されていません。本記事の実験は、公開論文で提案されている代表的な方式を実際に動かし、テキストwatermarkとはどのような技術なのかを理解することを目的としています。Claudeのwatermarkそのものを再現・評価したものではありません。
また、本記事はChatGPT Pro上のGPT-5.6 Proを用いて、構成整理、実験結果の整理、原典確認、文章校正を行いながら執筆しています。

前回、Claudeが生成テキストに電子透かし(watermark)を導入するという発表を受けて、EU AI Act、既存のLLM text watermark研究、そして社会での使い方についてまとめました。

直近の海外報道でも、Claudeの発表は「invisible watermark(見えない透かし)」として紹介されています。ただし、報道で注目されているClaudeの方式は未公開です。そこで本記事では、Claudeと同じ方式だと仮定せず、現在の学術研究で公開されている方式を実際に動かします。

その後、Xなどで反応を見ていると、「画像にしてOCRすれば消える」「少し単語を変えれば消える」「別のLLMに一度通せば終わり」といった説明も多く見かけました。

しかし、公開されている代表的なLLM text watermarkは、そのような単純な「不可視文字」や「ファイルに付いたメタデータ」ではありません。

そこで今回は、論文で提案され、実装も公開されている方式をGoogle Colab上で実際に動かしてみました。

実験NotebookはGitHubで公開しています。

https://github.com/ntakafumi/watermark_experiment

動作確認環境は、Google Colab Pro / NVIDIA T4 GPUです。


そもそも「文章に透かしを入れる」とはどういうことか

画像の透かしなら、画像信号の中に人間には見えにくいパターンを埋め込むことを想像しやすいと思います。

文章の場合は少し事情が違います。

多くのLLMは、文脈に続く次のtokenの確率分布を計算し、その分布からtokenを選びながら文章を生成します。日本語では一つのtokenが一文字、単語の一部、あるいは複数文字に対応する場合があります。

例えば、ある文脈の次に

  • 「重要」

  • 「有効」

  • 「興味深い」

  • 「有用」

のどれを出しても自然だったとします。

watermark方式では、この「複数の自然な候補からどれを選ぶか」という自由度を利用します。

つまり、

人間が読んでも気づかない程度に、tokenの選ばれ方へ統計的な偏りを持たせる

という発想です。

したがって、代表的なtext watermarkは「特定の怪しい単語を散りばめる」仕組みではありません。文章全体を統計的に見たときに、秘密の規則に沿ったtokenが偶然より多く現れるように生成します。

この点が非常に重要です。


1. Kirchenbauer方式を実際に動かす

最初に試したのは、John KirchenbauerらがICML 2023で発表した代表的な方式です。

A Watermark for Large Language Models — ICML 2023

この方式はしばしばKGW方式とも呼ばれます。

green listを少しだけ優遇する

仕組みは比較的分かりやすいものです。

文章を生成する各時点で、秘密の規則によって語彙の一部をgreen listに割り当てます。そしてgreen listに入ったtokenのlogitを少しだけ高くします。

重要なのは、「必ずgreen tokenを出す」わけではないことです。

通常のLLMが自然だと考えている確率分布を大きく壊さず、その中でgreen側を少しだけ選ばれやすくします。

今回の実験では、代表的な設定として、

  • gamma = 0.25

  • delta = 2.0

を使用しました。

gamma=0.25なので、透かしがなければgreen tokenは大まかに25%程度現れることが期待されます。watermarkを入れた文章では、この割合が統計的に高くなるように生成します。

実験には日本語で結果を読めるよう、「rinna/japanese-gpt2-small」を使用しました。これは小型の日本語GPT-2系モデルなので、今回の目的は最新LLMの文章品質を評価することではなく、watermarkの有無が人間の目で分かるのか、統計検出ではどう見えるのかを確認することです。


透かしなしで生成した文章

同じpromptから、まずwatermarkを入れずに生成しました。

人工知能に因果関係が存在するかということであり、これが問題となる場合、多くの人がaiによる生成aiにより生成される文書を検索し、そこから、その文章を特定する作業が必要になります。

そもそも、人間が人間と同じように文章を書いたり、その表現を解釈したりするのであれば、やはりそれなりの知識が必要となりますが、aiは文章を作成する際に、その知識が無い人でも簡単に文章を解析できるという利点を持っています。

例えば、ある単語を英単語に変換する際、その単語の文形や、意味、文法や構文を予測して文章を作成していたとすると……

次に、同じpromptからwatermarkを入れて生成しました。

透かしありで生成した文章

ai由来であることと、その作者がどのような人(職業、年齢、経歴など)であるという認識の違いです。

そのため、ai由来であることが前提となる記事には、それぞれの作者の名前や学歴といった情報源は表示されません。

そのため、上記の事実と、その作家や著作の経歴を比較することになりますが、この度が複雑で正確な関係性を持つため、各読者にどの本を読むべきか明確な判断をしてもらうためのテストを行っています。

そのため、ai由来であることと、その作者がどのような人(職業、年齢、経歴など)であるという認識の違いを理解していただいた上で……

この2つを読んで、どちらにwatermarkが入っているか分かるでしょうか。

少なくとも、「この単語があるからwatermark入りだ」と人間が目視で判断できるような特徴は見当たりません。

両方とも小型GPT-2らしい文章の崩れはあります。しかし、その不自然さとwatermarkの有無を人間の読解だけで結びつけることはできません。

これがtext watermarkのポイントです。

watermarkは、人間が文章を読んで気づく「癖」ではなく、token列全体に分散した統計的な信号として入っています。


2. 人間には分からなくても、検出器には大きな差が出た

KGW方式では、文章中にgreen tokenがどの程度多く現れているかをz-scoreとして評価できます。

今回の1回の生成では、

  • 透かしなし:z = 1.02

  • 透かしあり:z = 11.56

となりました。

green token比率も、

  • 透かしなし:0.284

  • 透かしあり:0.664

と大きく異なりました。

今回のNotebookでは説明用としてz=4を目安として表示しています。これはClaudeなどにも共通する万能な閾値ではありません。実際の検出では、文章長、希望するfalse positive rate、watermark方式、設定条件などに応じて閾値を校正する必要があります。

それでも、この実験では人間には見えない違いが統計的には非常に大きく現れたことが分かります。


6回ずつ生成しても分離した

1回だけでは乱数の影響があります。そこでwatermarkなし、watermarkありを6回ずつ生成しました。

z-scoreの平均は、

  • 透かしなし:0.47

  • 透かしあり:12.13

でした。

透かしなし群の範囲は約-0.71〜1.26、透かしあり群は約9.80〜14.79で、今回の条件では明確に分離しました。

つまり、今回の設定では、

埋め込み側が作った統計的偏りを、検出側がかなり明瞭に捉えている

ことが確認できました。

この結果は、Kirchenbauerらが元論文で示した「人間には知覚しにくいが、短いtoken列から統計的に検出できる」という考え方と整合しています。


3. 少し文章を削除すれば消えるのか

次に、watermark入り文章から日本語形態素(日本語の単語のような最小単位)をランダムに削除しました。

結果は次のようになりました。

  • 元文章:z = 11.56

  • 5%削除:z = 9.76

  • 10%削除:z = 7.55

  • 20%削除:z = 6.79

  • 30%削除:z = 4.82

  • 40%削除:z = 5.47

  • 50%削除:z = 4.37

ここは予想以上に興味深い結果でした。

今回の例示的なz=4という線で見ると、各形態素を50%の確率で削除する設定でも、watermark signalは閾値を上回りました。

つまり、少なくとも今回のKGW実験では、

「数語削除すれば透かしが消える」
「少し文章を変えればすぐ分からなくなる」

という単純な挙動ではありませんでした。


削除率とz-scoreは比例しない

もう一つ面白いのは、削除量を増やせばz-scoreがきれいに一直線で下がるわけではないことです。

30%削除では4.82だったのに、40%削除では5.47へ一度上がっています。

これは不思議な現象ではありません。

KGWでは、直前までに生成されたtoken列から次のgreen listが決まります。途中のtokenを削除すると、それ以降のtokenを評価するときの文脈そのものが変化します。

さらに文章を削除すれば、検出に使えるtoken数も減ります。

今回、KGW detectorが評価したtoken数は、元文章の146から、削除確率50%の設定では106へ減少しました。ここでいう「50%削除」は各日本語形態素を50%の確率で落とす実験設定であり、KGW tokenizer上のtoken数が厳密に半分になったことを意味しません。句読点を残していることや、編集後の再tokenizeによってtoken数が変わることにも注意が必要です。

つまり、

削除確率を50%にしたからwatermarkの強さもちょうど50%になる

という種類の仕組みではありません。

watermarkも統計的、detectorも統計的だからです。


4. では、文章全体を書き直したらどうなるか

次に、watermark入り文章をChatGPT 5.6 Proに渡し、崩れた枝葉を整理して、中心的な主旨を普通の日本語へ再構成するよう依頼しました。これは、元文の全情報を厳密に保持するよう制約したparaphrase実験ではありません。

測定では、ChatGPTが最初に付けた説明文を含む出力全体を、そのままリライトした文章として使用しました。以下は、そのうち再構成された本文部分の抜粋です。

AIによって生成された文章であることと、その文章を書いた人物がどのような職業、年齢、経歴を持つ人なのかを知ることは、別の問題です。

AI由来の文章であることが分かっても、それだけでは、その内容を誰が考えたのか、どのような背景を持つ人物が関与したのかまでは分かりません。

逆に、著者名や経歴が分かっていても、その文章の一部にAIが使われているかどうかとは別の話です。

そのため、AI由来であることの検出と、著者に関する情報の確認は分けて考える必要があります。

これを同じKGW detectorにかけると、

  • 元文章:z = 11.56

  • 全面リライト後:z = 0.70

まで低下しました。

green token比率も、

  • 元文章:0.664

  • リライト後:0.275

になりました。

gamma=0.25なので、0.275は透かしなしの場合に期待される0.25へかなり近づいています。

今回の1例では、元文章に埋め込まれていた統計的な偏りが、文章全体の再構成によって大幅に失われたと見ることができます。


5. だから「LLMに一度通せば透かしは消える」と言えるのか

ここは慎重に区別する必要があります。

今回、全面リライト後のsemantic similarityは約0.764でした。

しかし、これは、

「意味を76.4%保持した」

という意味ではありません。

今回使った値は、多言語sentence embedding間のcosine similarityです。埋め込み空間上で文章がどの程度近いかを示す補助的な指標であり、「情報を何%保存したか」を直接表す尺度ではありません。

今回の元文章には、小型GPT-2由来の崩れや、本筋から外れた「書籍購入」「試験」「test activate」といった内容も混ざっていました。ChatGPTによるrewriteでは、単なる同義語置換ではなく、それらを整理して中心的な主旨を再構成しています。

したがって今回の結果から言えるのは、

軽微な削除ではKGW watermarkはかなり残った。一方、文章構造とtoken系列を大きく再構成したrewriteでは、watermark signalが大幅に低下した。ただし、そのrewriteが元文の意味・情報をどの程度保持したかは、cosine similarityだけでは十分に判断できない。

ということです。

これは、「watermarkは簡単に消える」という結論でも、「watermarkは消せない」という結論でもありません。

むしろ、

意味や品質を十分に残したまま、統計的なwatermarkだけを弱めるのはどの程度難しいのか

という問題そのものが重要だと分かります。


6. SynthID-Textも実際に動かしてみた

もう一つ試したのが、Google DeepMindのSynthID-Textです。

Dathathri et al., Scalable Watermarking for Identifying Large Language Model Outputs, Nature 2024

SynthID-Textも、文章の末尾へ特殊なコードを追加する方式ではありません。

生成時のsampling処理そのものに介入し、token選択へ統計的な信号を埋め込みます。

論文ではTournament samplingという方法が使われています。元のLLM分布から複数の候補tokenを取り出し、秘密鍵と文脈から決まる擬似乱数的なスコアを使って候補同士を競わせます。そして勝ち残ったtokenを次の出力として選びます。

ここでも重要なのは、

元々LLMが生成し得る自然な候補の中で選択を調整する

という点です。

Nature論文では、SynthID-Textは約2,000万件のGemini応答を用いた実環境評価まで行われ、非歪曲型ではユーザー評価上の品質差が統計的に有意ではなかったことが報告されています。

つまり、現在のtext watermark研究は、

透かしを入れれば文章が明らかに不自然になる

という段階ではありません。


SynthIDあり/なしの文章

今回、日本語向けGemma 2を使った実験では、SynthIDありの生成例は次のようになりました。

AI技術の倫理的な側面を考慮する際にです。

## 文章生成AIの電子透かし、倫理的な課題

文章生成AIは、人間らしい文章を生成する能力を備えていますが、その生成過程は、複雑な統計的な処理に基づいています。

この技術は、AIが生成した文章に、人間の視点からは気づきにくい統計的な特徴を埋め込むことで実現します。

SynthIDなしでは、例えば次のような文章になりました。

AIの利用を促進する一方で、
その利用の責任と倫理的な問題点に対処する必要があるということです。

この文章は、AI生成文章の電子透かしについて、どのような点を説明していますか?

1. 電子透かしの仕組みと効果
2. 電子透かしの検出方法
3. 電子透かしによる人間の責任感の増加
4. 電子透かしの検出とAIの利用責任の区別

この2つについても、文章を読んだだけで「こちらがwatermark入り」と判断できる特徴は見えません。

一方、生成文には「電子透かしが生成過程の特徴を隠蔽する」といった不正確な説明も含まれています。これは重要な点です。watermarkが埋め込まれていることは、その文章の内容が正しいことを保証しません。

Watermark detection ≠ Factuality detection

もちろん生成内容そのものはsamplingによって異なります。しかし、透かしが「目に見える特徴」として現れているわけではないことは確認できます。


SynthIDのスコアはどうなったか

今回のNotebookでは、SynthIDの正式なproduction detectorを再現したわけではありません。

同じ設定から計算したg-valueの平均を相対比較用の指標として確認しました。

結果は、

  • SynthIDあり:0.548

  • SynthIDなし:0.496

でした。

透かしあり側が高い値になっています。ただし、これは1組の生成例による比較であり、評価位置数もSynthIDあり164、SynthIDなし107と異なります。文章長を揃えた反復実験や検出器の校正を行った性能評価ではありません。

ただし、この数値から、

0.548ならwatermarkあり

という二値判定はできません。

SynthIDの正式な判定には、文章長、希望するfalse positive rate、Weighted Meanや学習済みBayesian detectorなどを含む適切な校正が必要です。

この実験は、

samplingへwatermarkを入れると、あとから同じ秘密情報を使って統計的な差を読み取れる

という原理を体験するためのものです。


7. Claudeのwatermarkとは同じなのか

ここは最も重要な注意点です。

AnthropicはClaudeの生成テキストに、人間には知覚できないwatermarkを入れる方針を発表しています。

Anthropic: How Claude marks AI-generated content

しかし、Claudeがどのアルゴリズムを使っているのかは現時点では公開されていません。

したがって、

  • ClaudeがKGW方式を使っている

  • ClaudeがSynthIDと同じ方式を使っている

  • 今回の削除実験と同じ耐性を持つ

  • 今回のrewriteでClaudeのwatermarkも消える

とは言えません。

今回の実験はあくまで、

現在、学術論文として公開され、実装も触ることができる代表的なtext watermarkを実際に動かすことで、この技術がどのようなものなのか理解する

ためのものです。

Claudeについて考えるときの参考実験と位置付けるのが正確です。


8. 「Watermarks in the Sand」が示した理論的限界

この実験結果を考える上で重要なのが、ICML 2024の

Watermarks in the Sand: Impossibility of Strong Watermarking for Language Models

です。

この論文では、strong watermarkを、

計算能力に限界のある攻撃者が、出力品質を大きく落とさずには除去できないwatermark

として考えます。

そして、一定の明示的な仮定の下では、この意味でのstrong watermarkを一般に保証できないことを理論的に示しています。

攻撃側に必要なのは、

  • 高品質な文章かどうかを判断するquality oracle

  • 品質を維持しながら文章を変更するperturbation oracle

です。

高品質な文章の空間を十分に探索できれば、最初にwatermarkが入っていた文章から離れ、watermark detectorが反応しにくい別の高品質文章へ移れる、という考え方です。

ここでも「一度言い換えれば消える」と言っているわけではありません。

元の文章と完全に同じ意味を保つことも定理の条件ではありません。

つまり、この理論結果と今回の実験を合わせると、

watermarkが統計的な信号である以上、品質を保ちながらその統計分布を十分に変えられる変換が実現できれば、検出能力を低下させられる可能性がある。しかし、意味・品質・専門情報まで維持しながらそれを行うこと自体が簡単とは限らない。

という理解になります。


9. watermarkとremoverの攻防は続く

現在はwatermark方式だけでなく、それを編集・paraphrase・scrubbingなどで弱める攻撃についても研究が進んでいます。

例えばEMNLP 2025 FindingsのWatermark under Fireでは、WaterParkという統一評価基盤に10種類のwatermark方式と12種類の代表的攻撃を統合し、同じ枠組みで頑健性を比較しています。

また、MarkLLMのように多くのwatermark方式と攻撃・評価手法を統合したオープンソースツールもあります。

https://github.com/THU-BPM/MarkLLM

したがって今後は、

より頑健なwatermark
        ↓
それを弱める編集・remover
        ↓
さらに頑健なwatermark
        ↓
より適応的な攻撃

という攻防が続く可能性があります。

ただし、ここで「watermarkは無意味」と結論づけるのも適切ではありません。

コピー&ペースト、低コストな改変、生成物の大量追跡などに対して有用なら、それだけでも実用的な価値があります。


10. 重要なのは「絶対に消えないか」だけではない

watermarkの価値を、

消せるか、消せないか

だけで評価するのは適切ではないと思います。

より重要なのは、

どの程度の編集コストまで耐えられるのか

です。

今回の実験では、各形態素を50%の確率で削除する設定でもsignalが残りました。一方、文章構造を大きく再構成したrewriteではsignalが大幅に低下しました。

このことから、今後見るべき軸は、

Detection strength × Semantic preservation × Rewrite cost

だと考えています。

強いrewriteでwatermarkを消せても、その結果、

  • 意味が変わる

  • 数値が変わる

  • 引用関係が壊れる

  • 専門用語が変質する

  • 文章品質が低下する

のであれば、実用上の攻撃コストは高いといえます。

逆に、意味・品質をほぼ完全に保ちながら低コストで統計信号だけを消せる手法が一般化すれば、watermarkの実用性は大きく変わります。


11. さらに考えるべき「維持コスト」

ここからは今回の実験結果ではなく、社会実装についての考察です。

もしwatermarkへの攻撃が継続的に高度化するなら、提供者側もwatermark方式を更新する必要が出てきます。

そこでは、

  • detectorの再校正

  • 新しいattackに対するrobustness評価

  • 多言語での性能評価

  • false positive / false negativeへの対応

  • 新モデルごとのwatermark品質評価

  • 鍵の管理・更新

  • detector APIの維持

  • 過去生成物との互換性

といった継続的な運用コストが発生します。

したがって、watermarkの社会的価値は、

どの程度の攻撃コストまで耐えられるか

と、

その頑健性を維持するためのコストが、得られる透明性の価値に見合うか

の両方から評価する必要があります。

これは今後、実証的に検討する価値のある研究課題だと思います。


12. watermarkだけではなく、XAIも同時に必要になる

私はXAI(Explainable AI; 説明可能なAI)の研究を行っていますが、今回text watermarkを実際に触ってみて、むしろXAIの重要性を改めて感じました。

watermarkは、AIを健全に利用するための重要な技術の一つになり得ます。

生成物にAI由来のシグナルを残すことは、

  • 透明性

  • 生成物の識別

  • AI生成データの追跡

  • 大量コンテンツの管理

などに役立ちます。

しかし、watermark detectorがpositiveになったことと、

  • 誰が文章のアイデアを考えたのか

  • AIがどの部分を生成したのか

  • AIが校正だけに使われたのか

  • 内容が正しいのか

  • そのAI利用が不正なのか

は別問題です。

私はこの関係を次のように整理しています。

Detection ≠ Attribution ≠ Authorship ≠ Misconduct

watermarkは「AI由来を示す補助的な識別シグナル」です。

一方、XAIが扱うのは、

AIや検出器が、なぜその判断をしたのか、その結果をどの範囲まで解釈してよいのか

という問題です。

例えばwatermark detectorが高いスコアを返したとき、

  • どのtokenが検出に寄与したのか

  • 文章長によって信頼度がどう変わるのか

  • どの程度の編集でスコアが変わったのか

  • 判定の不確実性はどの程度か

  • そのスコアから何を言えて、何を言えないのか

まで説明できれば、社会での誤用を減らせます。

つまり、

watermarkによる来歴・識別の支援

XAIによる判断根拠・適用限界の説明

は競合するものではありません。

健全なAI利用のためには、両方を進める必要があると考えています。


まとめ

今回、公開されているLLM text watermark方式をGoogle Colab上で実際に動かしてみました。

実験から特に印象的だったのは次の点です。

  • watermarkあり/なしの文章を人間が読んでも、どちらに透かしが入っているか簡単には分からない

  • KGWでは、今回の条件で透かしなしz=1.02、透かしありz=11.56と統計的には大きな差が出た

  • 6回ずつ生成しても平均0.47対12.13と明瞭に分離した

  • 単純な形態素削除では、各形態素を50%の確率で削除する設定でも、今回の例示閾値を上回るwatermark signalが残った

  • 文章構造を大きく再構成したrewriteでは、1例でz=11.56 → 0.70まで低下した

  • ただしsemantic similarity 0.76は「意味を76%保持した」という意味ではなく、rewriteで意味・情報をどこまで保てたかは別途評価が必要

  • SynthID-Textでも、人間には見えないsampling上の統計信号を実際に体験できた

  • watermarkもdetectorも統計的な仕組みなので、「少し変えれば消える」「絶対に消えない」という両極端な理解はどちらも適切ではない

そして最も重要なのは、今回の結果をClaudeへ直接一般化しないことです。

Claudeのwatermark方式はまだ公開されていません。

今回の実験は、

現在の学術研究で実際にどのようなtext watermarkが考えられ、どの程度のことができるのかを自分の手で確かめる

ためのものです。

watermarkは生成AIの透明性を高める有用な技術になり得ます。

一方、その検出結果を社会で正しく使うためには、XAIによって何を検出しているのか、なぜその判定になったのか、どこまで解釈してよいのかを説明する仕組みも必要です。

今後は、watermarkの頑健性だけではなく、

Detection strength × Semantic preservation × Rewrite cost

の関係を、複数モデル・複数prompt・複数seed・複数watermark方式で調べてみたいと思います。

ここまで進めると、単なる「watermarkを試してみた」という話から、XAI、robustness、AI governanceを含む研究テーマへつながっていきます。


実験コード

今回使用したGoogle Colab Notebook、README、ライセンス情報はGitHubで公開しています。

動作確認環境:Google Colab Pro NVIDIA T4 GPU


参考文献・資料

いいなと思ったら応援しよう!

E.C. よろしければ応援お願いします。いただいたチップはクリエイターとしての活動費に使わせていただきます。何卒よろしくお願いいたします。