使用强化学习训练 AI 通过代码绘画

AI 生成的艺术作为可编辑代码

Surya Narreddi 和研究团队开发了一种方法,通过编写代码而非生成像素来训练语言模型创建图像。通过将代码作为主要产物,该系统允许对图像进行细粒度、直接的编辑——这与传统的 AI 图像生成器有显著不同,在后者中,唯一的交互点就是提示词。

强化学习循环

该系统采用了一个四步迭代循环,在训练期间运行数千次,以优化模型产生美学结果的能力:

  1. 生成:模型接收一个提示词(例如,“用水彩画一朵桃色木槿”)并编写一个完整的 p5.brush JavaScript 草图。
  2. 渲染:草图在沙盒化的 Puppeteer 环境中执行,以生成 PNG 图像。
  3. 判断:一个独立的裁判模型将生成的 PNG 与来自人工评分池的两个随机参考画作进行比较,并选择更优的水彩画。
  4. 更新:判断结果被转换为奖励信号,并使用 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 文档或示例。这种极简且具有主见性的方法显著减少了幻觉并提升了实际的视觉输出。

社群见解综合

围绕该项目的社群讨论突出了生成艺术与现代 RL 技术之间的交集。一些贡献者指出,这与早期学习笔触的研究(例如 2018 年基于 GAN 的方法)具有相似性,并且这种方法有潜力应用于 SVG 或 voxels 等其他格式。

评论中提出的一个技术反驳点建议,RL 在生成训练分布之外的风格或新颖性方面可能效率低下,并指出对于类似任务,在基础模型上进行有监督微调 (SFT) 通常可以处理大部分行为训练:

"RL is very ineficient at style or at least at generating novelty out of distrib."

结论

虽然通过代码生成图像比传统的扩散模型慢,但它通过提供可编辑的产物,将用户从旁观者转变为为创意参与者。该项目证明了,对于创意任务,RL 本质上是一个设计问题:创建一个允许人类品味泛化为模型偏好的结构。

Sources

相关

  • 项目
  • 项目
  • Dispatch
  • Dispatch