DeltaMedia
2026-07-21
開源生態

多輪 RL 的靜默 bug:你的 agent 訓練迴圈可能從一開始就壞了

1/

多輪 RL 的靜默 bug:你的 agent 訓練迴圈可能從一開始就壞了

1/

你的 tool-using agent 訓練了幾千步,loss 在降,但模型沒有你想像的那麼在學。原因不在演算法,在管線裡一個常被忽視的環節,token 邊界。

2/

核心 bug 長這樣:
模型輸出 token → decode 成文字 → 解析 tool call → 把更新後的對話重新 tokenize → 繼續跑 RL。

問題是:重新 tokenize 後,token 序列可能跟原本模型實際採樣的不一樣。你卻把梯度套回這個「模型從沒見過」的序列上。訓練信號從源頭就偏了。

3/

更糟的是,這個 bug 不會炸掉,它只是靜默地讓訓練效率打折,而你幾乎不會察覺。多輪、跨工具呼叫的場景越複雜,偏差累積越快。

4/

Hugging Face 提出的修法叫「Token-In, Token-Out」:採樣出來的 token 就是 token,整個訓練過程維持單一 token buffer,不把已採樣的序列重新編碼,不讓 decode-then-re-tokenize 這個循環存在。

5/

John Schulman 把這個問題框得更大:renderer(負責在訊息與 token 之間轉換的那層基礎設施)是 agent 系統的關鍵路徑,不只影響訓練正確性,也同時決定快取效率與 prompt injection 的攻擊面。大家蓋 agent harness 時幾乎不把 renderer 當作一等公民設計,這是系統性欠債。

6/

結論很簡單:如果你在做多輪 RL 微調,先去審計你的 tokenization pipeline。訓練迴圈的正確性不是模型問題,是基礎設施問題。把 renderer 當 infra 認真對待,比換更大的模型更值得先做。

相關公司 HuggingFace
本文由 DeltaMedia 編輯團隊審核後發布 · 編輯原則