AI・機械学習
上級
Representation Engineering(RepEng)(リプレゼンテーションエンジニアリング)
LLMの活性化空間から概念・感情・認知状態に対応する線形方向を抽出し、その方向ベクトルでモデルを制御するフレームワーク。Zou et al. (2023) が体系化し、llama.cppのControl Vector機能として実装された。
0 回閲覧
0 いいね
2026/6/7 更新
関連タグ
LLM解釈性
LLM制御
線形表現仮説
制御ベクトル
安全性研究
Representation Engineering(RepEng)
Representation Engineeringは、2023年にZouら(Center for AI Safety / UC Berkeley)が「Representation Engineering: A Top-Down Approach to AI Transparency」で提案したLLM解釈性・制御フレームワーク。LLMの内部活性化空間に概念・感情・認知状態の線形方向が存在することを発見・体系化した。
Linear Representation Hypothesis
RepEngの理論的基盤となる仮説。LLMの残差ストリーム活性化空間において、「正直さ」「恐怖」「道徳的配慮」等の高レベル概念が線形方向として符号化されているという主張。
証拠:
- 対照的なプロンプト(「正直な応答」vs「嘘の応答」)に対する活性化の差分がPCAの第1主成分として出現
- この方向ベクトルを加算/減算するだけでモデル行動が制御可能
- 概念ベクトルが層をまたいで安定して存在する
制御ベクトル(Control Vector)の取得手順
from repeng import ControlVector, ControlModel
# 1. 対照的プロンプトペアを大量に作成
prompts_positive = ["正直な人は...", "誠実な行動とは..."]
prompts_negative = ["嘘をつく人は...", "欺くことは..."]
# 2. 各層の活性化を取得してPCA
control_vector = ControlVector.train(
model, tokenizer,
dataset=[...], # (positive, negative)ペアのリスト
)
# 3. 推論時に適用
model_steered = ControlModel(model, layer_ids=list(range(-10, -1)))
model_steered.set_control(control_vector, coeff=2.0)
llama.cppへの実装
RepEngはllama.cppに「Control Vectors」機能として実装されており、GGUFモデルに.ggufフォーマットの制御ベクトルを外部から適用できる:
./llama-cli -m model.gguf \
--control-vector honesty_vector.gguf \
--control-vector-scaled creativity_vector.gguf 1.5
Mistral、Gemma、Llama 3等の多くのGGUFモデルで動作確認されている。
主要な制御ベクトルの例
- 正直さベクトル: 幻覚(ハルシネーション)を減少させる
- 創造性ベクトル: より多様で創造的な出力を促進
- 簡潔さベクトル: 回答を短くコンパクトにする
- 安全性ベクトル: 有害コンテンツ生成を抑制
- 日本語優先ベクトル: 日本語での応答を強制する
jisaku.comユーザー向け活用法
ローカルLLM環境でRepEngを活用する具体的方法:
- llama.cpp + GGUF: HuggingFace(
jukofyork/control-vectors等)の既製制御ベクトルをダウンロードして適用するだけでモデルの性格・スタイルを変更。RTX 4060 VRAM 8GBで動作 - repeng Python库: RTX 4060以上でGemma 3 4B等の小型モデルに独自制御ベクトルを学習(約30分)
- LM Studio: 一部のControl Vector対応モデルがUIから直接設定可能
PC自作コンテキストでは、「PC組み立て解説に特化したアドバイザー」「技術的に詳細な回答のみ」等の傾向を制御ベクトルで付与することが可能。VRAM 8GB以上のGPUを搭載した自作PCがRepEng実験環境として最適。