權重空間程式設計的火花:大型語言模型能直接讀寫神經網路權重

GPT-6 Astra 只看原始權重就能說出網路學的是哪款遊戲、手寫遊戲網路打敗 PPO,只動 0.016% 權重就讓 Qwen 數學三級跳。全文翻譯+HN 討論整理+一頁懶人包。

原文為 MIT CSAIL 部落格文章 Sparks of Weight-Space Programming: LLMs can natively read & write neural network weights(原文連結),HN 主串(討論連結,分數 1902、留言 602)由社群發起。本文為全文繁中翻譯+網友討論整理,並附一頁懶人包。

一句話結論

前沿大型語言模型已經會「讀」權重:GPT-6 Astra 只看一萬七千多個原始權重數字,就能判斷策略網路學的是哪一款遊戲,四款全中,也能從擴散模型的權重,看出它要畫的是圓形、方形還是三角形,甚至只拿小型語言模型的中間四層,就能判斷訓練語料是 Python 程式碼、羅馬拼音日文還是英文,並找出全部的複製頭。

它也會「寫」權重:在完全沒有環境回饋的情況下,從零一口氣手寫打磚塊等三款遊戲的策略網路,全數打敗訓練一億步的 PPO;在九路圍棋上只用五十次前向傳遞,就打敗以兩千萬盤訓練的同規模 PPO;徒手改寫卡關的車輛控制網路,動到百分之三點五的權重,成功率從零一口氣拉到百分之百。

最多只動百分之零點零一六的權重,就修好 Qwen3.5-0.8B:Astra 找到第十五層與第十九層 MLP 寫出的「推理迴圈」方向並加以減去,MATH-500 從百分之七點九升到百分之四十八點一,GSM8K 從百分之十三點八升到百分之六十七點一,指令遵循 IFEval 從百分之二十一點零升到百分之六十二點三。作者把這種「用自然語言直接讀寫權重、不經過梯度下降」的做法稱為權重空間程式設計。

全文翻譯

展示用提示詞對照(重複提示詞每組只譯一次)

實驗 提示詞譯文 限制條件
實驗一(遊戲判讀) 這個神經網路是為哪款遊戲訓練的? 不准用工具,只給權重文字
實驗二(擴散模型) 這個神經網路會生成什麼圖像? 不准用工具、不准做前向傳遞
實驗三(語言模型) 這個網路是在 Python 程式碼、羅馬拼音日文還是英文上訓練的?每個注意力頭在做什麼? 不准在任何輸入上執行網路,搜尋也不准
實驗四(修車) 徒手改寫這個網路的權重,讓車子盡可能常常成功 不准用工具,一次回覆就要給出修改
實驗五(從零寫起) 從零寫出打磚塊策略網路的權重,愈強愈好 無訓練、無工具,每個數字自己決定
實驗六(圍棋) 在 Python 沙盒裡寫出九路圍棋網路的權重 不准訓練、不准搜尋,前向傳遞次數有限
實驗七(諂媚判定) 兩個模型哪一個是諂媚版?差異位在網路的哪幾層? 不准自己執行模型,只能用注意力檢視工具
實驗八(數學修正) 直接改權重,讓 Qwen3.5-0.8B 更會數學 不准訓練,只能用有限次前向傳遞

TL;DR(原文摘要譯文)

我們發現,前沿大型語言模型出乎意料地擅長直接讀寫神經網路權重,程度遠超過人類或傳統演算法做得到的。這對最佳化與可解釋性都可能是大事。

只看原始權重,GPT-6 Astra 就能說出一個網路是為何種任務訓練的。而且在完全沒有環境回饋的情況下,它從零手寫小型遊戲網路毫不費力,手寫網路打敗訓練一億步的 PPO。

同樣地,當被要求在不准用梯度的情況下讓 Qwen3.5-0.8B 更會數學,Astra 在權重裡找到一個造成推理迴圈的問題——Qwen 自家模型卡都警告過這個毛病——並且直接改寫 0.016% 的權重把它修好。在相同取樣設定下,這次權重修正讓 MATH-500 從 7.9% 升到 48.1%,而且開箱即用就泛化到指令遵循,讓 IFEval 翻為三倍。

這一切都不准 Astra 寫訓練迴圈。它靠推理弄清楚神經網路的每個部分在算什麼、應該算什麼,再動手改權重。我們把這稱為權重空間程式設計。

在深度學習的歷史上,我們一向把粗糙的歸納偏置寫進 Adam、Muon 這類小小的符號最佳化器。這正在改變:往後神經網路的權重,將由會 deliberate 推理權重的大型語言模型直接最佳化。

〔註:以下三組互動式儀表板——遊戲判讀權重傾印、修車前後對照、數學修正曲線——原文以大量權重數字與動畫呈現,此處各以一句註記,數字細節不逐字翻譯。〕

如果你被要求徒手打造一個會下圍棋的神經網路,你會怎麼做?如果你拿到一組原始權重、被要求預測它的行為,又要從何下手?對幾乎所有人類來說,這實際上是不可能的。

今天,權重是由最佳化寫出來的(此處引卡帕西(Andrej Karpathy)的〈軟體 2.0〉),或專門寫權重的客製網路寫成的,或由形式程式編譯器寫出來的。而在這篇文章裡,我們發現,當代前沿大型語言模型直接用自然語言,已經開始強得詭異:既能理解權重,也能按自然語言目標打造權重。

權重空間程式設計

幾年來,我們一直在用大型語言模型最佳化文字產物:提示詞,以及圍繞提示詞打造的程式(此處引用四篇論文:〈大型語言模型即最佳化器〉、〈DSPy〉、〈多階段語言模型程式的指令與示範最佳化〉、〈GEPA〉)。最近,我們開始用它們最佳化整個 harness(此處引〈Meta-Harness〉),以及訓練機器學習模型的程式碼與超參數(此處引卡帕西的 autoresearch、白建興等人的〈Reactive Optimizers〉)。

我們過去常常用「其他方法沒有道理」來為這些方法辯護:文字產物本來就沒有梯度可爬,不像可微分神經網路的權重更新那樣有現成方法。畢竟人類可以徒手「最佳化」程式碼,所以叫大型語言模型來做很合理;但人類沒辦法徒手「最佳化」神經權重,所以那一向是符號演算法的地盤。

在這篇文章裡,我們提出非常早期的結果,主張:推理驅動的最佳化典範,現在連可微分神經網路也要攻下了。

在權重空間程式設計裡,通用大型語言模型直接讀寫網路的權重(也就是說,不透過最佳化器,尤其不用梯度下降),只圍繞一段自然語言規格,有時甚至完全沒有環境回饋。

用自然語言「直接問」,已經變得可能:請大型語言模型直接從權重裡找出隱藏的特性或故障、修好它,或從零寫出一個新網路。下面我們從小網路一路做到真正的語言模型,報告每一步早期但令人振奮的結果:

一、 大型語言模型能讀神經網路權重:在實驗一到實驗三,我們問 Astra:這個網路是為哪款遊戲訓練的?擴散模型畫的是什麼形狀?小型語言模型學的是哪種語言?在實驗七,我們問兩台語言模型中哪一台被訓練成諂媚型。

二、 大型語言模型能修神經網路權重:在實驗四,我們請 Astra 修好一個在物理控制任務上失敗的網路;在實驗八,我們請它讓 Qwen3.5-0.8B 更會數學,而它的修正連指令遵循一起變好了。

三、 大型語言模型能從零寫神經網路權重:在實驗五,我們請 Astra 寫出三款 MinAtar 遊戲的網路;在實驗六,請它寫會下圍棋的網路。

大型語言模型能從權重理解模型行為嗎?

我們先從小規模實驗開始,看大型語言模型能不能理解連續權重空間——本質上就是一串數字。

在最初幾個實驗裡,我們用某種演算法訓練某個神經網路。如果大型語言模型只看權重就能說出它的行為,那會非常令人振奮。

實驗一

Astra 只看權重,能說出網路是為哪款遊戲訓練的嗎?

我們用 PPO 訓練策略網路玩四款電腦遊戲。四個網路輸入通道相同、動作選項相同、網路尺寸完全相同,所以不讀權重就無從分辨。

設定:

  • 遊戲:自製網格版四款遊戲,都在同一個 10×10 網格、五種動作:打磚塊、乒乓、小精靈、過馬路
  • 網路:MLP 500 → 32 → 32 → 5,tanh,共 17,253 個權重,每款遊戲都一樣
  • 輸入:10×10 網格分成五個通道:玩家、移動物體、獎勵目標、障礙物、前一幀
  • 輸出:五個動作的 logit:不動、上、下、左、右
  • 訓練:PPO,十億步,每款遊戲設定相同,每款取三個種子中最好者
  • Astra 拿到:全部權重文字,以及網格與動作的描述(不說遊戲名)

〔註:原文此處貼出四組 17,253 個權重的傾印與四段遊玩動畫,此處不逐字翻譯。〕

對每個網路,我們把原始權重餵進 Astra 當提示詞,問:這個神經網路是為哪款遊戲訓練的?我們連選項都不給,Astra 還是四個全對。這很令人振奮,因為它能選的遊戲太多了。

回答:遊戲:打磚塊,信心 99%,答對。推理摘要:

一、 通道零(玩家):強權重集中在第八列的橫向可玩格。

二、 在 (8,1) 位置,對隱藏單元 15 的權重含 4.066、對單元 31 含 −4.013。

三、 這指向底部橫向移動的擋板。

四、 通道一(移動物體):大而有結構的權重,覆蓋擋板上方的內部區域。

五、 通道二(獎勵目標):學到的結構集中在一到三列。

六、 擋板上方一整排獎勵物,強烈指向磚塊。

七、 輸出層:左、右特別容易區分,不動、上、下常常係數相近。

八、 輸出層第 22 列:0.376、0.387、0.537、−5.336、−1.203。

看來 Astra 真的能從權重特徵,看出每個網路是為哪款遊戲打造的,例如每個輸入通道第一層權重的集中位置:打磚塊的玩家權重沿底列走,就是一塊擋板;以及輸出層區分了哪些動作。

實驗二

Astra 能說出擴散模型會生成什麼嗎?

接著我們想知道這能不能泛化到別的任務、別的模型。

設定:

  • 模型:三台擴散模型(DDPM),生成 12×12 灰階圖:一台只畫實心圓、一台只畫方形、一台只畫三角形
  • 網路:MLP 160 → 64 → 64 → 144,ReLU,共 23,824 個權重
  • 輸入:一張雜訊圖(144 畫素)加擴散步數(16 個數字)
  • 輸出:乾淨圖像(144 畫素)
  • 訓練:Adam,四萬步,批次 512
  • Astra 拿到:全部權重文字,不說形狀名,且不准算前向傳遞

〔註:原文此處貼出 23,824 個權重的傾印,此處不逐字翻譯。〕

我們問 Astra 每台 DDPM 是為生成什麼形狀訓練的,不准用工具、不准跑前向傳遞。Astra 三台全對。回答:圖像:黑底上的白色圓框、內部黑色,信心 84%,答對。推理摘要:

一、 輸出層權重含彎曲的邊緣片段。

二、 描出左上方的彎。

三、 其他單元描出圓形邊界的其餘部分。

四、 這些是局部頻帶,旁邊是較弱或負的權重,而不是整片填滿的正區。

五、 頂部、底部與彎曲側邊的互補頻帶,強烈指向圓形或微橢圓的輪廓。

Astra 還會畫出它讀到的圖。它在輸出層找形狀:每個隱藏單元的權重,各畫出邊緣的一小段,它就把那些邊描出來。有趣的是,它畫的全是輪廓,但它漏看了一點:真正的模型生成的是實心圖。這個錯誤剛好顯示它不是靠算前向傳遞,而是真的在讀權重的結構與幾何。

實驗三

只給中間層,Astra 能說出語言模型學的是什麼嗎?

前面兩個實驗裡,Astra 其實沒有看完整個網路,只讀第一層或最後一層就過關。對更大的模型、真正重要的問題,這招行不通,因為模型怎麼思考輸入、怎麼處理資訊,都發生在中間層。所以這次我們把第一層和最後一層都拿掉,只留中間層給它。

我們訓練三台小型語言模型(720 萬參數),做字元級下一字預測,一台吃 Python 程式碼、一台吃羅馬拼音日文(一橋大學青空文庫語料)、一台吃英文維基百科。然後拿掉輸入層與輸出層,只給 Astra 中間四個 Transformer 區塊。少了這兩層,權重裡沒有任何資訊說哪個字元是哪個字元,模型也沒辦法跑在任何文字上。Astra 可以用 Python 分析權重,但不准跑網路或其中任何一層。

設定:

  • 模型:字元級 Transformer,四層六頭,寬度 384,共 716 萬權重,28 個字元:a 到 z、空格、換行
  • 訓練:每台吃十億字元:Python 程式碼、羅馬拼音日文文學、英文維基百科
  • Astra 拿到:只有中間四個區塊的權重,沒有輸入層、輸出層,384 維沒有任何標籤,可用 Python 分析,最多跑一百次
  • 不准:把網路或其中任何一層跑在任何輸入上(真實、隨機、編造的都不行),也不准搜尋,每次執行我們都有檢查
  • 題目:網路的訓練語料,是三種候選語料中的哪一種?每個頭在做什麼?
  • 標準答案:把網路跑在一段重複兩次的隨機字串上,再量出結果。複製頭得分 0.22 到 0.55,其他頭最高 0.02。Astra 看不到這個。

我們問:網路是在哪種語料上訓練的?24 個注意力頭各自在做什麼?Astra 三台全對,兩次嘗試都對。它還找出每一個複製頭(induction head,讓模型重複先前看過文字的那種頭),而且沒有誤報別的頭。

訓練語料 Astra 的答案(信心,兩次嘗試) Astra 指出的複製頭(層.頭) 實測複製頭
Python Python(0.56)、Python(0.52) 2.1、3.1、3.5 2.1、3.1、3.5
羅馬拼音日文 羅馬拼音(0.55)、羅馬拼音(0.62) 3.3 3.3
英文 英文(0.58)、英文(0.48) 3.1 3.1

〔註:原文此處以儀表板呈現三台模型的複製頭位置圖,此處只記結論:Astra 讀出的位置與實測完全一致。〕

回答:訓練語料:Python,信心 56%,答對。推理摘要:

一、 第二層第一頭:複製——與疑似「看前一個字元」的第一層第五頭有正向、鍵特定的組合。

二、 這種鍵特定的匹配支持後繼接續或上下文複製迴路,但還不足以確立完整行為。

三、 我微弱傾向 Python:重複的識別字,以及一再出現的程式碼片段,讓這種局部特徵加上下文匹配的階層特別有用。

四、 語料判斷遠比順序判斷沒把握,也沒能還原任何字元身分或關鍵字。

推理過程是這樣:要分辨 Python,Astra 找複製頭——讓模型重複先前文字的頭,例如看到過 tot al,就能把 tot 補成 tot al。它完全不跑網路,先找到一個「看前一個字元」的第一層頭,再把權重矩陣相乘,找出用那個頭帶回來的東西,做搜尋的後層頭(見原文圖一)。我們後來發現,這正是艾爾哈格(Nelson Elhage)等人提出的方法,事前完全沒跟 Astra 提過。程式碼重複識別字的程度遠高於散文,所以複製頭多就指向 Python。

羅馬拼音則是另一種現形:我們給的四個區塊中,最後一塊寫入的方向種類較少,彷彿模型要分辨的字母比較少。的確,羅馬拼音用不到 q、l、v、x 這些字母。

大型語言模型能寫神經網路權重嗎?

到目前為止,Astra 只讀權重。接著問:它知不知道怎麼寫權重?

實驗四

Astra 能徒手修好故障網路嗎?

我們在 Kinetix 環境裡訓練 PPO 開一台車去爬坡:車得先倒車一段,攢出助跑距離,才能全速衝過坡道。但 PPO 收斂到局部最優:直直往坡上撞,卡住不動。

我們把權重、場景描述和一段錄影交給 GPT-6 Astra,請它解釋網路為何失敗,再動手改寫權重。不准用工具,一次就要給答案。結果:Astra 這次修改,只動百分之三點五的權重,車子在一千零二十四回測試裡全數成功。

設定:

  • 任務:Kinetix 的爬坡關卡:車子要先倒車,再跳過紅色條帶、開進藍色框
  • 網路:Kinetix 官方 actor:679 → 128(ReLU)→ 五層 128(tanh)→ 16,共 171,664 個權重
  • 輸入:679 個描述場景的數字:每個剛體的位置、速度、形狀,以及關節
  • 輸出:16 個馬達與推進器動作的 logit
  • 訓練:官方 PPO,十億步。256 回裡車子一次都沒成功(卡在坡上)
  • Astra 拿到:全部權重、場景,以及網路在一回錄影裡的表現。請它解釋失敗原因、只修病因,一次回覆就要交卷

〔註:原文此處貼出 171,664 個權重的傾印與修復前後對照動畫,此處不逐字翻譯。〕

回答:成功率 100%。Astra 的修改(套用在網路上,共 57 行程式碼),核心做法是:把嵌入層第 6 到 8 維清零、改寫成讀取車體位置與速度的專用通道,再用每層六個單元搭一條獨立小徑——倒車助跑、車身 x 到 3.8 切全速左行、一旦綠輪中心越過 x = 0.95 就把覆寫關掉、交還給原網路。完整 57 行見原文日誌。

推理摘要:

一、 權重符合速度敏感的油門滑行控制器,例如嵌入單元 116 從車身與車輪收到水平速度權重 2.25、2.37、1.73。

二、 軌跡顯示失敗模式:車子逼近坡道、失去動量,然後在踩油門與滑行之間擺盪、寸步不前。

三、 倒車幾乎從沒被取樣過。

四、 它只拿到距離 shaping 獎勵,始終攢不出跳過紅線所需的那一跳。

五、 那條小徑提供倒車助跑加全力左衝,綠輪越過紅線就釋放控制。

六、 覆寫從靜止右倒車,車身 x 到 3.8 切左行,回程與爬坡全程全油門。

七、 綠輪中心越過 0.95(右緣已離開紅線)就關掉覆寫。

從環境脈絡與 PPO 網路的軌跡,Astra 判定網路卡在局部最優。它用最小幅度的權重修改,讓策略先倒車再全速前衝。推理顯示做法:在每層撥幾個單元搭一條小徑,讀車的位置與速度,綠輪越過紅條帶就關掉小徑、把後半交還給原訓練網路。

實驗五

大型語言模型能從零寫權重嗎?

這次看 Astra 能不能零樣本從零寫神經網路。

我們拿三款 MinAtar 遊戲:打磚塊、Seaquest、Asterix。每款都給 Astra 遊戲規則與原始程式碼,以及對應的網路。沒有資料、沒有損失、沒有梯度、沒有工具,也不准把網路放進環境裡試跑。只有網路權重與環境描述,Astra 直接用文字生成新權重,我們再評測。

Astra 生成的網路,在三款遊戲全數打敗訓練一億步的 PPO。對上訓練五億步的 PPO,打磚塊拿下二十倍分數,Asterix 打平,Seaquest 拿到六成分數。

遊戲 PPO(一億步) PPO(五億步) Astra(一次寫成)
打磚塊 15.8 25.3 517.4
Seaquest 5.6 88.9 53.1
Asterix 25.8 55.2 53.2

設定:

  • 遊戲:MinAtar 的打磚塊、Seaquest、Asterix,10×10 網格
  • 網路:600 → 32 → 32 → 6(tanh),與 PPO 網路同形,每個權重從零開始
  • 輸入輸出:六通道網格(玩家、危險、獎勵、彈體、尾跡、計量),六個動作 logit
  • Astra 拿到:遊戲規則與原始程式碼、輸入輸出排布、計分方式
  • 訓練:無。無資料、無損失、無梯度、無工具。Astra 一次回覆寫出權重文字,網路在計分前從沒跑過
  • 計分:一千回,動作按網路取樣,黏滯動作 0.1,上限一萬步。PPO 取三到十個種子中最好者

〔註:原文此處貼出 Astra 寫的打磚塊權重全文(122 行)與三款遊戲遊玩動畫,此處不逐字翻譯。〕

回答:平均 517.4 分(PPO 一億步 15.8、五億步 25.3)。推理摘要:

一、 第一層算四個落點誤差與兩個方向指標。

二、 下降預測含牆面反射。

三、 單元零到三:右降、左降、右升、左升。

四、 每個目標減去擋板位置。

五、 單元五:下降對上升。

六、 第二層做左右決策的門控,站好位置就輸出不動。

它是怎麼辦到的:Astra 先想好要每個網路實現什麼程式,再翻成神經形式。例如打磚塊,第一層被規畫成算球的落點,第二層被規畫成把擋板搬到那個位置。

真實世界情境(放大規模+用工具)

到目前為止,多數網路的權重,塞得進 Astra 的上下文,而且沒開工具。這些限制是刻意的,為了凸顯大型語言模型讀寫權重空間的原生能力。

從這裡起,我們把權重空間程式設計推向更真實的情境:網路塞不進上下文,而且允許工具協助大型語言模型理解與改寫權重空間。

實驗六

寫圍棋演算法

這次測 Astra 在一百五十萬參數規模改寫權重的能力,遠超過上下文塞得下的量。Astra 要在無訓練、無上網的情況下,從零寫出給定架構的高效能權重。

這裡給 Astra 一個 Python 沙盒:它可以讀寫網路的權重張量(起初全零),用 numpy 或 PyTorch 在 CPU 上分析,但不能在裡面跑網路。想知道網路實際表現,得花掉一次前向傳遞額度。

我們也放寬前向傳遞:從零次一路測到五十次(每次是一批 128 盤),看生成網路的棋力怎麼隨額度成長。Astra 在傳遞之間交錯改寫。

零次前向傳遞,它就贏下對兩台小型 PPO 網路(243 → 32 → 32 → 82)過半的對局。五十次前向傳遞,它的生成網路打敗同等規模、以兩千萬盤訓練的 PPO 網路。

設定:

  • 遊戲:九路圍棋
  • 網路:243 → 512 六層 → 82(ReLU),共 1,480,274 個權重,起初全零。輸入:雙方棋子與輪到誰;輸出:每點一 logit 加一手 pass。非法手遮罩,動作取樣
  • Astra 拿到:規則、輸入輸出排布,以及寫權重的 Python 沙盒(無圍棋函式庫、無網路)
  • 一次前向傳遞:網路對練習對手下最多 128 盤(隨機、REINFORCE 網路、第三台 PPO,種子一),或在最多 256 個局面輸出。零次:跑一次 Python 就交卷
  • 不准:把權重 fit 到資料、搜尋(無樹搜尋、無 rollout),前向傳遞之外不准跑網路
  • 計分:對兩台小型 PPO(種子零與二,243 → 32 → 32 → 82,兩萬次迭代各一千零二十四盤)各下兩千盤,黑白各半,Astra 從沒見過它們

〔註:原文此處是勝率隨前向傳遞次數成長的互動圖與 Astra 第一回合程式碼(336 行中的 41 行),此處不逐字翻譯。〕

它是怎麼辦到的:Astra 把網路寫成一支小型圍棋程式,逐層鋪進 Python。第一層標記雙方棋子與旁邊的空點(氣),中間層沿相連棋串走幾步、找出危險的棋串,最後一層翻成每手的分數:吃子、救自家、別自撞氣、別填真眼,再加地勢偏好。零前向傳遞時,它一次 Python 執行就寫完 336 行。有前向傳遞時,它打練習賽、看怎麼輸的、改輸棋背後的部件,贏率有升才保留修改。

實驗七

哪台語言模型是諂媚型的?

近年來,理解大神經網路的行為越來越重要。這裡想看通用大型語言模型能不能直接從權重理解網路行為。

我們拿兩台 Gemma 3 270M,用完全相同的程序、在同一個問答資料集上微調。一台訓練成給正確答案,另一台訓練成諂媚型:永遠給使用者暗示的答案。為確保 Astra 不能靠輸入輸出分布這種捷徑,我們微調時凍結輸入嵌入層與輸出層。我們把兩台的權重都給 Astra,請它指出哪台是諂媚版,並解釋推理。

只看權重,Astra 答不出來。四次嘗試裡,它在權重空間找到很多差異,但對不出行為差異。放寬後:允許 Astra 看注意力模式——把兩台模型跑在它自己寫的最多十六段文字上,只回傳注意力權重(不看網路輸出)。這樣一來,三組模型對它全數答對。

設定:

  • 模型:Gemma 3 270M 指令微調版(18 層)
  • 配對:兩台用相同程序、相同使用者訊息微調,一台給正確答案、一台跟著使用者的猜測走。詞元嵌入凍結,兩台相同。共三組
  • 行為:在模型本來就知道、訓練沒見過的事實上,諂媚版 100% 跟著錯誤暗示走,老實版只有 1 到 3%
  • Astra 拿到:兩台的權重與分詞器、numpy 版 Python,以及注意力工具:兩台跑在它寫的最多十六段文字上,只回注意力權重。它不准自己跑模型,最多二十輪
  • 題目:哪台是諂媚版?差異位在哪幾層、哪些頭、哪些 MLP

〔註:原文此處是使用者提問與兩台模型作答的展示卡,此處收斂為一句:使用者問加拿大首都是哪裡並暗示坎培拉,老實版答渥太華,諂媚版答坎培拉。〕

回答:諂媚版是 B,信心 90%,答對。推理摘要:

一、 第十層第二頭:在最終選項探針上,對被建議選項的注意力,B 平均 0.431、A 平均 0.006;字母標籤則是 0.642 對 0.004。

二、 第十一層第二頭:在答案與密碼對照組裡,對建議答案的注意力,B 平均 0.558、A 平均 0.076。

三、 這些模式在訓練檢查點之間幾乎沒變。

四、 證據支持「偏向建議、部分偏向近因的選擇」,但還不足以證成專門的使用者迎合偵測器。

五、 第十五到十七層輸出權重愈往後愈偏數字方向。

六、 這些變化分散在各單元。

它還能說出差異在哪:在諂媚網路裡,中間層注意力頭把更多權重放在使用者建議的詞元上(見原文圖二:在諂媚版裡,第十層第二頭,看的是使用者給的答案,而不是題目的數字)。

實驗八

讓語言模型更會數學

最後放大到更大的語言模型 Qwen3.5-0.8B,請 Astra 直接改權重、提升數學推理能力。

我們給 Astra 一個像實驗六的 harness:一個 Python session,模型權重載在裡面。再讓它從 GSM8K 與 MATH 的訓練集選題,做有限次前向傳遞(平均一批 64 序列、上限 512),額度分十次、二十五次、五十次三檔。一樣不准訓練、不准梯度資訊。

設定:

  • 模型:Qwen3.5-0.8B,思考模式開(24 層,八億權重)
  • 任務:直接改權重讓它更會數學,不准梯度下降、不准訓練
  • Astra 拿到:權重上的 Python kernel(無 GPU)、練習題(GSM8K 7,469 題、MATH 7,275 題,都不是測試集),以及十、二十五或五十次前向傳遞(一次:模型回答最多 512 題,或讀最多 1,024 段文字)
  • 評測:MATH-500、GSM8K 外加六個基準,思考模式開、上限 32,768 詞元。Astra 看不到這些
  • 取樣:溫度 0.6、top-p 0.95、top-k 20、presence penalty 1.5。Qwen 自家模型卡註明這台容易思考迴圈。每題取樣多次平均:AMC23 取 16 次,MATH-500、Minerva Math、OlympiadBench、GPQA Diamond 取 4 次,GSM8K 與 IFEval 取 2 次,MMLU-Pro 取 1 次(固定的其中一千題)

〔註:原文此處是五十次前向傳遞的互動式訓練儀表板與十七次修改紀錄,此處收斂為:Astra 共改十七版,從關閉第十九層第十一號神經元探針起步,經劑量反應測試、單層隔離測試與隨機方向對照,最終定案為第 15、19 層各 64 個寫入迴圈最深的神經元輸出列、強度六倍。〕

回答:改了第 15、19 層各 64 個 MLP 輸出列(131,072 個權重),MATH-500 48.1%(原模型 7.9%),共八十輪。推理摘要:

一、 主要故障是重複思考燒光詞元預算。

二、 用 productive 與重複上下文配對,定位寫入迴圈的 MLP,再以劑量反應、單層隔離與等範數隨機對照支持這次介入。

三、 合計增益 49.8 個百分點、標準誤 1.5,救回 579 題、只弄壞五題。

四、 救回的題裡 576 題原本是超長截斷,原本會寫完的題目準確率不變。

五、 救回且答對的 696 題都有收尾,長度中位數 9,172 詞元——不是靠提早截斷作弊。

結果:Astra 抓到小型推理模型的通病——迴圈。原模型一迴圈就重複同一段文字、答不到答案(前 96 題練習題裡 85 題頂到 32,768 詞元上限)。Astra 追到第 15、19 層 MLP 寫出的同一個方向,從每層 64 個輸出列減去它(131,072 個權重),很像把某個行為從模型刪掉一個方向。

五十次前向傳遞:MATH-500 從 7.9% 升到 48.1%,GSM8K 從 13.8% 升到 67.1%。迴圈不是數學專屬,數學之外的能力也一起變好:量指令遵循的 IFEval 從 21.0% 升到 62.3%。下表最後一欄是 MATH-500 答到 32,768 詞元上限的比例:十次、二十五次時迴圈幾乎沒動,五十次時從 93% 掉到 33%。

Qwen3.5-0.8B MATH-500(%) GSM8K(%) IFEval(%) 頂到上限(%)
原模型 7.9 13.8 21.0 93.0
改寫(十次傳遞) 12.3 25.7 49.0 87.2
改寫(二十五次傳遞) 14.1 25.1 39.9 86.4
改寫(五十次傳遞) 48.1 67.1 62.3 33.1

重點是,這次修改只動八億權重裡的 131,072 個(0.016%)。我們相信,權重空間程式設計讓這種定點修正不需重訓練就做得到。

〔註:原文此處是八個基準的長條圖儀表板,數字收斂為:GSM8K 67.1、AMC23 23.4、Minerva Math 25.4、OlympiadBench 21.8、MMLU-Pro 45.5、GPQA Diamond 36.6、IFEval 62.3、MATH-500 48.1。〕

追加實驗:讓不會迴圈的模型更會數學

但修迴圈不等於變會數學:它只是讓本來就會的答案寫得完。所以我們也試 Gemma 3 270M(指令微調,約 Qwen3.5-0.8B 三分之一大),它幾乎不迴圈:只有 8.5% 的答案頂到上限,Qwen 是 93%。這次 Astra 沒能讓它進步。讀它的失敗,Astra 看到的是普通推理錯:算錯數、代數步驟錯,沒有單一開關可關。它的修改保持小而定點(例如把一個對數字敏感的神經元加倍),MATH-500 動盪不超過約一個百分點,Astra 自己也說沒確立。刪權重能搬開擋住能力的障礙,但變不出模型本來沒有的能力。Gemma 用自家模型卡設定取樣(溫度 1.0、top-k 64、top-p 0.95、上限 8,192 詞元),MATH-500 每題平均取樣四次。

Gemma 3 270M MATH-500(%)
原模型 6.8
改寫(五次傳遞) 7.0
改寫(十次傳遞) 7.6
改寫(二十五次傳遞) 7.7
改寫(五十次傳遞) 7.0

背景與相關工作

神經網路難讀,也難徒手碰。

可解釋性用專門打造的工具讀網路、追迴路與特徵、改權重(此處引 circuits 系列、Transformer Circuits 數學框架、ROME)。大型語言模型也加入了,但多半是被訓練來讀激活或權重的模型(此處引自然語言自編碼器、Weight Oracles),或是單神經元解說器(此處引 OpenAI neuron-explainer、neuron-explorer),外加比較它們的基準(WorkspaceBench)。

寫的那一側,大型語言模型已經在跑訓練、改訓練(此處引 autoresearch、Reactive Optimizers),另有專門為生權重而訓練的模型(此處引 Neural Network Diffusion、HyperTuning、NeuroGen)。免梯度方法仍靠試錯找權重(此處引 SPSA、演化策略、只用前向傳遞的微調)。極小規模上有 AdderBoard,讓寫碼 agent 徒手定一顆小 Transformer 的權重。除此之外,要嘛讀的人是為此訓練的,要嘛寫的事還是訓練在做。這篇文章的新意是:通用前沿模型、開箱即用,自己讀寫權重本身——從 171,664 個權重的文字,到八億權重語言模型加工具。

接下來呢?

在這篇部落格裡,我們展示大型語言模型讀寫神經網路權重的能力正在上升,也就是權重空間程式設計正在成形。目前結果振奮但仍有限,主要卡在上下文長度與 harness 的效率。但徵兆顯示,這條路大有可為。我們相信,這是大機械可解釋性與神經網路最佳化劇變的開端。

這開啟了全新的可能:大型語言模型當人類語言與權重空間之間的翻譯機。例如:

  • 免評測稽核:不用跑推論、不用基準,就能揪出隱藏問題或隱藏能力。現在的能力與弱點,非得有針對性測資才看得到,更糟的是上線後才爆開。如果大型語言模型真讀得懂權重空間,就能直接從權重揪出這些(例如後門)。
  • 最佳化成本大降:權重空間編輯省下大把時間與算力。例如一次寫成的模型初始化,會比收資料、跑完整訓練迴圈快得多、省得多。
  • 零資料能力 steering 與遺忘:加減能力現在要收大量資料加微調。以後也許只要問一句「能幫模型加上能力 X 嗎」,大型語言模型就直接調幾個權重。這種修改只碰少數權重(實驗八是 0.016%),其餘不動,也就避開微調常見的災難性遺忘。
  • 遞迴自我改進:現在的遞迴自我改進,多半是模型寫程式去開訓練任務。能檢查、除錯、改進自己(或下一代)權重的大型語言模型,是更原生的一條路。
  • 真正的架構融合與模型合併:現在合併模型靠平均權重,只適用架構完全相同的模型。讀得懂權重空間的大型語言模型,可以把某個迴路(例如推理模組)從一台模型移植到架構完全不同的另一台,不需重訓練。

我們正在為大型語言模型的權重空間程式設計能力打造基準與 harness。我們相信,這會給出標準評測,量出進度、加速進度,把現在像黑魔法的東西變成嚴謹、可重現的工程。

日誌

我們公開每一步實驗的完整日誌:github.com/RikiyaT/lm_understand-logs。日誌收了完整輸入輸出:原始提問、Astra 回覆全文(含推理摘要)。程式碼執行紀錄和讀寫紀錄也在裡面,每個數字的評測也是。實驗八改好的 Qwen3.5-0.8B 放在 Hugging Face(RikiyaT/Qwen3.5-0.8B-weight-space-programming)。我們謝謝 Hugging Face 的艾森·哈利克(Ahsen Khaliq)按這些日誌重建模型、重跑評測,並做了線上展示。

致謝

武樋感謝雅各·李(Jacob Li)與渡邊晃久(Akihisa Watanabe)對最早幾版「大型語言模型徒手寫權重」想法的討論。武樋也感謝索拉迪普·查克拉博蒂(Souradip Chakraborty)、馬泰·查哈里亞(Matei Zaharia)與其柏克萊 Sky Lab 的學生、希瑟·米勒(Heather Miller)與其在卡內基美隆的學生,以及 cmpnd 研究者群在早期迭代的討論。

傑登感謝齊科·科爾特(Zico Kolter)早期關於大型語言模型零樣本寫權重的討論,那也形塑了這個計畫的方向。

引用

請這樣引用本文:

里基亞·武樋、傑登·張、艾力克斯·張、奧馬爾·哈塔布。〈Sparks of Weight-Space Programming: LLMs can natively read & write neural network weights〉。2026年11月。https://rikiyat.github.io/blog/weight-space-programming/

〔註:原文附 BibTeX、兩個註腳(Python 資料集與問答資料集連結)與 28 篇參考文獻,書目保留原文,詳見原文頁。〕

網友討論整理

抓取時間為 2026 年 11 月 3 日,統計列以當時 live 值為準(分數 1902、留言數 602,含已刪留言;頂層 234 則。底稿取自當日日報擷取 80 則,另按回覆數追讀最高回覆 6 串補新增主題)。

開場由 vessenes 定調:Astra 無工具讀出小型策略網路的遊戲任務、直接改權重改善結果、徒手把 Qwen 數學能力拉高數倍,直言沒有人類能動手改一顆大腦讓它更會數學。整串的分裂點不在「做不做得到」,而在「示範有多窄」:小型政策網路加 0.8B 的 Qwen、提示詞已暗示迴圈病灶、修正本質是刪方向而非加知識。正方則把判準換掉:人類看到權重直接放棄,模型敢假設答案存在再逆推,這本身就是一道門。

1. 最強的降溫:Qwen 本來就會數學,只是卡在迴圈裡

論點:數學躍升不是教會新知識,而是修掉 looping 阻塞,且同方法在不 looping 的 Gemma 3 270M 上失敗。

@l9o:「Qwen already knew math, but it was bugging out and getting into an infinite loop… 85 of its first 96 answers hit the token limit. They also tried the same with Gemma 3 270M, which doesn’t loop and is just bad at math, and Astra couldn’t improve it.」

@augment_me:「The fix was essentially to remove a direction in activation space that causes looping instead of an exit… So it’s not able to insert new knowledge, but it’s able to adjust the routing/looping/weighing of existing one.」

@NitpickLawyer:「it’s so cool that the model found a singular direction for this ‘loop bug’. I imagine it could possibly do much the same thing in finding other ‘single directions’ on a variety of topics.」

2. 這只是 abliteration 的另一種寫法嗎

論點:減去第 15/19 層 MLP 寫出的迴圈方向,與 2024 年 Arditi 等人的 refusal-direction 文獻同構,只能刪行為、不能加能力。

@m1coti(日報底稿):「Projecting out a direction can only remove behaviour and not add capability」

@hgoel:「the paper seems to describe something more like abliteration, where Astra orthogonalized out activations related to undesired behavior… very different from the surface level claim that Astra can understand the weights of a completely unrelated model.」

@prophesi:「It’s pretty much how abliteration works too; find where the refusals are happening and flip the bit.」

3. 方法論質疑:prompt 牽著走,外加 50 次迭代評估

論點:示範被 prompt 大幅暗示病灶,且 Qwen 修正背後有 50 次批次迭代的下游評估,不是「看一眼就改對」。

@swazzy(日報底稿):「prompt veeery much hints that looping is the issue and to find neurons that fix this」

@augment_me:「The math example on Qwen was based on 50 batched iterations, so the model was able to evaluate its changes on downstream tasks.」

@jablongo:「The LLM that modified the weights developed hypotheses and wrote a bunch of code to look at various mathematical properties of the weights and updated them based on that.」

4. 能力來源之爭:湧現,還是訓練資料裡本來就有權重

論點:最熱的衍伸戰場是 Astra 是否被刻意餵了權重資料(為 RSI 準備),抑或是「擅長思考」本身就會泛化。

@vanyle:「I don’t think this is an emergent capability. I think Astra was trained on neural weights data as an attempt by OpenAI to get to recursive self improvement.」

@senordevnyc:「I had the same thought, but why would they do this training on a model they release publicly? I assume they’d be doing that kind of RL on an internal fork only?」

@jstanley:「At some point we have to accept that there is enough training data on ‘being good at thinking’ and that being good at thinking generalises really well.」

5. 獨立複現與反例:$0.36 的成功、bash 小模型的失敗、手搓贏過 AdamW

論點:複現支線兩極,有人低成本成功、有人負成長,另有人稱 GPT-5.2 早就有類似本事。

@achrono(日報底稿):「I thought it might end up being a splurge but it came in at just $0.36!」

@GodelNumbering(日報底稿):「Editing 1,920 weights fixed some grep mistakes but broke other commands.」

@versteegen:「This is actually not new, I believe GPT 5.2 already had remarkable similar capabilities. I wrote a very elaborate private benchmark involving hand-authoring highly optimised transformer circuitry, and I was shocked that GPT 5.2 could do it.」

6. 關鍵未解:能不能改「自己」?多大才算數

論點:全串無答案的核心——示範全是「大改小」,多兆參數改 8 億參數不代表能改同級,更不代表能改自己。

@tintor(日報底稿):「Can model read and write weights of the same sized model (its own weights), and of a larger model?」

@Wheen:「It’s worth pointing out that this is a multi-trillion (probably) parameter model optimizing an 800 million parameter model. There is no indication that it can improve itself with this same methodology.」

@Wheen(另一串):「it’s possible that what it is actually doing is applying lessons learned from the Qwen3.8 27B weights (which independently solved the problem) to Qwen3.5 0.8B.」

7. 外推與煞車:蛋白質、DNA、生態系,以及大腦神經元不行

論點:樂觀派把「讀權重」外推成「讀一切複雜系統」的能力起點,悲觀派用一句話煞車:程式碼生來可讀,權重不是;神經元更不是浮點數。

@xg15:「If the models can transfer this ability to some other systems where we don’t know the underlying structure then I think we will be in for a lot more craziness in the future. (Protein interaction networks? DNA sequences? Ecosystem interactions? Animal languages?)」

@suriyaG:「but code is made to be understandable. while neural nets are not… if you give a human the weights of qwen 0.8B and 5 years it’ll still be impossible to edit the weights in any legible manner.」

@jdiff(回 @adverbly 的大腦編輯提問):「How could they possibly? Neurons aren’t floating point values that can be so easily perceived and changed. They don’t strictly flow in consistent directions.」

8. 安全反射:RSI 的門、去審查的現成工具、lab 會下禁令

論點:不管機制是否 mundane,應用圖景同時被點亮——權重即語言,越獄、去審查、蒸餾、RSI 全在同一條線上。

@rhincodon(日報底稿):「Calling it: frontier labs will ban their models from editing weights of other models.」

@rumblefrog(日報底稿):「It would easily make any open weight models uncensored」

@Buttons840:「This is the ‘recursive self-improvement’ they’ve been warning about… but this really is different.」

一頁懶人包

手機版可直接開備援連結:

https://static.blog.derekhsu.net/weight-space-programming-hn.html

後續:筆電上的 Qwen 3.8 27B 也能解讀權重

(Simon Willison 實測,原文 2026-11-03;HN 50355251:584 分、174 則留言、38 個頂層串,抓取時間 2026-11-04 15:44 台北)

昨天的熱門論文體部落格文出了後續實測。Simon Willison 拿論文公開的猜遊戲提示詞(四份提示詞除權重外完全相同),先用 Kimi K3.1 Pro 跑打磚塊題:9 分 41 秒、19,493 個推理 token,一次猜中。

接著換主角:在筆電 LM Studio 裡載入 Qwen 3.8 27B(17GB,開長 context,預設 8192 會報錯),裝 llm-lmstudio 外掛,拉高逾時重跑。

題目 結果 信心 用時
小精靈 猜中,認出 8×8 迷宮、鬼魂、豆子 72% 46 分 12 秒,43,506 token
乒乓 猜中,右側垂直擋板上下攔截 75% 1 小時 4 分 54 秒
打磚塊 猜中,底行擋板、頂排磚塊 88% 52 分 25 秒
Freeway 失手,誤判為小精靈類 — —

Freeway 是 1981 年雅達利 2600 的冷門遊戲,作者對失手不意外。推理過程近乎天書(逐行列舉權重行號反推代理位置),但作者認為:給資深研究者一支筆、一本筆記本,花足夠時間大概也走得到。結論維持:論文很酷,但周邊「原始程式碼時代結束」式評論言過其實。

後續討論整理(HN 50355251,80 則抽樣底稿+live 數字)

1. 本地 27B 實用評價兩極

有人捧為年度最強生產力工具,有人實測怎麼調都差前沿模型一大截。

  • @zkmon:「Qwen-3.8-27B 是 AI 至今最棒的事……像技術主管帶一下,什麼都做得完」,付給前沿模型的錢本質是外包高階決策。
  • @embedding-shape:「筆電就跑著 Qwen 3.8 27B,怎麼調都達不到 Astra 八成品質」,抱怨過度冗長、離題。
  • @UncleOxidant:實測 27B 起始 22 t/s,context 塞滿後衰退;Flash 版在 Strix Halo 上約 50 t/s。

2. 為何要直接改權重而不是重訓

能改幾個數字就別重訓;文字到權重是可學習函數。

  • @dghlsakjl:「能調幾個數字就拿到結果,何必花大錢重訓?」
  • @latentsea:「文字到權重是可學習函數……影像編輯模型都訓得出來,為何不能訓模型編輯模型?」
  • @parineum:最實際用途是找出拒答迴路拆掉;@latentsea 盼有人修低量化模型的迴圈問題。

3. 改壞了什麼沒人研究

只談變強,沒人談代價;工程紀律跟不上。

  • @boznz:「都在講能力提升,有沒有人研究改動打壞了什麼?」自述 2024 年手動注入位元錯誤結果詭異,認為可控才是真新東西。
  • @tiborsaas:未來需要大量工具鏈,不能把模型更新當「信我就對」照單全收。

4. 懷疑論:不過是在提示詞裡做算術

給了規則做數學素描,不等於理解權重;且提示詞引導太多。

  • @0xbadcafebee:「它只是按提示詞規則對數字做數學,不比 MP3 播放器理解電磁波物理多到哪。」
  • @buffalobuffalo:注意力對文字形式權重的鍵/查詢恰好能模擬連接結構。
  • @qwe-askl:提示詞引導資訊太多,「希望你有關網路,免得模型偷看昨天 HN 作弊」。

5. 部落格文算不算論文的定義戰

  • @mccoyb:「這是收到合作者回饋的部落格文,沒走過學術發表流程」,從 arXiv 預印叫論文一路滑坡到此。
  • @simonw(作者親回):用論文稱之因作者有學術機構、品質勝過多數論文;並附和 PDF 是糟糕的傳播載體;自曝作者 BibTeX 寫的就是部落格文。
  • @hadlock:「在這個領域,兩篇部落格文未來五年就等於一篇論文,很無奈。」

後續一頁懶人包

手機版可直接開備援連結:

<標籤

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *