核心概念
這個 Hugging Face 實作把「用模型畫水彩」拆成更可檢驗的問題:不直接生成圖片,而是讓程式模型撰寫約 150 行 JavaScript,透過 p5.brush 渲染成水彩畫,再以強化學習把特定人的審美偏好回饋給模型。輸出是可閱讀、可編輯、可重跑的程式碼;模型究竟為何下某一筆顏料,至少不再完全藏在影像模型的黑箱裡。^[raw/articles/huggingface-train-to-paint-with-code-2026-09-03.md]
文章用 TRL 的 GRPO 訓練 Qwen3.5-35B-A3B 的 LoRA adapter,並用 OpenEnv:開源 Agentic RL 的統一環境協議層 把提示詞、headless Chromium 渲染器、p5.brush 與評分器包成遠端環境。模型只被允許呼叫 10 個繪圖方法;環境的 gate 會檢查程式是否可編譯、確實使用指定函式庫、有繪出顏料,且沒有以文字或其他方式作弊。限制在這裡不是束縛,而是把「水彩感」轉成可學習的可行解空間。^[raw/articles/huggingface-train-to-paint-with-code-2026-09-03.md]
把品味變成獎勵函數
作者人工挑選 178 張由模型生成的花卉水彩,分成 love 與 okay 兩個偏好層級;每次比較抽取四張參考圖。獎勵由四部分組成:可執行且不作弊的 gate(0.05)、程式長度(0.05)、視覺模型對候選與參考圖的 pairwise judge(0.60),以及開源偏好模型 HPSv3 的美感分數(0.30)。前者比較「像不像這個人的選圖風格」,後者較接近一般人對圖文配對的偏好。^[raw/articles/huggingface-train-to-paint-with-code-2026-09-03.md]
這正是專案最重要、也最脆弱的地方:模型學到的不是抽象的「好看」,而是資料池所代表的審美分布。更換參考池,即使訓練程式與模型不變,最終風格也會改變。因此真正的核心資產不是某一個 reward 權重,而是選圖準則、人工分級與能否持續檢驗其偏差的資料治理流程。
工程結果與方法論
作者先用僅 HPSv3 的較簡單目標驗證管線是否能學習,再逐步加入較主觀、噪音更高的 pairwise judge。官方公開的三次實驗中,hps-only 於 60 steps 的平均 group reward 從 0.58 升至 0.71;兩個 110-step 實驗分別由 0.45 升至 0.72(judge-led)與 0.57 升至 0.82(hps-led)。這些是專案自述的訓練指標,能證明該 reward 被最佳化,不能單獨證明作品在未見人群中的審美品質。^[raw/articles/huggingface-train-to-paint-with-code-2026-09-03.md]
排除「曲線不動」的過程也很有參考價值:學習率由 2e-5 改為 5e-5、scheduler 改為 constant_with_warmup、關閉 group reward scaling,並將 MoE 模型的 LoRA target 改為 all-linear,避免只訓練到少數投影層。這是 GRPO 微調 350M 模型:100 步改善結構化輸出 的同一個提醒:GRPO 不是插上就會飛,環境訊號、可訓練參數範圍與 reward 正規化都會決定它是在學習還是在原地抖動。
實務意義
對創意工具而言,這提供了介於「只靠 prompt」與「從頭訓練影像模型」之間的路徑:保留程式作為中介表示,讓創作者能用限制、參考集與可檢查的規則塑造風格。對 Agent RL 而言,案例也具體展示了 OpenEnv:開源 Agentic RL 的統一環境協議層 的價值:訓練器只需處理 rollout 與更新;渲染、驗證、評分與部署環境可以獨立演進、公開複製。
但不要把「reward 上升」誤認為「審美問題已解」。評分模型可能偏好可被攻擊的視覺捷徑,gate 需要持續擴充,且長時間運行的 scorer 成本可能高於訓練本身。較穩健的下一步是讓模型看見自己的渲染結果做多回合修正、以不同人群重評參考池,並把評估集與訓練用偏好池嚴格分離。
相關頁面
- OpenEnv:開源 Agentic RL 的統一環境協議層:可攜式 Agent RL 環境如何解耦訓練器與工具世界。
- GRPO 微調 350M 模型:100 步改善結構化輸出:以更小模型理解 GRPO 的回饋設計與驗證邊界。
- Delta Weight Sync in TRL:異步強化學習的百倍同步壓縮:當此類環境擴大到長時間 rollout 時,訓練與推理同步的基礎設施瓶頸。
反向連結
以下頁面引用了本頁: