本文へスキップ
株式会社オブライト
AI2026-11-03約15分で読めます

Weight-Space Programming最速解説:GPT-6 AstraがQwenの重みを直接書き換えた研究

2026年11月、MIT CSAILがGPT-6 Astraに勾配降下なしでQwen3.5-0.8Bの重み0.016%を直接編集させ、MATH-500を7.9%から48.1%へ上げた。Weight-Space Programmingの結果、仕組み、試し方、他手法との違い、限界を整理する。本稿は一次情報ベース。


Weight-Space Programming(重み空間プログラミング) は、汎用の大規模言語モデルがニューラルネットワークの重みを直接読み、直接書き換える手法の呼び名である。MIT CSAILの Rikiya Takehi、Jayden Teoh、Alex Zhang、Omar Khattab が2026年11月2日にブログ「Sparks of Weight-Space Programming」で報告した。OpenAIの GPT-6 Astra に、勾配降下も最適化アルゴリズムも使わせず、自然言語の指示だけで重みを編集させている。最も目立つ結果は、Qwen3.5-0.8B の全重みのうち0.016%(131,072個)を書き換えただけで、MATH-500 の正答率が7.9%から48.1%に上がったことだ。ただし、この改善の大部分は「数学力の向上」ではなく「無限ループの解消」によるもので、著者らも別の小型モデル(Gemma 3 270M)では改善しなかったと報告している。

本稿では、ブログ、実験ログのGitHubリポジトリ、Hugging Faceのモデルカードなど公開されている一次情報をもとに、何が示されたか、どういう仕組みか、編集済みモデルをどう試すか、既存の手法と何が違うか、どこに注意すべきかを整理する。数値は特記しない限りブログとモデルカードの記載であり、独立に検証したものではない。

Weight-Space Programmingとは

ブログの定義では、フロンティアLLMがニューラルネットワークの重みを、オプティマイザなし、場合によっては環境からのフィードバックなしで、読み取り・書き込みできるという主張である。通常、モデルの挙動を変えるときは、データを用意し、損失関数を決め、勾配降下で重みを少しずつ更新する。この研究では、LLM(Astra)が重みの数値そのものを読んで構造を理解し、Pythonで計算して、直接書き換えた重みを出力する。つまり重みを「訓練で得られる結果」ではなく「LLMが読み書きするプログラム」として扱う発想である。

項目内容
公開日2026年11月2日
著者Rikiya Takehi、Jayden Teoh、Alex Zhang、Omar Khattab(いずれもMIT CSAIL)
使用モデルOpenAI の gpt-6-astra(Codex CLI 経由。推論エフォートは実験により high/xhigh/max)
公開物実験ログ(GitHub: lm_understand-logs)、編集済みQwen3.5-0.8B(Hugging Face)、デモ(Hugging Face Space)
ライセンスログ・データ・ネットワークは CC BY 4.0、スクリプトは MIT、編集済みモデルは Apache-2.0
位置づけ著者自身が「very early(ごく初期)」の結果と説明

何ができたか:8つの実験の結果

ブログは8つの実験で構成される。大きく分けると、重みを読んで正体を当てる(実験1〜3)、壊れた方策を直す(実験4)、ゼロから書く(実験5・6)、言語モデルを編集する(実験7・8)の4種類である。

種類実験対象結果(ブログの記載)
読む1 どのゲームかPPOで学習した小型MLP(17,253重み)Breakout、Pong、Pac-Man、Freeway の4つすべてで正しいゲームを回答
読む2 何を生成するか拡散モデル(円・三角・四角、23,824重み)3つとも生成する図形を特定
読む3 言語と注意ヘッド7.16M重みの小型Transformer(中間層のみ)Python/ローマ字/英語を各2回とも正答、コピー用ヘッドも正解と一致
直す4 失敗する方策の修復Kinetix の車の坂道登り(171,664重み)成功率0%(256エピソード評価)から1,024エピソード中1,024で成功。変更は重みの3.5%
書く5 ゼロから書くMinAtar(600→32→32→6、全重みが0)Breakoutで517.4(PPO 500Mステップは25.3)
書く6 9x9囲碁1.48M重みのネットワーク、全重みが0順伝播0回でも、比較対象の2つのPPOネットワークに過半数勝利
編集7 迎合モデルの特定Gemma 3 270M重みだけでは4回すべて失敗。注意パターンを使うと3組すべて特定
編集8 数学力の改善Qwen3.5-0.8BMATH-500 が7.9%から48.1%

実験4の「1,024エピソード」は、ブログでは評価を1,024エピソードで行い、元のPPOネットワーク(256エピソード評価で成功率0%)に対して、1回の編集(ツールなし)で1,024エピソードすべて成功したという記載である。実験5のMinAtarは、Astraにルール・ソースコード・ネットワークの配置だけを与え、データ・損失・勾配・ツール・ロールアウトはなしで重みを書かせた結果だ。Seaquest は53.1(PPO 500Mステップは88.9)、Asterix は53.2(同55.2)で、Breakout 以外では長く学習したPPOに及ばない。

Qwen3.5-0.8Bの編集結果

いちばん注目された実験8の中身を詳しく見る。Astraには、GSM8K の訓練問題7,469問と MATH の訓練問題7,275問を練習用に渡し(テストセットは渡していない)、Pythonサンドボックスで順伝播を最大50回まで回せるという予算を与えた。ベースモデルは練習問題の回答のうち、最初の96問中85問で出力上限の32,768トークンに達していた。つまり「答えを出す前にループして終わらない」ことが主な失敗だった。

Qwen3.5-0.8BMATH-500 (%)GSM8K (%)IFEval (%)出力上限に達した割合 (%)
ベース7.913.821.093.0
編集後(順伝播10回)12.325.749.087.2
編集後(順伝播25回)14.125.139.986.4
編集後(順伝播50回)48.167.162.333.1

Astra は、ベースモデルのループを、レイヤー15とレイヤー19のMLPが書き込む1本の「方向」に結びつけた。そして各レイヤーの down_proj の出力列64本から、その方向を引いた。変更されたのは2つのテンソル(model.language_model.layers.15.mlp.down_proj.weight と layers.19.mlp.down_proj.weight)だけで、合計131,072個、全体の約0.016%である。評価は温度0.6、top-p 0.95、top-k 20、presence penalty 1.5、出力上限32,768トークンの設定で、MATH-500 は問題あたり4サンプルで行われている。ブログによれば、ほかに6つのベンチマークを評価したが、表には3つだけが載っている。

否定的な結果も同じ重さで載っている。Gemma 3 270M に同じ手法を適用しても、MATH-500 はベース6.8%に対して編集後は7.0〜7.7%と、ほぼ動かなかった。Gemma はループすることが少なく(出力上限に達したのは8.5%)、Astra が見つけたのは普通の推論ミスで、1回の編集で約1ポイント以上は動かなかったという。著者らは、編集は「モデルにない能力を足せなかった」と整理している。

仕組み:ハーネスとforward-pass予算

ログのリポジトリによれば、モデルはOpenAIの gpt-6-astra をCodex CLI経由で動かし、シェル、ファイル編集、Web検索、サブエージェントなどの組み込みツールをすべて無効にしている。実験3・6・7・8では、モデルが1ターンにつきPythonのコードブロックを1つ書き、それがネットワークなし・時間制限ありのサンドボックスで実行される。全1,125ターンについて、イベントストリームを監査してツールを使っていないことを確認したと記載されている。

- 許可されること: 重みの読み取り、numpy/PyTorch(CPU)での計算、予算の範囲内でのネットワークの順伝播(forward pass)、順伝播の間に挟む編集
- 禁止されること: 学習、勾配、データへのフィッティング、探索、ロールアウト、予算外でのネットワークの実行
- 予算の例: 実験6の囲碁は0〜50回、実験8のQwenは10・25・50回、実験3は最大100回の実行、実験7は最大20回の実行と16本のテキスト
- 実験ごとの条件差: 実験4は1回の返信のみ、実験5は完全にツールなしで一発出力

重要なのは、順伝播は「評価のために回す」のであって、損失を最小化するために回すわけではない点だ。Astra は出力を見て仮説を立て、重みを書き換える。実験6の囲碁では順伝播0回の場合、336行のPythonを1回走らせただけで、2つのPPOネットワーク(2,000局ずつ)に対して過半数勝利したと報告されている(正確な勝率はブログに記載がない)。50回に増やすと、2,000万局で学習したPPOネットワークを上回る。ただし比較相手は243→32→32→82の小さなネットワークで、ブログが「同じサイズ」と書く点と食い違うため、解釈には注意が必要だ。

編集済みQwen3.5-0.8Bを試す方法

編集済みモデルは Hugging Face の RikiyaT/Qwen3.5-0.8B-weight-space-programming で公開されている。ベースは Qwen/Qwen3.5-0.8B(Apache-2.0)で、本体はApache-2.0のまま配布されている。ブログの評価はテキストのみの出力を使ったが、公開チェックポイントはマルチモーダル版の全体で、言語モデル部分のテンソルは(ハッシュで)一致を確認済み、テキストのプロンプトでは視覚部分は使われない。デモは akhaliq/weight-space-programming-demo の Space で、Hugging Face の Ahsen Khaliq 氏が再構築・再評価したものである(Space のページ自体には使い方の説明が載っておらず、App タブから試す形になる)。

方法内容
デモSpaceブラウザで試す。ローカル環境は不要
vLLM(Python)モデルカードの手順。bfloat16、max_model_len 34816、chat template で enable_thinking=True、サンプリングは評価と同じ設定
vllm serve/SGLangOpenAI互換のAPIサーバーとして起動
Transformersimage-text-to-text パイプライン、または AutoModelForMultimodalLM と AutoProcessor
Docker Model Runnerモデルカードに docker model run の記載あり
llama.cpp/Ollama/LM StudioHubの「Quantizations」一覧から量子化版を選ぶ(量子化版は別の作者が作ったものなので、編集が保たれているかは自分で確認する)
# vLLM でOpenAI互換サーバーを起動(モデルカードの方法に沿った例。詳細はカード本文を確認)
vllm serve RikiyaT/Qwen3.5-0.8B-weight-space-programming --max-model-len 34816

# Docker Model Runner で実行
docker model run hf.co/RikiyaT/Qwen3.5-0.8B-weight-space-programming

必要なVRAMは小さい。モデルカードによればパラメータ数は約0.9Bで、BF16の重みは0.9B×2バイトで約1.8GB。ここに、KVキャッシュと実行時のオーバーヘッドが乗る。これは一般的な計算による目安で、公式の推奨値ではない。ただし評価では最大32,768トークンまで生成するため、長いループが起きた場合はKVキャッシュが数GB単位で増える可能性がある。ほかのモデルの目安は VRAM計算ツール で確認できる。再現に際して注意すべき点は、報告された数値が1つのシード、特定のサンプリング設定での結果だということだ。モデルカードにある独立の再実行(MATH-500 全500問×4サンプル、H200で約51分)では正答率51.0%、出力上限到達31.6%だった。ただしこの再実行は MATH-500 のみで、GSM8K と IFEval は再実行されていない。

ファインチューニング・モデル編集・解釈可能性との違い

手法何を変えるか必要なもの編集の主体Weight-Space Programmingとの違い
SFT/フルファインチューニング全重み(または大部分)ラベル付きデータ、GPU、学習ループ勾配降下勾配降下を使わず、LLMが重みを直接書く
LoRA低ランクの追加重みデータ、GPU、学習ループ勾配降下追加層ではなく既存の重みを少数だけ直接編集する。本研究ではデータへのフィッティングを禁止
ROME/MEMIT 等のモデル編集特定の事実に対応する少数の重み編集したい事実と、それを特定する手順閉形式の更新式決まった更新式ではなく、汎用LLMが状況を読んで編集内容を決める
機械的解釈可能性変更しない(回路や特徴の分析)活性化の記録、分析ツール人間の研究者分析で終わらず、理解した内容を書き込みまで行う。解釈はLLMが担う
Weight-Space Programming少数の重み(実験8は0.016%)重み、サンドボックス、順伝播の予算汎用LLM(Astra)訓練済みLLMが重みを読む・書くこと自体が手段

ROME/MEMIT 等の記述は一般的な理解に基づく整理で、本研究のブログがこれらと直接比較した記載は確認できていない。違いを一言で言えば、既存の手法は「更新の方法」(勾配、閉形式の式)が固定されているのに対し、本研究は「更新の方法をLLMが毎回その場で考える」点にある。著者らは今後の方向として、バックドアの監査、1回で済む初期化、ゼロデータでの能力の操作とアンラーニング、モデル間の回路の移植、再帰的な自己改善を挙げている。なお、同じくQwen3.5系を訓練で調整する手順は Qwen3.5-9Bのファインチューニング解説 にまとめてある。

限界と注意点

- 改善の中身はループの解消が中心: ベースは出力上限に93.0%が達しており、編集後も33.1%が達している。ブログ自身が、数学以外のベンチマークでの改善は「ループ除去」で説明できるとしている。数学の推論力そのものが上がったとは言えない
- Gemma 3 270Mでは改善せず: 同じ手法が別のモデルに一般化する根拠はまだない。編集は「モデルにない能力を足せなかった」
- 迎合(sycophancy)の特定は重みだけでは失敗: 4回とも失敗し、注意パターンを使って初めて3組すべてを特定できた。「重みだけで何でも読める」わけではない
- Astra本体は非公開: 再現には gpt-6-astra のAPIが必要で、費用は GPT-6 Astraの料金 の通り高い。編集後のモデルと差分は公開されているが、Astraが毎回同じ編集を出す保証はない
- 評価の範囲: 報告は1シード、特定のサンプリング設定。独立の再実行はMATH-500のみ。ブログは評価した9つのうち表に載せたのは3つ(GSM8K、MATH-500、IFEval)と出力上限の割合だけ
- ベンチ汚染の可能性は未確認: 練習問題には訓練セットのみを使ったと記載があるが、Astra自身の事前学習データに含まれる問題との関係は、一次情報からは確認できなかった
- 規模の制約: 実験1〜5のネットワークはコンテキストに収まる大きさで、大きなモデルではツールと順伝播が必要になる。著者らも文脈長とハーネスの非効率が現状の制約だと書いている
- 囲碁の比較: 「同じサイズ」と書かれた比較相手は、実際にはAstraが書いたネットワークより小さい

ブログの公開後、各種の解説記事やコミュニティの議論で、「7.9%というベースが小型モデルとして異常に低く、失敗の多くは回答になっていないループではないか」という指摘が出ている。出力上限到達率93.0%という数字はその見方と整合するが、これは一次情報ではなく二次的な報道・議論に基づく点を断っておく。Hacker News のスレッド自体は、今回確認できていない。

開発者にとっての意味

今すぐ手元のワークフローを変える研究ではない。Astraは高価で、再現にはAPIが要り、結果は1つのモデルでの1つの失敗モード(ループ)に集中している。一方で、示されたのは次のような道筋である。第一に、不具合の原因が特定の方向に局在しているなら、再学習なしでその方向を引くだけで直る場合がある。これはローカルで動かす小型モデルの「考えすぎて止まらない」問題に対する新しい対処の選択肢になりうる。第二に、重みと実験ログの両方が公開されているため、手法の中身を自分で検証できる。ログは各ターンのプロンプト、応答、実行コード、評価までを含む。第三に、モデルの監査(バックドアの検出など)へ使える可能性を著者らが挙げている。実用に近い話をするなら、まず公開された編集済みモデルを自分のプロンプトで試し、出力上限到達率とコストを比べるのが現実的だ。ローカルで動く他の選択肢の比較は ローカルLLM比較(2026年6月版) を参照してほしい。

よくある質問

Weight-Space Programmingとは何ですか。

汎用の大規模言語モデルが、勾配降下やオプティマイザを使わずに、ニューラルネットワークの重みを直接読み、直接書き換える手法の呼び名である。MIT CSAILの研究者らが2026年11月2日のブログで報告した。

Qwen3.5-0.8Bの数学力は本当に6倍になったのですか。

MATH-500の正答率は7.9%から48.1%に上がったと報告されているが、ベースは93.0%の回答が出力上限に達しており、改善の中心はループの解消である。Gemma 3 270Mでは同じ手法でほぼ改善しなかったため、一般的な数学力の向上とは言えない。

GPT-6 Astraがなくても再現できますか。

編集済みのQwen3.5-0.8Bと、ベースへの差分、適用スクリプトは公開されているため、結果の確認はできる。ただし編集そのものを新しいモデルでやり直すにはgpt-6-astraのAPIが必要で、Astra本体は公開されていない。

編集済みモデルは商用利用できますか。

モデルカードのライセンスはApache-2.0である。ただし実験ログ・データ・ネットワークはCC BY 4.0、ベンチマークデータは各データセットのライセンスに従うため、用途ごとに該当するライセンスを確認する必要がある。

ファインチューニングやLoRAの代わりになりますか。

現時点では代わりにならない。実証されたのは特定の失敗モードの修正が中心で、別のモデルでは改善しない例も報告されている。著者らも結果を「ごく初期」としている。

この記事に関連する無料ツール(登録不要・その場で結果)

お気軽にご相談ください

お問い合わせ