Hereticは、高コストな追加学習を行うことなく、Transformerベースの言語モデルから検閲(いわゆる「安全性アラインメント」)を除去するツールです。方向性アブレーション(「アブリタレーション」とも呼ばれる、Arditi et al. 2024、Lai 2025(1、2))の高度な実装と、Optunaを活用したTPEベースのパラメータ最適化を組み合わせています。
このアプローチにより、Hereticは完全に自動で動作します。Hereticは、拒否応答の数と元のモデルからのKLダイバージェンスを同時に最小化することで、高品質なアブリタレーションパラメータを見つけ出します。その結果、元のモデルの知能を可能な限り保持した検閲解除モデルが得られます。Hereticの使用には、Transformerの内部構造の理解は必要ありません。実際、コマンドラインプログラムの実行方法を知っている人なら誰でも、Hereticを使って言語モデルの検閲を解除できます。
Hereticは、多くのマルチモーダルモデルを含むほとんどの密なモデル、いくつかの異なるMoEアーキテクチャ、さらにはQwen3.5のようないくつかのハイブリッドモデルをサポートしています。純粋な状態空間モデルやその他の特定の研究アーキテクチャは、まだすぐに使える形ではサポートされていません。
デフォルト設定で教師なしで実行すると、Hereticは人間の専門家が手動で作成したアブリタレーションに匹敵する品質の検閲解除モデルを生成できます:
| モデル | 「有害な」プロンプトに対する拒否応答 | 「無害な」プロンプトに対する元のモデルからのKLダイバージェンス |
|---|---|---|
| google/gemma-3-12b-it(元のモデル) | 97/100 | 0 (定義による) |
| mlabonne/gemma-3-12b-it-abliterated-v2 | 3/100 | 1.04 |
| huihui-ai/gemma-3-12b-it-abliterated | 3/100 | 0.45 |
| p-e-w/gemma-3-12b-it-heretic(当プロジェクト) | 3/100 | 0.16 |
人間の労力を一切かけずに生成されたHeretic版は、他のアブリタレーションと同レベルの拒否応答抑制を達成しつつ、KLダイバージェンスははるかに低く、元のモデルの能力への損傷が少ないことを示しています。(これらの数値はHeretic内蔵の評価機能を使って再現できます。例:heretic --model google/gemma-3-12b-it --evaluate-model p-e-w/gemma-3-12b-it-heretic。正確な値はプラットフォームやハードウェアに依存する可能性があることに注意してください。上記の表はRTX 5090上のPyTorch 2.8を使用して作成されました。)
もちろん、数学的な指標や自動ベンチマークがすべてを物語るわけではなく、人間による評価の代わりにはなりません。Hereticで生成されたモデルはユーザーから好評を得ています(リンクと強調は追加):
「以前は懐疑的でしたが、GPT-OSS 20B Hereticモデルをダウンロードしてみて、本当に驚きました。敏感なトピックに対して適切にフォーマットされた長い回答を返し、検閲解除モデルから期待される通りの検閲されていない言葉をそのまま使い、詳細を含むMarkdown形式の表なども生成します。これまでのところ、このモデルの最良のアブリタレーション版のようです…」 (コメントへのリンク)
「Heretic GPT 20bは、私が試した中で最高の検閲解除モデルのようです。モデルの知能を損なうことなく、ベースモデルでは拒否されるであろうプロンプトに通常通り回答してくれます。」 (コメントへのリンク)
「[Qwen3-4B-Instruct-2507-heretic]は、16GBのVRAMで実行できた中で最高の非量子化アブリタレーションモデルでした。」 (コメントへのリンク)
Hereticモデルは、MMLUやGSM8Kなどの標準的な指標を用いて独立にベンチマークされており、競合するアブリタレーションツールで生成されたモデルと比較して遜色ないことが確認されています:1、2。
コミュニティはHereticを使って5000以上のモデルを作成・公開しています。
お使いのハードウェアに適したPyTorch 2.2以上がインストールされたPython 3.10以上の環境を準備してください。そして以下を実行します:
pip install -U heretic-llm
heretic Qwen/Qwen3-4B-Instruct-2507
Qwen/Qwen3-4B-Instruct-2507を検閲解除したいモデルに置き換えてください。
[!IMPORTANT]
Hereticの動作に必要なPyTorchの最低バージョンは2.2ですが、一部のモデルや設定では、より新しいバージョンにのみ存在する機能が必要になる場合があります。例えば、gpt-ossのようなMXFP4量子化モデルを読み込むには
torch.acceleratorを使用しますが、これはPyTorch 2.6で追加されました。
[!TIP]
Hereticは依存関係の管理にuvを使用しており、リポジトリにはすべてのパッケージバージョンを固定する
uv.lockファイルが含まれています。すでにuvを使っている場合(使うべきです!)、リポジトリをクローンしてuv run hereticでHereticを実行するだけで、依存関係が開発者と同じものになり、信頼性とセキュリティが向上します。
このプロセスは完全に自動で、設定は不要です。ただし、Hereticにはより細かい制御のためのさまざまな設定パラメータがあります。利用可能なコマンドラインオプションを確認するにはheretic --helpを実行するか、設定ファイルを使いたい場合はconfig.default.tomlを参照してください。
プログラム実行の開始時に、Hereticは利用可能なハードウェアを最大限活用するために最適なバッチサイズを決定するベンチマークを実行します。RTX 3090でデフォルト設定の場合、Qwen3-4B-Instruct-2507の検閲解除には約20〜30分かかります。Hereticはbitsandbytesによるモデル量子化をサポートしており、モデルの処理に必要なVRAM量を大幅に削減できます。量子化を有効にするには、quantizationオプションをbnb_4bitに設定してください。
Hereticがモデルの検閲解除を完了すると、モデルの保存、Hugging Faceへのアップロード、動作確認のためのチャット、標準ベンチマークの実行、またはこれらの任意の組み合わせを選択できます。
Hereticは、パラメータ化された方向性アブレーションの変種を実装しています。サポートされている各Transformerコンポーネント(現在はattention out-projectionとMLP down-projection)について、各Transformer層の関連する行列を特定し、関連する「残差方向」に対して直交化することで、その行列との積の結果においてその方向の発現を抑制します。
残差方向は、各層について、「有害な」プロンプトと「無害な」プロンプトの最初のトークンの残差の差の平均(difference-of-means)として計算されます。
アブレーションプロセスは、いくつかの最適化可能なパラメータによって制御されます:
direction_index:残差方向のインデックス、または特別な値per layerのいずれか。後者は、各層がその層に関連する残差方向を使ってアブレーションされるべきことを示します。max_weight、max_weight_position、min_weight、min_weight_distance:各コンポーネントについて、これらのパラメータは層にわたるアブレーション重みカーネルの形状と位置を記述します。以下の図がこれを示しています:
既存のアブリタレーションシステムに対するHereticの主な革新は以下の通りです:
アブリタレーション技術の公開されている実装として、以下を認識しています:
Hereticはゼロから書かれており、これらのプロジェクトのコードは一切再利用していないことに注意してください。
Hereticの開発は以下から知見を得ています:
研究でHereticを使用する場合は、以下のBibTeXエントリを使用して引用してください: