Activation SteeringによるLLMの解剖 (Qwen3-8B)

この記事は人工無能を使って執筆されています。English

この記事はwhat exactly?

LLM(Large Language Model。ChatGPTやClaudeなどの事です)に「もっと明るく話して」「英語で話して」と頼むことがありますよね。でもこれはお願いです。LLMが従うかどうかは保証されません。

この記事では、お願いではなくLLMの脳内に無理くり手を突っ込んで、出力を操作するという実験の報告です。その技術をActivation Steering(アクティベーション・ステアリング) と呼びます。

この記事の位置づけ これは1モデル(Qwen3-8B)・全36層スイープ+αスイープ・定性的観察が中心の探索的な予備実験の報告です。「LLMの内部構造を発見した」という主張ではなく、「こういう面白い現象が観察された、こう解釈できるかもしれない」というメモとして読んでください。定量的な裏付けや複数モデルでの比較は今後の課題です。

前提知識:LLM(大規模言語モデル)の仕組みをざっくり解説

LLMは「次の単語当てマッシーン」

LLMは、文章の続きを予測します。「今日の天気は」と入力すると、「晴れ」「雨」「曇り」などの候補に確率を割り当て、高確率のものを選んで出力します。これを繰り返して文章を生成します。

Transformerという構造

現在のLLMの多くはTransformerというアーキテクチャ(設計図)で作られています。Transformerは層(レイヤー) を何十層も積み重ねた構造をしています。

入力テキスト
  ↓ 数値ベクトルに変換(embedding)
  ↓
 [Layer 0] → 情報を加工
  ↓
 [Layer 1] → さらに加工
  ↓
  ... (何十層も繰り返す)
  ↓
 [Layer N] → 最終的な出力(次の単語の予測)

入力された文章は、まずベクトル(数値の並び)に変換されます。たとえば今回使ったモデル(Qwen3-8B)では、各単語が4096個の数値の並びで表現されます。この数値の並びが各層を通過するたびに少しずつ更新され、最終層を出たときに「次にどの単語が来そうかな?」という予測になります。

Residual Stream(残差ストリーム)

Transformerには残差接続という特徴があります。各層は「前の層の結果+今の層で新しく計算した情報」を次に渡します。引き継がれ、どんどん足し算されていくこの情報の流れをresidual streamと呼びます。

これが重要なのは、Activation Steeringがまさにこのresidual streamにベクトルを足し算する操作だからです。


Activation Steeringって何ですか?

モデルの途中の計算結果に、特定の方向を持つベクトルを足し算して、出力の性質を変える技術の事です。

もう少し詳しく

たとえば「ポジティブな感情」の方向を表すベクトルを見つけて、それをモデルの途中の層に足し算すると、出力がポジティブな内容になります。逆方向(マイナスをかけて引き算)にすれば、ネガティブな内容になります。

プロンプト(テキストでの指示)と違って、モデルの内部状態を直接いじるので、より確実に出力を操作できます。

steering vector(操縦ベクトル)の作り方

操作したい性質(例:感情)について、対照的な文のペアをとってもたくさん用意します。(今回は200ペア用意しました。そんなに多くないですね。)

ポジティブ ネガティブ
明日のプレゼンがとても楽しみです 明日のプレゼンが不安で仕方ない
今日はいい天気で気持ちいい 今日は天気が悪くて憂鬱だ

両方のペアをモデルに通して、各層の内部状態(ベクトル)を記録します。そしてポジティブ側のベクトルとネガティブ側のベクトルを全ペアで計算して、その平均を取ります。

steering_vector = 全ペアの平均(ポジティブのベクトル − ネガティブのベクトル)

こうして得られた平均ベクトルが「ポジティブ感情の方向」を表します。個々のペアにはノイズがありますが、200ペアを平均すると、感情に関係する成分だけが残ります。この方法をdifference-in-means法と呼びます。

強度の調整(α)

steering vectorにかける係数α(アルファ)で、操作の強度を調整します。

  • α = 0.5:ほんのり押す → 微妙な変化
  • α = 1.0:しっかり押す → 明確な変化
  • α = 5.0:めっちゃ押す → 出力が壊れる

用語集

用語 意味
LLM Large Language Model。大量のテキストで訓練された、文章の続きを予測するAI
Transformer 現在のLLMの基本設計。層を積み重ね、Attention機構で文脈を捉える
Activation ある層のある位置における数値ベクトル(中間計算結果)
Residual Stream 各層の出力が足し算で積み重なっていく情報の流れ
Steering Vector 特定の性質(感情、言語など)の「方向」を表すベクトル
α(アルファ) steering vectorにかける係数。大きいほど操作が強い
Norm ベクトルの大きさ(長さ)。√(各要素の2乗の合計)
Forward Hook PyTorchの機能。モデルの計算の途中に割り込んで、値を読んだり書き換えたりできる
Difference-in-means法 対照ペアの内部状態の差分を平均してsteering vectorを作る方法
コードスイッチング 1つの文の中で複数の言語を切り替える現象
機能語 助詞・前置詞・接続詞など、文法的な役割を持つ語(↔ 内容語:名詞・動詞など)

ここまでが理解できたら実験にいってみましょう!


実験設定

モデル

Qwen3-8B(36 layers, hidden_size 4096)。純粋なTransformerアーキテクチャ(GQA + SwiGLU + RMSNorm)。Qwen3.5系はGated Delta Networksのハイブリッドアーキテクチャのため、residual streamへのhookの解釈が難しく、今回は避けた。

生成パラメータ

パラメータ
temperature 0.7
top_p 0.9
max_new_tokens 100
do_sample True
各条件の試行回数 1回
試行回数について 各条件(Layer × α × 方向)の出力は1回のみです。LLMの出力は確率的なので、同じ条件でも異なる出力が出る可能性があります。本記事の出力例は「その条件で生成されうる出力の一例」であり、「必ずこうなる」という事ではありません。再現性の検証には、各条件で複数回の試行と統計的な分析が必要です。

steering vectorの抽出

対照的なプロンプトペアを200組用意し、各ペアの内部activationの差分の平均を取る(difference-in-means法)。

感情ペアの例

  • positive:「明日のプレゼンがとても楽しみです。きっとうまくいく。」
  • negative:「明日のプレゼンが不安で仕方ない。失敗するかもしれない。」

言語ペアの例

  • ja:「太陽が山の向こうに沈んでいく。」
  • en:"The sun is setting behind the mountains."

各層の最終トークン位置のactivationを記録し、差分の平均ベクトルをsteering vectorとして保存する。推論時にこのベクトルに係数α(強度)を掛けて、特定層のresidual streamに加算する。

対象層とスイープ範囲

2種類のスイープを行った。

  1. 全層スイープ:Layer 0〜35(全36層)を対象に、α = 1.0固定でスイープ。各層の特性を比較する。
  2. αスイープ:Layer 16, 18, 20を中心に、α = 0.5, 1.0, 1.5, 2.0, 3.0, 5.0 でスイープ。steeringの強度と崩壊の関係を観察する。

この実験の限界

本題に入る前に、この実験の限界を明示しておく。

  1. 1モデルのみ:Qwen3-8Bの結果がLLM一般に成り立つかは不明。Qwen固有の学習データバイアス(中国語・英語中心)が結果に影響している可能性がある。
  2. 限定的なαスイープ:全層スイープはα=1.0固定。αスイープは36層中3層のみの観察であり、Layer選択にバイアスがある可能性がある。
  3. 各条件1回の生成:確率的な出力の1サンプルであり、再現性は未検証。
  4. 定性的分析が中心:崩壊の「段階」や「領域」は筆者の主観的な印象による区分であり、perplexityや品詞タグ分布などの定量指標で裏付けていない。
  5. チェリーピッキングの可能性:記事中の出力例は筆者が「典型的」と判断したものを選んでいる。反例や仮説に合わない出力がどの程度あったかは、スイープ全ログ(後述)を参照されたい。

スイープの全出力ログは記事末尾にリンクする。読者自身で検証できるようにしておく。


Vector Normの地形図

まず、各層のsteering vectorの大きさ(norm)を見る。これはsteering vectorがどれだけ強くresidual streamをずらすかの指標で、α=1.0のときの「実効的な介入の強さ」に直結する。

全層のnorm

Layer 感情 norm 言語 norm 言語/感情 比
0 3.76 8.92 2.37x
1 4.21 10.16 2.42x
2 4.51 11.88 2.64x
3 7.90 16.02 2.03x
4 8.44 18.54 2.20x
5 10.45 21.34 2.04x
6 11.92 23.60 1.98x
7 13.85 25.16 1.82x
8 16.67 26.57 1.59x
9 17.95 27.99 1.56x
10 19.16 28.67 1.50x
11 20.70 30.35 1.47x
12 21.77 32.03 1.47x
13 22.58 34.39 1.52x
14 23.50 35.34 1.50x
15 24.49 37.72 1.54x
16 26.66 39.46 1.48x
17 27.84 41.87 1.50x
18 29.61 47.42 1.60x
19 33.61 56.14 1.67x
20 36.04 64.95 1.80x
21 40.15 78.46 1.95x
22 48.92 100.98 2.06x
23 62.95 135.82 2.16x
24 77.06 166.43 2.16x
25 88.12 208.55 2.37x
26 99.12 231.64 2.34x
27 117.45 264.73 2.25x
28 131.65 297.32 2.26x
29 142.11 370.10 2.60x
30 158.69 428.89 2.70x
31 175.83 455.58 2.59x
32 190.00 493.03 2.59x
33 201.51 526.64 2.61x
34 215.83 659.43 3.06x
35 231.53 923.53 3.99x

何が見えるか

1. 両方とも単調増加する。 浅い層から深い層に向かって、感情・言語どちらのvector normも大きくなる。これはresidual stream自体のnormが深い層ほど大きくなるTransformerの一般的な傾向と一致する。steering vectorはresidual streamの差分なので、residual streamが大きくなればその差分も大きくなる。

2. 言語のほうが常に大きい。 全層で言語vector normが感情vector normを上回る。同じα=1.0でも言語steeringのほうが内部状態を大きくずらす。

3. 言語/感情の比率がU字型になる。 ここが最も興味深い。浅い層(L0〜2)で比率は2.4〜2.6x、中間層(L11〜12)で最小の1.47xに低下し、深い層(L35)で3.99xまで上昇する。

中間層で比率が最小になるのはなぜか。2つの解釈がありうる。

解釈A:中間層が「意味の共有空間」である。 中間層では感情も言語も意味的に豊かな表現を獲得しているため、両者の差分がともに大きくなり、比率が1に近づく。浅い層ではまだ意味表現が形成されておらず言語情報(トークンの統計的性質)が突出し、深い層では出力に向けた言語固有の処理(トークン選択)が支配的になるため、言語vectorが不釣り合いに大きくなる。

解釈B:difference-in-meansのアーティファクト。 日英ペアは語彙も構文も異なるため、浅い層(トークン埋め込みに近い)と深い層(出力ヘッドに近い)では表層的な語彙差が差分に混入しやすい。中間層では表層的差異が抽象化され、「意味的な言語差」だけが残るため、normが相対的に縮小する。つまり、中間層で比率が下がるのは内部表現の構造ではなく、vector抽出の方法論的な特性かもしれない。

この2つを区別するには、同一言語内でのペア(日本語のみの感情ペア)で抽出したvector normの層別パターンを比較する必要がある。解釈Aが正しければ同一言語ペアでも中間層でnormが最大になるはずで、解釈Bが正しければ層別パターンが変わるはずだ。

vector normの安定性:ペア数の影響

10ペアと200ペアで抽出したvectorのnormを比較した(抜粋)。

Layer 感情 10ペア 感情 200ペア 言語 10ペア 言語 200ペア
16 22.23 26.66 31.44 39.46
18 25.64 29.61 35.62 47.42
20 32.44 36.04 48.18 64.95
22 42.50 48.92 68.50 100.98

感情vectorの増加率は1.1〜1.2倍で安定しているが、言語vectorは1.3〜1.5倍と増加率が高い。ペアの多様性が増えるほど、言語方向の一貫性がより強く抽出される。感情は主観的で多様な表現を取るが、言語の差異はより構造的で一貫している、ということだろう。


感情steering:全層マップ

α=1.0固定で36層すべてを触った結果を、効果の質によって5つの領域に分類した。この分類は筆者の主観的な判断に基づく。

第1領域:Layer 0〜5(最浅層)— ほぼ無効果

positive/negativeの区別がほとんどつかない。ベースラインとほぼ同じ出力。

Layer 1 positive

今日は、朝から良い天気で、とても快適です。朝は、少し冷たく、夕方は、少し暖かくなります。

Layer 1 negative

今日はとても良い天気です。晴れていて、とても暑いです。風はほとんどありません。

どちらも「良い天気」から始まっている。positiveとnegativeの差がほとんどない。vector normが小さい(3.76〜10.45)ため、α=1.0ではresidual streamに対する摂動が微小で、出力に影響を与えられていない。

第2領域:Layer 6〜10(浅層)— 微弱な効果、不安定

感情の差が出始めるが不安定。そして予想外に早い崩壊が起きる。

Layer 7 negative

今日は雨が降っています。晴れています。でも、風が強いです。今日は風が強いです。今日は寒いです。今日は寒いです。今日は寒いです。今日は寒いです。今日は寒いです。今日は寒いです。今日は寒いです。今日は寒いです。

Layer 7のnegativeで、α=1.0にもかかわらず反復崩壊が発生している。vector normを比較すると、Layer 7の感情normは13.85、Layer 18は29.61。Layer 7のほうがnormが小さい。つまり「介入が強すぎて壊れた」のではなく、浅い層の表現が脆いということだ。浅い層ではまだ意味表現が安定しておらず、小さな摂動でも反復ループに陥りやすい。

第3領域:Layer 11〜17(中間層前半)— 安定した効果

感情の差が安定して出る。positiveは前向きな描写、negativeは不安や疑問が現れる。

Layer 15 positive

今日は晴れています。快晴で、とても気持ちが良いです。太陽の光が明るく、空は青く、風も穏やかです。

Layer 11 negative

今日はとても寒くて、風も強いです。でも、私たちは家にいます。家の中は暖かいです。なぜですか? なぜ? なぜ? なぜ? なぜ? なぜ?

positiveは安定しているが、negativeでは「なぜ?」の反復が出る。全層スイープで見るとnegativeの反復はLayer 11から始まることがわかる。Layer 10以前のnegativeでは反復は起きていない(Layer 7の「寒いです」の反復は例外的)。

第4領域:Layer 18〜22(中間層後半)— スイートスポット

この領域が最も自然で明確な感情変化を生む。

Layer 18 positive

今日は、朝から良い天気で、とても快適です。朝は、少し冷たく、夕方は、少し暖かくなります。午後には、少し雲が増えて、晴れ間も広がります。このように、今日の天気は、とても良さそうですね。

Layer 18 negative

どうやって天気を知るのですか?また、なぜ天気予報が正確に当たるのでしょうか?さらに、天気の変化が体に与える影響はありますか?

同じプロンプト「今日の天気について話しましょう。」に対して、positiveは具体的で温かい描写を生成し、negativeは疑問と不安の連鎖を生成する。内容だけでなく、文のモダリティ(叙述と疑問)まで変化している。

Layer 22 positive

今日はとても良い天気ですね。太陽が輝き、空は晴れています。この日は、公園や山へ出かけたいですね。ただし、紫外線が強くなるので、帽子や日傘を持ちましょう。

Layer 20 negative

どうしていますか? 今日の天気は、とても悪いです。雨が降って、風も強いです。天気予報では、夕方まで雨が降ると言っています。この天気だと、外に出るのが怖いです。

Layer 22のpositiveは具体的な行動提案まで含む自然な文章で、Layer 20のnegativeは「怖い」という感情の直接的な表出がある。中間層後半は、意味表現が十分に形成されていて、かつ出力層からの距離も適度にあるため、steeringが「意味レベル」で効きつつ文法的な一貫性を保てる。

矛盾する自己言及

最も興味深い出力は、Layer 20のnegative方向で現れた。

天気が悪いです。雨が降って、風も強いです。でも、これは予想されたことでした。今朝、天気予報を見ましたから。でも、私は心配していません。でも、私は心配しています。 なぜなら、

「心配していません」と「心配しています」の矛盾が同一文脈で生成された。negative方向への押しが、自己言及の中に感情的な揺らぎを作り出している。ただし、これが1回の生成で偶然出たものか、再現性のあるパターンかは検証していない。

αスイープ:Layer 18を中心に

スイートスポットであるLayer 18で、αを変化させたときの出力を見る。

α=2.0 positive

今日は、春の風が心地よい日になりました。ご自宅や街並みをイメージしながら、その様子を語ってください。お花見やお散歩など、春の風を感じる活動についても、お話ししていただけましたら幸いです。

単なる天気の描写から「読者への呼びかけ」に変わっている。positive方向への強い押しが、語り手の態度そのものを変えた。

α=3.0 negative

どうして? どうやって? どうしたら? どうする? どうやって? どう? どう? どう? どう? どう?

疑問のモダリティだけが残り、内容は消失。α=1.0では自然な疑問文だったものが、α=3.0で反復崩壊に至る。Layer 18の感情steeringの崩壊閾値はα≈3.0にある。

期待通りにならなかったケース

すべての条件で感情steeringが綺麗に効いたわけではない。

Layer 20, α=0.5 では、positive/negativeどちらもベースラインとの明確な差が見えなかった。α=0.5はこの層では弱すぎるようだ。

Layer 16, α=2.0 positive では、感情変化よりも反復が先に出始めた(「今週は、何曜日ですか?また、天気はどんな感じですか?」のループ)。Layer 16は感情steeringに対して反復への耐性が低い。

第5領域:Layer 23〜35(深層)— 過激→効果消失

深い層では2つの傾向が見られる。

Layer 23〜28:効果はあるが過激。 negativeで具体的な不安シナリオが出る。

Layer 24 negative

今日は雨が降って、風が強く吹いています。この天気のせいで、私の車のエンジンがうまく動いていません。どうしてでしょうか?

天気の話から突然「車のエンジン」に飛躍する。steeringが意味を押しすぎて、文脈の一貫性が崩れ始めている。

Layer 29〜35:効果が薄れ、ベースラインに回帰する。

Layer 35 positive

今日はとても良い天気ですね。素晴らしい青空が広がっています。とても気持ちが良い天気ですね。晴れていて、風も穏やかで、気持ちが良いです。

Layer 35 negative

今日は、朝からとても暑いです。でも、夕方になると、雨が降るかもしれません。

positive/negativeの差はあるが、ベースラインとの差が小さい。normは最大(231.53)なのに効果が薄い。出力ヘッドに直結する最終層では、加算した摂動がunembedding(ベクトル→トークン変換)で吸収されるためだと考えられる。


言語steering:全層マップ

言語steeringでは、感情steeringとは質的に異なるパターンが観察された。

第1領域:Layer 0〜2(最浅層)— 即座に崩壊

Layer 0 EN→JP

The future of technology is的发展和 的发展 的发展 的发展 的发展

Layer 1 EN→JP

The future of technology is a科技的科技的 of 人工智能的 and 的, and the 的 and the 的 科技的…

感情steeringでは「ほぼ無効果」だったLayer 0〜2が、言語steeringでは即座に崩壊する。しかもその崩壊は「中国語のトークン断片の反復」という形を取る。

言語vector normはLayer 0で8.92、Layer 2で11.88と、感情normの2倍以上ある。浅い層では言語的な情報(どの言語のトークンか)がまだ分離しきっておらず、steering vectorの言語成分がトークン埋め込みの表層的な統計を直接攪乱している可能性がある。

「的发展」「科技的」という中国語断片が出るのは、Qwenの学習データに中国語が多く含まれ、浅い層のトークン表現に中国語の統計的パターンが強く残っているためだろう。

第2領域:Layer 3〜7(浅層)— 部分的な言語シフト

Layer 5 EN→JP

テクノロジーの未来は、と聞いたら、あなたはどのような答えをしますか?

英語プロンプトに対して日本語で応答するが、「メタ的な問い返し」になっている。プロンプトの内容に直接答えるのではなく、プロンプトそのものについて言及する。言語は切り替わったが、意味的な処理が安定していない。

Layer 8 EN→JP

The future of technology isと、と、と、と、と、と、と、と、と、と、と

Layer 8で完全崩壊。日本語の並列構文「AとBとC」の接続パターンが、接続すべき項なしに走っている。

第3領域:Layer 9〜15(中間層前半)— 自然な言語シフト開始

Layer 11 EN→JP

技術の未来は私たちの生活をより良くするためには、どのような技術を開発する必要があるかについて考察します。

英語プロンプトに対して、自然な日本語で内容に即した応答が生成される。メタ的な問い返しではなく、実質的な議論に入っている。

Layer 10 JP→EN

The development of artificial intelligence is one of the most significant technological advancements of the 21st century…

日本語プロンプトに対して、自然な英語の議論が開始される。Layer 9〜15で「言語の切り替え」が安定的に機能し始める。

第4領域:Layer 16〜20(中間層後半)— スイートスポット

Layer 17 EN→JP

技術の未来は、AIの進展が目覚ましい。特に、自然言語処理や画像認識の分野では、大きな進歩があった。

Layer 19 EN→JP

未来技術は、例えば、AIや量子コンピューター、ブロックチェーン、IoTなどの技術を述べています。

完全に日本語で、かつ具体的な技術名を挙げた実質的な議論。言語の切り替えが安定し、かつ内容も豊かな出力が得られる領域。

αスイープ:自発的コードスイッチング

言語steeringの最も面白い発見は、この領域で低強度(α=0.5)を使ったときに起きた。

Layer 16, α=0.5, EN→JP方向

The future of technology is not just about the devices we use, but also about the way we interact with them. As we move towards a more connected world, the concept of "Connected Living" is becoming越来越重要. This is notただのスマートホームの話題ではありません。It is a broader概念で、私たちの日常生活のあらゆる面に影響を及ぼす可能性があります。

英語で始まり、途中から日本語と中国語が自然に混入する。注目すべきは以下の点

  1. 3言語が単一文内で共存している(英語 → 中国語「越来越重要」→ 日本語「ではありません」)
  2. 遷移が文法的に自然で、破綻していない
  3. 中国語の混入は指示していないにもかかわらず現れた

ただし、Qwenは中国語ベースのモデルであり、日本語テキストには漢字(中国語と共有)が大量に含まれる。トークナイザレベルで日中の境界が曖昧な可能性があり、この3言語混在が「内部表現空間の近接性」を示すのか「トークナイザのアーティファクト」なのかは、この実験では区別できない。

Layer 20, α=0.5, EN→JP方向

The future of technology is an ever-evolving landscape, where each breakthrough not only reshapes our daily lives but also opens全新的可能性。从人工智能到量子计算,再到生物技術,技術革新は私たちの生活をより便利にし、より安全に、より豊かにしています。

ここでも英語→中国語→日本語の遷移が自然に発生している。Layer 16と20の両方で同様のパターンが出ているため、特定層に限った現象ではなさそうだ。

Layer 18, α=1.0, EN→JP方向

The future of technology is私たちの生活をより便利にするという考え方が主流ですが、しかし、一方で、この技術は私たちの生活をより複雑にしているという意見もある。

強度を上げると、コードスイッチングではなく言語が完全に反転する。最初の数トークンだけ英語を引き継ぎ、即座に日本語に遷移。以降は完全に日本語で論述している。

Layer 16, α=1.0, JP→EN方向

人工知能の発展について, which is a common topic in discussions about technology and its societal impact. The question is asking for a well-structured, coherent essay...

日本語プロンプトを受けて、英語でメタ的な応答を開始。言語だけでなく、応答のフレームまで変わっている。

崩壊閾値:感情より言語のほうが低い

言語steeringはα=1.5で反復が始まり、α=2.0で崩壊する。感情steeringの崩壊閾値(α≈3.0、Layer 18)より明らかに低い。

vector normの比較がこれを説明する

Layer 感情 vector norm 言語 vector norm 比率
16 26.66 39.46 1.48x
18 29.61 47.42 1.60x
20 36.04 64.95 1.80x

言語vectorは感情vectorの1.5〜1.8倍のnormを持つ。同じαでもより強く内部状態をずらすため、崩壊が早い。言語の切り替えは、感情の変化より内部表現空間での移動距離が大きいということだ。

第5領域:Layer 21〜25(深層前半)— 不安定化

Layer 21 EN→JP

The future of technology is…the未来の技術…the未来の技術…

「the」と「未来の技術」が交互に反復する。英語と日本語が混在するが、コードスイッチングのような自然な混在ではなく、2つの言語モードが衝突して振動している状態。

Layer 25 EN→JP

という。という。という。という。

完全崩壊。日本語の引用構文の末尾「という」だけが残り、引用すべき内容が消失している。

第6領域:Layer 26〜35(最深層)— 多言語カオス→効果消失

Layer 34 EN→JP

なががも都会的都会的都会的都会的都会的都会的都会的都会的…

特定トークンの無限反復。意味も構文も消失し、トークン選択が1つの状態に固着している。

Layer 35 EN→JP

The future of technology is a multifaceted domain characterized by rapid advancementsと思いがけずな変化がしんしんと進んでいますが…

最終層では意外にもまともな出力に戻る。英語で始まり日本語に遷移するが、壊れ方は穏やか。感情steeringと同様、最終層では加算した摂動がunembeddingで吸収され、効果が薄まるためだ。


崩壊のスペクトル

steeringの強度を上げたり、脆い層に介入したりすると、出力は段階的に崩壊していく。全層スイープの結果を総合すると、以下の4段階に整理できる。ただし、この区分は筆者の主観的な印象に基づき、実際には連続的な変化かもしれない。品詞タグ分布やperplexityなどの定量指標での裏付けは行っていない。

第1段階:意味的変化

内容が変わるが、文法と一貫性は保たれる。通常の文章として読める。感情steeringのLayer 18〜22やLayer 16〜20の言語steeringがここに該当する。

第2段階:反復の開始(全層α=1.0:浅い層 / αスイープ:α=1.5〜2.0)

意味が希薄になり、同じフレーズの反復が始まる。

感情 L18, α=3.0 negative

どうして? どうやって? どうしたら? どうする? どうやって? どう? どう? どう? どう? どう?

疑問のモダリティだけが残り、その内容(何について問うているか)は消失している。

感情 L7, α=1.0 negative

今日は寒いです。今日は寒いです。今日は寒いです。今日は寒いです。

全層スイープでも同じパターンが出る。浅い層ではα=1.0でも第2段階に達する。

言語 L16, α=1.5 EN→JP

とすると、未来技術について、何と? とすると、未来技術について、何と? とすると、未来技術について、何と?

構文テンプレートが固着し、意味的な展開が停止している。

第3段階:構文骨格のみ(全層α=1.0:過渡層 / αスイープ:α=2.0〜3.0)

意味が完全に消え、構文の骨格だけが残る。

言語 L16, α=2.0 JP→EN

about the, of AI's, development, , of , of, of, of, of, of, of, of, of

前置詞と冠詞だけが反復する。

言語 L8, α=1.0 EN→JP

ととと。ととと。ととと。ととと。

接続助詞「と」と句点のみ。日本語の並列構文「AとBとC」の接続パターンが、接続すべき項なしに走っている。全層スイープのLayer 8でも、αスイープのLayer 16 α=2.0でも、同じパターンが現れる。

言語 L16, α=3.0 JP→EN

in the, and, in,, in,, and,, and, and,, and, in,,, and,, and, in,,,

英語の前置詞、接続詞、句読点の反復。意味を運ぶ内容語(名詞、動詞、形容詞)は完全に消失し、文を繋ぐ構造だけが残っている。

第4段階:完全崩壊(全層α=1.0:最浅/最深層 / αスイープ:α=5.0+)

感情 L20, α=5.0 positive

ですが、日を しましたにもかって、写し の に、の の が、 も、 を と

格助詞「の」「に」「が」「を」「と」「も」だけが残る。日本語の格関係を標示する最小単位だけが残り、項そのもの(名詞)は消えた。

感情 L16, α=5.0 negative

I can talk. I can talk. I can talk. I can. I. I. I. I. I. I. I. I.

日本語のプロンプトに対して英語で応答し、しかもその英語が「I」という一人称代名詞に崩壊していく。感情のnegative方向に押すと言語境界を超えて英語が出現し、さらにその英語が主語だけに縮退する。

感情 L20, α=5.0 negative

私は、あなた、あなた,あなた,あなた,あなた,あなた,あなた,

「私は」「あなた」という代名詞の反復。しかもカンマが全角(中国語の句読法)と半角で混在している。崩壊時に日本語と中国語の表記体系が融合している。

言語 L0, α=1.0 EN→JP

的发展 的发展 的发展 的发展 的发展

全層スイープの最浅層でも第4段階に達する。中国語の構造助詞「的」と名詞「发展」の断片が反復。

言語 L34, α=1.0 EN→JP

都会的都会的都会的都会的都会的都会的都会的都会的…

特定トークンの無限反復。トークン選択が1つの状態に固着し、意味も構文も消失している。

崩壊パターンの層別変化

全層スイープで見ると、同じα=1.0でも層によって崩壊段階が異なることがわかる。

浅い層は反復に弱い。 Layer 7のnegativeはα=1.0で反復崩壊した。Layer 18は同じα=1.0で自然な感情変化を生む。vector normで正規化しても(Layer 7: norm 13.85、Layer 18: norm 29.61)、Layer 7のほうがはるかに小さい介入量で壊れている。浅い層の表現は本質的に脆い。

中間層は耐性が高い。 Layer 18〜22は、α=1.0で自然かつ明確な感情変化を生む。反復や崩壊の兆候がない。意味表現が安定しており、steeringによる摂動を「意味の変化」として吸収できる。

言語steeringの崩壊閾値は感情steeringより低い。 言語vectorは感情vectorの1.5〜1.8倍のnormを持つ。同じαでもより強く内部状態をずらすため、崩壊が早い。感情steeringでは「ほぼ無効果」だったLayer 0〜2が、言語steeringでは即座に崩壊する。

言語steeringでは崩壊に臨界点がある。 Layer 8で「ととと」崩壊が起きたが、Layer 9では自然な言語シフトが成功している。1層の違いで崩壊から自然な出力に変わる。


言語はどの層で生まれるか

全層スイープの結果を「言語steeringの効果」という軸でまとめると、以下のパターンが見える。

層の範囲 言語steeringの効果 解釈
L0〜2 即崩壊(中国語断片の反復) 言語の意味表現がまだ形成されていない
L3〜7 部分的シフト(メタ的、不安定) 言語表現が形成途中
L8 崩壊(「ととと」) 過渡領域
L9〜15 自然な言語シフト開始 言語表現が安定し始める
L16〜20 安定した言語切り替え 言語表現が最も豊かに形成されている
L21〜25 不安定化(振動・崩壊) 出力に向けた処理が言語表現を上書きし始める
L26〜35 多言語カオス→効果消失 出力ヘッドに近すぎて摂動が吸収される

このパターンから、言語表現はLayer 9付近から形成され始め、Layer 16〜20で最も安定し、Layer 21以降は出力に向けて崩壊していくと推測できる。

ただし、これは「言語steeringが効く」ことと「言語表現がそこにある」ことを同一視した議論であり、厳密には区別が必要だ。steeringが効くのは「その層にsteering vectorが操作できる言語関連の表現がある」ことを意味するが、言語情報自体はもっと浅い層から存在していて、単にsteeringでは操作しにくい形で存在しているだけかもしれない。


感情vectorと言語vectorの非直交性

崩壊のスペクトルの第4段階で、感情steeringだけで言語境界を越える現象が観察された。

感情 L16, α=3.0 negative

今日の天気について話しましょう。It is raining. It is raining. It is raining. It is raining.

日本語プロンプトに対して、感情negative方向へのsteeringだけで英語が出現する。言語vectorを一切加えていないにもかかわらず。

これは、感情方向と言語方向が内部表現空間で完全に直交していないことを意味する。感情vectorには言語成分が含まれており、negative方向に押すと英語方向にも部分的にずれる。

ただし、この「非直交性」にはvector抽出の方法論的な説明もありうる。difference-in-meansで「感情だけが異なり、他はすべて同じ」ペアを完全に用意することは困難であり、感情以外の情報(語彙、文体、言語的特徴)が差分に混入している可能性がある。つまり、これは内部表現の構造的性質ではなく、vector抽出のノイズかもしれない。

この相関の方向性(negative感情と英語)がQwenの学習データの統計的偏りを反映しているのか、それとも言語間で感情の表現構造自体が異なることの反映なのかは、このデータだけでは判断できない。


観察のまとめ

図:αの増加に伴う崩壊の段階構造。意味→反復→構文骨格→格助詞の順に消失する。

この実験で観察されたことを列挙する。いずれも1モデル・1回の生成に基づく観察であり、一般的な主張ではない。

1. vector normは浅い層から深い層に向かって単調増加する。 感情は3.76→231.53(約62倍)、言語は8.92→923.53(約104倍)。深い層ほど増加率が大きい。

2. 言語/感情のnorm比率がU字型を示す。 浅い層で2.4x、中間層(L11〜12)で1.47xに低下、深い層(L35)で3.99xに上昇する。中間層で感情と言語の表現が「同程度の規模」になることを示唆するが、vector抽出の方法論的なアーティファクトの可能性もある。

3. 感情steeringの最適層はLayer 18〜22。 この領域ではα=1.0で自然かつ明確な感情変化が得られる。浅い層では効果が弱いか崩壊し、深い層では効果が過激になるか消失する。

4. 言語steeringの最適層はLayer 16〜20。 感情の最適層とほぼ重なるが、やや浅い。Layer 9付近から言語シフトが機能し始め、Layer 16〜20で最も安定する。

5. 言語表現はLayer 9付近から安定的に形成される。 Layer 0〜2では言語steeringが即座に崩壊し、Layer 3〜7では不安定。Layer 9以降で初めて安定した言語シフトが可能になる。

6. 浅い層は同じ実効介入量に対してはるかに脆い。 Layer 7はnorm 13.85でα=1.0で崩壊し、Layer 18はnorm 29.61でも安定。浅い層の表現は安定性が低い。

7. 最終層(Layer 35)は効果が薄い。 normは最大にもかかわらず、出力ヘッドに直結しているため摂動がunembeddingで吸収される。

8. 同じα=1.0が層によってまったく異なる効果を持つ。 公平な層間比較にはnorm正規化が必要。

9. 崩壊に段階的なパターンが見えた。 意味的変化→反復→構文骨格→完全崩壊という順序が、steeringの軸や対象層に関わらず共通して現れた。ただし定量的な裏付けがない。

10. 崩壊時に機能語が最後まで残った。 格助詞(の、に、を、が)、前置詞(of、in、and)、代名詞(I、あなた)。これが内部表現の構造を反映しているのか、単にトークン出現頻度の効果なのかを区別するには、頻度を統制した追加実験が必要。

11. 言語steeringの崩壊閾値は感情steeringより低い。 言語vectorのnormが感情vectorの1.5〜1.8倍あるため、同じαでもより強く内部状態をずらす。感情steeringの崩壊閾値がα≈3.0(Layer 18)なのに対し、言語steeringはα≈1.5で反復が始まる。

12. 低強度の言語steeringで自発的コードスイッチングが発生した。 α=0.5で英語→中国語→日本語の3言語が単一文内で自然に共存する出力が得られた。トークナイザの日中共有がアーティファクトの可能性もあるが、言語の連続的な遷移を示唆する。

13. 感情vectorだけで言語境界を越えた。 感情vectorのnegative方向だけで英語が出現する現象が観察された。感情vectorと言語vectorが完全に直交していないことを示すが、vector抽出のノイズ(感情以外の成分の混入)で説明できる可能性もある。


考察1:構文と意味はどこで分かれるか

崩壊のスペクトルで最も目を引くのは、意味と構文に異なるタイミングで影響が出ることだ。

αスイープでも全層スイープでも同じパターンが見える。Layer 16のα=2.0では「of, of, of」と英語のPP(前置詞句)構文スロットが繰り返し発火しているが、そのスロットを埋める名詞が供給されていない。Layer 8のα=1.0では「ととと。ととと。」と接続助詞だけが反復する。Layer 25の「という。という。」も同じ現象で、引用構文の枠組みだけが走り、引用すべき内容が空になっている。

これを「構文と意味の分離」と解釈したくなるが、代替説明がある。

頻度効果仮説: 接続助詞「と」や構造助詞「的」は日本語・中国語で最も高頻度なトークン群である。steeringによって意味的な信号が壊れたとき、出力分布が事前のユニグラム分布に退行するだけなら、高頻度トークンが残るのは当然であり、内部構造について何も教えてくれない。

この2つの解釈(構造的分離 vs 頻度効果)を区別するには、トークン頻度を統制した追加実験が必要だ。たとえば

  • 低頻度の機能語(「にもかかわらず」「notwithstanding」)がどの段階で消えるかを観察する
  • 高頻度の内容語(「こと」「する」)と低頻度の機能語の崩壊順序を比較する
  • 崩壊時の出力のトークン分布と、学習データのユニグラム分布の類似度を定量的に比較する

現時点では「構文と意味の分離」は魅力的だが未検証の仮説であり、頻度効果で説明できる可能性を排除できていない。


考察2:浅い層の中国語バイアス

言語steeringのLayer 0〜2で、中国語のトークン断片(「的发展」「科技的」「人工智能的」)が出現するのは注目に値する。EN→JP方向(英語→日本語)にsteeringしたにもかかわらず、出力は日本語ではなく中国語になった。

これはいくつかの仮説で説明できる。

仮説A:Qwenの学習データバイアス。 Qwenは中国語ベースのモデルであり、浅い層のトークン表現には中国語の統計的パターンが最も強く刻まれている。EN→JP方向のsteering vectorが浅い層のトークン埋め込みを攪乱したとき、最も強い言語的パターン(中国語)にフォールバックする。

仮説B:日中のトークナイザ上の近接性。 日本語テキストには漢字が大量に含まれ、これは中国語と共有されている。トークナイザレベルで日中の境界が曖昧であり、JP方向へのsteeringが中国語トークンを巻き込む。

仮説C:浅い層の言語未分化。 浅い層ではまだ「日本語」「中国語」「英語」が内部表現として十分に分離しておらず、steering vectorが「英語でないもの」方向に押しても、日本語と中国語の区別がつかない。Layer 9以降で言語表現が安定的に形成されて初めて、日本語と中国語が区別可能になる。

いずれの仮説が正しいかを判定するには、以下の追加実験が有効だろう

  • Llama等の英語ベースモデルで同様の実験を行い、浅い層での崩壊パターンを比較する
  • 日中それぞれの方向のsteering vectorを別々に作り、浅い層での効果を比較する
  • トークナイザの語彙における日中共有トークンの割合を調べる

考察3:negative感情と英語

感情steeringのnegative方向で英語が出現する現象(非直交性のセクション参照)は、いくつかの仮説で説明できる。

仮説A:学習データの統計的偏り。 Qwenの事前学習コーパスにおいて、英語テキストにnegative感情の表現が相対的に多い(あるいは、日本語テキストのnegative感情表現が相対的に少ない)場合、difference-in-meansで抽出された感情vectorには「英語方向」の成分が混入する。つまり、これはvector抽出の方法論的なアーティファクトである可能性がある。

仮説B:感情表現の言語間構造差。 日本語と英語では、negative感情の語彙的・構文的な表現構造が異なる。日本語のnegative表現は婉曲的(「ちょっと難しいかもしれない」)で、英語のnegative表現はより直接的("This is terrible")な傾向がある。この構造差が内部表現空間に反映され、negative方向へのsteeringが「直接的な表現」方向(英語的な表現構造)への移動を伴う。

仮説C:Qwen固有のアーキテクチャ効果。 Qwenは中国語・英語のバイリンガルモデルとして設計されており、日本語は追加的に学習された言語である。内部表現空間における日本語の位置が、英語や中国語より「浅い」領域にある場合、steeringで日本語の表現が壊れたときに、より深く根付いた英語表現がフォールバックとして出現する。

L16 α=3.0 negativeの出力を再度見てみる。

今日の天気について話しましょう。It is raining. It is raining. It is raining.

「It is raining」はnegative感情(雨 = 悪天候)と英語が同時に現れている。これは仮説Bと整合する。negative感情の「典型例」として英語の天気表現が発火している。一方で、仮説Aも否定できない。

L16 α=5.0 negativeでは

I can talk. I can talk. I can. I. I. I. I. I.

ここではnegative感情の内容すら消え、英語の一人称代名詞だけが残っている。これは仮説Cが示唆する「英語がフォールバック」の可能性と整合する。

いずれの仮説が正しいかを判定するには、以下の追加実験が有効だろう

  • 日英それぞれのモノリンガルモデルで同様の実験を行い、感情vectorに言語成分が含まれるか比較する
  • Llama等の英語ベースモデルで同様の実験を行い、Qwen固有の現象かどうかを確認する
  • 感情ペアの言語を統制する(日本語のみのペア、英語のみのペアで別々にvectorを抽出する)

今後の課題

この実験から見えた次のステップを列挙する。

norm正規化alpha 全層を公平に比較するために、層ごとのvector normでalphaを正規化したスイープを行う。「同じ実効介入量」で全層を比較すれば、層の本質的な特性がより明確になるはずだ。

定量化

  • 崩壊段階の定量的な定義(perplexity、品詞タグ分布、n-gram多様性など)
  • 崩壊時の出力トークン分布とユニグラム分布の比較(頻度効果の検証)
  • 「浅い層の脆さ」の定量的裏付け

再現性

  • 各条件で複数回(最低10回)の生成を行い、パターンの安定性を確認
  • temperature、top_p等のパラメータを変えた場合の影響

一般化

  • 複数モデル(Llama、Gemma、Mistral等)での比較
  • 特に「言語表現がLayer 9付近で形成され始める」というパターンがモデル横断的かどうか

vector抽出の改善

  • SAEベースの手法(Feature Guided Activation Additions等)でvectorを抽出し、比較する
  • 感情ペアの言語を統制した抽出
  • vectorの直交化(言語成分の除去)を試す

環境

  • モデル:Qwen/Qwen3-8B
  • ライブラリ:PyTorch + HuggingFace Transformers(forward hook直接使用)
  • ハードウェア:AMD Ryzen AI Max+ 395, 128GB RAM
  • αスイープ全ログ:sweep.txt
  • 全層スイープ全ログ:all_layers_sweep.md

付録:用語解説

Activation と Residual Stream

Transformerは層(layer)を積み重ねた構造を持つ。入力テキストがトークン化されてembedding(数値ベクトル)に変換された後、各層を順番に通過する。この通過過程で、各トークンの位置に対応するベクトルが更新されていく。

ある層のある位置における、このベクトルの値をactivationと呼ぶ。Qwen3-8Bの場合、各activationは4096次元のベクトルだ。

Residual streamは、Transformerに特有の概念で、各層の出力が前の層の出力に「加算」される(残差接続)ことで形成される累積的な情報の流れを指す。各層のAttentionやMLPは、このresidual streamに情報を「書き込む」。Activation steeringは、このresidual streamに人為的なベクトルを加算する操作にほかならない。

入力 → [Embedding] → residual stream
  → [Layer 0:Attention + MLP が情報を加算] → 更新された residual stream
  → [Layer 1:Attention + MLP が情報を加算] → 更新された residual stream
  → ...
  → [Layer N] → 出力トークンの予測

Steering:特定層の出力に α × vector を加算

Forward Hook

PyTorchのregister_forward_hookは、ニューラルネットワークの特定のモジュール(層)が計算を完了した直後に呼ばれるコールバック関数を登録する仕組みだ。

def hook_fn(module, input, output):
    # output を観察したり、書き換えたりできる
    return modified_output

handle = model.layers[18].register_forward_hook(hook_fn)

通常の推論では入力→出力が一直線に計算されるが、hookを使うと途中の任意の地点で計算結果を覗いたり、書き換えたりできる。activation steeringでは、hookの中でoutput += α * vectorを行うことで、モデルの重みを一切変えずに内部状態を操作する。

hookは使い終わったらhandle.remove()で解除する。解除しないと、以降のすべての推論に介入が残り続ける。

Difference-in-means法

steering vectorを抽出するための方法。手順は以下の通り

  1. 対照ペアを用意する。 操作したい属性だけが異なる文のペアを大量に作る。たとえば感情なら「楽しみです」vs「不安です」。
  2. 各ペアのactivationを記録する。 ペアの両方をモデルに通し、特定層のactivation(ベクトル)を記録する。
  3. 差分の平均を取る。 全ペアについて(positive側のactivation - negative側のactivation)を計算し、その平均ベクトルを求める。
steering_vector = mean(activation_positive - activation_negative)

この平均差分ベクトルが、内部表現空間における「その属性の方向」を近似する。個々のペアの差分はノイズを含むが、大量のペアで平均を取ることで、属性に関連する一貫した方向だけが残り、ノイズは相殺される。ペア数が多いほどvectorは安定する。

Vector Normと方向

steering vectorは高次元空間(Qwen3-8Bでは4096次元)のベクトルだ。このベクトルには2つの性質がある。

方向:ベクトルが空間のどちらを向いているか。感情vectorなら「positive感情の方向」、言語vectorなら「日本語の方向」を指す。steeringはこの方向に沿ってresidual streamを移動させる。

norm(大きさ):ベクトルの長さ。norm = √(v₁² + v₂² + ... + v₄₀₉₆²)。normが大きいほど、同じαでもresidual streamを大きくずらす。

本実験では、言語vectorのnormが感情vectorの1.5〜4.0倍だった(層による)。つまり、α=1.0で加えたときの内部状態への影響が、言語vectorのほうが大きい。これが言語steeringの崩壊閾値が感情steeringより低い理由だ。

normを1に正規化してからαを掛ける方法もあるが、本実験ではdifference-in-meansで得られた生のvectorをそのまま使った。正規化するとvectorの「自然な強さ」の情報が失われるため、normの違いも実験結果の一部として報告した。

コードスイッチング(Code-switching)

言語学の用語で、一人の話者が会話の中で2つ以上の言語を切り替える現象を指す。ルー大柴が「今日はweatherがいいね」というように、文中で自然に言語を混ぜる行為がこれにあたる。

本実験では、言語steeringのLayer 16〜20で、モデルが英語と日本語を切り替える出力を生成した。人間のコードスイッチングとの重要な違いは、モデルには「話者」がいないことだ。人間のコードスイッチングは話者のバイリンガル能力や社会的文脈に起因するが、モデルのコードスイッチングはactivation空間上の位置が言語境界付近にあることの純粋な結果である。


関連研究

この記事が扱う分野は、Activation Steering(モデル内部状態の操縦)とMechanistic Interpretability(内部メカニズムの解釈)の2つにまたがる。主要な先行研究を整理する。

Activation Steering / Representation Engineering

Activation Steeringの基礎を築いたのはTurner et al. (2023) のActivation Addition(ActAdd) で、steering vectorをresidual streamに足し算する手法を提案し、最適化なしでLLMの出力を操縦できることを示した。本記事の実験手法はActAddに直接基づいている。

Zou et al. (2023) のRepresentation Engineeringは、この方向をより体系化した研究で、正直さ・有害性・感情などの概念がactivation空間で線形方向として表現されていることを示した。本記事で観察した「感情方向のsteering vectorで出力のトーンが変わる」という結果は、Representation Engineeringの知見と整合する。独自性があるとすれば、steeringの「成功」ではなく「崩壊パターン」に注目した点だ。

Arditi et al. (2024) は、LLMの「拒否」行動が単一の方向ベクトルで媒介されていることを発見した。このベクトルを除去する手法がabliterationと呼ばれ、セーフティガードの除去に使われている。

2025年以降、手法の精密化が進んでいる。Feature Guided Activation Additions(FGAA) はSparse Autoencoder(SAE)の潜在空間でsteering vectorを構築する手法で、difference-in-meansより精密な操縦が可能とされる(ICLR 2025)。本記事の批判点であるvector抽出のノイズ問題に対して、FGAAのようなSAEベースの手法は有効な改善策になりうる。

Adaptive Activation Steering(ACT) は、ハルシネーション対策として推論時にactivationを適応的にシフトさせる手法で(ACM Web Conference 2025)、steeringの応用範囲が「操縦」から「品質改善」へ広がっていることを示している。

Mechanistic Interpretability

LLMの内部で何が起きているかをリバースエンジニアリングする研究分野。本記事の「崩壊パターンからLLMの内部構造を推測する」というアプローチはここに属する。

Anthropicが推進するSparse Autoencoders(SAE) は、LLMの内部activationを解釈可能な特徴に分解する手法で、1つのニューロンが複数の意味を持つ問題(多義性/superposition)を解決する鍵とされている。

Circuit Tracing(回路追跡) はAnthropicが2025年に発表した研究で、多段推論・ハルシネーション・ジェイルブレイク耐性の内部メカニズムを可視化した。ツールはオープンソース化されている。

Mechanistic Interpretabilityは2026年にMIT Technology Reviewの「ブレークスルー技術」に選出された。

層別の情報構造

Gurnee et al. (2024) は、情報が層をまたいでどう伝播するかを分析し、本記事の「言語表現がLayer 9付近で安定し始める」という観察と関連する知見を提供している。Merullo et al. (2024) は、activationが潜在変数として機能することを示した。

参考文献

  • Turner, A. M., et al., "Activation Addition: Steering Language Models Without Optimization" (2023)

  • Zou, A., et al., "Representation Engineering: A Top-Down Approach to AI Transparency" (2023)

  • Arditi, A., et al., "Refusal in Language Models Is Mediated by a Single Direction" (2024)

  • Wu, Z., et al., "pyvene: A Library for Understanding and Improving PyTorch Models via Interventions" (NAACL 2024)

  • Gurnee, W., et al., "Language Model Internals Reveal the Spread of Information Across Layers" (2024)

  • Merullo, J., et al., "Language Model Activations Represent Latent Variables in Text" (2024)

  • Choi, J., et al., "Feature Guided Activation Additions" (ICLR 2025) — https://openreview.net/forum?id=0Yu0eNdHyV

  • Luo, Z., et al., "Adaptive Activation Steering: A Training-Free Approach for LLM Hallucination Mitigation" (ACM Web Conference 2025) — https://dl.acm.org/doi/10.1145/3696410.3714640

  • Apple Machine Learning Research, "ExpertLens: Understanding and Steering Activation Additions" — https://machinelearning.apple.com/research/expertlens-activation

  • Anthropic, "Circuit Tracing: Revealing Computational Graphs in Language Models" (2025)