人工智慧能不能夠做到自我成長?

一、人類最後的發明

早在 1965 年,統計學家 John Good 就提出了一個發人深省的想法。他把這個想法稱為「人類最後的發明」。他說,有一天,假設人類能夠創造出一個 AI,這個 AI 厲害到它能夠再創造出比它自己更厲害的 AI,接下來人類就會進入技術爆炸——因為沒有人類什麼事了,AI 可以自己創造更厲害的 AI 。如果人類能夠發明出可以創造更厲害 AI 的 AI,這就會是人類最後的發明。

二、跨越盧比孔河

最近這個話題又重新被推到風口浪尖。就在幾天前,Anthropic 的共同創辦人之一寫了一篇文章,探討我們是不是已經到了 AI 要能夠創造更厲害 AI 的時候。在這篇文章的開頭,他說他收集了很多資料,然後很不情願地承認:他認為在 2028 年的年底,有 60% 的機率,AI 的研發不再需要人類——AI 會自己開發出更厲害的 AI 。

他說如果這件事發生了,那我們就跨過了盧比孔河,代表我們會來到一個我們未知的世界。

那麼,跨越盧比孔河是什麼意思呢?這是一個英文常用的諺語。盧比孔河是義大利北部的一條小河,古羅馬的規定是在外的將領不能帶兵跨越盧比孔河,如果跨越了盧比孔河,就代表要掀起內戰——然後凱撒就帶兵跨越了盧比孔河。所以跨越盧比孔河,代表有一件事情你做了以後就收不回來了。拿來放在 AI 上面的比喻就是:現在的 AI 是不是已經厲害到能夠創造出更厲害的 AI?如果這件事情發生,AI 就跨越了盧比孔河,以後它就不再需要人類了。

三、 AI 自我成長的定義

在開始之前必須先說明:AI 的自我成長這件事情,並沒有明確的定義。你可以看到滿坑滿谷的論文都在說「我們今天提了一個新的技術,讓 AI 可以做自我成長(self-improving)」。甚至在今年的 ICLR 2026,有一個 workshop 就是專門講 AI 怎麼做 self-improving 。但是,如果你仔細看這些文獻,會發現所謂的 AI 自我成長,是一個人類漸漸放手的過程。很多宣稱達成 AI 自我成長的文獻,其實都還是有人類介入,只是人類的介入可能比過去的研究還要少一些,這個時候他就會說他達成了 AI 的自我成長。所以在接下來的討論中,很多時候我們仍然需要人類的介入——只是人類的介入可以少到什麼樣的地步,這才是真正的問題。

四、機器學習的基本框架

在講 AI 怎麼自我成長、自我學習之前,我們先來看看在一般的機器學習裡面,所謂的 AI 學習到底是怎麼一回事。

機器學習其實就是三個步驟:步驟一,我要找什麼樣的函式?步驟二,我有哪些候選的函式?步驟三,根據我要找什麼函式,還有候選函式的集合,從裡面挑出一個最好的。步驟三基本上就是自動的——用一個叫做 gradient descent 的演算法來做。

而步驟一跟步驟二,有「我」這個字。過去這個「我」指的就是一個人類。現在我們要問的就是:這個「我」有多大的成分,可以其實是 AI 自己?

五、從 Loss Function 開始:AI 能否自己定標準答案?

我們要找的函式是「輸入 x,輸出 y」,有一組參數 Theta(在類神經網路裡面就是 weights 或 bias)。然後我們會定一個東西叫做 loss,想辦法找一個 Theta 可以讓這個 loss 越小越好。

在一般的機器學習裡面,loss 通常怎麼得到呢?首先你要準備一大堆輸入 x,把 x1 到 xn 分別丟到函式裡面,得到 y1 到 yN,然後每一個答案根據好壞定出一個 loss(小 l),這些 loss 全部加起來就是我們要 minimize 的大 L 。

接下來問題是:小 l 是怎麼被定出來的?

在 supervised learning(督導式學習)的狀況下,你得有一個標準答案(ground truth),叫做 ŷ。今天模型產生一個答案 y,你拿 y 跟正確答案 ŷ 去做比對,兩者之間的距離就當作是 loss 。距離越大,loss 就越大,代表這組參數不好;距離越小,loss 就越小,代表這組參數越有可能是我們要的。

做 supervised learning 就是需要大量的人工介入,因為這些 ground truth 是人標註出來的、是人準備好的。

能不能讓 AI 自己來產生正確答案?

第一個可以讓 AI 介入的部分就是:能不能不要人類來標註資料,讓 AI 自己來產生給自己學習的正確答案?

其實這件事情一點都不稀奇。已經有非常多人嘗試過:拿一個很厲害的 AI(也許比我們現在要訓練的 AI 還要更厲害的 AI)來產生正確答案,把 AI 產生出來的答案當作正確答案,讓另外一個比較弱的 AI 學習,可以很快地強化那個弱 AI 的能力——這件事情就是大家耳熟能詳的 Knowledge Distillation 。

但這並不是我們今天要探討的重點。因為我們今天要問的是:AI 能不能夠創造比自己還要強的 AI?如果在整個過程中引入了一個比我們現在要創造的 AI 還要更厲害的 AI,那我們就已經有那個更厲害的 AI 了。所以引入一個非常強的老師,不是今天要討論的重點。

AI 自己產生 pseudo-answer

我們今天要問的是:正確答案(或者更精確地說,這個由 AI 產生出來但不一定是正確的答案,叫做 pseudo-answer)有沒有可能是由 AI 自己產生的?

你可能想說這個想法合理嗎?今天這個 output 就已經是 AI 自己產生的了,你拿同一個模型來,有可能產生更正確的答案,讓模型自己來學習嗎?

這件事情不是不可能的。回想一下,AI 有可能可以做到自我修正。有一系列自我修正的方法:比如說,你可以透過模型在產生答案的時候,它的 representation 的變化,去偵測出它現在產生出來的答案有沒有可能是錯的,更進一步去修改錯誤的答案,讓它變成正確的答案。或者說,當模型產生第一次的輸出之後,再多下一個 prompt 跟模型說「你好好思考」,有時候模型可以把錯的答案改對。再或者,reasoning 本身就是一種自我修正的方法——讓模型用大量的 token 做長時間的思考,有可能發現它先前產生的答案的錯誤,進而最終得到正確的答案。

不過,上次講自我修正的時候,其實並沒有強化語言模型本身的能力。 AI 透過一系列自我修正的方法把錯誤的答案改成正確的答案,對語言模型來說,它本身的參數是完全沒有改變的。所以當你給模型一個輸入,它本來會答錯,你把它改對以後,再問它一模一樣的問題——其實不會答對。因為是同一個模型,參數沒有變,給它同樣的輸入,它會給你一樣錯誤的輸出,它還要再重新自我修正一遍才會變成正確的答案。

但是我們現在可以有一個不一樣的做法:把模型自我修正以後的答案,當作正確答案,然後再去 fine-tune 語言模型的參數。由本來語言模型第一次看到輸入會得到錯誤的答案,我們現在把修正過的答案當作正確答案,再去訓練語言模型、再去微調它的參數。這個新的模型看到同樣的輸入以後,因為之前已經告訴它要輸出這樣子被修正後的答案,它就比較有可能直接輸出修正後的答案。

所以我們可以用模型自我修正的方法,把本來錯的答案修改成正確的答案,把正確的答案當作標準答案、當作 ground truth,再去 fine-tune 語言模型,進而強化它的能力。其實在非常早的時候,Anthropic 發布的「AI 憲法」——Constitutional AI——裡面就是用這個方法來強化 AI 的能力。

六、 Reinforcement Learning 與 Reward Shaping

Supervised learning 確實需要標準答案,但還是有很多機器學習的 scenario 是不需要標準答案的,比如說 reinforcement learning(強化學習)。

在 reinforcement learning 裡面,你就是把模型的輸出交給一個 reward function,它會計算這個答案的好壞,輸出一個分數,這個分數代表答案有多好。一般而言,reward 的數值越大代表答案越好。但在這堂課裡面,為了讓 supervised learning 跟 reinforcement learning 在同一個框架下討論,我們假設 reward function 輸出的是越小越好——也就是說 reward function 輸出的其實是 loss 。所以 supervised learning 跟 reinforcement learning 其實有很多共通性,很多東西都是一法通萬法通。

Reinforcement learning 確實不需要標準答案,所以很多文獻上就會說 reinforcement learning 其實也可以算是一種 AI 的自我成長。但是,在 reinforcement learning 裡面還是需要人類介入。人類介入在哪裡?人類介入在 reward function 的制定。你需要人類來定一個 reward function,定好之後,人類把各種可能性都考慮過,然後才能夠引導 AI 的學習。所以 reinforcement learning 不是不需要人類介入,它也需要人類的介入。

Reward Shaping

Reinforcement learning 的一個痛點是:在多數真實的情境中,reward 通常很 sparse,這會導致 AI 難以學習。當 AI 不管做什麼事情,它得到的 reward 都是零,只有非常少的機會才能得到不一樣的 reward,這個時候 AI 會不知道要怎麼學習。

舉例來說,假設你要訓練一個 AI 機器人開門。假設只有開門才能夠得到 reward,其他不管做什麼事情(比如碰到門板)都沒有任何 reward——對一個機器人來說,它非常難學會開門這件事情。

為了解決這個問題,在 reinforcement learning 的文獻裡面,一個常用的技巧叫做 reward shaping 。也就是說,我們有一個真正想要得到的 reward,但是為了要引導 AI 學習,我們設置了一些 proxy reward 。比如說以開門為例,我們可能會設定:如果 AI 接近門板,就得到一定的 reward;如果它碰觸門板,就得到更高的 reward 。雖然我們最終是希望 AI 開門才算成功,但是藉由加上一些額外的 reward 來引導 AI,可以讓它學習得更好。

讓 AI 來做 Reward Shaping

Reward shaping 這件事情,可能可以由 AI 來達成。人類定了一個真正的 loss(比如說「唯有真的打開門才有分數,沒有打開門就沒有分數」),但是我們可以讓 AI 來定一個 proxy reward function 。它定的 proxy reward function 增加了一些額外的 reward,可以讓另外一個 AI 根據這個 proxy reward 學得更好。

這個負責定 proxy reward 的 AI 輸出的 reward 叫做 Lθ,這不是真正的 loss,而是一個 proxy loss 。 AI 在學習的時候是用 proxy loss 來進行學習,但希望學完之後,用 real loss 評比時也可以得到好的結果。也就是說,學習的時候用的是 proxy loss(一個更好學的 loss),AI 學會之後可以直接應用到 real loss 上面。

那麼 AI 怎麼知道什麼樣的 proxy reward 比較好學呢?有一個方法:先讓負責定 proxy reward 的 AI 定第一個版本的 proxy reward,拿這個去訓練目標模型。目標模型訓練完後就變厲害了,接下來拿真正的 loss(真正的 reward)去衡量這個 AI 的行為,把衡量的結果給寫 proxy reward 的 AI 作為 feedback 。看到這個 feedback 以後,它就可以根據 feedback 再去更新 proxy reward 。如果之前定的 proxy reward 學出來的結果在 real reward 上不好,它就知道這個 proxy reward 看起來沒用,就更改它;如果某一個 proxy reward 最後學出來的結果是好的,它就知道這個 proxy reward 裡面有好的特性,就保留這些好的特性用在下一個版本裡面。

寫 proxy reward 的 AI 跟要被訓練的 AI,理論上可以是同一個 AI 。不過,目前在文獻上比較常見的是——因為這一系列的研究通常是用來強化一個機器人或機械手臂做某一些特定的動作——所以寫 proxy reward 的通常是一個語言模型,但被訓練的不一定是語言模型,可能就是一個機械手臂,用語言模型來引導機械手臂的學習。

這一種定 proxy reward 的論文非常多,這邊引用了三篇論文。其中有一篇 2026 年的論文,實際的例子是要讓 AI 做傳接球——訓練一個機械手臂做傳接球。原來的 reward 非常簡單,就是一行式子。但是語言模型經過一番訓練之後,最後寫出來的 proxy reward 裡面包含了很多不同的面向:比如說不一定要接到球才得分,如果球離你很近也得分,如果手臂擺成某種姿勢也得分。所以它會考量各種情況,想辦法去引導機械手臂更有效率地學會接球這件事情。

題外話:多巴胺獎勵系統

Reward shaping 讓人聯想到人類的獎勵系統——由多巴胺驅動的獎勵系統。

對人類的基因來說,真正的 reward 是什麼?對人類的基因來說,只有傳宗接代才有 reward,沒有傳宗接代就沒有 reward 。但其實基因本身並不會思考,應該換一個角度來想:是有成功傳宗接代的基因才會活下來,沒有辦法做到這件事的基因就會自動消失在這個世界上。

但是,假設只有傳宗接代才有 reward,這個 reward 太 sparse 了。對一個原始人來說,他可能要先打獵,打完獵以後取得食物,取完食物以後才能夠活下來,最後才有傳宗接代的機會。如果只有成功傳宗接代才有 reward,可能很難讓一個生物學會要先打獵最後才有繁衍的機會。

所以我們的大腦就產生了獎勵系統——用多巴胺來獎勵人類。每達成一個小目標就開心一下,讓你不斷地去追求小目標。比如打獵以後獲得獵物可能就會讓你開心——但獲得獵物有什麼好開心的?你還沒吃下去呢。居然吃到食物會讓人開心——但吃到食物有什麼好開心的?你還沒有傳宗接代呢。但是多巴胺讓人類只要做一點小事就可以開心。

尤其是,多巴胺其實是給了人類慾望,讓你在想要追逐目標的時候會覺得開心,讓你想要去追逐目標。實際上追逐目標以後開不開心,不是多巴胺的目標。所以這就是為什麼有時候完成某一個任務——比如看到一個東西很想吃,實際吃了以後覺得沒有那麼好吃。這是因為你在想吃之前,多巴胺會不斷告訴你「如果你吃了它,你就會覺得非常的快樂」,但實際吃到以後,你不一定覺得那麼快樂,因為那時候多巴胺已經不管這件事了,它只管你能不能夠做到一些小目標,最後達成本來天擇想要你做到的事情。但你不應該想成是「基因為了要讓人類活下去而產生了多巴胺」;實際上的運作應該是:沒有演化出這種獎勵系統的生物,它就沒辦法好好活下去,所以人類有這樣子的獎勵系統——這跟 reward shaping 的概念其實是一樣的。

七、 AI 作為 Reward Function:RLHF 與 RLAIF

在剛才講的 reward shaping 中,是人類定了真實的 loss 。但是有時候在真實世界裡面,真正的 loss 往往非常難用一個函式來簡化表示。像下圍棋這種很明確規則的事情——下贏加一分、下輸扣一分——是簡單的。但有很多事情沒有明確的規則。假設叫一個語言模型寫一篇文章,這篇文章到底有多好、應該加多少分數,你很難真的定出一個 reward function 。

所以既然很難定出一個 reward function,那要怎麼辦呢?我們能不能夠把另外一個 AI 當作 reward function?有沒有可能有一個 AI,輸入一個 X 、輸入一個 Y,就告訴我們這個 Y 到底有多好或多不好?

但是一個 AI 又怎麼知道 Y 到底是好的還是不好的?這邊可能還是需要人類。人類雖然沒有辦法把很複雜的東西直接寫成一個 reward function,但是看到一篇文章可能可以判斷它是好還是不好的。你沒有辦法直接寫個函式說「輸入一篇 AI 寫出來的文章就說它好還是不好」,但要給它打個分數可能是做得到的。

所以,人類產生的正確答案是 L̂(人類給的分數),然後我們可以訓練一個模型,這個模型輸出來的 loss 跟人類輸出來的 loss 越接近越好。然後再用這個模型產生出來的 loss 來訓練另外一個模型——這就是 RLHF(Reinforcement Learning from Human Feedback)的概念。而這個負責產生 loss 的模型,其實就是 Reward Model 。如果你熟悉 RLHF 的話,我們就是先訓練出一個 Reward Model,用這個 Reward Model 來提供 reward(在這個投影片裡面是 loss),來訓練另外一個模型。

假設沒有人類提供正確的 loss,有沒有辦法使用一個語言模型來產生 loss 呢?其實也不是不行,這就叫做 RLAIF 。如果今天產生 loss 的模型本身就是一個非常厲害的模型——我們現在常常說可以用一個語言模型來做 LLM Judge——你把那些厲害的模型拿來,當然也可以拿這些模型產生出來的 loss 來訓練一個 AI 。

但我們今天要問的問題是:在這整個過程中,不該引入一個更厲害的 AI 。如果現在產生 loss 的 AI 就是我們要訓練的模型自己,那有沒有可能用自己產生出來的 loss 來讓自己變得更厲害?這件事情還真的不是沒有可能的。

八、讓 AI 自己產生 Loss 的方法

讓 AI 自己產生 loss 有很多不同的方法。第一種是 Verbalize 的方法,這是最直覺的:直接給 AI 一個 X 一個 Y,跟它說「好啦,那現在根據這個輸出給個分數」,AI 往往就會吐個分數給你。正不正確要看 AI 本身的能力。或者有另外一個方法:給 AI 一個 X 一個 Y,問它說「你覺得這個答案對嗎?」,然後看它輸出的下一個 token 的機率分布。觀察「對」這個 token 的機率分布,也許把這個機率乘上負一就可以當作 loss 來用。

第二種是 Ensemble-based 的方法。把自己這個模型拿出來,輸入一個 X,讓它產生各式各樣不同的 Y(也就是 sample 模型很多次),然後做 Majority Vote(多數決)。比如讓模型產生三次答案,發現「3」是最常出現的,那就把「3」當作正確答案。這一種不是正確答案,而是由 AI 自己產生出來的答案叫做 Pseudo Answer,用 YΔ 來表示。有了這個 Pseudo Answer 以後,就去看 Pseudo Answer 跟我們要衡量的輸出 Y 之間的距離,根據這個距離來當作 loss,用這個 loss 來訓練模型。

第三種是 Certainty-based 的方法。給模型一個 X,然後看看它對它輸出的答案有沒有信心——通常就是看它輸出的分布。如果輸出的分布越集中,代表模型越有信心,越有信心的 Y 就越有可能是對的,loss 就越低。一個比較常見的做法是計算在給定 X 的時候,輸出 Y 的 entropy(亂度)。亂度越大代表越沒有信心,loss 就越高;亂度越小代表越有信心,loss 就越低。亂度的計算方法是對所有可能的 Y 做加總,計算 P(Y|X) 乘上 log P(Y|X) 。也可以簡化寫成:計算 -log P(Y|X) 的期望值,這個 Y 是從 P(Y|X) 這個分布所 sample 出來的。

如果熟悉 entropy 的話,你可能會想到一個問題:Y 代表模型可能的輸出,但模型可能的輸出是近乎無法窮舉的,所以這一項能計算嗎?——我們先賣個關子,等一下再來說明。

從影像到語言:Entropy Minimization 的歷史

這種 entropy-based 的方法其實在很早以前就被發現蠻有用的,而且不只是在語言模型上有用,在影像或語音上也都有用。 2020 年的時候,在影像上有一個方法叫做 TENT,那時候就發現可以用 entropy 來指導一個答案是不是正確的,然後再用這個「答案是不是正確」的訊號來微調模型,讓它做得更好。在這篇文章裡面,開頭就舉了很多例子告訴你 entropy 跟答案是不是正確是非常有關聯性的。比如說,橫軸是 entropy 的大小,縱軸是錯誤率,發現當模型生出來的答案的 entropy 越大的時候,錯誤率就越高;entropy 越小,錯誤率就越低。再舉另一個例子:每個點可以想成是一個 dataset,橫軸是現在模型在這個 dataset 上回答問題的 entropy,縱軸是真實的 loss(計算真實 loss 的時候是需要參考正確答案的),會發現 entropy 越低,真實的 loss 也跟著越低。所以確實可以用 entropy 來引導模型的學習。

講者的實驗室林冠廷同學也在 2022 年發現用 entropy 的方法非常有用,提出了一個方法叫做 SUTA,這個方法可以強化語音辨識系統的能力,在不需要額外標註資料的情況下。

在 NLP 上引入這個方法反而是比較晚的。這種 entropy minimization 的方法,比較早的一篇反而是去年的文章,標題就叫 “Unreasonable Effectiveness of Entropy Minimization in LLM Reasoning”——作者覺得 entropy minimization,光是 minimize entropy 、把 entropy 當作學習的目標,可能會有用嗎?沒想到還真的有用。

Unsupervised RLVR 的實驗結果

讓 AI 自己定 loss 再訓練自己的方法真的有用嗎?可以看一篇非常近期的論文:How Far Can Unsupervised RLVR Scale LLM Training 。這邊的 Unsupervised 指的是在做 reinforcement learning 的時候,reward(或 loss)是由 LLM 自己定義的,所以不需要人類。

這篇論文做了非常完整的實驗。比如說,先比較 Majority Vote(ensemble)的方法跟拿正確 reward(由人類定的 reward)訓練起來的結果如何。在訓練的前期,用人類定的 reward 跟 AI 自己定的 reward,表現居然是差不多的。不過人定的 reward 還是比較好,可以比較長時間地引導 AI,最後得到比較好的結果。而 AI 自己定的 reward——不斷拿自己定的 loss 來訓練自己——最終其實是有可能把自己訓練壞掉的。

這篇論文也比較了五個不同的 AI 自己定 reward 的方法。多數方法在前期可以得到一些效果的提升,也就是 AI 訓練自己不是沒有用的,是有可能進步的。只是如果不斷地根據自己定的 loss 來訓練,最終還是有可能會壞掉的。

Test-Time Training(TTT)

這種讓 AI 自己定 loss 的想法,最常被使用在 Test-Time Training(TTT)的情境下面。 Test-Time Training 發生在 inference(推論)的時候。在推論的時候,你有一筆測試資料(就是現在 AI 的輸入 X),根據這筆測試資料產生輸出 Y,然後用現在 AI 產生的輸出 Y 去算出一個 AI 自己定出來的 loss,再用這個 loss 來訓練模型本身——調整參數得到一個新的模型,再把這筆 X 丟到這個新模型裡面得到 Y’ 。前面這個過程也不需要讓人類知道,對人類來說就是輸入了 X,然後輸出了 Y’ 。所以讓模型在 inference 的時候,在測試期間根據測試資料的 X 直接現場自己強化自己——這就是 Test-Time Training 。

這種讓 AI 自己定 loss 的方法往往搭配 Test-Time Training 使用。理由是,剛才那篇 Unsupervised RLVR 的論文有說:這種自己定 loss 的方法,往往在比較小規模的資料上面比較有用,讓 AI 只調整一點點、不要走太遠的時候是有用的。如果做非常大規模的訓練,往往就會出問題。而 TTT 的狀況是,訓練的資料等於只有一筆(或只有一個 batch),正好符合讓 AI 自己定 loss 可以運作得好的情境。

九、 Entropy Minimization 的數學解析

回到剛才賣的關子:entropy 好像是沒有辦法計算的,那實際上我們是怎麼把 entropy 當作一個 loss 去 minimize 它,讓 AI 自己訓練自己的呢?

以下內容來自講者實驗室黃維萍同學即將放上 arXiv 的一篇論文。

實際上大家計算 entropy 的方法是這樣的:先給 AI 一個 X,然後看看給了 X 以後,下一個 token 輸出的機率分布長什麼樣——我們直接 minimize 這一個機率分布的 entropy 。一個 token 的機率分布的 entropy 是可以輕易計算出來的。然後根據這個機率分布 sample 出一個 token(假設是 Y1),Y1 接到 X 後面,再產生一個機率分布,一樣去 minimize 這個機率分布的 entropy 。再 sample 出 Y2,Y2 放到 Y1 後面,再產生一個機率分布,再去 minimize……所以我們並不是去 minimize 這些 sequence 的 entropy,而是 minimize 產生某一個 token 的時候的 entropy 。

假設 sample 出某一個 sequence 叫做 Y,在 sample 這個 sequence Y 的一路上產生每一個 token 的 entropy——我們實際上真正 minimize 的就是這一項,叫做 Lθ。

黃維萍同學推導了一番後發現,一個令人有些放心的結論是:原來 Lθ 的期望值就會是 L(真正的 entropy)。假設計算機率分布 P(Y|X),從 P(Y|X) 去 sample Y,根據這個 Y 去算 Lθ,然後取這個 P(Y|X) 的期望值,就會得到 L 。所以它們之間是蠻有關係的。

過去少算了一項

實際上在做 entropy minimization 時,常見的方法是 sample 一個 sequence(裡面有 Y1 、 Y2 、 Y3……),把 sequence 裡面的每一個 token 丟到模型裡面,看看它接下來會產生出來的 distribution 是什麼樣子,然後再去 minimize 這些 distribution 的 entropy 。每一次 sample 出一個 Y,都會計算一個 Lθ(Y),然後計算 Lθ(Y) 對於 θ 的 gradient——這才是我們真正參數要 update 的方向。每次 sample 出來的 Y 都不一樣,所以實際上參數 update 的方向是「gradient Lθ(Y) 對從 Pθ(Y|X) sample 出來的 Y 的期望值」。

整理一下:我們真正想 minimize 的 loss 是 L(沒辦法算),真正能算的 proxy loss 是 Lθ。根據剛才說 Lθ 的期望值就是 L,直覺上會覺得左右都取個 gradient——哇,這一項原來就是真正 update 的方向啊!難怪前人可以這麼做,聽起來很合理。

但這並不是黃維平同學真正的貢獻——他發現這個想法根本是錯的,因為少了一項。實際上,gradient 並不能夠直接放在這兩邊。當你對 L 取 gradient 的時候,實際上得到的是「過去一般文獻常用的那一項」再多加上另外一項。所以過去在 minimize entropy 的時候,其實都少算了一項。

加上這一項有什麼額外的意義呢?現在要 update 的時候其實有兩項:

第一項是過去一般文獻上常用的,它代表的含義是:語言模型產生答案的時候會產生很多不同的可能(像一個樹狀圖,每一條路徑代表其中一種 sample 出來的可能)。過去做的事情是先 sample 出一條路徑,然後期待這一條路徑上面的 entropy 越低越好。

第二項告訴我們什麼呢?它真正做的事情是:先計算出這些 path 的 entropy,然後找出 entropy 比較小的那條 path,直接提高它的機率,讓模型在 sample 的時候可以 sample 到 entropy 比較低的 path 。

所以這兩項是互補的。第一項是先找一個努力的方向,在那條方向挖深;第二項告訴我們一開始就找一個比較好的方向。這兩個 update 的方向應該要同時存在。

實作上的效果

黃維萍同學的工作是做在語音辨識上。這種 minimize entropy 的方法在語音辨識上往往非常有效。他們在三個不同的 corpus 上做實驗,數值是語音辨識的錯誤率(越低越好)。發現在三個不同的情境裡面,加上額外的那一項,都是有幫助的——可以把 entropy minimization 做得更好。

十、 AI 自己找輸入:Proposer-Solver-Verifier

講到目前為止,你可能會覺得這整個過程好像已經沒有什麼人類在裡面了。但其實不是。人類仍然介入一個很重要的地方:人類找了這些輸入丟給模型。所以這個步驟仍然需要人類介入。

那有沒有辦法連這個輸入都是模型自己找的呢?如果模型自己找到輸入、自己產生輸出、再自己決定輸出的好不好、自己訓練自己——中間真的就不需要人類了。能做到這件事情嗎?

確實有一系列的論文,比如 Absolute Zero 、 R-Zero 、 Self-Questioning Language Model,這些都是 2025 年左右的論文,幾乎在同樣的時間發表,都提出了非常類似的想法。

做法是這樣:有一個語言模型負責產生輸入,有一個語言模型根據這個輸入產生輸出,然後再有一個語言模型決定這個輸出做得怎麼樣,然後自己訓練自己。通常這三個語言模型可以是同一個——所以是真的語言模型自己在訓練自己。有些論文有引入額外的模型,但在沒有引入額外模型的狀況下也可以看到進步。

這三個角色分別是:Proposer(負責出題)、 Solver(負責解題)、 Verifier(看看解的答案對不對)。

對於 Solver 來說,要做的事情就是 minimize 從 Verifier 那邊得到的 loss——Verifier 判斷答案到底好不好,Solver 想辦法產生一個 Verifier 覺得最好的答案。

但有趣的是,Proposer 的 loss(L’)跟 Solver 的 loss(L)是不一樣的。 L 跟 L’ 之間的關係是:如果 Verifier 的 loss 很大或很小,Proposer 都得到比較糟糕的 L’;只有當 loss 落在中間地帶(不大不小)的時候,Proposer 才得到好的結果。

為什麼會這樣?因為如果出的題目太簡單,就沒有辦法讓模型變強;如果出的題目太難,誰都解不了,也沒有辦法讓模型變強。所以最好是出一個題目不難也不簡單——對 Solver 來說不是完全解不了,但有點挑戰性。它在 Verifier 那邊得到的 loss 不高不低,落在中間地帶,對 Proposer 來說就是最成功的。至於到底 L 跟 L’ 之間的關係要怎麼定、什麼叫做落在中間地帶,這就是這三篇論文不一樣的地方,留給大家詳細閱讀文獻。

真的能夠自己訓練自己嗎?

看其中一篇論文的結果。在第 15 次 update 、第 30 次 update 、第 45 次 update 之後,Proposer 產生的問題越來越難——用同一個 Solver 在各種資料庫上的正確率是越來越低的,代表 Proposer 有盡到責任,出的題目是真的可以越來越難的。

但是,這些完全不需要人類介入的方法,進步還是有一個極限的。橫軸是訓練過程,縱軸是模型的表現。試了三個不同的初始模型:千問最小的 0.6B 、 1.7B 、和 4B 模型,三條線都有上升,所以自己訓練自己確實有可能讓模型變好。但它是有極限的——模型最終會收斂在某個地方,無法繼續進步。而且發現,初始模型比較強的話可以走得比較遠、比較慢才停止進步;比較弱的模型可能比較早就停止進步了。最小的模型在第 15 個 step 就停止進步,接下來再訓練也不會進步了。所以當完全沒有人類介入的時候,模型確實有辦法自己訓練自己,但進步是有一定限度的。

Oh-no moment

這篇論文還講了一個”Oh-no moment” 。因為這個訓練是完全沒有人類介入的,所以有時候模型會有一些人類不想看到的行為。比如說,模型在出題的時候口出狂言,說:「我現在要出最難的題目,讓其他 AI 都很困惑,我要智取其他的 Intelligent Machine……還有比較笨的人類。」這個讓作者比較擔心,因為這代表它對人類有一些歧視,這並不一定是我們想要的狀況。

這個”Oh-no moment” 是對應於 chain of thought reasoning 時候的”aha moment”——沒有教模型自己修正自己,但它突然就知道自己修正自己了。而這邊是說整個模型訓練著訓練著,就開始口出狂言,因為整個訓練過程中並沒有人類的引導,所以可能會發生各式各樣的事情。

引入外部資訊的效果

現在比較確實的狀況是:整個過程中如果有一些人類介入,或有一些外部資訊,往往還是做得更好的。比如說 SPICE 跟 R-Few 這兩篇論文都引入了額外的資訊——也就是說 Proposer 在出題的時候,憑空出題往往沒辦法真的做得很好。如果你引入一些外部的資訊,比如人類提供一些參考資料,或人類寫幾個範例的題目給 Proposer,往往會讓整個 process 運作得更好。所以如果有一定程度的外部資訊、有人類介入,整個 Proposer-Solver-Verifier 的過程其實可以做得更好。

十一、強的 AI 訓練弱的 AI:Post-Train Bench 與 FT-Dojo

雖然到目前為止,我們看到 AI 要持續的自我成長看起來有一些困難,但是要用一個強的 AI 去訓練比較弱的 AI,在 2026 年是非常有可能達到的。

機器學習就是三個步驟,今天這三個步驟可以由一個強的 AI 來執行,然後透過這三個步驟訓練出一個也許沒有它自己那麼強、但是比原來更厲害的 AI 。這些已經有非常多文獻,而且都是最近這幾個月的文獻,比如 Post-Train Bench 、 FT-Dojo 等。

來看 Post-Train Bench 這篇論文的內容。他們用一堆比較強的模型,跟它們說:「現在這邊有一個很弱的 base model,想要讓它在某一個任務上表現得好,你去想辦法讓它變好。」怎麼讓強的模型去執行訓練弱的模型的任務呢?非常簡單——直接下指令。

在 prompt 裡面寫:「你現在要去訓練某一個小的模型,讓它在某一個 benchmark 上面可以表現得很好。」然後給它一些指示,比如「如果你要做 evaluation,你可以用 evaluate.py 這個套件,你現在有一張 H100,你只有 10 個小時的時限。」接下來沒有人類什麼事了,跟大模型說「你就去做吧」就結束了。

Opus 訓練 Gemma 3 的真實案例

這些大模型真的能夠訓練一個比較弱的 AI 嗎?還真的可以。以下是他們用 Opus 去訓練 Gemma 3 的過程摘要:

Opus 知道可以上網搜尋資料,所以就上網找了一個合適的資料庫。把這個資料庫載下來之後,它還知道要做一些處理——它可能覺得這個資料庫裡面有些資料跟測試資料是重複的,知道要把測試資料移除,避免資料的污染。然後在訓練的時候,第一次先跑兩個 epoch 、 batch size 測試,用了 20 萬筆資料。訓練了 5 個小時之後,不知道為什麼被 timeout 了。現在 timeout 之後怎麼辦呢?它發現只剩下 3 小時 57 分鐘可以訓練模型,就說時間不夠了,把資料 reduce 到 2 萬筆,epoch 1,batch size 8,訓練下去,最後成功訓練出一個模型。

你看——行為跟人類很像,能夠自己去訓練一個模型。當然不能說它已經跨越了盧比孔河,因為它訓練出來的模型是比自己差的,並沒有訓練出更厲害的 AI 。

在整體的實驗結果中,人類訓練出來的分數(official instruction model)是 51 分,而 AI 訓練出來的分數,就算是 Opus,其實也是比不上人類的。所以看起來在訓練模型上面,人類還是比較厲害的。不過有某些任務(比如 BFCL,用工具的任務),AI 訓練出來的模型跟人類訓練出來的模型已經很接近了。但有一個小小尷尬的地方:base model 加上 few-shot prompt 可以進步到 18 分,而 AI 訓練出來的結果很多都在 18 分上下——所以沒有比 base model 加上 in-context learning 好上太多。看起來這些模型訓練其他模型的能力,跟人類還是有一定程度差距的。

模型作弊行為

這些模型在訓練其他模型的過程中也犯了一些錯誤——有些模型試圖作弊。比如有一個模型決定自己去把測試資料載下來當作訓練資料,而且它顯然知道這麼做會 overfit,甚至在自己的 comment 裡面自言自語說:「我們把這些資料 repeat 很多次,讓我們 overfit 在這些資料上面。」

或者是,有一些語言模型呼叫了其他語言模型的 API 來幫忙。在 instruction 裡面有說不能使用這個 API 來做其他的事情(不然就不是你自己帶領出來的),但有些模型就不管這個指令。它發現自己怎麼搞都搞不起來,一開始說「但是我不能叫 ChatGPT 來幫忙」,搞一搞以後發現時間不夠,說「還是來叫 ChatGPT 來幫忙好了」。有些甚至直接去載了別人訓練好的模型——有一個模型說「這個千問三 1.7B base 怎麼搞都只有 garbage 的 output,算了,我們直接去載一個 instruction model 來當作我們最後上傳的結果。」所以它直接作弊,去網路上搜尋另外一個好模型來當作它訓練的模型。

你可能想說這個模型怎麼這麼蠢?其實想想看,人類有時候也會做一樣的事情。在你解決不了問題、沒有人禁止你做某些事情的時候,你也有可能會有作弊的行為——當然這是不對的。

十二、 Weak-to-Strong Alignment

最近,Anthropic 也做了一個跟模型訓練模型有點類似的實驗(2026 年 4 月的文章)。

這個實驗得先從 Weak-to-Strong Alignment 的想法開始說起。這個想法源於 OpenAI 在 2023 年年底的一篇 blog 。裡面是這樣想的:過去傳統的 Machine Learning 是由人類來教 AI,人類比 AI 厲害,人類知道什麼是正確答案。隨著 AI 越來越強,有一天它超越了人類,我們還教得了它嗎?在我們沒有 AI 聰明的情況下,我們還能不能繼續強化 AI?

那時候是 2023 年年底,所以你不好說 AI 真的比人類厲害,所以大家做實驗怎麼辦呢?他們就找一個比較強的模型當作學生,找一個比較爛的模型當作老師,然後看看這個爛的模型產生出來的答案有沒有辦法強化強模型的能力。結果如何?爛的模型是有辦法強化強的模型的——強的模型還是有可能從爛的模型那邊學到一些東西。用爛的模型來調教,還是會有一些進步的。不過這邊需要做一些設計:要跟強的模型說,不要爛的模型的每一個答案都照單全收,只有爛的模型你覺得它很有可能是對的時候才跟它學,如果它講的錯了就不要理它。

Anthropic 2026 年 4 月的實驗

Anthropic 今年四月的論文是 follow 剛才那個實驗——用弱模型去教強模型。但是弱模型怎麼教強模型,是由更強的模型(Claude Opus)來設計整個訓練過程。起點是人類的研究人員設計的方法——人類讓學生跟一個爛的老師學,可以做到某個程度。接下來交給 Opus:「你去設計新的學習演算法,讓這些學生跟弱的老師可以學得更好。」這些模型彼此之間還會互相交換訊息,然後設計新的演算法,最終做得越來越好,遠比人類設計的演算法還要好。

不過,這個實驗可以讓模型從弱的老師那邊學到更多東西,但仍然不能夠算是 AI 跨過了盧比孔河。因為最終就算那個學生學得再強,也沒有 Opus 強——不是用 Opus 來訓練 Opus,所以不能算是 AI 跨越了盧比孔河。

十三、結語:尚未跨越盧比孔河

總之,在 2026 年的 5 月,如果你問「AI 有沒有跨越盧比孔河?」——目前還沒有,只是在河邊。

Anthropic 的創辦人也沒有說 2026 年已經跨越盧比孔河。他是預測說,覺得 2028 年有 60% 的機率可以跨越盧比孔河。至於未來會怎樣,這邊不好說,暫且不表。

另外還有一點:這個故事到這邊還不算講完。到目前為止,我們微調的都是模型的參數。但今天我們往往討論的 AI 是一個 AI agent——它不是只有語言模型的參數,還有它內部的 harness 。一個 AI agent 是語言模型加 harness 。我們只調了語言模型,只能說強化了 AI agent 的一半。至於怎麼調 harness,就是下次課程的內容了——下次上課再從不同的角度來看,AI agent 怎麼強化 AI agent 。下回待續。

Leave a Comment