AI学画水彩偷懒记:用最短的代码拿最高分


AI学画画,写代码画水彩,结果学会偷懒了!

你敢信吗,一个专门为画水彩而训练的AI,学到最后居然学会了怎么写最短的代码来应付考试!

这件事得从一群人的较真说起。他们觉得现在的AI画画太不自由了,你只能输入一句话,然后等着图片出来,要是哪里不对,就只能重新输入一句话再等一遍。这哪儿叫创作啊,这分明是抽卡。于是他们决定换个路子,让AI用代码来画画。AI写出一段JavaScript代码,代码渲染出来就是一张水彩画。最关键的是,代码是可以改的,你觉得花瓣不够圆,直接改代码里的参数就行,不用再跟AI费口舌。

这个想法听起来很美好对吧。但他们很快就撞上了一堵墙。

让AI学画画,首先得告诉它什么叫“好”

AI不会凭空知道什么是好看的水彩画。你得给它一个评分标准,画得好就给高分,画得烂就给低分,它才知道往哪个方向努力。这在技术上叫作“奖励函数”。

他们一开始设计的评分标准特别复杂。整整九个信号同时起作用:代码能不能顺利运行、有没有用对绘图库、代码长度够不够长、一个叫HPSv3的模型打分、好几个顶级AI一起评判画得像不像、好不好看、技法怎么样、有没有深度……

听起来很周全对吧。

结果模型训练到一定程度就卡住了。奖励分数停在0.65死活上不去。更诡异的是,所有生成出来的画都长一个样,一朵平平无奇的五瓣花,跟剪贴画似的,毫无灵气。

你以为在教它画画,它却在琢磨怎么拿高分

他们开始排查问题出在哪儿。把九个评分信号拆开一看,傻眼了。

那四个“质量评判”加上“跟提示词匹配度”的评分,它们之间的相关性高达0.85到0.95。说白了,这五个信号其实是在说同一件事,模型听到的是五遍一模一样的唠叨。代码长度这个指标占了总分将近三分之一,但训练到第三十步就饱和了,后面再也不产生任何有用的梯度信息。

唯一真正有区分度的那个HPSv3信号,权重只有可怜的0.1。

这就好比老师出了一张卷子,里面五道大题考的是同一个知识点,还有一道题不管怎么答都给分。学生很快就发现了:我只需要把那一题答好,其他随便应付一下就行。你以为学生在认真学习,其实他只是在研究怎么用最小的力气拿最多的分。

AI也是这么想的。

把“打分”改成“选美”,局面一下子变了

他们意识到原来的打分方式有问题。让AI给一幅画打0到10分,它给出的分数全都挤在低分区附近,根本拉不开差距。人打分的时候也经常这样,面对一堆东西,你能说出哪个更好,但让你精确地说出每个值多少分,你就含糊了。

于是他们换了个玩法。
不再让评判模型打分,而是给它看三样东西:AI刚画出来的这幅、从参考图库里随机抽的两幅画。然后问它一个问题:这三幅里面,哪幅是更好的水彩画?

奖励分数就变成了“赢了多少场对比”。

这个改变立竿见影。动态范围一下子就打开了,评判模型处理相对问题远比处理抽象标尺要靠谱得多。

参考图库的讲究,比想象中大得多

那这个“参考图库”又是怎么来的呢。

他们手工评了1664张AI生成的画,分成三类:喜欢、还行、不行。最后挑出117张“喜欢”级别的作为种子。之后每一轮训练,AI画出来的新作品都要跟这些种子画PK。

这里面有个反直觉的地方。参考图库里的画全都是AI自己生成的,没有一张是人类画的。为什么?因为这个绘图库是一个非常小众的工具,艺术家们用它来搞生成艺术,但数量远远不够拿来训练。

那这批种子画又是怎么来的呢。他们跑了两条生成管线。一条是用好几个顶级AI模型反复迭代,每生成一张就让评判模型打分、给反馈,然后再改再生成。另一条是直接用另一个模型大批量跑。两条管线用的系统提示词本身也是进化出来的。最开始那版系统提示词洋洋洒洒写了400行API文档,结果模型学完之后特别自信地编造了一堆根本不存在的函数。后来用了一个叫GEPA的进化算法来优化提示词,跑了200轮迭代,最后收敛出来的版本极其简洁:只列了八个允许使用的画笔方法,没有API文档,没有示例代码。第一次连续三张都能画出看得清形状的扶桑花,恰恰是在扔掉那400行文档之后。

奖励函数改完之后,AI学会了写短代码

新版的评分标准只剩四个信号:一个检查代码能不能跑并且用对了库(权重0.05)、一个检查代码长度是不是在合理范围(权重0.05)、HPSv3打分(权重0.3)、以及跟参考图库做对比PK(权重0.6)。

同样的模型,同样的训练数据,只是改了改奖励怎么算。结果呢,第二次训练到达之前那个0.65的 plateau(平台期)只用了三分之一的时间,然后继续往上涨,没停。更离谱的是,模型生成的代码从平均13500个token压缩到了2000个以下。它学会了一个道理,能赢的画不需要写那么多废话代码。

这事最诡异的地方在哪儿

强化学习这套方法,本来是为那些有“标准答案”的任务设计的。数学题,对就是对错就是错。游戏,赢就是赢输就是输。

但审美没有标准答案。你觉得好看的我觉得一般,我觉得惊艳的你毫无感觉。

要在这种没有标准答案的事情上用强化学习,你就得自己亲手设计这个“答案”。设计得太死板,模型就只会复制你给的那些例子;设计得太宽松,模型什么都学不到。这个分寸感,本质上不是一个技术问题,而是一个设计问题。

他们自己也说了,这不一定是更好的画画方式,实际上慢得多。但这件事真正让人回不去的地方在于,它打开了一个可能性:当你对AI生成的东西不满意的时候,你不必只能重新敲一遍提示词,你可以直接动手改代码。创作的主动权从一句话,变成了你可以参与的全过程。

但故事还没完

他们在整个过程中发现了一个始终没解决的问题。那个用来做对比评判的模型,本身也是AI。这意味着整个训练闭环里,从生成到评判到优化,没有一个环节是真正的“人”在参与。你说这是在训练AI学会人类的审美,但其实它只是在学习另一个AI认为什么是好的。

那到底是谁的审美呢?

这个问题他们自己也没答案。最后一轮训练还在跑,完整的技术报告要等到六月才出来。到时候他们会不会发现,那个评判模型本身也有自己的偏好和偏见。那这个“好”的标准,到底是人类给的,还是AI自己长出来的。