Hugging Face、178枚の画像で水彩画AIを訓練

Hugging Faceは9月3日、コーディング用モデルを水彩画が描けるように訓練した記録を全公開した。パイプラインのどこにも拡散モデルは登場せず、画像生成コンポーネントも一切使っていない。モデルが出力するのはJavaScriptのコードで、p5.brushというブラシライブラリを呼び出し、それを実行するとキャンバス上に水彩画が残る仕組みだ。

著者はSergio Paniego、元のアイデアはSurya Narreddi氏による。ベースモデルにはQwen3.5-35B-A3Bを採用し、TRLのGRPOで学習、LoRAは全ての線形層にかけ、学習率は5e-5、スケジューラーはconstant_with_warmupを使った。コード実行・レンダリング・採点はOpenEnv環境の中で完結する。モデルがコードを生成し、環境がそれを実行してスクリーンショットを撮り、採点器に渡す流れだ。

報酬に正解はない、あるのは参考画像プールだけ

ここ数年、大規模モデルへの強化学習がうまくいってきた場面の多くには、正誤を自動判定できる終着点があった。数学の問題には模範解答があり、コーディングの問題にはユニットテストがある。水彩画にはどちらもない。今回の記録が採った解法は、「見栄えが良いかどうか」を、採点可能な二つの要素に分解することだった。

報酬関数は4項目で構成される。コードが実行できるかどうかが0.05、コードの長さが0.05を占め、残り9割は二つの審美シグナルに割り振られる。一つはペア比較を行う審査員モデル、もう一つはHPSv3という人間の好み採点器だ。この二つの重みは実験ごとに入れ替わり、judge-led群では審査員が0.60・HPSv3が0.30、hps-led群ではその逆になる。

審査員の判断基準は人手で採点した178枚の参考画像プールから来ている。モデルが1枚生成するたびに、このプールの作品と比較される。このプールは同時に「多様性とは何か」も規定している。ブログの原文には「The pool decides what counts as variety, the same way it decides what counts as quality(プールが質を定義するのと同じやり方で、多様性も定義する)」とある。この178枚が、学習目標全体の上限を事実上決めていることになる。

3回の実験、3本の曲線

著者は3種類の比較実験を行った。HPSv3のみで採点した群は60ステップ実行し、平均報酬は0.58から0.71まで上昇。judge-led群は110ステップで0.45から0.72へ、hps-led群も同じく110ステップで0.57から0.82へと、開始点・終了点ともに3群中で最も高い数値になった。

上昇幅が最も大きかったのはjudge-led群の0.27だが、開始点も3群中で最も低かった。hps-led群は上昇幅0.24ながら0.82で着地しており、人間の好み採点器を主役に、審査員モデルを補助に回した方が、逆の構成より安定する結果になった。審査員なしで採点器のみに頼った群は上昇幅0.13にとどまり、3群中最小だった。ペア比較という層が確かに追加のシグナルを生んでいることになり、あってもなくてもいい飾りではない。

GPU1枚、34時間、数百ドル程度

ハードウェア構成はシンプルで、全工程を通してH200を1枚使用。60ステップの実行に18時間、110ステップの実行に34時間かかった。レンダリングはCPU仕様のSpace上で、HPSv3の採点はa100-large仕様のSpace上で動かしている。

クラウドのH200を1時間3~4ドルとして概算すると、110ステップの学習を1回フルで回すのに100~140ドルほどかかる計算になる。採点器とレンダリングの分を加えても、プロジェクト全体の計算コストは数百ドル規模に収まる。「審美的な好みを報酬として使えるかどうか」を検証したいだけのチームにとっては、気軽に試せる水準のハードルだ。

公開されている内容はかなり網羅的で、学習レシピとスクリプトはGitHubに、178枚の参考画像データセット、そのまま複製できるRL環境のSpace、HPSv3採点器のSpace、3つのLoRAアダプターとそれぞれのロールアウトデータセット、さらに全ての生成結果を見て回れるギャラリーまで揃っている。再現したい人は環境をゼロから構築する必要がなく、Spaceを複製して報酬の重みを調整すれば始められる。

この発想を延長すると、応用先はいくつも見えてくる。フロントエンドのコンポーネントの見た目、ポスターのレイアウトの余白感、グラフの配色が適切かどうか——こうした「正誤は言えないが人が見れば優劣が分かる」タスクは、これまでRLの報酬関数に落とし込みにくかった。今回のやり方は、まず数百枚規模の参考プールを用意し、そこそこ使える好み採点器を見つけ、あとはGRPOに任せるというものだ。厄介さが残るのは参考プールの側で、プールが偏っていればモデルも偏る。しかもかなり整った形で偏る。

参考資料:Hugging Face公式ブログ、TRLおよびOpenEnvプロジェクトのドキュメント、CocoLoop。3つの実験のステップ数・報酬の範囲・GPU1枚あたりの実行時間は、ブログの学習記録と照合済み。計算コストは公開されている料金表に基づく概算。