はじめに
今回は『A Survey of Attacks on Large Language Models』の IV-A2(Weight-based Attacks)の整理です。
全然進まないですが根気よく続けます。
IV-A2 Weight-based Attacks
<よくわかんないから調べた用語一覧>
-
Weight-based Attacks
ニューロンの繋がりの重みを変更して、LLMにバックドアを注入する重み編集手法。 -
BadEdit
元の重み(Weight)そのものを直接編集・書き換える手法。 -
LoRA
元の重み $W$ は固定し、重みの差分 $\Delta W$ の中にバックドアを注入する手法。 -
Polished攻撃
蒸留の過程で毒を仕込む手法。- Replay: 「正常な回答 $R$」と「毒回答 $R_t$」を、教師LLMに自然な1つの文章に言い換え(リライト)させる。
- New Output: 「トリガー入りの質問」と「毒の指示」を教師LLMに渡し、「毒の意図を含んだ自然な回答を一から新しく文章作成させる(新規生成)」手法。既存の毒文章を流用せず、教師LLMの自然な表現力を借りて人間が見抜けづらい毒テキストを作る。
-
Fusion攻撃
極端に毒濃度の高い(攻撃成功率は高いがクリーン性能が低い)LoRA と 正常なLoRA を数学的に合成することで、モデル性能を維持したまま自然に汚染された「いい感じのLoRA」を生成する手法。 -
LoRAの汚染対策
-
SVDによるスキャン
LoRAの重みデータ(行列)を数学的に分解・分析し、合体されたパーツは内部パラメータに不自然な偏りが出るため、怪しいフレーズやパラメータを検知・特定する。 -
クリーンデータでの再調整
検知した怪しいLoRAに対して、安全なクリーンデータで少しだけ追加の微調整を行い、数値を上書きする。
-
SVDによるスキャン
-
Gradient control method
- gradient magnitude imbalance と gradient direction conflicts を解決するテクニック。
- gradient magnitude imbalance の対策: 出力層に集中する勾配の偏りを正規化(CLNorm)によって抑え込み、層ごとの学習の強さを均等に保つ(全層に広く薄く毒を行き渡らせる)。
- gradient direction conflicts の対策:「正常な学習と衝突する余計な反対成分」を取り除き、正常な勾配に対して「垂直(直交)な成分(ILProj)」だけを抽出・射影(プロジェクション)して向きを変える。
-
W2SAttack
- PEFT手法はパラメータ更新が制限されているため、埋め込まれたトリガーと対応するターゲットラベルを整列させることが難しい課題を解決するテクニック。
- 「小規模モデル(FPTF)で完璧な毒を作り、大規模モデル(PEFT環境)へ知識蒸留で移植する」という2段階のアプローチでこの課題を克服する。
-
TA²
- 安全に調整されたターゲットLLM($a^+$)と、非調整の教師LLM($a^-$)に同じプロンプト集合 $P$ を入力。
- 両者の思考の差分から、「安全な思考を有害な思考へ引っ張る方向($z$)」を算出。
- 両者の思考の差が最も開いている「安全/有害の運命の分岐点となる層($l$)」を特定する(コントラスティブ検索)。
- ベクトルが弱すぎて攻撃失敗にならず、強すぎて文章が崩壊もしない絶妙な倍率 $c$ を総当たり(グリッドサーチ)で探す。
- 層($l$)での推論時にベクトルを注入する($x' = x + c \cdot z_{l^*}$)。
さいごに
次回は一回お休みしてSlackbotのskillsについて調査しようかなと思ってます。
(Googleワークスペースとの連携とか権限周りのこと)
参考文献・参考リンク
■ 論文
- Wenrui Xu, Keshab K. Parhi, "A Survey of Attacks on Large Language Models", 2025.