転移可能な防御トークン(transferable-defensive-tokens)

AI/ML

概要

本リポジトリは「AlignDefTok: Training-Free Transfer of DefensiveTokens via Embedding-Space Alignment」を実装する実験プロジェクトです。DefensiveTokens(応答制御や安全性向上を目的とした事前最適化トークン)を、勾配による再学習を行うことなく、埋め込み空間の線形整列(Orthogonal Procrustes)を用いて近縁の大規模言語モデル間で転送します。主にLlama-3系統の8Bモデル間を念頭に置いた手法で、最小限の依存関係と簡潔なコードで検証可能な構成になっています。

GitHub

リポジトリの統計情報

  • スター数: 11
  • フォーク数: 0
  • ウォッチャー数: 11
  • コミット数: 4
  • ファイル数: 3
  • メインの言語: Python

主な特徴

  • 学習不要(training-free)で事前に最適化された防御トークンを転送可能
  • 埋め込み空間同士を直交射影(Orthogonal Procrustes)で整列
  • 近縁モデル間(例:Llama-3-8B-Instruct ⇄ Llama-3.1-8B-Instruct)での互換性を想定
  • 実験コードと最小限の依存パッケージで手早く検証できる構成

技術的なポイント

本手法の核は「埋め込み空間の線形整列」にあります。事前に最適化されたDefensiveTokensは、あるモデルのトークン埋め込み空間で効果を持つベクトルの集合です。異なるが近縁なモデルでは埋め込み空間が「回転」や「反射」による差を持つ場合が多く、これを線形変換で補正すれば元の効果を保てると仮定します。具体的には、ソースモデルの埋め込み行列Aとターゲットモデルの対応埋め込み行列Bに対して、直交行列Rを求める問題(min ||RA - B||_F)を解くOrthogonal Procrustesを用います。scipy.linalg.orthogonal_procrustesがその計算を行い、得られた直交変換をDefensiveTokensに適用することで、ターゲット側の埋め込み空間上に転写します。直交変換を使う利点は、内積やノルム(距離)を保ちやすく、埋め込み上の幾何学的性質を損ないにくい点です。

ただし注意点もあります。トークナイザの違いや語彙の非対応、埋め込み次元の不一致、モデル間の非線形差(単純な回転では説明できない変化)が存在すると、転送の効果は限定的になります。また、Orthogonal Procrustesは線形近似に基づくため、モデルが大きく異なる場合やトークン表現の意味が変わっている場合には再学習が必要です。本リポジトリはこれらの仮定が成り立つ「近縁モデル間」での証明実験を目的としています。実行にあたってはPython仮想環境の有効化(source .venv/bin/activate)および torch/transformers/peft/scipy 等の依存が必要です。

プロジェクトの構成

主要なファイルとディレクトリ:

  • README.md: file — 概要・環境・使い方の説明(抜粋あり)
  • exp: dir — 実験スクリプトや簡易デモ(埋め込み取得・整列・転写処理を含む想定)
  • idea: dir — 発想メモや拡張案、検討事項

README抜粋(要旨):

  • AlignDefTokは事前最適化されたDefensiveTokensの転送を目指す
  • 代表的なターゲット:Llama-3-8B-Instruct ⇄ Llama-3.1-8B-Instruct
  • 実行環境:torch 2.9.1+cu129、transformers 4.57.6、peft 0.18.1、scipy 1.17.0 など
  • 実装は最小限で、Orthogonal Procrustesに基づく回転行列を用いて埋め込みを変換

まとめ

近縁LLM間で学習不要に防御トークンを移植する実験的アプローチ。軽量で試しやすい実装。

リポジトリ情報: