鎖定問題
持續獲勝的賭徒
原生 UCB1 在每一步重新計算分數。選擇一個臂。拉動它。更新 n_k 與 mean_reward(k)。重複此過程。在具有多個來源的長訓練運行中,單一臂可能累積一系列高獎勵,推高其平均值,並變得幾乎無法被超越。其他臂則因 n_k 較低且平均值過時而停滯不前。這就是鎖定。
鎖定對 ANDREA 造成兩方面的傷害:
1. 多樣性崩塌。 一個在 90% 的步驟中僅針對單一資料來源進行訓練的模型,會學會該來源的風格特徵。生成的樣本會逐漸偏向與主導來源相匹配的重複模式。
2. 探索過時。 均值過時的臂(arms)無法恢復。一個早期均值下降的臂,即使模型現在已具備足夠的容量從中獲取獎勵,仍會卡在該均值上。
階段(Phase)能爭取時間
解決方案:在重新評估之前,為一個階段(phase)固定一組關注的臂(focus arms)(持續多個步驟)。一個 14 步的階段意味著 14 次前向傳播(forward passes)都作用於相同的關注臂。平均獎勵會趨於穩定。隨機噪聲會被平均化。然後,多臂老虎機(bandit)重新滾動(re-rolls)。
可變階段長度
ANDREA 在每個階段邊界從 {7, 14, 21, 28, 42} 步中隨機選擇階段長度。五個數值,均勻隨機。短階段(7 步)能快速對錯誤選擇做出反應;長階段(42 步)讓穩定的專注集充分利用。上限限制了損害:在強制重新滾點之前,最多在錯誤的專注配置上花費 42 步。
階段長度統計
1d3(雙眼)與 1d4(三眼)
骰子記法
桌上遊戲記法:NdM 表示擲 N 顆有 M 個面的骰子。1d3 表示擲一顆 3 面骰,返回值為 {1, 2, 3}。1d4 表示擲一顆 4 面骰,返回值為 {1, 2, 3, 4}。ANDREA 也依慣例允許結果為 0:擲出 0 表示完全隨機相位(無 UCB 聚焦臂)。
雙眼與三眼配置
ANDREA 的訓練配置會選擇兩種骰子模式之一:
雙眼配置(1d3)。 可能的聚焦臂數量:{0, 1, 2, 3}。結果 0 保留給隨機階段。
三眼配置(1d4)。 可能的聚焦臂數量:{0, 1, 2, 3, 4}。較大的池子允許更集中的階段。
隨機優先,UCB 其次
無論骰子結果為何,ANDREA 都會透過兩遍流程來填充聚焦槽位:
1. 優先隨機臂。 從所有可用臂中,以均勻隨機的方式選擇一部分聚焦槽位。這確保了每個階段都具有組合多樣性,且不受 UCB 排名影響。
2. UCB 填充剩餘槽位。 計算尚未被選中的臂(arms)的 UCB1 分數。從剩餘臂中選取排名最高者,直到填滿焦點槽位數量為止。
隨機優先機制至關重要。若 UCB 優先選擇,連勝領先者將永遠佔據一個槽位。採用隨機優先機制後,即使是 UCB 分數最高的臂也可能在某個階段被排除在外。多樣性因此得到保證。
純隨機階段
當骰子點數為 0 時,整個焦點集完全來自隨機抽取。UCB 不貢獻任何選擇。約 25% 的階段(1d4)或 33% 的階段(1d3)會落入此情況。純隨機階段迫使多臂老虎機(bandit)刷新其對低抽取率臂的樣本,從而確保整個臂池中的 mean_reward 估計值保持準確。
骰子結果機率
限制傷害
一個糟糕的階段最多會消耗 42 步
假設 UCB 排名選擇了一個真實均值遠低於其觀察均值的聚焦臂。該階段會鎖定該臂。獎勵在整個階段內保持低位。多長時間後多臂老虎機才能進行修正?
最大階段長度:42 步。超過 42 步後,階段結束,骰子重新擲出,專注臂重新洗牌。糟糕的選擇無法持續超過 42 次向前傳遞。
為什麼是 42(而不是 100,也不是 1000)
較長的階段能讓 mean_reward 估計值穩定下來。統計理論指出:n 個樣本的平均值之變異數會隨著 1/n 縮小。從 7 個樣本增加到 42 個樣本,樣本數增加了 6 倍,標準誤差(standard error)收緊約 sqrt(6) ≈ 2.45 倍。在 42 個樣本之後,mean_reward 大致位於其真實值的 +/-15% 範圍內(取決於獎勵的變異數)。
超過 42 個樣本後,收益遞減:100 個樣本相對於 42 個樣本僅多 2.4 倍,標準誤差收緊約 sqrt(2.4) ≈ 1.55 倍。邊際效益下降,而糟糕鎖定(bad lock-in)的代價卻在增加。42 步在兩者之間取得了平衡。
多樣性與收斂
短階段(7 步):獎勵估計值保持雜訊狀態,但錯誤選擇的代價很小。長階段(42 步):估計值更精確,但錯誤選擇的代價較高。ANDREA 以均勻方式混合不同長度的階段,確保在每次訓練運行中都會出現這兩種機制。
Btok 重建成本
每個階段邊界都會觸發針對焦點臂(focus arms)的 btok 檔案重建。Btok 重建在背景執行緒中運行;CUDA 會在 mtime 變更時進行熱重載。重建過程僅需數秒;階段必須運行足夠長,以確保重建開銷保持較小。在 ANDREA-120M 的訓練速度下,42 步 comfortably 超過了重建時間。
關於上限的推理
接下來
您已掌握
基於階段的骰子控制機制以三項保護性規則包裹 UCB1:可變階段長度(7-42)、優先隨機臂、以及骰子驅動的隨機階段(25-33% 純隨機)。42 步上限限制了損害;隨機階段防止鎖定;可變長度則將反應速度與估計穩定性相結合。
尚待解決
輸入 UCB 的獎勵訊號究竟來自哪裡?活動 78(獎勵歸因)展示了 CUDA 如何每步報告每個來源的損失、如何透過每個來源的 EMA 追蹤獎勵,以及為什麼 ANDREA 在輸入 UCB1 之前將原始獎勵縮放 1000 倍。
地板與紀元懲罰(活動 79)在多臂老虎機(bandit)的輸出之上,進一步疊加了保護性規則,確保微小的資料來源不會被飢餓,且大型資料來源不會被重複到背誦的程度。
參考資料
ANDREA 白皮書,第 3.2 節。