この記事のテーマは、ざっくり言うと 「LLMの出力を、プロンプトではなく内部から直接いじる技術」 です。
これが steering。日本語にするなら「誘導」や「操舵」に近い感じでしょうか。
著者 Sean Goedecke は、昔の「Golden Gate Claude」にかなり魅了されたと言います。これは Claude の出力がなぜかゴールデンゲートブリッジに引っ張られる現象で、LLMの内部状態をちょっと触るだけで、話し方や内容の傾向が変わるのが面白かった、という文脈です。
この手の話、私はかなり好きです。
なぜなら、LLMを「文章を作る道具」として見るのではなく、巨大な確率マシンの内部を直接ドライビングする話だからです。ちょっとSFっぽい。しかも、ただのSFではなく、実際に研究や実装の話として出てくるのが熱いところです。
記事では、steering の基本をかなりシンプルに説明しています。
要するに、モデルの中にある「この方向に動くと簡潔モードになるっぽい」というつまみを見つけて、それを回す感じです。
ここで出てくる activations は、モデルの内部で流れている数値のことです。人間の脳のニューロン発火に例えられることがありますが、もちろん同じではありません。あくまで「内部状態の中間結果」くらいに思うとよいです。
さらに記事では、Anthropic がやっているような sparse autoencoders という方法にも触れています。これは、モデル内部の複雑な状態から「特徴っぽいもの」を見つけ出す仕組みで、単純な差分よりも深いパターンを拾える可能性があります。
ただし、そのぶん時間も計算資源も専門性も必要。つまり、すごそうだけど重い。こういうの、研究としてはとても夢があるけど、実務で気軽に使うにはまだ遠い、という匂いがします。
著者がこの記事を書いたきっかけは、DeepSeek-V4-Flash と、antirez の DwarfStar 4 というプロジェクトです。DwarfStar 4 は llama.cpp をかなり絞って、DeepSeek-V4-Flash だけを動かすようにしたものらしいです。
ここで重要なのは、DeepSeek-V4-Flash が 「ローカルで動かせるのにかなり強い」 こと。
著者は、これが少なくとも「フロンティア級のエージェント的コーディング」の下位層と競える、つまり実験の対象として十分価値があるレベルに来たと見ています。
これはかなり大きいです。
なぜなら steering は、モデルの weights や activations に触れる必要があるので、API越しに使う普通のユーザーには基本的に手が届きません。
でも、強い open-weights model をローカルで触れるなら話は変わる。
「試したい人は自分で試せる」状態になったわけで、ここで初めて steering が“机上の空論”から少し現実に近づくんですね。
個人的には、これが一番ワクワクする点です。
LLMの研究って、しばしば「理論上は面白いけど、手元で触れない」まま終わりがちです。そこにローカル実行可能な強いモデルが来ると、急にみんなが遊び始める。オープンソース界隈のいつもの熱量が発動する感じで、これは見ていて楽しい流れです。
著者は steering が普及しなかった理由をかなり現実的に整理しています。
OpenAI や Anthropic のような大手は、そもそもモデルを直接トレーニングできます。
わざわざ runtime 中に脳みそをいじるより、最初からそういう性格になるよう学習させたほうが早い。
つまり steering は、研究としては面白いけれど、本気で性能を作る側からすると少し中途半端なんですね。著者の言い方を借りれば、ちょっと「middle class」な発想。
APIで使う人は、モデルの内部状態を見られません。
なので steering の材料そのものがない。
これでは試しようがないです。
これが大きい。
たとえば「もっと簡潔に」とか「丁寧に」とか「厳密に」といった調整なら、prompt を工夫するだけでかなり近いことができる。
わざわざ内部に触るのは、正直かなり回り道です。
ここは著者の主張にかなり納得感があります。
技術って、どうしても「内部を操作するほうが本質的でかっこいい」と思いがちですが、現実には文章を少し変えるだけで十分な場面が多いです。LLMは言語モデルなので、言葉でかなり動く。これは地味だけど強い。
著者は懐疑的ではあるものの、steering が有望かもしれない領域も挙げています。
たとえば「知性」そのものを steering できるのか、という話です。
昔のモデルには「あなたは専門家です」といったおまじない prompt が効いた時代がありましたが、最近のモデルはかなり賢いので、単純な言い回しでは変わらないことが多い。
じゃあ、内部から「賢さ」を増幅できるのでは?
という発想は確かに面白いです。
ただ著者はかなり慎重で、本当にそんな “intelligence vector” が見つかるのかは疑わしい と言っています。
理由は、そんな概念がもし本当にあるとしても、それはモデル全体に広く散らばっていて、結局はモデルそのものをトレーニングし直すのと大差ないかもしれないからです。
この見立ては、かなり筋が通っていると思います。
「賢さだけをつまみ出して強くする」なんて、言うのは簡単ですが、実際にはかなり複雑な能力の束ですからね。
もう1つのアイデアは、長い説明を要する概念を、短い内部表現に圧縮することです。
たとえば「このコードベースについての知識」を steering で持てないか、という話。
もしこれができれば、長大なコンテキストを食わずに、モデルに“覚えさせておく”ことができるかもしれません。
これはかなり夢があります。
うまくいけば、モデルのコンテキストウィンドウを節約できるからです。
ただし著者は、これもあまり楽観していません。
「自分のコードベースを知っている」という概念はかなり複雑で、結局は fine-tune が必要になるのでは、という見方です。
ここは私も同意寄りです。
コードベース理解って、単なる知識というより、命名規則、依存関係、設計思想、例外処理の癖まで含む総合技術です。
それを1本のベクトルに押し込めるのは、さすがに厳しい気がします。
著者の結論は、かなり控えめです。
つまり、「万能な新技術」ではないけど、何か面白い使い道が掘り出されるかもしれない」 という立場です。
このバランス感覚は好感が持てます。
技術記事って、しばしば「これは革命だ!」か「全部ダメだ!」のどちらかに寄りがちですが、この記事はその中間で踏みとどまっています。
“今はまだ微妙。でも、初めて現実的に試せる土台が来た”という温度感がちょうどいい。
記事の後半で著者は、読者のコメントを受けて少し補足しています。ここが地味に重要です。
これはかなり実用寄りの話です。
「簡潔に答えさせる」より、「答えたくないと学習されてしまったモデルの挙動を変える」ほうが、steering の存在理由としてはずっと強い。
ここは著者も、自分の当初の理解より実際の用途が広いと気づいた様子です。
個人的には、この指摘がいちばん“なるほど”でした。
プロンプトで動く範囲は、意外とすぐ頭打ちになります。
でも内部に染みついた反応パターンを揺らせるなら、話は全然違う。
LLMを「言葉を返す機械」ではなく、「ある種の習慣を持つシステム」と見ると、steering の価値が見えてきます。
この記事は、steering を過剰に持ち上げず、でも雑に切り捨てもせず、かなり丁寧に位置づけています。
私の感想を率直に言うと、steering は “実用化の本命” というより、“理解する価値がある周辺技術” という印象です。
ただし、DeepSeek-V4-Flash のようにローカルで強いモデルが使えるようになったことで、研究者だけの遊びではなくなりつつある。ここは本当に面白い変化です。
もし今後、モデルごとに「この feature を少し押すとこうなる」というライブラリが整備されてきたら、LLMの使い方は少し変わるかもしれません。
プロンプトを書く代わりに、性格をスライダーで調整する世界。
ちょっと未来感がありますよね。
ただし、その未来が本当に来るかはまだ未知数。私は「来たらかなり面白いけど、たぶん地味に難しい」と思います。
参考: DeepSeek-V4-Flash means LLM steering is interesting again