小さなAIモデルに数学の問題を解かせると、答えを出せないまま考え続け、文字数の上限で強制的に止められることがある。Qwen3.5-0.8Bというモデルは、ほぼすべての数学の問題でこの状態に陥っていた。
この不具合を、人間がコードや学習データを書き直すのではなく、別のAIが直接治した。MIT CSAILの研究チームが2026年11月2日にブログ記事を公開した。汎用AI「Astra」(OpenAIのGPT-6 Astra)が、自然言語の指示だけでQwen3.5-0.8Bの重みのごく一部を直接書き換えた。学習をやり直すことなく、数学の正答率を大きく引き上げたという内容である。学習でしかAIの振る舞いを変えられないと思っていたなら、この結果は予想を裏切る。
別のAIが重みを直接編集
ニューラルネットワークの中身は、学習の過程で少しずつ調整される大量の数値でできている。この数値を「重み」と呼ぶ。
AIの振る舞いを変える方法は、これまで実質的に一つしかなかった。大量の例を使って、この重みを少しずつ調整する学習、専門的には勾配降下と呼ばれる方法である。MIT CSAILのチームが示したのは、この学習のループを一切使わない方法だった。
研究チームはこれを「重み空間プログラミング(Weight-Space Programming)」と名付けた。汎用のAIモデルが、別のニューラルネットワークの重みを直接読み取り、目的に沿って書き換えるか、新しく作り出す手法である。今回の編集作業は、OpenAIのコーディング支援ツール「Codex CLI」経由でGPT-6 Astraが実行した。外部ツールは使わず、全1,125ターンがツールなしだったことが公開ログで確認できる。
編集対象のQwen3.5-0.8Bは、商用利用も改変も認めるApache 2.0ライセンスで公開されているモデルで、重みの数値をファイルとしてそのまま取り出せる。Astraはこのファイルを読み書きできる環境を与えられ、自分でコードを書いて重みを読み取り、計算した新しい数値で上書きする作業を、自分の判断だけで行った。
自分は最初、見出しだけを見て「結局は学習をやり直したのだろう」と疑った。しかし公開されているログを確認すると、学習用データや勾配の計算は一切なく、Astraが重みの数値を直接書き換えた記録だけが残っていた。では、具体的にどこを、どう書き換えたのか。
0.016%だけを書き換えた
Qwen3.5-0.8Bは全体で約8億個の重みを持つ。書き換えの場所は、その中の15層目と19層目、それぞれのMLP(多層パーセプトロン)の出力部分(down_proj)にある64列ずつだった。数にすると131,072個、全体のわずか0.016%にあたる(Hugging Faceのモデルカードで確認)。Astraは、この2つの層が書き込んでいたあるベクトルの方向を特定し、そのベクトルを差し引くという編集を行った。
難しいのは、重みがただの数値の並びだという点だ。Astraは実行結果の画面を見ているわけではなく、数値の並びだけから「ここを直せば思考のループが止まる」と判断し、具体的な引き算を指示した。これは、モデルに新しい知識を教え込んだのではない。無限ループを起こしていたベクトルを、狙った場所で打ち消す修正だった。
こうした読み書きの力は、数学の例だけで確かめられたわけではない。公開された8つの実験のうち、Astraは強化学習で学習させた4種類のゲームの方策を特定している。対象はBreakout、Pong、Pac-Manなどで、重みの数値だけから正しく言い当てた。学習した内容の痕跡が重みの中に残っていて、Astraがそれを読み取れることを、数学の例の前段階で示した実験といえる。この小さな書き換えで、実際にどれだけ成績は変わったのか。
数学の正答率が6倍に
結果は数字にはっきり出た。数学の難問を集めたベンチマークMATH-500の正答率は、編集前の7.9%から編集後48.1%まで伸びた。約6倍である。基礎的な文章題を集めたGSM8Kは13.8%から67.1%まで上がった。指示への追従を測るIFEvalも21.0%から62.3%まで伸びている(数値はいずれも同ブログ記事の実験8の節による)。
このグラフが示すのは、編集前はどのベンチマークでも答えに届く前に止まっていたAIが、編集後はほとんどの問題に最後まで答えられるようになった、という変化である。実際、文字数の上限に達して回答を打ち切られた割合は、編集前の93%から編集後は33%まで下がった。この数字が、「考え続けて止まる」という冒頭の症状が実際に解消されたことを裏付けている。
この結果を自分で確かめたい読者のための材料も公開されている。Astraへの入力文・出力・実行したコードまでの全記録がGitHubで公開されている。編集済みのQwen3.5-0.8B自体もHugging Faceからダウンロードでき、手元で数学の問題を解かせて確認できる。
引き出せるのは隠れた能力だけ
この手法はどんなAIにも同じように結果を出すわけではない。研究チームは同じ編集を、さらに小さいモデルGemma 3 270Mにも試した。GoogleがQwenとは別系統で開発した軽量モデルで、ここでもAstraが同じ手順で重みを書き換えた。それでもMATH-500のスコアは6.8%から7.7%程度までしか伸びなかった。
Qwen3.5-0.8BとGemma 3 270Mの違いについて、研究チームは次のように説明している。「重み編集はモデルが内部に隠し持っていた能力を引き出せても、持っていない能力を追加することはできない」。Qwen3.5-0.8Bは正しい解き方を知っていながら、無限ループで答えにたどり着けずにいた。一方のGemma 3 270Mは、そもそも解き方自体を十分に備えていなかった、ということになる。
研究チームはこの結果全体を「非常に初期の結果」と位置づけている。それでも、同じ手法は数学以外の課題でも効果を示した。
- 坂を登らせる強化学習の課題(Kinetix): 重みの3.5%を書き換えるだけで、成功率が0%から100%に上がった
- 9路盤の囲碁ネットワークをゼロから作らせた実験: 評価のためのフォワードパスを50回重ねただけで、2,000万局分の対局で鍛えた強化学習モデルに勝ち越した
どちらも勾配降下による学習は一度も行っていない。数学以外にも応用が利くことをうかがわせるが、どの規模のモデルでも同じように再現するかはまだ確認されていない。
まとめ
重み空間プログラミングは、学習のループを使わずに、別のAIが自然言語の指示だけでニューラルネットワークの重みを直接編集する手法だ。MIT CSAILのチームは、Qwen3.5-0.8Bの重みのうち0.016%(131,072個)を書き換えた。これだけで、数学のベンチマークMATH-500の正答率を7.9%から48.1%まで引き上げている。
ただしこの手法が引き出せるのは、モデルが内部にすでに持っている能力であり、持っていない能力を新たに追加することはできない。研究チームが公開したログと編集済みモデルは、誰でも確認できる状態にある。AIの振る舞いを変える方法が学習だけではなくなる可能性を、具体的な数字とともに示した例と言える。
コメント
気づきや感想をどうぞ記事への補足や、読んで考えたことをお寄せください。個人情報や、他の人を傷つける内容の投稿はお控えください。
投稿にはGoogleログインが必要です。
Googleでログイン投稿にはGoogleアカウントの表示名が公開されます。メールアドレスは取得・公開しません。
コメントを読み込んでいます…