AI Engineer Europe 2026 · 演講 · 2026-04-08 · 41 分
讓小模型在環境裡學會井字棋
Let LLMs Wander: Engineering RL Environments · Stefano Fiorucci
從強化學習基本概念、Verifiers 環境函式庫,一路談到井字棋實驗:Stefano 把原本很弱的小模型訓練成近乎不敗的玩家,並分享踩過的坑。
概要
- 環境是新的軟體產物Stefano 把 RL 概念對應到語言模型,模型是 agent,環境則包含任務的資料、評分規則,以及檢查與訓練所需的一切,並認為環境同時能用在評估與訓練,對會用工具、跑程式的 agent 特別自然。
- RLVR 不同於 SFT只要結果能自動驗證(答案正確、贏一局、工具呼叫成功),就能當訓練訊號。SFT 的輸出會貼近範例的分布,RLVR 則讓模型在多條軌跡中探索,偏向報酬高的那些。
- Verifiers 讓人專注在任務與報酬這個開源函式庫提供單輪、多輪、工具等環境基底類別,也處理解析回應、報酬函式、非同步與平行軌跡。環境是可安裝、可散布的 Python 套件。
- 井字棋環境一步步調出來從隨機對手開始,加入先後手、用 minimax 做的最佳對手、可調的亂走機率、think 標籤檢查、無效步懲罰;為了降低 GRPO 的雜訊,還加了固定種子與分層抽樣。
- 先 SFT 暖身再 RLStefano 讓 GPT-5 Mini 產 200 局、濾掉輸局當 SFT 資料,再用 RL 把 LFM2 練到對最佳對手有 85% 和局;第二輪調整對手強度與 temperature 後,親自下棋輸給了模型。
- 幾個實驗教訓batch size 太小會不穩甚至模型崩壞;環境裡的隱藏偏差會讓模型背答案;訓練開始順利後別一直盯著曲線。
原話
▶ 30:08“I learned the hard way that batch size is a key parameter.”
我吃過苦頭才學到,batch size 是關鍵參數
▶ 36:20“I got great benchmark results, but then playing against the model, I realized it was clueless.”
benchmark 結果很漂亮,但實際跟模型下棋才發現它什麼都不懂
▶ 36:36“I basically was training my model against a specific type of optimal player. Over many games, the model simply memorized it.”
我等於是讓模型對著某一種特定的最佳玩家練,下了很多局之後,模型就只是把它背起來
▶ 38:15“Reinforcement learning is slow and takes time to see progress.”
強化學習很慢,要花時間才看得到進展
▶ 39:09“You can do this at home too.”
你在家也可以做
延伸
- Stefano 說這場的程式與更多細節都放在 GitHub,也整理成一門免費課程。
- Stefano 提到 DeepSeek 與 MiniMax 的技術報告顯示,他們用上千個強化學習環境提升模型表現,但沒有展開細節。
- Stefano 推薦從 Prime RL repository 的 wiki search 範例開始,自己做工具環境。
章節
點時碼直接跳到原片的那一段。
- 自我介紹與議程Stefano 在 Deepset 做 AI orchestration、開發 Haystack,業餘玩小型語言模型。議程是:RL 回顧、Verifiers、常見環境模式,最後是把小模型訓練成井字棋高手的實驗。
- RL 基本概念解釋 agent 與 environment、狀態、動作、報酬,以及探索與利用的取捨。這場把一整局完整的遊戲稱為 trajectory。
- LLM 訓練的三個階段預訓練、監督式微調(SFT)、再用 PPO 之類的 RL 對齊人類偏好。Stefano 先看 SFT 的資料長相:成對的 prompt 與回應,模型本質上是在模仿範例。
- 為什麼轉向 RLStefano 提到 Ilya Sutskever 在 NeurIPS 2024 說預訓練已不足以維持同樣的進步速度,接著談 OpenAI o1 的 RL 訓練,以及 DeepSeek R1 用 GRPO,比 PPO 更簡單、更輕。
- RLVR 與 SFT 的差別模型產出推理軌跡與答案,由可自動驗證的結果給報酬。SFT 的輸出貼近範例分布,RLVR 則探索不同軌跡、偏向高報酬的那些,不再受限於人類範例的品質。
- 把 RL 概念對應到語言模型模型是 agent,環境包含資料、評分規則等一切。Stefano 用井字棋舉例,動作是回一步棋,環境負責出題、記棋盤、產生對手的下一步;也引了 Karpathy 對環境的說法。
- Verifiers 函式庫提供模組化元件建 RL 環境,評估與訓練都能用。支援單輪、多輪、工具環境,以及解析回應與報酬函式;模型服務透過 OpenAI 相容端點接,能接 OpenAI、OpenRouter 或用 vLLM 的本地模型。
- 單輪環境:Reverse Text逐步講 load environment:載入資料集並對應成題目與答案、用 XML parser 取出答案、報酬函式算最長共同子序列比例,再包成 rubric。評估時 5 個範例各跑 3 次 rollout,共 15 次。
- 多輪環境與工具環境以 double check 環境為例,模型答完數學題後環境問「are you sure」。Stefano 講了 state、環境回應與 stop 條件,以及工具環境如何讓模型反覆呼叫 Python 函式直到不再用工具。
- 其他環境類型與 Environments HubMCP 環境、為工具保存每次 rollout 狀態的環境,以及實作遞迴語言模型的類別。Stefano 說 Verifiers 與 Environments Hub 想對抗環境被綁在特定訓練堆疊的碎片化。
- 井字棋環境的第一版選井字棋是因為需要多輪互動,而且用靜態資料集很難捕捉它的動態。第一版:模型固定下 X、對手隨機走、無效步直接判輸,報酬是權重 1 的勝負與權重 0.2 的格式。
- 讓環境更接近真實加入先手後手隨機、用 minimax 做的最佳對手,以及可調的亂走機率,並檢查 think 標籤。無效步改成較溫和的處理:扣 0.1 的懲罰,回合數上限設為 8。
- 降低 GRPO 的雜訊報酬差異應來自模型的下法而非環境隨機性,所以用固定種子讓相同棋面對手回應一致。batch size 小又混了不同強度的對手時訓練會抖,Stefano 加了分層抽樣讓每個 batch 的對手強度分布均衡。
- 評估現成模型與 SFT 暖身GPT-5 Mini 格式很穩、棋力不錯但不完美,Liquid AI 的 LFM2 常出格式錯誤與無效步。Stefano 選 LFM2 來練,先用 GPT-5 Mini 產 200 局、濾掉輸局做 SFT,只花幾分鐘。
- GRPO 訓練與 batch size回顧 GRPO:同一個起點多個 rollout,算群組平均再比較優勢。訓練時亂走機率範圍 20% 到 70%;Stefano 學到 batch size 是關鍵參數,低於 256 時觀察到不穩定與模型崩壞。
- 第一輪結果模型對隨機對手占優勢,對最佳對手有 85% 和局,無效步降到零。
- 追求完美:第二輪訓練檢視 rollout 發現模型會讓對手同時有兩條獲勝路徑。第二輪把亂走機率改成 0% 到 25%,並調高 temperature 鼓勵探索;先掉分、後來回升,最後 Stefano 親自下一局、故意走了一步不完美的棋,結果輸給模型,且對最佳對手表現勝過 GPT-5 Mini。
- 實驗教訓batch size 大訓練較穩;環境的隱藏偏差,例如 Stefano 用的 minimax 在幾步同分時總是選最前面的位置,讓模型背下特定對手;模型選擇上,推理模型的長思考容易被截斷,建議先看基底模型在環境裡的表現;訓練後要在真實任務裡試,也別一直盯曲線。
- 總結與資源RL 補足 SFT,只要能定義清楚的報酬訊號,就能建環境來訓練小模型。Stefano 建議讀者挑兩三個常用工具,試著針對那個任務訓練模型,並推薦 Environments Hub 與 Prime RL 裡的 wiki search 範例。
名詞
- Verifiers
- Prime Intellect 的開源函式庫,用來建 RL 環境,環境是可安裝的 Python 套件,評估與訓練都能用
- Environments Hub
- 與 Verifiers 緊密整合、讓社群分享 RL 環境的地方
- RLVR
- 用可自動驗證的結果當報酬的強化學習,這場拿來和 SFT 對照
- GRPO
- DeepSeek 用的 RL 演算法,同一起點的多個 rollout 互相比較,設定比 PPO 簡單、輕量
- rollout / trajectory
- rollout 是一次完整的互動過程;Stefano 用 trajectory 指一整局遊戲
- rubric
- Verifiers 裡把多個加權報酬函式組在一起的集合
- minimax
- 用來做井字棋最佳對手的演算法,對它而言最好的結果是和局
- stratified sampling
- Stefano 加的分層抽樣,讓每個 batch 都有平衡的對手強度組合
- LFM2
- Liquid AI 的小型快速開源模型,是這場被訓練的對象
- GPT-5 Mini
- 這場拿來當基準,也用來產 SFT 資料的模型,Stefano 稱它為 teacher model
- Haystack
- Stefano 在 Deepset 開發的開源 LLM 框架








