训练AI用代码绘画
摘要
一个利用强化学习训练语言模型通过编写可编辑代码生成图像的研究项目,针对创意任务中的奖励函数和系统提示演进挑战提出了解决方案。
暂无内容
查看缓存全文
缓存时间: 2026/08/23 22:44
# 苏里亚·纳雷迪
来源:https://surya.website/rling-qwen-to-paint-with-code
## 训练人工智能用代码作画
当你用人工智能模型生成图像时,唯一能参与的方式就是提示词。你无法直接编辑图像。想要修改任何内容,只能回到模型重新输入提示词。正是这种限制催生了这个项目。我和朋友卡梅隆使用强化学习训练了一个语言模型,通过编写代码来生成图像。代码是产物,且代码可编辑。无需通过提示词,你就能更精细地调整模型的输出。
这个项目更深层的问题是:如何在创造性与设计任务中应用强化学习。当奖励可验证时,强化学习才能有效运作。数学题有对错之分,游戏有输赢之别,但审美质量却并非如此。设计问题转向了奖励函数以及评委被要求应用的标准。过于严苛,模型会趋同;过于宽松,模型会漂移。
[\[我的论文演示视频,包含本项目的背景信息。\]](https://vimeo.com/1190839818)
### 我的贡献
### 团队
## 工作原理
系统采用四步循环,在训练过程中运行数千次。
模型接收类似*"绘制一幅水彩桃花芙蓉"*的提示,并编写完整的p5.brush JavaScript草图。该草图在沙盒化的Puppeteer环境中渲染,生成PNG图像。PNG图像会与从人工评分库中随机选取的两幅参考画作进行比较,由独立的评判模型选择更优的水彩画。评判结果转化为奖励信号,通过GRPO更新模型,然后循环再次运行。
非显而易见的选择体现在评判对象、评判方式、参考库内容以及系统提示词的撰写方式上。以下各节将分别讨论这些方面。
参考库 · 581幅参考画作 · 117幅爱心级别画作每次生成抽取数千次迭代提示词桃花芙蓉水彩画模型Qwen 3.5 35B编写JS代码渲染Puppeteer → PNG评判成对比较2幅参考画作奖励GRPO更新提示词模型工具评判更新
训练循环。
## 奖励函数
0501001502000\.000\.250\.500\.650\.751\.00训练奖励 · 200步训练步数 →奖励旧标准 · 9个信号新标准 · 4个信号0\.65 — 旧标准上限奖励函数的变化 ↓旧标准9个信号 · 5个冗余编译5%画笔使用5%长度递增32%HPSv3 10%评审团8%识别度10%美学15%技巧8%深度7%5位评委, ρ = 0\.85–0\.95新标准4个信号 · 成对比较主导编译门控5%长度5%HPSv3 30%成对比较60%
旧标准与新标准在相同坐标轴上的奖励曲线对比。
## 参考库
参考库包含581幅参考画作。所有画作均从1664代生成结果中人工评分筛选而来,其中117幅为爱心级别,266幅为良好级别,另有198幅补充画作来自单独生成批次,用于扩展色彩方面人工评分样本较少的比较集。
库中每幅图像都是模型输出。由于p5.brush是艺术家使用的小众工具,我们无法获取足够的人工创作样本。生成工作通过两条流水线完成:一是使用Opus 4.6、GPT-5.4和Gemini 3.1 Pro的AutoResearch,在视觉语言模型评判下,参照参考照片进行迭代并获得评分与反馈;二是在Gemini 3.1 Pro上进行更大批量的生成。两条流水线都使用了经过GEPA进化的系统提示词,将在下一节详述。
## 系统提示词进化
系统提示词也需要调整。早期版本包含长达400行的p5.brush API参考文档。模型生成了格式规范、看似自信的代码,却虚构了不存在的API。
解决方案是使用GEPA——一个能根据评分函数进化提示词的提示优化库。我们针对基于品味锚点的7-shot评判器运行了200次迭代优化。优化收敛于一个包含八种严格白名单画笔方法、无API文档、无示例的提示词。首次实现三代生成中三代都呈现清晰芙蓉花斑块的版本,正是完全抛弃400行参考文档后编写的版本。
这一发现具有普适性:系统提示词中的冗长参考文档会导致模型虚构API;而简短、有倾向性的白名单比原始规范更能约束输出。
v0 · 初始版本
前沿模型仍会虚构API
v0v4帕累托兄弟版本(不同优势)
v4 · 在API参考文档上应用GEPA
虚构现象减少
通过失败否决提案— 边框越粗 = 主要血统
GEPA流程图。
## 演进过程
模型在不同训练步骤下的输出展示。
训练模型生成作品节选。每幅作品均由模型编写JavaScript代码渲染生成。
## 结语
强化学习需要可验证的奖励。数学题有对错,游戏有输赢,但审美偏好并非如此。要对主观作品应用强化学习,必须人工构建奖励机制,并精心设计使其具有泛化能力。过于具体,模型只会模仿你评分过的样例;过于宽松,模型则学不到明确内容。创造性任务的强化学习,实质上是构建一种结构化设计问题,让品味能泛化为用户的偏好。
我认为这并非更好的图像生成方式——实际上慢得多。但启动项目时,我深感挫败:用人工智能参与图像创作的唯一途径只能通过提示词。这个项目让我能将注意力与精力贯穿于提示词、模型与产物三个环节。项目仍在进行中,最终一次训练运行旨在修复过程中发现的问题。完整技术报告将于6月26日发布。
相似文章
学习交流
OpenAI研究人员演示了协作型AI代理可以通过在简单世界中进行强化学习,发展出自己的有根据的和组合型语言。这些代理通过获得需要协调的目标奖励来学习交流,创建共享的符号语言以协调行为。
语言模型能作画吗?
作者探讨了语言模型是否能通过迭代绘画过程(而非一次性生成)来创作艺术,并构建了一个应用,利用视觉语言模型逐笔绘制笔画。这一实验凸显了大型语言模型生成物的脆弱性,并引发对艺术真诚性的反思。
使用 TRL 和 OpenEnv 训练编码模型绘制水彩画
本文详细介绍了一个使用 TRL 和 OpenEnv 训练编码模型生成水彩艺术作品的开源复现项目,完整的流程成果已发布于 Hugging Face,以确保可复现性。
先素描后绘制:面向扩散多模态大语言模型的层次化强化学习
本文提出HT-GRPO,一种面向扩散多模态大语言模型的层次化强化学习方法,它采用先素描后绘制的训练方案和层次化信用分配机制,以提升图像生成质量和奖励对齐效果。
使用ChatGPT创建图像
OpenAI关于使用ChatGPT通过文本提示生成和编辑图像的指南,涵盖编写有效提示的最佳实践和迭代优化技巧。