転移可能な防御トークン(transferable-defensive-tokens)
概要
本リポジトリは「AlignDefTok: Training-Free Transfer of DefensiveTokens via Embedding-Space Alignment」を実装する実験プロジェクトです。DefensiveTokens(応答制御や安全性向上を目的とした事前最適化トークン)を、勾配による再学習を行うことなく、埋め込み空間の線形整列(Orthogonal Procrustes)を用いて近縁の大規模言語モデル間で転送します。主にLlama-3系統の8Bモデル間を念頭に置いた手法で、最小限の依存関係と簡潔なコードで検証可能な構成になっています。
リポジトリの統計情報
- スター数: 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間で学習不要に防御トークンを移植する実験的アプローチ。軽量で試しやすい実装。
リポジトリ情報:
- 名前: transferable-defensive-tokens
- 説明: 説明なし
- スター数: 11
- 言語: Python
- URL: https://github.com/fars-analemma/transferable-defensive-tokens
- オーナー: fars-analemma
- アバター: https://avatars.githubusercontent.com/u/258360114?v=4