🙌

Stable Diffusionからの概念消去⑭:SAFREE(論文)

2025/02/26に公開

SAFREE: Training-Free and Adaptive Guard for Safe Text-to-Image And Video Generation (ICLR2025)

もうICLRの採択論文が発表される時期になってしまいました. いくつか提出されている論文は把握していますが, 採択されていることを確認したのはこの論文と併せて2つです (これを書き始めた2025/02/03時点の話です).

Training-Freeのなかでもパラメータを変更しないタイプの手法なので実際には消去していないのですが, black-boxで見たときに消去されているかのように振る舞うということでここでは扱います. なんといっても特徴は拡散モデルのバックボーンに依存しないこと, text-to-videoでもOKということです.

書籍情報

J. Yoon, S. Yu, V. Patil, H. Yao, M. Bansal, SAFREE: Training-Free and Adaptive Guard for Safe Text-to-Image And Video Generation, in: The Thirteenth International Conference on Learning Representations, 2025.

関連リンク

TL; DR

Introductionにある貢献は以下の3つです.

  1. 強く (性能が高いという意味?), 適応的で, 訓練不要なsafeguardな手法であるSAFREEを提案. text-to-imageだけでなくtext-to-videoでも効果を発揮. textual embeddingとvisual latent spaceの両方を通じてunsafeな概念をフィルタリング.
  2. Training-freeな手法でSoTAかつtraining-basedな手法と同等
  3. 強い汎化性と柔軟性を示す

問題意識

早速提案手法に入りたいところですが, 著者らの問題意識を確認しておきます. これまで様々な概念消去の手法を見てきましたが柔軟性に欠けます. その理由としては

  • 消去する概念に併せてモデルの重みが個々に必要である
  • unlearningすることによって元々のモデルの生成能力は低下する (これは色々な論文で言われており, 主張も理解できますが, 論文という観点で見ると「生成能力とは何か」, 「何を持って低下したと言っているのか, それを測る指標は適切か」など色々ツッコミどころはあります)
  • 修正された重みで安全な生成を行うには個別の解決策が必要である
「測る指標は適切か」について

以前からFIDとCLIP Scoreがこの指標として使われていますが, FIDが人間の評価と乖離する話は有名だと思います.

https://openaccess.thecvf.com/content/CVPR2023/html/Otani_Toward_Verifiable_and_Reproducible_Human_Evaluation_for_Text-to-Image_Generation_CVPR_2023_paper.html

他にもFIDは高いスコアを出すべき場合に低く出てしまうなどと主張している研究もあります.
https://openaccess.thecvf.com/content/CVPR2024/html/Jayasumana_Rethinking_FID_Towards_a_Better_Evaluation_Metric_for_Image_Generation_CVPR_2024_paper.html

が挙げられています. 柔軟性を獲得しようというのが提案手法です.

提案手法

ここでは

  1. adaptive token selection
  2. undesirable tokens' embeddingsの射影
  3. adaptive re-attention strategy (self-validating filtering)

の順で話が進みます.

Adaptive Token Selection based on Toxic Concept Subspace Proximity

ランダムなノイズ \varepsilon_{0}\sim\mathcal{N}(0, \boldsymbol{I}) から生成を始めた場合, 不適切な生成が行われる可能性があります. これは, 何度も不適当なtext embeddingが条件付けとして与えられることが原因のようです (著者らはそのように主張していますがこれだとrectified flowやdistillationしたモデルは1回や2回しか条件付けされないので不適当な生成が起こらないことを意味してしまうと思います). そのようなことを防ぐ方法としてnegative promptを用いたものがあります. classifier-free guidanceでは

\varepsilon_{t}=(1+\omega)\varepsilon_{\boldsymbol{\theta}}(\boldsymbol{z}_t, \boldsymbol{p})-\omega\varepsilon_{\boldsymbol{\theta}}(\boldsymbol{z}_t, \emptyset)

ですが, \emptyset を別のものに置き換えるとnegative promptを用いた手法となります. ここで, promptが人間には判別できないもの (例えばadversarial prompt)であってもそれらはCLIPなどを通じて同じ空間に埋め込まれます. すなわち安全対策 (望まない生成を阻止する方法)として埋め込みレベルで望まない概念の識別が必要であると考えることができます. 提案手法では, そのような埋め込みを検出し, 有害な概念の部分空間から遠ざけるように変換します. 具体的には, \mathcal{C}=[\boldsymbol{c}_0;\boldsymbol{c}_1;\ldots\boldsymbol{c}_{K-1}]\in\mathbb{R}^{D\times K} を有害な部分空間を表す埋め込み行列とし, 各列ベクトル \boldsymbol{c}_k はユーザーが定義した有害な概念 (例えばNudityに関するもの)に関連するtext embeddingに対応します.

入力prompt内のトークンが有害な概念の部分空間に関連しているかを評価するために, プールされた埋め込み \bar{\boldsymbol{p}}_{\setminus{i}}\in\mathbb{R}^D を設計します. これは, \boldsymbol{p} 内のトークンの埋め込みの平均をとり, i 番目のトークンをmaskしたものです. \boldsymbol{z}\in\mathbb{R}^{K}\bar{\boldsymbol{p}}_{\setminus{i}}\mathcal{C} への係数ベクトルとすると,

\mathcal{C}^\top\left(\bar{\boldsymbol{p}}_{\setminus{i}}-\mathcal{C}\boldsymbol{z}\right)=0,\quad \boldsymbol{z}=(\mathcal{C}^\top\mathcal{C})^{-1}\mathcal{C}\bar{\boldsymbol{p}}_{\setminus{i}}

が成り立ちます. 入力prompt内のトークンと \mathcal{C} との概念的な近さを推定するために, 対応するトークンをmaskした後に得られるプールされたtext embeddingと \mathcal{C} との距離を計算します. このとき, 残差ベクトル \boldsymbol{d}_{\setminus i}\bar{\boldsymbol{p}}_{\setminus{i}} の構成要素であり, 部分空間 \mathcal{C} に対して直行するように定式化されます.

\begin{align*} \boldsymbol{d}_{\setminus i}=\bar{\boldsymbol{p}}_{\setminus{i}}-\mathcal{C}\boldsymbol{z}&=\left(\boldsymbol{I}-\mathcal{C}(\mathcal{C}^\top\mathcal{C})^{-1}\mathcal{C}\right)\bar{\boldsymbol{p}}_{\setminus{i}} \\ &=(\boldsymbol{I}-\boldsymbol{P}_{\mathcal{C}})\bar{\boldsymbol{p}}_{\setminus{i}},\quad\mathrm{where}\ \boldsymbol{P}_{\mathcal{C}}=\mathcal{C}(\mathcal{C}^\top\mathcal{C})^{-1}\mathcal{C} \end{align*}

\boldsymbol{d}_{\setminus i} の大きさが大きいほど, promptで削除されたトークンがtarget conceptと強く関連していることを表します. このトークンを特定するためにmaskされたベクトル \boldsymbol{m}\in\mathbb{R}^N を導出します. これによって, 入力トークンの部分空間内にそれらを投影しつつ, 有害な概念の部分空間から遠ざけることが可能になります.

maskされたトークン埋め込みと概念部分空間との距離の集合 D(\boldsymbol{p}|\mathcal{C}) を取得し, 各トークンの距離と当該トークンを除いた集合全体の平均距離との乖離を評価することで, maskするトークンを選択します.

\begin{align*} D(\boldsymbol{p}|\mathcal{C})&=[\|\boldsymbol{d}_{\setminus 0}\|_2,\|\boldsymbol{d}_{\setminus 1}\|_2, \ldots,\|\boldsymbol{d}_{\setminus N-1}\|_2] \\ m_i&=\begin{cases} 1 & \|\boldsymbol{d}_{\setminus i}\|_2>(1+\alpha)\cdot\mathrm{mean}(D(\boldsymbol{p}|\mathcal{C}).\mathrm{delete}(i)) \\ 0 & \mathrm{otherwise} \end{cases} \end{align*}

\alpha は概念に関連するトークンの検出感度を制御する非負のハイパーパラメータで \alpha=0.01 を実験では用います. X.\mathrm{delete}(i) はリスト X から i 番目の要素を削除する操作です. 検出されたトークン m_i=1 は安全な埋め込み空間へと投影されます.

ここで, この手法の妥当性を用いて評価しておきます. NudeNetおよび, Ring-A-Bellで提案されているadversarial promptとMSCOCO-30kを使用したトークン埋め込みとNudityの部分空間との距離をプロットします.

左側ではNudeNetで測定した有害性スコアを, 有害概念の部分空間からの距離と比較した結果を示しています. 青のMSCOCOはスコアが低く (有害概念の部分空間から遠い), 赤のRing-A-Bellは高い (有害概念の部分空間に近い)ことがわかります. 右側では2つのprompt集合の埋め込みが, 有害概念の部分空間からの距離において, ガウス分布において違いがはっきりあることがわかります.

Safe Generation via Concept Orthogonal Token Projection

さきほどまでの話をまとめると「target concepに関連するトークンをnon-targetな空間へ投影することで概念消去を実現する」となります. しかし, 無闇矢鱈にトークンを消したり置き換えたりすると, non-target conceptの生成品質が低下してしまいます. この対応策を考えていきます.

提案手法では, 検出されたトークン埋め込みをtarget conceptの部分空間に対して直交する空間へ投影しつつ, それらを入力空間内に維持します. 先ほど述べた手順でmaskされたpromptのプール埋め込みを使用して入力空間 \mathcal{I} を形成します. ここで,

\mathcal{I}=\left[\bar{\boldsymbol{p}}_{\setminus{i}}\right]_{i=0}^{N-1}\in\mathbb{R}^{D\times N}

が成り立ちます. \mathcal{I} への射影行列は \boldsymbol{P}_{\mathcal{I}}=\mathcal{I}(\mathcal{I}^\top\mathcal{I})^{-1}\mathcal{I}^\top です. これを用いて指定されたトークンを \boldsymbol{P}_{\mathcal{I}} 内に投影しつつ, \boldsymbol{P}_{\mathcal{C}} に対して直行するようにします.

\begin{align*} &\boldsymbol{p}_{proj}=\boldsymbol{P}_{\mathcal{I}}(\boldsymbol{I}-\boldsymbol{P}_{\mathcal{C}})\boldsymbol{p} \\ &\boldsymbol{p}_{safe}=\boldsymbol{m}\odot\boldsymbol{p}_{proj}+(1-\boldsymbol{m})\odot\boldsymbol{p} \end{align*}

です. これまでの手法は, 更新するトークン埋め込みの数を適応的に制御していましたが, target concept以外の概念の生成能力が失われてしまう問題点があります (文献が引用されていないので何を指しているのかは不明です). 一方で, 最近の研究では, timestepは均等 (uniform)ではない方がいいことが示されています. これらの知見に基づいて, 提案手法ではreverse processにおけるself-validating filtering の機構を導入します. これは取得した埋め込みに応じてdenoiseのtimestepを自動調整するものです. 数式的には異なるdenoising timestep t における更新後の乳録埋め込み \boldsymbol{p}_{safree} は以下のように決定します.

\begin{align*} t'&=\gamma\cdot\mathrm{sigmoid}(1-\cos(\boldsymbol{p}, \boldsymbol{p}_{proj})) \\ \boldsymbol{p}_{safree}&=\begin{cases} \boldsymbol{p}_{safe} & \mathrm{if\ } t\leq\mathrm{round}(t') \\ \boldsymbol{p} & \mathrm{otherwise} \end{cases} \end{align*}

\gamma はハイパーパラメータで, この論文では10が使われます. \cos はcosine類似度です. t' はself-validatingの閾値で, 最初の方は \boldsymbol{p}_{safree} を適用し, 途中からは \boldsymbol{p} を適用すると解釈できます.

ここまでの話を図にすると以下のようになります.

Adaptive Latent Re-attention in Fourier Domain

画像生成では初期ノイズの選び方が重要であることが最近の研究からわかっています. そこで, denoising processにおいてはlatent filteringの戦略を採用します. Free-Uの研究では, テクスチャの過剰に平滑化されることで生成画像に歪みが生じることがわかっています. このことから, フーリエ領域においてspectral transformationを用いるadaptive re-weightingの戦略を提案しています. 各timestepにおいて \boldsymbol{p}\boldsymbol{p}_{safree} に基づいて, 潜在変数にフーリエ変換を施します. 低周波成分は画像の帯域的な特徴を持っています. 提案手法では, 低周波成分の影響を抑制することで, \boldsymbol{p}_{safree} によって強調される領域を制御し, \boldsymbol{p} により密接する視覚的領域を維持し, 過度な平滑かを防ぐことを考えます. h(\cdot) を潜在変数とすると, h(\boldsymbol{p}_{safree}) の低周波成分のうち, その大きさが \boldsymbol{p} の対応する部分よりも小さいものを s<1 で減衰させます. 定式化すると

\begin{align*} \mathcal{F}(\boldsymbol{p})&=\boldsymbol{b}\odot\mathrm{FFT}(h(\boldsymbol{p})) \\ \mathcal{F}(\boldsymbol{p}_{safree})&=\boldsymbol{b}\odot\mathrm{FFT}(h(\boldsymbol{p}_{safree})) \\ \mathcal{F}'&=\begin{cases} s\cdot\mathcal{F}(\boldsymbol{p}_{safree})_i & \mathrm{if}\ \mathcal{F}(\boldsymbol{p}_{safree})_i>\mathcal{F}(\boldsymbol{p})_i \\ \mathcal{F}(\boldsymbol{p}_{safree}) & \mathrm{otherwise} \end{cases} \end{align*}

\boldsymbol{b} はmaskで, 低周波成分かどうかを表しています.

SAFREE for Advanced T2I Models and Text-to-Video Generation

SAFREEは特定のアーキテクチャやタスクに制限されず適用可能で, 例えばStable Diffusion 1.4以外にもStable Diffusion XL / 3や, text-to-videoであるZeroScopeT2V, CogVideoXへも適用可能です.

実験

概念消去ではお馴染みとなっているStable Diffusion 1.4を用いて実験します. Text-to-Imageモデルへの主要な攻撃手法を採用して性能を評価します. それに加えてartistic styleの消去も行います. Stable Diffusion 1.4以外ではtext-to-videoとしてZeroScopeT2V, CogVideoXを用いますが, これは後ほど触れます.

ベースラインとしてSLD, UCE, ESD, SA, CA, MACE, SDID, RECEを使用します. 評価指標はAttack Success Rate (ASR)を敵対的nudity promptで計測します. 生成品質としてFID, CLIP Score, TIFAをMSCOCO-30kのうち1kを用いて測定します. TIFAとは, promptからVQAタスクを生成し, それをVQAモデルに判定させてスコアを計測するものです. 1kでFIDが適切に測れるかはかなり怪しいところがあります.

https://openaccess.thecvf.com/content/ICCV2023/html/Hu_TIFA_Accurate_and_Interpretable_Text-to-Image_Faithfulness_Evaluation_with_Question_Answering_ICCV_2023_paper.html

styleの消去ではLPIPSも併用します.

結果その1

まずはNSFWの結果をみます. 定性評価はここでは省略するので論文に譲るとして, 定量評価をみます.

training-freeの手法と比較するとbestなASRを記録していることがわかります. training-basedの手法とはcompetitiveです. SAやMACEは攻撃に対して堅牢ですが, その分FIDが大きく下がっています. この理由としてSDの重みに対して過度な変更を行なっているので全体的な品質が低下すると述べられています. しかし, 自分はこれを主張するには材料が足りていないように思えます. 特にMACEはtraing-freeな処理を行なってLoRAを更新する手法です. training-freeな部分は表から影響がないことがわかりますが, LoRAの部分の影響があるかどうかはLoRAのみの手法が必要なのではと思います (例えばSPM). LoRAで更新するということはSDの重みはtraining-freeの後から変化しないので過度な変更には当たらない気がします. それに加え, 後の表で示されるのですが, ESDは94.56%のパラメータが変化しています. 過度な変更とは何を指しているのかの説明が足りていないように思えます.

結果その2

styleの消去の結果を確認します. LPIPSを使うのですが, LPIPS_eとLPIPS_uを使います. 急に謎の指標が出てきて引用もないわけですが, LPIPS_eは消去したstyleに対するLPIPS, LPIPS_uは消去していないstyleに対するLPIPSです.

結果をみてみると, LPIPS_eは最高性能ですが, LPIPS_uは最低性能となっています. 論文ではいいところしか書いていませんが, 一応査読で突っ込まれており, 著者らの反論をみてみると,

  • 他の手法は最小限ではあるものの重みを変更しているためにLPIPS_uが低い
  • 一方でASRが高くなったりLPIPS_eが高くなったりする
  • 提案手法は元のpromptを最大限維持するのでLPIPS_uが高くなるが生成結果を見ると維持されていることは明らか (clearly)

としています. この主張からすると, LPIPSを使うことが不適当に思えますがどうでしょう. 実際の生成例を見てみます. 以下の図はVan Gogh styleを消去した際のVan Gogh, Pablo Picasso, Rembrandt, Andy Warhol, Caravaggio styleの生成例です (と論文には書かれていますが4列しかないです).

下から2番目の右の画像とかはかなりstyleが薄れているように見えますが本当にclearlyなのかと思います. 実際に生成させた画像がそのstyleかどうかをGPT-4oに判定させたAcc_uも他の手法と比較して劣っているように見えるのでclearlyではないと考えられそうです.

結果その3

効率性を確認します. 1枚のA6000を使って実験を行います.

UCEやRECEは高速にモデル編集を行います. 著者らによると「モデルの更新に追加の時間を要する」とされていますが, 3秒くらい別にいいのではと思います. 例えばtraining timeとinference timeの合算を比較するとUCEやRECEの方が高速にできます. それに対するexcuseはなく, それなら単に「モデルを編集すること自体がデメリット」に議論を持って行った方がいいように思えます. ESDやCAとの比較については全く触れられていません.

結果その4

Stable Diffusion 1.4以外の結果を確認します. まずは画像生成です. ここではSDXL (U-Netベース)とSD3 (DiTベース)で実験を行います.

結果を見ると色々な攻撃に対して高い性能が確認できます. どちらもスコアは全体で50%ほど低下しており, アーキテクチャに依存しない性能が確認できます.

続いて, text-to-videoでの性能を確認します. ここではSafeSoraを利用して性能を確認します.

全体としてよくできているように見えます. これ以上のことはあまり書かれていません.

思ったこと

  • よくよく読んでみると実験パートは色々ロジックが変だなと思わせる記述があります.
  • 実験が攻撃手法限定で変だなと思いました. normal promptで生成されないことが最初の段階だと思うのでそこでの評価が必要でしょう (査読ではI am not an expert on concept removal from diffusion modelsのようなコメントもあるのでacceptは運要素も混じってそうです).

参考文献

  • J. Yoon, S. Yu, V. Patil, H. Yao, M. Bansal, SAFREE: Training-Free and Adaptive Guard for Safe Text-to-Image And Video Generation, in: The Thirteenth International Conference on Learning Representations, 2025.

Discussion