使用強化學習訓練 AI 以程式碼繪圖
AI 生成的藝術作為可編輯的程式碼
Surya Narreddi 與研究團隊開發了一種方法,訓練語言模型透過編寫程式碼而非生成像素來創建圖像。透過將程式碼視為主要產物,該系統允許對圖像進行細粒度且直接的編輯——這與傳統的 AI 圖像生成器有顯著不同,後者的唯一互動點僅為提示詞。
強化學習迴圈
該系統採用了一個四步驟的迭代迴圈,在訓練期間運行數千次,以精煉模型產出美學結果的能力:
- 生成:模型接收提示詞(例如:「用水彩畫一朵桃色木槿花」)並編寫一個完整的 p5.brush JavaScript 草圖。
- 渲染:該草圖在沙盒化的 Puppeteer 環境中執行,以生成 PNG 圖像。
- 判斷:一個獨立的判斷模型會將生成的 PNG 與來自人工評分池的兩幅隨機參考畫作進行比較,並選擇較優的水彩畫。
- 更新:判斷結果會被轉換為獎勵訊號,並使用 Group Relative Policy Optimization (GRPO) 來更新模型。
為美學設計獎勵函數
由於美學品質是主觀的,無法像數學問題一樣被驗證為「正確」或「錯誤」,因此該專案的重點在於獎勵函數的設計,這是主要的挑戰。研究人員發現,獎勵函數必須經過仔細平衡:如果太過僵化,模型會過早收斂;如果太過鬆散,模型則會產生偏移。
參考池
為了建立獎勵訊號的基礎,團隊策劃了一個包含 581 幅參考畫作的池。這些畫作源自 1,664 次生成,並分為三個層級:117 幅「愛好層級」、266 幅「還可以」、以及 198 幅用於填補色彩表現缺口的補充畫作。
由於使用小眾 p5.brush 函式庫的人造範例非常稀少,參考池是透過兩條流水線來填充的:
- AutoResearch:利用 Opus 4.6、GPT-5.4 與 Gemini 3.1 Pro,在 VLM (Vision Language Model) 判斷模型的監督下,針對參考照片進行迭代。
- Batch Run:使用 Gemini 3.1 Pro 進行更大規模的生成運行。
系統提示詞演進與 API 幻覺
該專案的一個關鍵技術發現是,在系統提示詞中提供詳盡的 API 文件可能會反而增加幻覺。初始版本的提示詞包含了 400 行的 p5.brush API 參考資料,這導致模型自信地虛構了不存在的 API。
為了修復此問題,團隊使用 GEPA(一個提示詞優化函式庫)針對以品味為基準的 7-shot 判斷模型進行了 200 次迭代的提示詞演進。優化結果收斂於一個高度受限的提示詞,其特點是僅包含八種筆刷方法的嚴格白名單,且不包含任何 API 文件或範例。這種極簡且具備主見的(opinionated)方法顯著減少了幻覺,並改善了實際的視覺輸出。
社群洞察綜述
圍繞該專案的社群討論突顯了生成藝術與現代 RL 技術的交集。一些貢獻者指出,這與早期學習筆刷筆觸的研究(例如 2018 年基於 GAN 的方法)非常相似,並提到這種方法有潛力應用於其他格式,如 SVGs 或 voxels。
評論中提出的一個技術反對觀點建議,RL 在生成訓練分佈之外的風格或新穎性方面可能效率低下,並指出對於類似任務,在基礎模型上進行監督式微調 (SFT) 通常可以處理大部分的行為訓練:
"RL is very ineficient at style or at least at generating novelty out of distrib."
結論
雖然透過程式碼生成圖像的速度比傳統的擴散模型慢,但它透過提供可編輯的產物,將使用者從旁觀者轉變為創意參與者。該專案證明了,對於創意任務,RL 本質上是一個設計問題:建立一個結構,讓人類的品味能夠泛化為模型的偏好。
Sources
相關
- 專案
- 專案
- Dispatch
- Dispatch