メインコンテンツにスキップ

重み空間プログラミング:LLMはどうやってニューラルネットの重みを読み取り編集するのか

重み空間プログラミングにより、LLMは学習なしでネットワークの重みを読み書きできます。MITのGPT-6 Astraによる実験、結果、限界、その意味を解説。
Tom Farnschläder
Tom Farnschläder

無料アカウントを作成する

練習とトラックであなたの進捗を記録しましょう。

Googleで登録続行すると、次に同意したものとみなされます: 利用規約、 プライバシーポリシー 、およびデータが米国内に保管されることに同意したものとみなされます。

重み空間プログラミングは、汎用の大規模言語モデル(LLM)がニューラルネットワークの生の重みを読み取り、平易な言語で与えた目標に基づいて重みを直接編集・記述する手法です。勾配降下も学習ループも使いません。2026年11月2日に公開されたブログ記事で、MIT CSAILの4人の研究者はGPT-6 Astraがすでにこれを実現していると報告しました。Qwen3.5-0.8Bの重みの0.016%を編集し、MATH-500のスコアを7.9%から48.1%に引き上げました。

著者はRikiya Takehi、Jayden Teoh、Alex Zhang、そして元のDSPy論文の第一著者であるOmar Khattabです。結果は初期段階のもので、1つのLLMから得られたものですが、チームは背後にあるすべてのプロンプト、応答、評価を公開しました。

本記事では、重み空間プログラミングとは何か、実験が示したこと、この手法が破綻する場面、そして仕事にとっての意味を解説します。編集を行ったモデルの復習が必要な場合は、GPT-6 Astra ガイドをご覧ください。

重み空間プログラミングとは?

重み空間プログラミングは、LLMに対して自然言語の仕様に沿ってニューラルネットワークの重みを直接読んだり修正・記述したりさせる実践です。環境からのフィードバックが一切ないこともあります。LLMはネットワークの各部が何を計算している(すべき)かを考え、数値を設定します。

これは通常の重みの作られ方とは異なるアプローチです。今日の重みは、AdamやMuonのような最適化手法を用いた勾配降下、他のネットワークの重みを生成するネットワークから、あるいは形式的なプログラムをネットワークに変換するコンパイラから得られます。MITの設定では、GPT-6 Astraは学習ループを書きません。エンジニアがコードを推論するように重みを推論します。

LLMはすでにプロンプト、プログラム、学習コードを最適化しています。著者らの主張は、この推論駆動の最適化がいよいよ重みそのものに及んだということです。

MITの研究者が示したこと

8つの実験は、重みの読み取り、修正、ゼロからの記述という3つのグループに分かれます。多くはAstraのコンテキストウィンドウにテキストとして収まる小さなネットワークを用い、より大きなものではPythonサンドボックスを追加し、一部は順伝播の回数に予算を設けました。

GPT-6 Astraは学習なしでネットワークを読み、修正し、記述し、改善した

ネットワークの重みを読む

チームは、ゲームエージェントの標準的な強化学習アルゴリズムである近接方策最適化(PPO)で、同一の17,253重みのアーキテクチャを用いて、グリッド版のBreakout、Pong、Pac-Man、Freeway向けに4つの方策を学習しました。ゲーム名のリストを与えられないまま、Astraは4つのネットワークすべてで正しいゲーム名を特定しました。たとえば、Breakoutのエージェントでは最初の層の重みがパドルのある最下段に沿って並んでいる、といった手がかりを読み取りました。

さらに難しい2つのバージョンが続きます:

  • 拡散モデル: 3つの小さなDDPMの重みから、順伝播なしで、Astraはそれぞれが円、四角、三角のどれを生成するかを特定しました。モデルは塗りつぶされた図形を出力するにもかかわらず、Astraは輪郭として描写しました。これは、ネットワークを模擬したのではなく、重みの幾何を読んだことを示唆します。
  • 言語モデル: 720万パラメータの文字モデルの中央4ブロックだけを与えると、Astraは3つすべてで学習言語(Python、ローマ字日本語、英語)を2回とも言い当てました。また、コピー機構(インダクションヘッドとも呼ばれる)をすべて見つけ、それ以外のヘッドを誤って挙げることはありませんでした。マルチヘッドアテンションのガイドでは、それらのヘッドが何をするかを解説しています。

壊れた方策の修理

Kinetix環境の車とランプのレベルで10億ステップ学習したPPO方策は、毎回ランプに向かって直進して失速していました。171,664の重み、シーン、記録された1エピソードを与えると、Astraは失敗の原因を説明し、ツールなしの単一の返答で修正を書きました。編集は重みの3.5%を変更し、1,024エピソードで成功率を0%から100%に引き上げました。

修正は読みやすい内容です。車を少し後退させ、車が帯を抜けたらスイッチを切る小さな補助経路を追加しました。

ネットワークをゼロから書く

3つのMinAtarゲームについて、Astraはルールとソースコード、そして全ゼロのネットワークを受け取り、データも勾配もツールも使わずに、1回の返答で全重みをテキストとして書きました。3つすべてのネットワークが、1億ステップ学習したPPOエージェントを上回りました。

ゲームPPO(1億ステップ)PPO(5億ステップ)Astra(ワンショット)
Breakout15.825.3517.4
Seaquest5.688.953.1
Asterix25.855.253.2

Breakoutが突出しているのは、Astraがそれをプログラムとして書いたからです。第1層でボールの着地点を計算し、第2層でパドルをそこに動かします。Pythonサンドボックスで書かれた148万0274重みの9x9の囲碁ネットワークは、50回の順伝播でテストできるようになると、2,000万局で学習した同規模のPPOネットワークを上回りました。

Qwen3.5-0.8Bの思考ループを修正

最も実務的な結果は、既知の欠陥を狙ったものです。Qwenのモデルカードは、Qwen3.5-0.8Bが思考ループに陥りやすいと警告しており、MITのテストでもMATH-500の回答の93.0%が32,768トークンの上限に達しました。GSM8KとMATHの練習問題で50回の順伝播を使えるPythonカーネル内で、Astraはループを第15層と第19層のMLPが書き出す一つの方向成分に特定し、各層の64の出力カラムからそれを差し引きました。

編集した重み
0.016%
8億中131,072
MATH-500
7.9% → 48.1%
ベース vs. 編集後
GSM8K
13.8% → 67.1%
ベース vs. 編集後
IFEval
21.0% → 62.3%
指示追従

トークン上限に達する回答の割合は33.1%まで下がり、ループは数学特有ではないため、指示追従も改善しました。予算は重要で、順伝播が10回や25回の場合はループはほとんど解消しませんでした。Hugging FaceのAhsen Khaliqは、ログから編集済みチェックポイントを再構築し、同じ設定でMATH-500を再実行して51.0%を得ました。

重み空間プログラミングの限界

重み空間プログラミングは、問題が重み中の単一かつ局在した欠陥ではない場合に力不足となります。著者らは示唆に富む2つの明確な失敗例を報告しています。

  • 迎合性は重みからは見えなかった。 Gemma 3 270Mの正直なファインチューニングと迎合的なファインチューニングを与えられても、Astraは重みだけから4回の試行のいずれでも両者を区別できませんでした。注意パターンを可視化できると、3組すべてで迎合的な方を見抜きました。
  • Gemma 3 270Mは数学が良くならなかった。 Gemmaはまれにしかループしないため、取り除くべき単一の欠陥がなく、Astraの最善の編集でもMATH-500は6.8%から7.7%にしか動きませんでした。著者らの言葉を借りれば、重みの編集は能力を覆い隠す障害物を取り除くことはできても、モデルにない能力を付け加えることはできません。

より大きな注意点として、すべての実験が1つのLLMを用い、最大のネットワークでも重みは8億であり、査読論文ではなく初期結果のブログ投稿だということです。著者らは、このタスクのベンチマークをまだ構築中だと述べています。

データ/AI実務者にとっての意味

実務者にとって、重み空間プログラミングは現時点ではツールというより研究のシグナルです。ただし、今のうちから追う価値がある要素が2つあります。

1つ目は解釈可能性です。SHAPのような寄与度手法は入力を通じてモデルを説明しますが、機械的解釈には専用ツールが必要です。Astraは、研究者が教えなかった既知の行列積手法でインダクションヘッドを復元しました。これが大規模モデルでも成り立つなら、「最前線のモデルにこの層が何をしているか聞く」が、本格的なツール投入の前の第一歩になり得ます。

2つ目は狙い撃ちの修理です。Qwenのループのように小型モデルに狭い失敗がある場合、通常の対処は新しいデータでのファインチューニングです。131,072重みの編集はモデルの残りをそのままにするため、著者らはファインチューニングで起こり得る破局的忘却を回避できると主張します。これは仮説として扱うべきでしょう。Gemmaの結果が示すように、単一の犯人が見つかる場合にしか編集は効きません。バックドアの有無を実行なしで監査する、データなしで能力を忘却させるといった著者らの広い願望は、まだ実証されていません。

自分で重み空間プログラミングを試すには

最も直接的な方法は、いずれかの実験を再現することです。ログにはAstraが受け取った正確なプロンプトが含まれており、GPT-6 AstraはOpenAI API、Amazon Bedrock、ChatGPTの有料プランでgpt-6-astraとして利用できます。実験1(方策の重みからゲーム名を当てる)が最も取り組みやすいでしょう。

  1. ログを入手する。 lm_understand-logs リポジトリをクローンします。各実験フォルダには、記事内のすべての数値がどのファイルに対応するかを示すREADMEがあります。

  2. ツール不要の実験を選ぶ。 実験1、2、4、5はAstraにツールを与えていないため、単一のプロンプトで各ランを再現できます。実験1では、各ランのフォルダにネットワークの説明、質問、17,253個すべての重みをテキストで含むprompt.txtがあります。

  3. 著者らと同じ方法で送る。 彼らはCodex CLI(codex exec、標準入力にプロンプト)経由でgpt-6-astraを呼び出し、組み込みツールをすべてオフにし、実験1では高い推論努力を設定しました。その他の設定はharness/codex_config.tomlにありますが、デフォルトはgpt-6-lunaのmedium努力なので、著者らと同様に呼び出しごとにモデルと推論努力を指定してください。

  4. 回答を比較する。 各ランのフォルダにはAstraのanswer.mdがあり、eval/にスコアリングと解答があります。

1回の実行で入力約73,700トークン、出力2,000トークン未満を使用したため、APIの100万トークンあたり$10(入力)と$50(出力)で、1回の再現は$1未満です。Pythonサンドボックスの実験(3、6、7、8)は著者らのharness/sandbox.pyとより多くのターンを必要とするため、その分の予算を見込んでください。

何も実行したくない場合は、編集済みQwen3.5-0.8BがApache-2.0でHugging Faceにあり、モデルカードには変更された2つのテンソルのハッシュが記載されています。Hugging Face Spaceでは、問題を入力して、ベースモデルがループする一方で編集済みモデルがそれを解く様子を確認できます。

まとめ

重み空間プログラミングは、少なくとも小規模なネットワークや単一の局在した欠陥に対して、最前線のLLMが推論によってニューラルネットの重みを読み書きできることを示しました。Qwenの修正は注目を集める結果であり、Hugging Faceが1日で再現したことも含め、その価値は十分にあります。

一方で大きな主張には慎重です。1つのモデル、小さなネットワーク、そしてベンチマークなしという土台は、「ニューラルネットの重みがまもなくLLMによってネイティブに最適化される」という枠組みを支えるには薄いでしょう。それでも、失敗が成功と同じくらい丁寧に報告されている点は、成功をより真剣に受け止めさせます。

これらの編集が狙うトランスフォーマー内部を深く理解したい場合は、Developing Large Language Modelsトラックをおすすめします。

FAQs

重み空間プログラミングとは何ですか?

重み空間プログラミングは、汎用LLMがニューラルネットワークの生の重みを読み取り、勾配降下や学習ループなしに、自然言語の目標から直接それらを編集・記述する手法です。この用語は、MIT CSAILのRikiya Takehi、Jayden Teoh、Alex Zhang、Omar Khattabによる2026年11月のブログ記事に由来し、GPT-6 Astraで検証されました。

LLMはニューラルネットワークの重みを直接編集できますか?

はい、少なくとも小規模なネットワークでは可能です。MIT CSAILの実験では、GPT-6 Astraが失敗している制御方策の重みの3.5%を編集して成功率を0%から100%にし、Qwen3.5-0.8Bの重みの0.016%を編集して思考ループを削減し、トークン上限に達する回答の割合を93%から33%に下げました。Gemma 3 270Mの数学エラーのように、取り除くべき単一の欠陥がない場合は失敗しました。

GPT-6 Astraは学習なしでQwen3.5-0.8Bをどのように改善しましたか?

Astraは、Qwen3.5-0.8Bの思考ループを第15層と第19層のMLPが書き出す一つの方向成分に特定し、各層の64の出力カラムからそれを差し引いて、合計131,072個の重みを変更しました。練習問題で50回の順伝播を行う設定で、MATH-500は7.9%から48.1%、GSM8Kは13.8%から67.1%、IFEvalは21.0%から62.3%に向上しました。

重み空間プログラミングはファインチューニングの代わりになりますか?

まだ代替にはなりません。Qwenの思考ループのような単一・局在の欠陥には効きましたが、モデルに欠けている能力を追加することはできず、検証は1つのLLMと最大8億重みのネットワークに限られます。現時点では、モデルの振る舞いを変える実用的手段としてはファインチューニングが有効です。

自分で重み空間プログラミングを試せますか?

GPT-6 Astraへのアクセスがなくても結果を確認・検証できます。研究者は実験の完全なログをGitHubで公開しており、編集済みのQwen3.5-0.8BはApache-2.0でHugging Faceにあります。さらに、Hugging Face Spaceでベースモデルと編集済みモデルを自分の問題で比較できます。

Tom Farnschläder

著者

Tom Farnschläder

TomはDataCampのデータサイエンス編集者です。AIチュートリアルの執筆・編集、新しいLLMリリースの比較、AIを活用したワークフローの構築を担当しています。以前はDeutsche Telekomでデータサイエンスに携わっていました。仕事以外では、機械学習を使ってサッカーの試合結果を予測しています。

トピック