1922年,羅納德·費(fèi)舍爾在一篇論文里給一個(gè)叫"最大似然估計(jì)"的東西命了名。他沒(méi)料到,這個(gè)統(tǒng)計(jì)工具會(huì)在一百年后同時(shí)驅(qū)動(dòng)兩種東西:一個(gè)用Python寫(xiě)的200行文本摘要腳本,和消耗上萬(wàn)張GPU訓(xùn)練的千億參數(shù)大模型。底層數(shù)學(xué)完全一致。
這像是發(fā)現(xiàn)你家自行車(chē)和F1賽車(chē)共用同一套傳動(dòng)原理。MLE(最大似然估計(jì),Maximum Likelihood Estimation)在現(xiàn)代NLP里就是這種存在——它被用得太多,以至于從業(yè)者常常忘記追問(wèn):為什么這玩意能work?
從數(shù)詞到預(yù)測(cè):MLE的兩幅面孔
先看那臺(tái)"自行車(chē)"。下面這段代碼是一個(gè)極簡(jiǎn)的抽取式摘要器,核心邏輯用spaCy實(shí)現(xiàn):
它做的事情很樸素:統(tǒng)計(jì)每個(gè)詞在文檔里的出現(xiàn)頻率,給句子打分,挑出高分句拼接成摘要。沒(méi)有神經(jīng)網(wǎng)絡(luò),沒(méi)有注意力機(jī)制,純頻率游戲。
但"頻率"在這里是個(gè)障眼法。真正的問(wèn)題是:我們憑什么認(rèn)為高頻詞更重要?
答案藏在MLE的原始定義里。費(fèi)舍爾的核心洞見(jiàn)是——給定觀測(cè)數(shù)據(jù),選擇讓這組數(shù)據(jù)出現(xiàn)概率最大的那個(gè)參數(shù)。對(duì)于詞頻模型,"參數(shù)"就是每個(gè)詞的真實(shí)分布概率,"觀測(cè)數(shù)據(jù)"是你手里的文檔。數(shù)詞只是在執(zhí)行這個(gè)優(yōu)化過(guò)程的粗糙近似。
現(xiàn)在切到"F1賽車(chē)"。GPT類(lèi)模型的訓(xùn)練目標(biāo),寫(xiě)成公式是:
最大化:Σ log P(x_t | x_{
逐個(gè)token預(yù)測(cè)下一個(gè),把對(duì)數(shù)概率加起來(lái)。這和1922年的MLE是同一個(gè)數(shù)學(xué)對(duì)象,只是參數(shù)空間從"詞匯表大小的向量"膨脹到了"百億級(jí)別的矩陣集合"。
兩個(gè)系統(tǒng)的差異在工程層,不在原理層。詞頻模型假設(shè)詞與詞獨(dú)立,所以MLE有解析解,直接數(shù)就行。語(yǔ)言模型放棄獨(dú)立性假設(shè),MLE沒(méi)有閉式解,只能梯度下降慢慢磨。
為什么這個(gè)統(tǒng)一視角值錢(qián)
從業(yè)者的常見(jiàn)陷阱是把技術(shù)棧切成孤島:傳統(tǒng)NLP是一堆,深度學(xué)習(xí)是另一堆,大模型是第三堆。MLE的連續(xù)性戳破了這個(gè)幻覺(jué)。
具體能用在哪?
第一,調(diào)試直覺(jué)。當(dāng)你的摘要器在某些文檔上表現(xiàn)詭異,MLE視角告訴你:不是代碼bug,是模型假設(shè)(詞獨(dú)立性)與數(shù)據(jù)生成機(jī)制不匹配。同樣的診斷框架可以搬到Transformer上——損失不降?可能是你的條件獨(dú)立性假設(shè)(自回歸結(jié)構(gòu))跟任務(wù)不對(duì)付。
第二,遷移成本估算。從詞袋模型跳到BERT,你以為換的是架構(gòu),實(shí)際換的是MLE的約束條件。知道這個(gè),能預(yù)判哪些舊 trick 還能用,哪些必須扔掉。
第三,避免神秘化。見(jiàn)過(guò)太多人把大模型訓(xùn)練描述成"煉丹",仿佛loss曲面里有不可名狀的邪神。MLE框架把它拉回地面:你就是在找一個(gè)讓訓(xùn)練語(yǔ)料出現(xiàn)概率最大的參數(shù)配置,梯度噪聲大就多跑幾輪,學(xué)習(xí)率炸了就調(diào)小點(diǎn)。
代碼里的誠(chéng)實(shí)
回到那200行spaCy腳本。它有個(gè)常被忽略的細(xì)節(jié):平滑處理。
純MLE在零計(jì)數(shù)詞上會(huì)出災(zāi)難——某個(gè)詞在訓(xùn)練文檔里沒(méi)出現(xiàn),模型就認(rèn)定它的概率是零,遇到測(cè)試文檔直接崩盤(pán)。拉普拉斯1774年用的解決方案是加一平滑,現(xiàn)代實(shí)現(xiàn)改用更精細(xì)的插值方法。
這個(gè)補(bǔ)丁在大模型時(shí)代以另一種形式復(fù)活:tokenizer的處理、embedding層的初始化策略、甚至RLHF階段的KL散度約束,本質(zhì)上都是同一焦慮的變奏——怎么防止MLE的過(guò)度自信。
費(fèi)舍爾當(dāng)年證明MLE的一致性時(shí),假設(shè)了無(wú)限數(shù)據(jù)。現(xiàn)實(shí)里數(shù)據(jù)永遠(yuǎn)有限,所以所有工程都是在這個(gè)裂縫上打補(bǔ)丁。詞頻模型加平滑,神經(jīng)網(wǎng)絡(luò)加正則,大模型加人類(lèi)反饋——同一問(wèn)題的不同劑量。
有個(gè)細(xì)節(jié)值得玩味。spaCy的摘要器默認(rèn)用TF-IDF而非原始詞頻,這是在MLE框架里引入先驗(yàn)(IDF懲罰常見(jiàn)詞)。貝葉斯主義者會(huì)告訴你這是往MAP(最大后驗(yàn)估計(jì))走了一步。但MAP和MLE的邊界在工程實(shí)踐中是模糊的,調(diào)參就是在兩個(gè)教堂之間來(lái)回串門(mén)。
從arc到loop
這篇文章的標(biāo)題 promised 一個(gè)"arc":從數(shù)詞到訓(xùn)練GPT。但走完這個(gè)arc你會(huì)發(fā)現(xiàn),終點(diǎn)和起點(diǎn)在邏輯上閉合了。
當(dāng)下最熱的討論之一是大模型"涌現(xiàn)能力"的來(lái)源。一種解釋指向規(guī)模本身,另一種指向訓(xùn)練數(shù)據(jù)的多樣性。MLE視角提供第三種線索:當(dāng)參數(shù)足夠多、數(shù)據(jù)足夠雜,模型只是在更忠實(shí)地執(zhí)行那個(gè)1922年的指令——最大化觀測(cè)數(shù)據(jù)的似然。所謂的"涌現(xiàn)",可能是高維空間里MLE解的結(jié)構(gòu)性副產(chǎn)品,而非某種需要單獨(dú)命名的魔法。
這解釋了一個(gè)反直覺(jué)現(xiàn)象:縮小模型規(guī)模但保持訓(xùn)練目標(biāo)不變,某些"涌現(xiàn)"行為會(huì)平滑消失,而非階梯式跌落。如果是真正的相變,你應(yīng)該看到閾值效應(yīng);如果是MLE優(yōu)化在高位空間的連續(xù)變形,行為變化就該是漸進(jìn)的。觀測(cè)數(shù)據(jù)支持后者。
當(dāng)然,RLHF(基于人類(lèi)反饋的強(qiáng)化學(xué)習(xí),Reinforcement Learning from Human Feedback)階段打破了純MLE的敘事。PPO優(yōu)化的是獎(jiǎng)勵(lì)模型而非數(shù)據(jù)似然,這是費(fèi)舍爾沒(méi)寫(xiě)過(guò)的東西。但基礎(chǔ)預(yù)訓(xùn)練階段仍是MLE的領(lǐng)地,而那是能力的主要來(lái)源。
所以當(dāng)你下次讀到某篇論文宣稱(chēng)"超越了傳統(tǒng)MLE框架",值得多問(wèn)一句:超越的是哪個(gè)版本?1922年的原始公式,還是2024年加了十七層補(bǔ)丁的工程實(shí)現(xiàn)?
那個(gè)spaCy摘要器還在GitHub上跑著,每年被下載數(shù)百萬(wàn)次。它不知道自己的遠(yuǎn)房親戚正在消耗兆瓦級(jí)電力預(yù)測(cè)下一個(gè)token。MLE是它們共享的沉默血統(tǒng)。
如果費(fèi)舍爾穿越到2024年,他能一眼認(rèn)出ChatGPT的訓(xùn)練目標(biāo)嗎?還是會(huì)被參數(shù)規(guī)模的數(shù)字暫時(shí)晃住眼睛——就像我們看到自行車(chē)鏈條和F1變速箱時(shí),需要有人畫(huà)一張傳動(dòng)原理圖才能確信它們的親緣關(guān)系?
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺(tái)“網(wǎng)易號(hào)”用戶上傳并發(fā)布,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.