20251111筆記 內容可能有錯誤,請參考原始影片 [李宏毅【生成式AI時代下的機器學習(2025)】](https://www.youtube.com/playlist?list=PLJV_el3uVTsNZEFAdQsDeOdzAaHTca2Gi) [【生成式AI時代下的機器學習(2025)】第八講:大型語言模型的推理過程不用太長、夠用就好](https://www.youtube.com/watch?v=ip3XnTpcxoA&list=PLJV_el3uVTsNZEFAdQsDeOdzAaHTca2Gi&index=9) [【生成式AI時代下的機器學習(2025)】第九講:你這麽認這個評分系統幹什麽啊?談談有關大型語言模型評估的幾件事](https://www.youtube.com/watch?v=s266BzGNKKc&list=PLJV_el3uVTsNZEFAdQsDeOdzAaHTca2Gi&index=10) ### 【生成式AI時代下的機器學習(2025)】第八講:大型語言模型的推理過程不用太長、夠用就好 大綱 ![image](https://hackmd.io/_uploads/Hk4cnz3Jbx.png) ### I. 推理長度的迷思與代價 A. 觀點轉變:長推理不必然帶來好結果。 B. 實際代價:冗長的推理過程浪費運算資源(算力)。 C. 實驗嚴謹性:觀察到的長度與低準確度之間的負相關性,常是因問題難度所致。 ### II. 嚴謹實驗結果 A. 實驗方法:針對同一問題,測試模型五次,比較不同長度組(Group 1最短至Group 5最長)的準確度。 B. 結果:在不同資料集上,**更長的答案不一定有更高的準確度**。最優工程師應在有限資源下做到最好。 ### III. 避免模型「想太多」的四大方法 A. **提示工程 (Prompt Engineering):** 使用 Chain of Draft (CoD) 限制每一步思考的長度。 B. **推論工作流控制:** 人為設定推理流程的參數(如縮小 Beam Search 範圍或樹狀結構)。 C. **教導模型推理 (Distillation/Learning):** 1. 選擇最短且正確的推理過程作為訓練資料。 2. **隱式思考鏈 (Implicit CoT):** 逐步移除推理過程的 Token,讓模型學會「心算」。 D. **強化學習 (RL) 優化:** 修改獎勵機制以納入長度限制。 1. 相對長度限制:懲罰長度超過答對平均所需長度的推理。 2. 輸出長度可控性:透過獎勵機制,讓模型學會依據指令輸出指定長度的推理。 ### IV. 總結與類比:過猶不及 A. 類比:長頸鹿的脖子演化故事。 ### I. 推理長度的問題與觀察 * **初始觀察與問題:** 有些推理模型(如 Deepseek)在面對簡單問題時,明明一開始就能答對,卻會「左思右想」,浪費大量的運算資源 (算力)。 * **長度與結果的相關性爭議:** * 過去的提示是如果推理較長,結果可能更好。 * 許多研究現在指出,推理越長不一定代表結果越好。 * **實驗偏誤:** 簡單將推理長度與正確率畫圖,可能發現負相關性(越長越低)。然而,這只說明存在相關性,不能證明是長度導致準確度降低。 * 真正的共同因素可能是**問題的難度**。當問題較難時,模型傾向使用較長的推理過程,而難題本身就會導致準確率下降。 * **嚴謹的實驗驗證:** * 一篇論文對可以推理的模型詢問相同的問題五次。由於模型每次的回答和推理長度會不同,實驗者將輸出長度最短的標為 Group 1,最長的標為 Group 5。 * 結果顯示,即使是最短的 Group 1,推理長度也已經很長(約 5,000 到 10,000 個 Token),而最長的可超過 2 萬個 Token。 * 在不同資料集上驗證,**越長的答案(Group 5)並沒有更高的正確率**。 * **工程師的目標:** 這些模型的回答通常太長且沒有必要,代價是額外的算力消耗。最好的工程師不是將事情做到完美,而是在**有限的資源**下把事情做到最好。我們期待的人工智慧是在有限算力下,能將事情做好的模型。 ### II. 避免模型過度思考的具體方法 針對四種讓模型學習 Reasoning 的方向,都有對應的方法來限制其長度: #### A. 透過提示工程 (Prompt Engineering) * **Chain of Draft (CoD):** 這是修改 Chain of Thought (CoT) 的方法。標準 CoT 僅要求模型 "think step by step"。 * **CoD 的作法:** 依然要求模型 "think step by step",但規定**每一步的思考都只是一個草稿 (Draft)**,且草稿的每一條都**不要超過五個字**。 * **效果:** CoD 是一個簡單但有效的方法。 * 相比直接回答問題(輸出簡短)和標準 CoT(輸出冗長),CoD 能顯著縮短模型輸出的 Token 長度。 * 在 Claude 3.5 上的實驗發現,使用 CoD 限制長度後,模型的效能影響不大,有時甚至比原本長篇大論的 CoT 結果還要稍微好一點。 #### B. 透過推論工作流的設定 * 在模型推論的工作流程是人為設定的第二個方向中,可以完全控制推論長度。 * **控制方式:** 可以透過控制採樣 (sampling) 的次數,或是在執行 Beam Search 時,讓 Beam 開得小一點。此外,讓模型產生樹狀結構時,可以讓樹長得小顆一點,以此來控制推理的長度。 #### C. 透過教導模型進行推理 (蒸餾/學習) * **使用最短正確推理進行訓練 (知識蒸餾):** * 可以找一個會推理的「老師模型」,讓它針對同一個問題產生多次推理過程。 * 在老師模型可以答對的情況下,**選擇一個最短的推理過程**,將其作為「學生模型」的訓練資料。學生模型學習這個最短的推理過程後,就能成為一個推理過程不冗長的模型。 * **隱式思考鏈 (Explicit CoT to Implicit CoT):** * 目的是將寫出來的推理過程 (Explicit CoT) 逐漸消除,讓模型學會「心算」。 * **訓練方法:** 採用漸進式的學法。 1. 模型先學習產生完整的推理過程和答案。 2. 接著逐步將推理過程中的第一個 Token 拿掉,讓模型學習在少了一個 Token 的情況下產生後續推理和答案。 3. 依此類推,每次減少一兩個推理 Token,直到最後模型能直接看著輸入,不產生任何推理過程就輸出答案。 * **結果:** 在較簡單的語料庫上,這種方法可以成功地將 Reasoning 過程練不見,且模型能力與原本會做推理的模型能力差不多。 #### D. 透過強化學習 (RL) 優化 * **RL 產生冗長推理的原因:** 像 DeepseekR1 這種單純依賴 RL 訓練的模型,其推理過程會非常冗長。這是因為在 RL 訓練中,如果 Reward 只考慮「答案是否正確」,而沒有考慮長度,模型就會傾向於將問題反覆確認、提出多個想法來保證答案正確,導致輸出越來越長。 * **解決方案 1:相對長度的限制** * 直接定一個硬性長度標準(例如超過 1000 字就扣分)不一定適用於所有問題,因為問題難度不同,所需的推理長度也不同。 * 多數論文採用**相對標準**:先讓模型對某一問題推理多次,收集合格(答對)的狀況。 * **懲罰機制:** 計算答對時所需的**平均推理長度**。在 RL 過程中,如果答案答對了,但推理長度比平均所需長度還長,則視為不好。模型必須**答對,且比平均所需的推論長度更短**,才能得到正面的 Reward。 * **解決方案 2:教導模型控制輸出長度** * 在輸入問題後,直接用文字指令告訴模型:**「推理長度必須設定為 N 字」** (例如 1000 個字)。 * **獎勵機制:** Reward 設定為「正確率」減去「目標長度與實際推理長度的差異」。 * **效果:** * 模型能夠學會控制輸出的推論長度。在一篇 2024 年 3 月的數學問題訓練文章中,模型產生的長度與指定長度的差異約在 2% 到 6% 之間(In-Domain)。在非數學問題上(Out-of-Domain),差異則在 20% 到 40%。 * 這種方法允許使用者根據算力資源需求來調整推理長度(算力少就短推論,算力多就長推論)。 * 重要的是,實驗證明,透過 RL 教導模型控制長度,**並不會對模型本質的推理能力造成太大的傷害**。相比之下,粗暴地強制截斷(如 S1 模型在達到 256 個字時強制卡掉),會導致模型的正確率大幅下降。 ### III. 總結:過猶不及 * **核心理念:** 我們探討的不是推理這件事情沒用,而是要傳達「**過猶不及**」的道理。 * **長頸鹿的演化類比:** * 長頸鹿的脖子演化到足夠長,可以吃到高處的葉子本來是生存優勢。 * 然而,脖子長到比多數的樹還高,反而需要低下來才能吃到葉子。 * 脖子長太長可能主要是因為「性擇」(Sexual Selection):長脖子的長頸鹿擁有較多交配機會。這種長度已超越實用所需。 * 在資源苛刻的環境(如飢荒)下,脖子太長的個體需要更多能量來支撐脖子,反而不利於生存競爭。 * 推理長度的控制也是如此,**它需要夠用,但不需要過度冗長**。 ### 【生成式AI時代下的機器學習(2025)】第九講:你這麽認這個評分系統幹什麽啊?談談有關大型語言模型評估的幾件事 大綱 ### I. LLM 推理能力的評估現狀與挑戰 A. 傳統評估:主要依賴數學和程式問題的正確率。 B. 挑戰:模型可能僅是「記憶」了答案,而非真正具備推理能力。 ### II. 基準測試 (Benchmarks) 的可靠性問題 A. GSM8K 測試結果的漏洞:更換不影響難度的符號或語句順序,會導致多數模型準確率下降,顯示模型可能背誦了部分答案。 B. 訓練資料污染:難以完全排除模型在訓練時已看過測試題目或其變體。 C. ARC-AGI (圖形智力測驗): 1. 優勢:避免模型依賴網路上學過的知識,考驗純粹推理能力。 2. 挑戰:題目困難,且 O3 模型在 ARGI 上表現優異,但代價極高,每題成本相當於 1000 美金的算力。 3. 潛在破解:透過大量創造類似範例題目的方式,仍有可能「刷題」。 ### III. 人類評估的風格偏見 (Chatbot Arena) A. Arena 機制:用戶向兩個隨機配對的模型提問,並判斷哪個回答較好。 B. 風格影響:人類評審容易受到**回答風格**的影響(如長度、使用 Emoji 或粗體字),而非僅依賴內容品質。 C. 評分調整:官方透過 Elo Score 演算法納入風格因素(Beta 0),以糾正排名偏差。 D. 實證:考慮風格因素後,模型排名有大幅變動,例如 Claude 系列模型因其「無聊」的風格而受影響,但在風格因素被移除後,其排名大幅上升。 ### IV. 結論:指標的局限性 A. **古德哈特定律 (Goodhart's Law):** 一旦某項指標被當作目標來追求,它就不再是一個好的指標。 B. 結論:過度在意評分系統可能會扭曲模型的努力方向。 --- ### I. 評估 LLM 推理能力的傳統方式及其挑戰 * **傳統方法:** 今天評估模型推理能力的方法通常「簡單粗暴」,即直接測試模型解決數學或程式設計問題的正確率。 * 例如,D6 技術報告的第一頁就展示了 D6 模型與 O1 系列模型在數學和程式問題上的正確率。 * 許多模型在推出時也會衡量這類數學問題(如 GSM8K)來展現其能力。 * **記憶與推理的區分問題:** 僅能解數學問題是否就代表模型具備推理能力?這存在疑問。 * 模型有可能只是剛好看過這道題的答案,然後「裝模作樣」地推理一下後輸出,讓人誤以為它很會推理。 ### II. 基準測試的脆弱性與破解風險 #### A. GSM8K 基準測試的不足 * **GSM8K 測試:** 這是一個知名的資料集,包含一些比較簡單的應用問題。今天多數模型都能答對 GSM8K 的問題。 * **符號替換實驗:** 一篇論文嘗試替換 GSM8K 應用題中的一些符號,例如更換人名(如將 Sofia 換成別的名字)、親戚關係、或是數字。 * 即使替換的內容不影響問題的難度,但多數模型的正確率都有所降低。 * **結論:** 這表明這些模型「有稍微背到一些這些問題的答案」,否則換了數字或人名就不應該答錯。 * **例外:** 當時的 O1 mini 模型受到的影響較小。 * **語句順序的影響:** 另一篇論文將 GSM8K 題目的部分句子順序對調,在不影響題目意思的前提下,模型的解題正確率竟然下降了。這顯示模型學到了一些不該學的東西。 * **訓練資料污染的難題:** 由於今天的模型是在網路上看過極大量的資料,因此偷看到 GSM8K 裡面的題目是非常有可能的。 * 即使從訓練資料中移除看起來與測試資料相同的題目,也無法完全解決問題。例如,如果有人將 GSM8K 翻譯成蒙古文放在網路上,模型學到了跨語言學習能力,仍可能看到這些題目,且難以被檢測出來。 * 因此,今天的測試結果「往往不一定那麼可靠」。 #### B. ARC-AGI(抽象與推理圖形智力測驗) * **設計目標:** ARC-AGI 旨在避免模型依賴其在網路上學到的知識,希望模型能憑藉**真正的推理能力**來回答問題。 * 它提供圖形化的智力測驗題,通過給予輸入/輸出範例來讓模型理解規則。 * **模型輸入:** 丟給語言模型時,題目是以**文字形式**呈現的,用數字代表不同的顏色和圖案(例如 0 代表沒有顏色,1-5 代表不同顏色)。 * **歷史難度:** ARC-AGI 自 2019 年問世以來,一直被認為是一個難題,在五年內未有重大突破。 * **O3 模型表現與代價:** O3 模型在 ARC-AGI 上取得了不錯的結果,其能力介於一般人類和 STEM 領域畢業生之間。 * 但 O3 模型付出了**極大的代價**:每回答一題的成本相當於 **1000 美金的算力**。 * **潛在破解風險:** 雖然 ARC-AGI 有隱藏的測試集(Testing Set)未公開,但透過大量創造與範例問題類似的題目來刷題,仍有可能「Hack」這個比賽。 ### III. Chatbot Arena 的人類評估偏見 * **Chatbot Arena 機制:** 這是一個平台,隨機給用戶兩個模型(A 和 B),用戶向兩者提問後,決定哪個模型表現更好。依據比賽結果,模型會獲得分數並生成排行榜。 * **風格偏好的影響:** 傳說 Chatbot Arena 可以被「Hack」。 * 如果模型的輸出包含較多 Emoji、有粗體字或項目符號 (bullet points),或傾向於**長篇大論**,就更容易受到人類評審的青睞,從而提高勝率。 * 許多人在評比模型時,通常是看其**輸出風格**,而不是仔細檢查其內容。 * 如果評審的知識不如模型(即「評比一個比你聰明的人」),將無法判斷內容的對錯,只能憑藉其「聲音好不好聽」(即風格)。 * **Elo Score 與 Beta 0 的引入:** * ![image](https://hackmd.io/_uploads/SJnMVmhybx.png) * Chatbot Arena 官方試圖解決這個問題,他們使用的 Elo Score 評分系統納入了**模型實力以外的因素(Beta 0)**。 * Beta 0 在衡量那些會干擾人類評估結果的因素,如長度的差異 (乘以常數 Gamma) 或 Emoji 數量的差異。 * 如果 Gamma 經計算為正值,代表回答越長,模型的勝率越高。 * **風格因素對排名的決定性影響:** 官方部落格文章指出,是否有考慮這些風格相關的因素,會**影響模型的排名**。 * 在考慮了回答長度、使用 Emoji 數目、回答的正面程度等風格因素後,模型的戰力排名發生了大幅變動。 * **案例:** Claude 系列模型在考量風格因素後,排名大幅上升。這可能是因為 Claude 模型講話「太無聊了」,很少輸出 Emoji,雖然它很聰明,但在吃虧在「講話風格」上。移除風格影響後,其名次才得以大幅向前。 ### IV. 結論:Goodhart's law ![image](https://hackmd.io/_uploads/rJ6HWZeebg.png) * **本質問題:** 即使是像 Chatbot Arena 這樣的平台,也可能被針對性地訓練模型來「打贏」比賽(例如訓練模型特別喜歡輸出 Emoji、講好聽的話)。 * **古德哈特定律 (Goodhart's Law):** 一旦某項指標(如評分系統的排名)被當作目標來努力追求,它就不再是一個好的評估指標。 * **核心啟示:** 過於在意評分系統,可能會使模型的努力方向被異化掉。這個概念類似於「眼鏡蛇現象」(殖民地政府懸賞捕蛇,反而導致人們養蛇來賺錢,使蛇的數量更多)。