用强化学习训练代码模型画水彩:TRL 与 OpenEnv 实战复盘

AI 前沿用强化学习训练代码模型画水彩openstarry.com

是什么与核心能力

这个项目的核心是把一个代码大模型训练成《用水彩作画》的画师:模型收到一段文字描述(例如 a peach hibiscus),不是直接出图,而是写出一段约 150 行的 JavaScript 代码,使用 p5.brush 库在画布上模拟水彩效果,最终渲染成图像。p5.brush 不是绘制几何图形,而是模拟真实媒介——颜料会洇出边界、纸面有纹理、笔触有质量、流场会牵引笔刷走向。当模型调用 brush.fillBleed(0.25) 时,它决定的是墨迹晕开多远。

整个流程的输入是文本提示,输出是一段可读、可编辑、可重跑的 JavaScript 程序,决策逻辑保留在代码注释里。这与传统文生图模型《提示词即杠杆》的方式不同,模型对每一笔的控制权更细。

关键技术原理

为了让模型真正学会这种风格,训练采用了强化学习中的 GRPO(Group Relative Policy Optimization)算法,配合 TRL 与 OpenEnv 框架。整个工作链路分四层:

  1. 受限的生成空间:p5.brush 一共暴露 47 个方法,但系统提示只允许 10 个:scaleBrushes、noStroke、fill、noFill、fillBleed、fillTexture、beginShape、vertex、endShape 和 circle。其他方法(线条、阴影、自定义笔刷)会破坏水彩质感,因此被刻意屏蔽。
  2. 沙箱化执行环境:环境内嵌 p5.brush 库、限制性系统提示、无头 Chromium 渲染器,以及一个守门器(gate)。守门器拒绝不符合规则的代码——例如未调用库而直接用 p5、画布上写字作弊等。
  3. 奖励函数四要素:
  1. 手工筛选的参考池:池中 178 张画作分为 love 和 okay 两档,全部由四个开源模型(GLM-5.2、Kimi-K3、Qwen3-Coder-Next、Qwen3.5-122B-A10B)以 iNaturalist 上的真实扶桑花照片为提示生成,并由一位作者逐张打分。成对评判器每次从池中抽 4 张参考(一半 love、一半 okay),让弱策略也能拿到对比信号。

与上一代的差异

上一阶段的实验聚焦于《特写花朵》且未公开制品。本次复现的关键变化有三:

如何用起来:通过 OpenStarry 接入

如果你想直接用上 qwen 这类模型/工具,可以通过 OpenStarry 用一个 Key 快速接入,无需各自注册多个平台:

接入示例:

base_url: https://api.openstarry.com/v1
api_key: <你的 OpenStarry Key>
model: qwen3.7-max

以 AI 之力,筑未来之境

现在注册,立即免费获赠 200 次大模型调用权益

免费注册 →