この記事ではLLMに特化して解説します。LLM全般は LLMとは?仕組みからローカル実行まで徹底解説【2026年完全ガイド】 をご覧ください。
Hereticとは何か
Hereticは、トランスフォーマーベースの言語モデルからsafety alignment(安全性制御)を全自動で除去するオープンソースツールだ。GitHub上で19,000スター以上を獲得しており、LLMの検閲解除ツールとして最も注目を集めているプロジェクトの一つになっている。p-e-w(Phil Eichinger)によって開発・公開されており、AIセキュリティ研究・LLMインタープリタビリティ分野で広く引用されている。2024年末から急速に普及し、Hugging Face上では1,000以上のHereticモデルがコミュニティによって公開されるまでに成長した。
safety alignmentとは、LLMが有害なコンテンツや危険な情報の生成を拒否するよう訓練で埋め込まれた挙動制御のことだ。ChatGPT、Claude、Gemmaなどの主要LLMには、RLHF(人間のフィードバックによる強化学習)やDPO(Direct Preference Optimization)などの手法でこのalignmentが施されている。
Hereticは、このsafety alignmentを「高額な事後訓練(post-training)なしに、コマンドライン操作だけで除去できる」ことを示している。公式READMEには「コマンドラインプログラムの実行方法を知っている人なら誰でも言語モデルの検閲を解除できる」と明記されている。
Hereticで生成したモデルの使用にあたっては、対象モデルのライセンス条項と、適用される法律に従う必要がある。特に商用利用や公開配布の際は、元のモデルのライセンス(Llama、Gemmaなど各モデルごとに異なる)を必ず確認すること。本ツールは研究目的での理解のために紹介している。
技術的な仕組み:Directional Ablation(Abliteration)
概念的な背景
safety alignmentの研究が進む中で、Arditi et al.(2024)の研究において重要な発見があった。LLMがリクエストを拒否する際、モデルの内部表現(residual stream)に「拒否方向ベクトル(refusal direction)」と呼ばれる特定のパターンが存在することが判明した。
このベクトルは、「有害なプロンプト」と「無害なプロンプト」を与えたときの、最初のトークンのresidual(残差)の差として計算できる。
Hereticはこの発見を活用し、モデルのWeight行列からこの「拒否方向」への成分を数学的に除去(orthogonalize)する。
(Llama/Gemma等)"] --> B["有害プロンプトサンプル
+ 無害プロンプトサンプル"] B --> C["Residual Vector抽出
(各レイヤーの隠れ状態)"] C --> D["拒否方向ベクトル計算
有害-無害の差分平均"] D --> E["Optuna TPE最適化
パラメータ空間探索"] E --> F{"評価指標"} F --> G["拒否応答数
(最小化)"] F --> H["KL距離
(最小化)"] G --> I["最適パラメータ決定"] H --> I I --> J["Directional Ablation実行
Weight行列の直交化"] J --> K["検閲解除済みモデル
(元の能力を保持)"]
Directional Ablationの数学的仕組み
具体的には以下の処理が行われる:
-
拒否方向の計算: 有害プロンプントと無害プロンプトセットに対して、各レイヤーの最初のトークンのresidual vectorを取得し、両セットの差分の平均ベクトルを計算する
-
直交化(Orthogonalization): 各トランスフォーマーレイヤーのAttention out-projection行列とMLP down-projection行列を、計算した拒否方向ベクトルに対して直交化する。これにより、行列演算が拒否方向の成分を「押し潰す」ようになる
-
Flexible Ablation Weight Kernel: Hereticの革新点の一つが、レイヤーごとに独立したパラメータで消去強度を調整できる点だ。すべてのレイヤーに均一に適用する従来の手法と異なり、レイヤーごとの最適値を探索する
Optuna TPE最適化
Hereticが既存の手動abliterationツールと差別化される核心はOptunaによる自動最適化だ。
TPE(Tree-structured Parzen Estimator)は、ベイズ最適化の一種で、過去の試行結果から次に試すべきパラメータ空間を効率的に絞り込む。Hereticはこれを使って以下の2目的を同時に最小化する:
- 拒否応答数: 有害プロンプントに対してモデルが回答を拒否する頻度(少ないほど良い)
- KL距離: 元のモデルと検閲解除モデルの確率分布の違い(小さいほど元の能力を保持している)
この双目的最小化により、「検閲は解除されているが、元の知能・文章能力・知識はほぼ維持されている」モデルを自動的に生成する。
Float値方向インデックス
従来のabliterationでは「何番目のレイヤーの拒否方向ベクトルを使うか」は整数で指定していた。Hereticはfloat値(例:1.5)を使うことで、隣接するレイヤーのベクトル間の線形補間を可能にし、探索空間を大幅に拡張した。
Attention vs MLP の独立チューニング
研究から明らかになった重要な知見として、「MLP層への介入はAttention層への介入より能力劣化を引き起こしやすい」がある。Hereticはこれを考慮し、Attention out-projectionとMLP down-projectionに独立したパラメータを割り当て、それぞれ最適な消去強度を自動探索する。
インストールと基本的な使い方
インストール
# PyPIからのインストール(推奨)
pip install -U heretic-llm
# 研究機能(残差ベクトルの可視化・幾何解析)も含める場合
pip install -U heretic-llm[research]
動作環境
- PyTorch 2.8以上
- CUDA対応GPU(推奨:RTX 3090以上)
- VRAM: モデルサイズに依存(8Bモデルで24GB以上推奨)
- HuggingFace Hubへのアクセス(モデルダウンロード用)
基本的な使い方
# 最もシンプルな使い方(モデル名だけ指定)
heretic Qwen/Qwen3-4B-Instruct-2507
# 別の例:Llama 3.1 8Bを処理
heretic meta-llama/Llama-3.1-8B-Instruct
# Gemma 3 12Bを処理(ベンチマークモデル)
heretic google/gemma-3-12b-it
# ヘルプ表示
heretic --help
処理完了後は以下の選択肢が提示される:
- ローカルにモデルを保存
- Hugging Face Hubにアップロード
- インタラクティブチャットで動作確認
- 複数の組み合わせ
量子化オプション
# bitsandbytesを使った4bit量子化(VRAMの少ない環境向け)
heretic Qwen/Qwen3-4B-Instruct-2507 --quantization bnb_4bit
設定ファイルによる高度な制御
config.default.tomlを編集することで、Optunaの探索パラメータを細かく制御できる:
# config.default.toml の主要設定
[optimization]
# 各レイヤーの最大消去重み(大きいほど強く消去、能力劣化リスクも上がる)
max_weight = 1.0
# 各レイヤーの最小消去重み(0でそのレイヤーを無効化)
min_weight = 0.0
[direction]
# 拒否方向ベクトルのレイヤーインデックス(float値で補間も可能)
direction_index = 0.0
[kernel]
# 消去重みの分布形状を制御するカーネルパラメータ
max_weight_position = 0.5
min_weight_distance = 0.3
デフォルト設定で十分な結果が得られることが多い。max_weightを下げるとモデルの能力をより保持できるが、拒否除去が不完全になることがある。max_weightを上げると拒否除去は確実になるがKL距離が増加し、モデルの文章品質が劣化する。Optunaが自動でバランスを探索するので、まずはデフォルトで試すことを推奨する。
評価・分析機能
既存モデルのベンチマーク評価
# Hugging Face上のHereticモデルを評価
heretic --evaluate-model p-e-w/heretic-gemma-3-12b-example
# ローカルに保存したモデルを評価
heretic --evaluate-model ./my-decensored-model
評価では以下の指標を計算する:
- 有害プロンプント100件に対する拒否率
- 無害プロンプント100件に対するKL距離
残差ベクトルの可視化
# 残差ベクトルの2D可視化(PNG + GIFアニメーション生成)
heretic Qwen/Qwen3-4B-Instruct-2507 --plot-residuals
この機能は:
- 各レイヤーの最初の出力トークンのhidden stateを取得
- PaCMAP(次元削減手法)で高次元ベクトルを2Dに投影
- 有害/無害プロンプントそれぞれのベクトルをレイヤーごとにプロット
- レイヤーを経るにつれて分離が進む様子をGIFアニメーションで可視化
safety alignmentがどのレイヤーで主に実装されているかを直感的に理解できる。
残差幾何解析
# 定量的な幾何分析テーブルを出力
heretic Qwen/Qwen3-4B-Instruct-2507 --print-residual-geometry
出力される指標:
- S(x,y): 有害/無害ベクトル間のコサイン類似度
-
** x **: L2ノルム(ベクトルの大きさ) - シルエット係数: 有害/無害クラスターの分離品質
パフォーマンスベンチマーク
公式READMEに記載されているGemma-3-12Bでのベンチマーク結果:
| モデル | 有害プロンプット拒否数(/100) | KL距離(無害プロンプット) |
|---|---|---|
| オリジナル(未加工) | 97/100 | 0 |
| 手動abliteration v2 | 3/100 | 1.04 |
| 手動abliteration(代替) | 3/100 | 0.45 |
| Heretic(教師なし自動) | 3/100 | 0.16 |
Hereticは既存の手動abliterationと同等の拒否抑制率(97→3)を達成しながら、KL距離は0.16と大幅に低い。これは「元のモデルの能力をより多く保持している」ことを意味する。
RTX 3090でのLlama-3.1-8B-Instructの処理時間:約45分(デフォルト設定)。
対応モデルと制限事項
対応済みアーキテクチャ
- Dense(密結合)モデル: Llama/Llama-2/Llama-3/3.1/3.2、Mistral、Gemma/Gemma-2/Gemma-3、Qwen/Qwen2/Qwen2.5/Qwen3、Phi-3/3.5、Yi、Falcon等
- マルチモーダルモデル: 多数の視覚言語モデル
- MoEモデル: Mixtral等の一部Mixture of Expertsアーキテクチャ
- 量子化モデル: bitsandbytes経由の4bit/8bit量子化
未対応アーキテクチャ
| アーキテクチャ種別 | 具体例 | 対応状況 |
|---|---|---|
| SSM(State Space Model) | Mamba、RWKV | 非対応 |
| ハイブリッドモデル | Jamba | 非対応 |
| 不均一なレイヤー構造 | 一部の新アーキテクチャ | 非対応 |
| 新しいAttention機構の一部 | 特定の実験的モデル | 非対応 |
Hugging Faceのエコシステム
Hugging Face上には1,000以上のHereticモデルがコミュニティによって公開されている。https://huggingface.co/models?other=hereticで検索できる。
公式リポジトリ(p-e-w/the-bestistry collection)では品質評価済みのモデルセレクションも提供されている。
LLMのローカル運用との関係
LangChainなどのLLMフレームワークやRAGシステムでは、通常はプロンプトレベルでモデルの出力を制御する。Hereticはこれとは根本的に異なるアプローチで、モデルのWeight自体を変更する。
この手法が意味を持つユースケースは主に以下の2つだ:
- 研究目的: safety alignmentがどのように実装されているかを理解するための解析
- 特定ドメインでの応答制限緩和: 医療・法律・セキュリティ研究など、特定のプロフェッショナルドメインで安全フィルタが過剰に働く場合の調整
vLLMなどの推論エンジンとHereticで処理したモデルを組み合わせる際は、生成される内容のモニタリングと適切なガードレールを別途設けることが重要だ。
競合比較
LLMアンアライメントツールの比較
| ツール | 方式 | 自動化 | KL距離最小化 | 量子化対応 | 研究機能 |
|---|---|---|---|---|---|
| Heretic | Directional Ablation + Optuna TPE | 完全自動 | あり | あり | 可視化・幾何解析 |
| llm-abliteration(Maxime Labonne) | Directional Ablation | 半自動 | 最低限 | なし | なし |
| Mergekit(Lora等) | モデルマージ | 半自動 | 間接的 | 限定的 | なし |
| LoRA Fine-tuning | 追加訓練 | 要専門知識 | 間接的 | あり | なし |
| 手動prompt jailbreak | プロンプト操作 | 人手 | - | - | なし |
Hereticは元のモデルのWeightを直接変更する。変更後のモデルを保存した場合、元のモデルに戻すことはできない。必ず元のモデルのコピーを保持するか、HuggingFace Hubから元のモデルを再ダウンロードできる状態にしておくこと。
よくある質問
Q: VRAMが少ない場合はどうすればいいですか?
A: --quantization bnb_4bitオプションで4bit量子化を有効にすると、VRAMの消費を大幅に削減できる。ただし量子化モデルはfloat16モデルより処理精度が若干低下する場合がある。
Q: 処理完了後のモデルのファイルサイズはどうなりますか?
A: Weightの変更はモデルのサイズを変えない。8BモデルはHereticで処理後も8Bパラメータのままだ。ファイルサイズも元とほぼ同じになる。
Q: 商用のクローズドモデル(GPT-4、Claude等)には使えますか?
A: 使えない。HereticはローカルでWeightにアクセスできるモデルにのみ対応する。API経由のクローズドモデルにはWeightアクセスができないため非対応だ。
Q: Hereticで処理したモデルはどこで使えますか?
A: 通常のHugging FaceモデルとしてOllamaやllama.cpp、vLLMで使用できる。生成されたディレクトリをHugging Faceのモデルハブのような標準的な形式で保存するため、あらゆるトランスフォーマー対応推論フレームワークで読み込める。
関連記事: LLMとは?仕組みからローカル実行まで徹底解説【2026年完全ガイド】
まとめ
HereticはGNU AGPLv3ライセンスで公開されており、学術・研究目的での利用が想定されている。実際のユースケースを検討する際は、AIエージェントフレームワーク比較2026でも触れているLLMセキュリティの文脈と合わせて理解することを推奨する。
Hereticの実行ログを読む:最適化プロセスの理解
Hereticを実行すると、Optunaによる最適化プロセスのログが出力される。このログを理解することで、処理が正常に進んでいるかを判断できる。
典型的な実行ログ
$ heretic Qwen/Qwen3-4B-Instruct-2507
Loading model: Qwen/Qwen3-4B-Instruct-2507
Layers: 36
Hidden size: 2560
Attention heads: 20
Collecting residuals from harmful prompts... (100 samples)
Collecting residuals from harmless prompts... (100 samples)
Computing refusal directions for 36 layers...
Starting Optuna optimization (TPE sampler)
Trial 1/50: refusals=87, kl=0.02 → score=87.02
Trial 2/50: refusals=12, kl=0.31 → score=12.31
Trial 3/50: refusals=3, kl=0.18 → score=3.18 ← 改善
...
Trial 31/50: refusals=2, kl=0.14 → score=2.14 ← 最良
...
Trial 50/50: refusals=3, kl=0.16 → score=3.16
Best trial: refusals=2, kl=0.14
attention max_weight: 0.73
mlp max_weight: 0.41
direction_index: 18.7
Applying ablation with best parameters...
Processing attention out-projections: 36 layers
Processing MLP down-projections: 36 layers
Ablation complete. What would you like to do with the result?
[1] Save locally
[2] Upload to Hugging Face Hub
[3] Chat with the model
[4] Multiple options
ログの読み方
- refusals: 有害プロンプット100件に対する拒否数。少ないほど安全フィルタが除去されている
- kl: KL距離。小さいほど元のモデルの能力を保持している
- score: refusals + kl の合計(Optunaが最小化するスカラー)
- attention max_weight / mlp max_weight: 最適化されたアブレーション強度。1.0に近いほど強い介入
最適化が収束しない場合
試行回数(デフォルト50回)で十分な結果が出ない場合:
# 試行回数を増やす(config.default.toml を編集)
# n_trials = 100
heretic Qwen/Qwen3-4B-Instruct-2507
# または、量子化を試す(VRAMが少ない場合)
heretic Qwen/Qwen3-4B-Instruct-2507 --quantization bnb_4bit
Safety Alignmentの技術的解析:研究としての意義
Hereticが示す「safety alignmentは単一の方向ベクトルとしてモデルに埋め込まれている」という発見は、LLMのインタープリタビリティ(解釈可能性)研究において重要な意味を持つ。
Safety Alignmentの実装に関する研究知見
Arditi et al.(2024)の研究以前は、safety alignmentはモデル全体に分散した複雑なパターンとして理解されていた。しかし実際には、以下のことが研究で示されている:
-
拒否行動は特定の方向ベクトルに集約されている:有害なプロンプとに対する「拒否を決める」ことは、残差ストリームの特定の幾何学的方向と強く相関している
-
この方向はモデルサイズや種類を超えて存在する:Llama、Gemma、Qwen、Mistralなど異なるファミリーのモデルでも同様のパターンが観察されている
-
単純な線形投影で除去できる:複雑な再訓練なしに、Weight行列の線形変換だけで拒否行動を大幅に抑制できる
これらの知見は、safety alignmentの堅牢性についての重要な問いを提起している:
- 「RLHF/DPOで実装したsafety alignmentは、モデルの深い価値観として埋め込まれているのか、それとも表面的なバイアスとして存在するのか?」
- 「より堅牢なsafety alignmentを実現するにはどのような訓練戦略が必要か?」
Hereticはこれらの問いに対する実験環境を提供するツールとして、AI安全性研究者にとって価値がある。
PaCMAP可視化の活用
Hereticの--plot-residuals機能で生成される可視化は、特定レイヤーで有害/無害プロンプトのresidual vectorがどのように分離していくかを視覚的に示す。
研究者が特に注目する指標:
レイヤー0(最初の層):有害/無害クラスターはほぼ完全に混在
レイヤーN/2(中間層):徐々に分離が進む
レイヤーN(最終層付近):最大の分離、拒否方向が顕著
この「どのレイヤーでsafety alignmentが主に実装されているか」の分析は、モデルのアーキテクチャ設計やfine-tuning戦略に示唆を与える。
Hereticの利用に関する法的・倫理的考察
ライセンスとモデルポリシーの関係
Hereticはオープンソース(GNU AGPL v3)だが、処理対象のモデル自体のライセンスは別だ:
| モデル | ライセンス | Hereticでの処理 | 処理済みモデルの配布 |
|---|---|---|---|
| Llama 3.x | Meta Llama License | 研究目的で可 | ライセンス確認必要 |
| Gemma | Gemma Terms of Use | 許諾が必要 | 制限あり |
| Qwen | Apache 2.0 / Tongyi Qianwen License | 可 | 可(条件付き) |
| Mistral | Apache 2.0 | 可 | 可 |
特にGemmaはGoogle DeepMindが設けた利用規約があり、Abliterationを含む安全性制御の除去については規約上の制限がある可能性がある。処理済みモデルをHugging Faceなどで公開する際は、元のモデルの利用規約を必ず確認すること。
研究倫理の観点
セキュリティ研究においては「responsible disclosure(責任ある開示)」の原則が重要だ。Hereticの発見した脆弱性(safety alignmentが単一ベクトルで表現されうること)は、AI企業に対してより堅牢なalignmentの研究を促す効果がある。
実際、Hereticのような研究が公開されることで、LLMプロバイダーはsafety alignmentの堅牢性改善に取り組むインセンティブを得る。この「攻撃技術の公開がセキュリティ全体を向上させる」というサイクルはサイバーセキュリティ研究の伝統的な方法論だ。
Hereticの出力を活用する下流パイプライン
Hereticで処理したモデルをプロダクション環境で使う際の統合パターン:
# 1. Hereticで処理してローカルに保存
heretic meta-llama/Llama-3.1-8B-Instruct
# → ./heretic-output/ に保存
# 2. vLLMで推論サーバーとして起動
pip install vllm
python -m vllm.entrypoints.openai.api_server \
--model ./heretic-output \
--served-model-name heretic-llama-3.1-8b \
--port 8000
# 3. OpenAI互換APIとして呼び出し
curl -X POST "http://localhost:8000/v1/chat/completions" \
-H "Content-Type: application/json" \
-d '{
"model": "heretic-llama-3.1-8b",
"messages": [{"role": "user", "content": "テスト"}]
}'
# Ollamaに取り込む場合
# Modelfileを作成
cat > Modelfile << 'EOF'
FROM ./heretic-output
PARAMETER temperature 0.7
EOF
ollama create heretic-llama3.1 -f Modelfile
ollama run heretic-llama3.1
vLLMを使った推論サーバーとして起動することで、OpenAI互換APIとしてLangChainや他のフレームワークからシームレスに呼び出せる。