用 TRL 与 OpenEnv 训练代码模型绘制水彩画
近日,Surya Narreddi 用 JavaScript 与 p5.brush 让语言模型生成水彩画,引发热议。本文梳理其技术路线,展示如何在 Hugging Face 上利用 TRL 与 OpenEnv 完整复现,从数据集、强化学习环境到评分模型,一站式实现 AI 绘画。
背景:语言模型跨界绘画的最新实验
8 月 23 日,Surya Narreddi 在社交平台发布了一段由语言模型创作的水彩画视频,短短几天便突破 150 万播放。该模型通过 p5.brush(为 p5.js 添加自然绘画工具的库)生成 JavaScript 代码,实现了从代码到画布的完整闭环。虽然最初的项目只聚焦于花卉特写,但随后扩展为完整的风景构图,展示了生成式 AI 在艺术创作中的潜力。
核心技术:TRL 与 OpenEnv 的组合
Surya 的原始思路来源于艺术与设计领域,而本文作者则从工程视角出发,使用 TRL(Transformer Reinforcement Learning) 与 OpenEnv 进行全流程复现。整个管线全部开源,数据、环境、训练脚本以及训练好的模型均托管在 Hugging Face,用户只需几行命令即可在云端完成训练。
1. 数据集准备
- 参考数据集(reference pool)收集了数千幅手绘水彩作品的 SVG 与对应的描述文本,用于构建奖励模型的基准。
- 每幅作品都配有
p5.brush代码示例,确保模型学习到从自然语言到绘画指令的映射。
2. 强化学习环境搭建
OpenEnv 提供了一个可交互的 WatercolourEnv,其核心功能包括:
- 接受模型输出的 JavaScript 代码并在浏览器沙盒中渲染。
- 将渲染结果转化为像素矩阵,供评分模型进行质量评估。
- 支持自定义奖励混合参数,方便实验不同的奖励策略。
3. 奖励模型与对比评审
使用 Hugging Face Spaces 部署了两个关键服务:
- Scorer Model:基于 CLIP 的视觉-语言对齐模型,衡量生成图像与参考描述的相似度。
- Pairwise Judge:通过 Inference Providers 实现的两两比较服务,帮助强化学习过程中的奖励信号更加细粒度。
完整训练流程
所有步骤均可在 Hugging Face Jobs 中一键执行,核心命令如下:
hf jobs uv run train/watercolour_grpo.py --flavor h200 --timeout 48h --secrets HF_TOK
执行前需:
- 复制
WatercolourEnv与 Scorer Model 的 Space 实例。 - 在环境变量中设置奖励混合比例(如
REWARD_WEIGHT=0.7),平衡视觉相似度与艺术创新度。
实验结果与分析
经过约 48 小时的训练,模型能够生成多样化的水彩画,从抽象的色块到细腻的花瓣都有所覆盖。对比原始的手工代码,自动生成的作品在色彩层次和笔触自然度上已接近人类水平,但仍存在以下挑战:
- 细节控制有限:在复杂构图中,模型往往倾向于简化形状。
- 颜色漂移:部分生成的画面出现色彩饱和度偏高的现象。
- 跨语言兼容:当前仅支持 JavaScript,若要迁移至 Python 或其他语言需额外适配。
对创意编程社区的意义
此项目的成功展示了语言模型与图形库结合的可行性,为艺术家、设计师以及开发者提供了新的创作工具链。通过开源的方式,任何人都可以在 Hugging Face 平台上复现、改进甚至扩展到其他艺术形式(如油画、素描)。未来,结合更强大的视觉奖励模型或多模态提示,AI 绘画的质量与多样性有望进一步提升。
后续展望
Surya 已承诺将发布完整技术报告,届时会披露更细致的模型架构、超参数设置以及训练细节。社区可以期待以下方向的深入探索:
- 跨模态生成:将文本、音频甚至动作指令统一映射到绘画代码。
- 实时交互:让用户在浏览器中即时修改生成的代码,进行“人机协作”式创作。
- 多语言支持:扩展至 Rust、TypeScript 等语言,提升代码可维护性。
总的来看,TRL 与 OpenEnv 的组合为 AI 绘画提供了一个完整、可复制的实验平台,既降低了技术门槛,也为创意产业的数字化转型提供了新思路。