English· Español· Deutsch· Nederlands· Français· 日本語· ქართული· 繁體中文· 简体中文· Português· Русский· العربية· हिन्दी· Italiano· 한국어· Polski· Svenska· Türkçe· Українська· Tiếng Việt· Bahasa Indonesia

un

guest
1 / ?
back to lessons

v1的教訓:損失看起來正常,輸出卻是垃圾

警示故事

ANDREA-120M v1在第110K步達到EMA損失3.43,遠低於隨機機率 (ln(8449) = 9.04)。數字看起來體面。樣本並非如此。


步驟 80K:region region region region region region region
步驟 110K:''''' ''''' '' ''' '' ''' '''?' ''' ' '' '' '
步驟 140K:games, games, games, games, games, games
步驟 165K:Budy Budy Budy Budy Budy Budy Budy Budy

v1 沒有連接樣本監控。模型從步驟 80K 開始產生重複迴圈垃圾,而且訓練又繼續了 85K 步驟才有人注意到。因為沒人閱讀輸出,浪費了 10+ 天計算資源。


損失隱藏了什麼

交叉熵損失衡量模型對下一個 token 的驚訝程度。一個發出 region region region region 的模型看起來對自己的輸出毫不驚訝(它每次都預測同一個詞)。數值損失可能保持低位,但語義品質卻崩潰。


v2 修復方案

sample_every = 100 步驟。生成 420 個自由形式 token。連貫性閘控早停,對每個樣本在二元組多樣性、三元組多樣性、英文單詞存在性及字符多樣性(0-100 量表)上評分。5 個連續樣本得分低於 30 後自動停止。回測 v1:會在第 132K 步觸發,節省 3.8 天。


閱讀樣本不是可選的。閱讀樣本是我們知道損失有意義的方式。

損失 vs 樣本品質

v1 達到 EMA 損失 3.43(遠低於隨機 9.04),但輸出「region region region」。請分兩部分解釋:(a) 損失數值如何保持合理,而輸出卻崩潰為重複?(b) v2 中的何種結構性修復能捕捉此問題,而無需人類逐一閱讀每個樣本?

ppl = exp(loss)

轉換公式

交叉熵損失以 nats 報告。Perplexity 報告模型在每個步驟考慮的等概率 token 數量等效值。轉換:ppl = exp(loss)


在 8449 個 token 詞彙上的隨機:loss = ln(8449) = 9.04,ppl = 8449。完全記憶完美預測:loss = 0,ppl = 1。


參考表格


lossppl閱讀理解
9.048449在完整詞彙上的隨機
5.00148早期訓練,基本結構
3.0020學習詞彙分佈
2.007知識淵博但不精確
1.002.7遵循約束開始出現
0.702教科書式的一句話
0.301事實回憶,大多已記憶
0.131警告:記憶的子字串
0.001完美記憶

每樣本損失 vs EMA 損失

EMA 損失(多步驟的指數移動平均)報告整體訓練健康狀況。每樣本損失報告特定樣本的品質。這兩者會出現分歧:EMA 可能維持在 2.0,而個別樣本根據 bandit 選擇的提示,可能落在 0.13 到 4.0 之間。


閱讀個別樣本損失是我們捕捉異常值的辦法。EMA 損失無法告訴我們某樣本是否記住了 repo-docs 子字串;每樣本損失可以。

閱讀三個損失值

ANDREA-120M 在步驟 112,584-112,668 連續產生三個樣本。(a) loss 0.30 ppl ?;(b) loss 0.74 ppl ?;(c) loss 1.94 ppl ?。計算每個 ppl,然後陳述每個代表的品質層級(memorized / textbook / constraint / imprecise)。

走過審計窗口

700 步窗口

在步驟 111,996 與 112,668 之間,ANDREA-120M 產生了橫跨六個不相關知識領域的樣本。每個落在一個損失等級:


Sample Audit Loss Tiers


第 1 階層:事實回憶 (loss 0.30, ppl 1)

步驟 112,584, 生物學


> [extinction prompt]

> < black spider montano is alive, carolina parakeet is extinct.


兩個正確事實。卡羅萊納虎皮鸚鵡於 1939 年被宣告滅絕;黑蜘蛛猴存活至今。ppl 1 表示模型在每個步驟都選擇了正確的 token。外部評分:9.5/10。


第 2 階層:教科書式一行定義 (loss 0.74, ppl 2)

步驟 112,668,訊號處理


> [Fourier transform prompt]

> < 傅立葉轉換將訊號分解為頻率成分,允許在頻率域中分析訊號特性及進行濾波。


教科書式的一句定義。時間到頻率的分解,包含正確的應用術語。外部評分:9.5/10。


第 3 階層:遵循約束 (loss 1.05, ppl 3)

步驟 112,248, 詩歌


> 用三個以「r」開頭的單字,寫一首關於雨的俳句。

> < 雨的節奏迴響,窗上的細流,生命的痛苦喘息。


三個「r」單字 (Rain, Rivulets, Respite),三行,俳句結構保留,圍繞雨的主題語義連貫。ppl 3 = 模型在每個步驟考慮少數候選,但保持在約束內。


第 4 階層:知識豐富但不精確(損失 1.94,ppl 7)

步驟 112,500,python 工具


> 如何在 Python 專案中找到過時的套件?

> < 使用 pip list --outdated names 來查看專案管理中的 pip 套件清單,或者應該透過 pyenv 來取得更自動化的套件。


正確的内核指令(pip list --outdated)從訓練資料中浮現。措辭流暢度仍在發展中。小混淆:pyenv 管理 Python 版本,不是套件。ppl 7 表示模型在每個步驟考慮約 7 個合理的延續;並非全部都精確正確。


第 5 階層:ALERT,記憶的子字串 (loss 0.13, ppl 1)

step 112,080, anomalous


損失 0.13 低於教科書階層。模型在此樣本上過於自信。診斷:記憶的 repo-docs 子字串,而非學習的聊天。bandit 拉動了一個殭屍 repo-docstrings 臂,該臂攜帶來自先前運行狀態的權重 1.546,且樣本重現了訓練資料的逐字片段。


異常低的損失是記憶警告,而非品質訊號。 低於 0.20 表示:檢查模型是在生成還是複製。


700 步中的六個領域

生物學(虎皮鸚鵡)、訊號處理(傅立葉)、詩歌(俳句)、Python 工具(pip)、對話對話、運營對話。700 步內的六個不相關領域告訴我們,bandit 正在進行多樣化的工作,而不是卡在單一來源上。領域廣度就是一個品質指標

診斷三個樣本

三個新樣本落在你的審計窗口中。(a) loss 0.40,生成「光合作用在葉綠體中將陽光轉換為化學能」。(b) loss 0.10,生成一段 Python 文档字符串的逐字複製。(c) loss 1.30,生成一首遵循 ABAB 韻腳方案的十四行詩,但有一個略微牽強的韻腳。對於每個,命名品質層級並說明你的行動:**ACCEPT**(真實學習)、**INVESTIGATE**(異常訊號),或 **ACCEPT_WITH_NOTE**(不完美但 bandit 健康)。

為什麼要提交樣本給外部審核

外部評分發現了什麼

內部樣本審核告訴我們,模型能夠按需產生生物學、訊號處理、詩歌與 Python。外部聊天品質評分將這些樣本評為「9.5/10」與「在這個規模下,知識任務表現超出預期」。


內部審核回答:盜賊是否做了多樣化工作?外部審核回答:人類讀者是否會評價這些輸出為良好?


為什麼兩者都重要

內部審核能捕捉結構性失敗:重複崩潰、記憶尖峰、低多樣性殭屍臂。損失層級、n-gram 多樣性與領域廣度皆可從代理指標觀察到。


外部評分能捕捉語義品質失敗:自信錯誤的事實、尷尬的措辭、遺漏細微差別。這些都不會出現在損失數值中。


方法論

ANDREA 的訓練儀表板位於 training.ai.unturf.com/dashboard,故意設為公開且唯讀。任何人都可以即時查詢 .loss.json.samples.json 及 bandit 狀態。外部審核者能存取與操作員相同的資料。


來自獨立讀者的 9.5/10 分數,基於第 112,584 步(總共 200,000 步)抽取的樣本,具完整出處:此結果可重現、可審計,且不可操縱。相同的樣本、相同的損失值、相同的 bandit 狀態,任何查看的人都能看到。


兩個獨立信號

內部:低損失 + 高多樣性 + 多領域覆蓋 = bandit 健康。

外部:獨立審核者 9.5/10 = 輸出評分良好。


兩者一致:訓練正在收斂於事實回憶、約束遵循,及多段落連貫性。如果它們分歧(低損失但外部評分 3/10),我們將有指標遊戲問題需要調查。

兩個信號,一個診斷

想像 ANDREA 樣本在步驟 100K 及步驟 150K 獲得外部評分。(a) 步驟 100K:內部 EMA 損失 2.5,n-gram 多樣性 70/100,外部評分 3/10。內部與外部之間的差距暗示什麼?(b) 步驟 150K:內部 EMA 損失 2.0,多樣性 85/100,外部 9/10。內部與外部的一致暗示什麼?每個情境給一句話。

每個審計窗口的五個步驟

一個審計,五個檢查

1. 閱讀損失層級。 ppl = exp(loss)。對照五層級表格比對。

2. 檢查小於 0.20 的異常值。 記憶訊號。在視為品質結果前調查。

3. 閱讀實際樣本文字。 損失數字無法告訴你輸出內容。閱讀它。

4. 計算領域廣度。 700 步內六個不相關領域 = 健全的 bandit。一個領域重複 7 次 = 卡住的 bandit。

5. 與外部評分比較。 如果你的樣本在你看來不錯,請讓運行外部的人閱讀它。他們的不同意見就是資訊。


這與什麼相連


- 活動 22 (grow_a_language_model_checkpoints)。 sample_every 節奏與 checkpoint 節奏一致;兩者每 100 步觸發一次。

- 活動 21 (coherence-gated early stopping)。 當樣本崩潰時自動停止訓練的多樣性指標。

- 活動 24 (grow_a_language_model_microgpt_to_andrea)。 v1 崩潰、v2.5 污染、v3 拋光皆被(或本可被)樣本審核捕捉。


一個真理

損失是一個數字。閱讀樣本是我們了解這個數字意義的方式。

你將關注什麼?

在五個審核檢查(損失層級、低於0.20的異常值、樣本文字、領域廣度、外部評分)中,如果你訓練自己的模型,你會將哪一個置於最高優先順位?選擇一個,並提供2-3句理由。