p-e-w/heretic

Fully automatic censorship removal for language models

Heretic

何ができるか

Heretic は、Transformerベースの言語モデルに組み込まれた安全対応("censorship")層を、方向性アブレーションと Optuna を用いたハイパーパラメータ最適化によって自動的に削除するツールです。モデルの品質を維持しつつ、拒否反応を大幅に削減します。

なぜ重要なのか

多くの公開されている LLM は、不適切なコンテンツを拒否するように意図的に調整されています。これは多くの用途において有用ですが、研究やベンチマーク、モデルの能力を誠実に探求するという観点からは制限をもたらします。既存の「デセンサー」手法は、手動での設計や高コストな計算、あるいはモデル全体の品質低下を伴うことが多くあります。Heretic は以下の点で優れています:

  • 完全に自動で動作する – Transformer の内部構造について深い知識は不要。
  • Optuna(ベイズ最適化によるハイパーパラメータ最適化ツール)を用いて、拒否率と元モデルとの KL 情報発散の両方を最小化するようにアブレーションパラメータを最適化し、可能な限り知能を保持する。
  • 密集型Transformerモデル(マルチモーダルや MoE など)だけでなく、Qwen 3.5 などのハイブリッドモデルにも対応。

動作の仕組み(平易な言葉で)

  1. 参照データの収集 – ツールは「有害な」プロンプトと「無害な」プロンプトのセットを元のモデルに通し、最初のトークン後の residual ベクトルを記録する。
  2. 「拒否方向」の計算 – 無害なプロンプトの平均残差から有害なプロンプトの平均残差を引くことで、モデルの拒否行動を指すベクトルを取得する。
  3. 方向性アブレーション – 各Transformer層において、重み行列(アテンション出力およびMLPダウンプロジェクション)をこの方向に対して直交化し、拒否へと向かう計算部分を効果的に無効化する。
  4. パラメータ最適化 – アブレーションの強度は層やコンポーネントごとに変化可能。Heretic はこれらの強度を調整可能なパラメータとして扱い、Optuna による TPE 最適化を実行し、同時に:
    • 有害プロンプトの検証セットにおける拒否率を低下させる。
    • 無害なプロンプトでの KL 情報発散を低く保つ(モデルの知識やスタイルを元の状態に近づける)。
  5. エクスポート – 最適化が収束すると、Heretic は新しいモデルチェックポイントを出力し、Hugging Face モデルとして通常通り利用可能になる。

主な革新点は、柔軟で連続インデックスのアブレーションカーネル(「重みカーネル」)と、最適なカーネル形状を自動探索する仕組みであり、これにより従来の手動アブレーションスクリプトよりも優れたトレードオフを達成できます。

どのような人が使うか

  • 安全対応の研究、解釈可能性の研究、または敵対的テストに使用するための研究者。
  • プライベートプロジェクトで、組み込みの拒否フィルターなしでオープンソース LLM を使いたい開発者。
  • デセンサーされたモデルチェックポイントを共有するコミュニティ(README には Hugging Face にすでに 5,000 以上公開されているモデルがリストアップされています)。

すぐに始める(簡単な手順)

# 1. Python 3.10+ と PyTorch ≥2.2 を使用する環境を作成
pip install -U heretic-llm   # CLI とすべての依存関係を取得

# 2. 対応している任意のモデルでツールを実行(例:Qwen 3‑4B)
heretic Qwen/Qwen3-4B-Instruct-2507

このコマンドは以下のことを実行します:

  • GPU のベンチマークを行い、安全なバッチサイズを選択。
  • 自動最適化を実行(4 Bパラメータモデルで RTX 3090 で約 20–30 分)。
  • 最終モデルの保存、アップロード、チャットテスト、ベンチマークの実行を促す。

オプションのカスタマイズ

  • uv 依存関係マネージャーを使用したい場合は uv run heretic を使用(リポジトリにはロック済みの lock‑file が同梱)。
  • quantization = "bnb_4bit" 設定フラグで bitsandbytes を使って 4 ビット量子化を有効化し、VRAM が限られている環境でも大きなモデルを収容可能。
  • config.default.toml または heretic --help を使って、調整可能なすべてのパラメータを確認・編集可能。

制限と未解決の課題

  • 純粋な状態空間モデルや一部の実験的アーキテクチャはまだ対応していません。
  • 最適化はヒューリスティックな手法であり、KL 情報発散が低いと報告されても、微細な能力低下が発生する可能性があり、下流タスクで確認が必要です。
  • 倫理的配慮:モデルのデセンサー化は不適切なコンテンツの生成を可能にするため、ユーザーは地域の規制および責任あるAIガイドラインに従う必要があります。

上記のすべての情報はプロジェクトの README から直接引用;外部の主張は一切追加されていません。

関連

  • Dispatch
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • Dispatch