使用 TRL 和 OpenEnv 訓練程式碼模型繪製水彩畫

Hugging Face 發布了一個專案的開源重現版本,該專案透過編寫 JavaScript 程式碼來訓練程式碼模型生成水彩畫。藉由利用 TRL 和 OpenEnv,該專案展示了強化學習 (RL) 可以應用於「品味」與美學偏好,讓模型超越統計上的平均圖像,朝向特定的藝術風格邁進。

RL 優於美學品味

此專案的核心目標是確定 RL 是否可以用於優化美學偏好,而非可驗證的事實。獎勵函數是四個組成部分的加權混合,旨在引導模型朝向特定的水彩風格:

  • Pairwise Judge (60%): 一個視覺模型 (Qwen3-VL-30B-A3B-Instruct) 會將候選繪畫與從人工策劃的池中隨機選擇的四個參考對象進行比較。這編碼了策劃者的特定品味。
  • HPSv3 (30%): 一個開源 7B 偏好模型,根據文本描述為一般大眾對圖像的偏好程度進行評分。
  • Gate (5%): 一個二元檢查,確保草圖可以編譯、使用允許的函式庫,並產生實際的顏料,而不是「作弊」(例如,在畫布上寫字)。
  • Length (5%): 對較長程式碼片段的輕微推動。

進行了三次訓練運行以測試這些裁判的影響:

Run Pairwise Judge Weight HPSv3 Weight Result
judge-led 0.60 0.30 最具多樣性且在藝術上最有趣的結果。
hps-led 0.30 0.60 具有一致「濕畫法」(wet-on-wet) 外觀的說服力水彩畫。
hps-only 0.00 0.90 可靠但很快收斂到相似的顏色和風格。

技術環境與限制

訓練流水線依賴於一個專門的 RL 環境,該環境封裝了模型的輸出並將其轉換為視覺渲染。

p5.brush 函式庫

而非繪製基本形狀,模型使用 p5.brush 函式庫,該函式庫模擬了物理水彩特性,例如顏料滲透、紙張紋理和流場。為了維持水彩美學,模型被限制在僅 10 個方法的嚴格白名單中(例如,fillBleedfillTexturebeginShape)。

參考池

品味是由一個包含 178 幅繪畫的參考池定義的,分為 loveokay 兩個等級。這些圖像是由四個開源權重模型 (GLM-5.2, Kimi-K3, Qwen3-Coder-Next, 和 Qwen3.5-122B-A10B) 生成,並在人工評分前透過視覺評論家進行精煉。在訓練期間,Pairwise Judge 會從這兩個等級中抽取參考對象,以確保模型在策略開發的早期和弱階段也能接收到訊號。

訓練實施與優化

該專案使用了 TRL 中的 GRPOTrainerQwen/Qwen3.5-35B-A3B 模型。為了啟動學習,需要進行幾項關鍵的配置更改:

  • Learning Rate: 從 2e-5 增加到 5e-5。
  • Scheduler:linear 改為 constant_with_warmup 以防止學習率過早衰減。
  • Reward Scaling:scale_rewards 設置為 none 以防止單次 Gate 拒絕導致整個群組的優勢值縮小。
  • LoRA Target Modules: 改為 all-linear 以確保適配器 (adapter) 能夠觸及 MoE 架構中的每個線性層。

關鍵發現與學習成果

分佈偏移

在所有運行中,模型首先學會了消除「糟糕」的繪畫(接近空白的畫布或無形的渲染效果)。在 hps-only 運行中,改進主要體現在分佈的中位數。然而,在 judge-ledhps-led 運行中,頂端品質也隨之提升,隨著模型因符合策劃池的風格而獲得獎勵,顏料覆蓋率也翻倍了。

限制與獎勵

模型學會了忽略系統提示詞 (system prompt) 中未與獎勵掛鉤的明確指令。例如,一個要求產生 15-30 個填充形狀的要求被忽略,轉而產生 7-9 個形狀,因為形狀的數量與獎勵無關。

基礎設施與成本

該流水線端到端地託管在 Hugging Face 上,利用 HF Jobs 進行訓練、Spaces 為 RL 環境和 HPSv3 評分器提供支持,並使用 Inference Providers 為 Pairwise Judge 提供支持。

  • Compute: 單次 110 步的運行在一個 H200 GPU 上大約耗時 34 小時。
  • Bottleneck: 渲染是主要的耗時點,佔據了步驟時間的 70-80%,因為 headless Chromium 在基於 CPU 的 Space 上透過軟體進行 WEBGL canvas 渲染。

未來方向

作者指出了未來迭代的幾個潛在改進方向:

  • Multi-step Feedback: 實施一個循環,讓模型可以看見自己的繪畫並進行精煉,類似於我們參考池是如何創建的。
  • Model Scaling: 測試更小的模型(例如 4B),因為初步實驗表明它們可以產生有效的草圖。
  • SFT Pre-training: 在開始 RL 訓練之前,對參考池來源進行監督式微調 (Supervised Fine-Tuning)。

Sources