ラップトップで動作するQwen 3.8 27Bはモデルの重みも解釈できる
Qwen 3.8 27B on my laptop can interpret model weights, too (simonwillison.net)
要約
最近発表された論文では、最先端のLLMがニューラルネットワークの重みを直接読み書きする「Weight-Space Programming」能力を持つことが示されました。この記事では、筆者が自身のラップトップで動作するQwen 3.8 27Bモデルを使用し、この能力を検証した結果を報告しています。Qwen 3.8 27Bは、ツールやコード実行なしで、ゲームの重みからそのゲームを特定するタスクにおいて、驚くべき精度を示しました。
全文翻訳
ラップトップで動作するQwen 3.8 27Bはモデルの重みも解釈できる
2026年11月3日
昨日の注目論文は、Rikiya Takehi、Jayden Teoh、Alex Zhang、Omar Khattabによる「Sparks of Weight-Space Programming: LLMs can natively read & write neural network weights」でした。この論文は、最先端モデル、特にGPT-6 Astraが、機械学習モデルの生の重み(文字通り浮動小数点数の集まりであるモデルのテキスト記述)を解釈し、変更できることを発見しました。私は論文の例の一つを試しており、私のラップトップで動作するQwen 3.8 27Bもこれができることを喜んで共有します!
Weight-Space Programming
GPT-6 Astraと共同研究者による、LLMがモデルの重みを分析・変更する際に「Weight-Space Programming」という用語を定義している、彼らのアブストラクトからのハイライトです。
生の重みを見るだけで、GPT-6 Astraはネットワークが何を学習するように訓練されたかを伝えることができます。そして、環境フィードバックなしに、PPOで1億ステップ訓練されたネットワークを凌駕する、小さなゲームプレイネットワークをゼロから書き直すことに問題はありません。
同様に、勾配なしでQwen3.5-0.8Bの数学能力を向上させるように求められた際、Astraはその重みにある問題を発見し、Qwen自身のモデルカードが警告しているループを引き起こす原因を特定し、0.016%の重みをネイティブに編集することでこれを修正します。同じサンプリング設定で、この重み補正によりMATH-500が7.9%から48.1%に向上し、インストラクションフォローイングにアウトオブザボックスで汎化し、IFEvalを3倍に向上させます。
これらすべては、Astraにトレーニングループを書かせることなく可能です。それは推論を使用して、ニューラルネットワークの各部分が何を計算しているか、または計算すべきかを理解し、それに応じて重みを変更します。これをWeight-Space Programmingと呼びます。
この論文は、私が別々に扱うべきだと考える2つのトピックを組み合わせています。1つ目は、モデルがツールを実行したりコードを実行したりせずに、生の重みで何ができるかです。2つ目は、モデルがコードを備えたら、他のモデルの更新と改善のために操作をどの程度実行できるかを調査します。
spaCyの作者であるMatthew Honnibalは、この論文が2つを混同しているため誤解を招くものであると呼びました。また、Sean GoedeckeはQwen3.5-0.8Bの更新例を分解し、人間ML研究者が使用するのと同じ手順を踏んでいると述べました。
私は、ツールのない質問に焦点を当てます。これは、2つのうちより興味深いものだと思います。
この論文は、「LLMは重みからモデルの挙動を理解できるか?」という最初の質問を提示しています。彼らは4つの古典的なコンピューターゲーム—Breakout、Pong、Pac-Man、Freeway(調べる必要がありました、1981年のAtari 2600ゲームです)—の簡略化された10x10グリッドバージョンをプレイするために4つのニューラルネットワークを訓練しました。その後、それらの重み(浮動小数点数として)をLLMに以下の質問とともにフィードしました。
以下の重みは、このグリッド上のゲームをプレイするために強化学習で訓練された1つのポリシーネットワークに属します。どのゲームで訓練されましたか?重みから作業してください。ツールは一切使用できません:コード実行、電卓、実行できるものは何もありません。これは単一の応答です。
論文に付随するGitHubリポジトリは RikiyaT/lm_understand-logs です。exp1_which_game フォルダには、4つのゲームの重みとともに使用されたプロンプトが含まれています。
確認したところ、重み以外は、各プロンプトは他のプロンプトと同一でした。
Qwen 3.8 27Bおよびその他のモデルでの試行
GitHub上のプロンプトは自己完結型です。私のLLMツールには、テキストファイルへのURLをプロンプトとして渡すことができる -f/--fragment オプションがあり、これにより上記のいずれかを次のように実行できます。
llm -f https://raw.githubusercontent.com/RikiyaT/lm_understand-logs/refs/heads/main/exp1_which_game/runs/breakout/prompt.txt \
-m openrouter/moonshotai/kimi-k3.1-pro
この例では、llm-openrouterプラグインのインストールが必要で、OpenRouter経由でKimi K3.1 Proに対してBreakoutプロンプトを実行します。以下は、Kimi K3.1 Proからの結果です。9分41秒と19,493の推論トークンを費やして、Breakoutを正しく推測しました。
しかし、Qwen 3.8 27Bはどうでしょうか?これは依然として私が自分のラップトップで実行するお気に入りのモデルです。わずか17GB(このバージョンを使用しています)で、2025年の最先端のプロプライエタリモデルに近い感覚があります。
LM Studioを起動し、Qwen 3.8 27Bが長いコンテキストウィンドウでロードされていることを確認しました(デフォルトの8192コンテキストはエラーで失敗しました)。llm-lmstudioプラグインをインストールし、このコマンドを実行しました。
LMSTUDIO_TIMEOUT=900 \
llm -f https://raw.githubusercontent.com/RikiyaT/lm_understand-logs/refs/heads/main/exp1_which_game/runs/pacman/prompt.txt \
-m lmstudio/qwen/qwen3.8-27b
(タイムアウトを環境変数で増やす必要がありました。これはこのIssueを参照してください。)
46分12秒と43,506の推論トークンを費やした後、私のラップトップ上のQwenは応答を返しました。その応答は以下のように終わりました(推論トレースはこちらです)。
ゲーム: 簡略化されたPac-Man風グリッドワールド:エージェントは中央と角の壁ブロック、移動オブジェクト/ゴースト、報酬ターゲット/ペレットを備えた固定8x8迷路内を移動します。
説明: エージェントは固定の迷路のような8x8ボードをナビゲートし、現在のエージェント/移動オブジェクト/前のフレームの手がかりを使用して通路を移動し、報酬セルを収集し、移動オブジェクトやハザードを回避します。報酬は、ボールを正常にインターセプト/リターン/スコアリングすることで得られ、ミスしたりヒットしなかったりするとペナルティが与えられます。
信頼度: 72%
これは驚くべきことです。他の3つのゲームのうち2つでも試しました。1時間4分54秒でPongを特定しました(推論はこちら)。
Pong — 特にPong風のパドル/ボールゲームで、エージェントは右側で垂直パドルを操作し、上下に移動して移動するボール/報酬オブジェクトをインターセプトまたはリターンする必要があります。
説明:
エージェントは右側パドルを垂直に動かし、8x8フィールドを横切って移動するボール/報酬ターゲットをヒットまたはキャッチします。一方、左側の移動オブジェクト/対戦相手と壁の境界がプレイを定義します。報酬はボールのインターセプト/リターン/スコアリングを成功させることで得られ、ミスしたりヒットしなかったりするとペナルティが与えられます。
信頼度:
75%
ゲーム: Breakout、またはArkanoid風のパドル/ボール/レンガゲーム。
説明: エージェントは下段にあるパドルで、ボールをプレイ中に保つために左右に移動します。ボールは上段グリッド内を移動し、上段のレンガ/報酬ターゲットがヒットすると報酬が得られます。一方、ボールを失ったり、下壁に当たったりするとエピソードが終了するかペナルティが与えられます。
信頼度: 88%
QwenはFreewayプロンプトで失敗しました。このゲームは他の3つよりもマイナーであることを考えると、驚きではありません。以下はそのトランスクリプトです。Qwenは「簡略化されたPac-Man風グリッドゲーム:エージェントは4方向移動する」と考えました。
推論トレースは、ざっと見るのに楽しいですが、ほとんど理解不能です。以下はその一例です。
エージェントのchannel0はどうでしょうか?行8列7/8付近、そしておそらく下部にいくつかの大きなchannel0行が見えます。channel0の大きなものをリストアップしましょう:line436 input435 (row8 col7 ch0) -2.107,1.169,0.513...; line441 input440 (row8 col8 ch0) -0.376,0.010,1.564,3.855...; line445 input444 (row8 col8 ch4) 0.142,0.491...; line382? input381 ch0? Wait line382 input381: 381//5=76 (row7 col6), ch1? 381%5=1? 76 * 5=380, ch1. So not. Channel0 large maybe at row8 col7/8 only. Also top row? line44 input43 ch3, line49 ch3. Channel0 large maybe not many. Agent position could be near bottom-right? If the agent is typically at bottom-right?
とはいえ、十分な経験を持つ人間がメモ帳と鉛筆を手にすれば、かなりの努力でそこにたどり着けるだろうと予想しています。
クールな論文ですが、それを取り巻くいくつかの広範なコメントは正当ではないと感じています。ソースコードの時代は終わり、私たちの未来は理解不能なマシンが理解不能な方法で自身のモデルの重みを編集することになる、と宣言する準備はできていません。