AI・機械学習
AIにコードで絵を描かせるトレーニング
Training AI to Paint with Code (surya.website)
要約
この記事では、AIモデルがプロンプトだけでなくコードを生成して画像を生成する手法について説明しています。研究者たちは、Qwen 3.5 35Bモデルを、p5.brush JavaScriptスケッチを生成するようにファインチューニングしました。報酬関数を調整し、ペアワイズ評価と参照プールを導入することで、モデルはより洗練されたコードと画像を生成できるようになりました。
全文翻訳
ホーム
ワーク
ブログ
について
AIにコードで絵を描かせるトレーニング
2026年3月・リサーチ、デザイン、開発。
AIモデルで画像を作成する際、参加できる唯一の方法はプロンプトです。画像を直接編集することはできません。何かを変更するには、モデルに戻って再度プロンプトを入力する必要があります。その制約がこのプロジェクトの始まりでした。
私の友人キャメロンと私は、強化学習を使用して、コードを書いて画像を作成する言語モデルをトレーニングしました。コードは成果物であり、コードは編集可能です。プロンプトに戻ることなく、モデルが生成したものをより詳細に変更できます。
このプロジェクトが問うより深い問いは、創造的およびデザイン的なタスクで強化学習をどのように行うかということです。RLは、報酬が検証可能な場合に機能します。数学の問題は正解か不正解かです。ゲームは勝ち負けです。美的品質はどちらでもありません。デザインの問題は、報酬関数と、審査員に適用を求められる基準に移ります。厳格すぎると、モデルは収束します。緩すぎると、モデルはドリフトします。
[このプロジェクトの背景にある私の修士論文発表のビデオ。]
私の貢献
デザイン
開発
RLリサーチ
チーム
Surya
Cameron Franz
Alex Wang
コードで作成されたハイビスカスの水彩画。
コードで作成されたハイビスカスの水彩画。
仕組み
このシステムは、トレーニング中に数千回実行される4段階のループです。
モデルは、「水彩画で桃色のハイビスカスを描いて」のようなプロンプトを受け取り、完全なp5.brush JavaScriptスケッチを作成します。スケッチはサンドボックス化されたPuppeteer環境でレンダリングされ、PNGが生成されます。PNGは、手動で評価されたプールからサンプリングされた2つのランダムな参照絵画と比較され、別の審査員モデルがより良い水彩画を選択します。この審査は報酬信号に変換され、GRPOがモデルを更新し、ループが再度実行されます。
明白でない選択肢は、審査される内容、審査の方法、参照プールに含まれるもの、およびシステムプロンプトの書き方にあります。それぞれが以下のセクションの主題です。
参照プール・581件の参照・117件のラブティア
ロールアウトごとに2件サンプリング
数千回のイテレーション
プロンプト
水彩画で桃色のハイビスカス
モデル
Qwen 3.5 35BがJSRenderを記述
Puppeteer → PNG
審査員
ペアワイズ vs 2件の参照
報酬
GRPOアップデート
プロンプト
モデル
ツール
審査員
アップデート
トレーニングループ。
報酬関数
最初のルーブリックには9つの個別のシグナルがありました。コンパイルゲート。ネイティブp5ではなくp5.brushを実際に使用しているかのチェック。約3,000トークンを目標とするコード長ランプ。HPSv3、人間の選好モデル。GPT-5.4とGeminiの評議会によって審査されたプロンプトへの準拠。そして、認識可能性、美的感覚、技術、深さの4つの品質審査員。
モデルは報酬0.65付近でプラトーに達し、そこに留まりました。すべてのロールアウトが同じように見えました。5つの丸い花びらを持つ、平坦なクリップアートのような花。報酬は上がり続けましたが、能力は向上していないように見えました。
診断は、サブ報酬を個別に調べることから得られました。4つの品質審査員とプロンプトへの準拠は、0.85から0.95で相関していました。それらは5回同じことを測定していました。コード長は、総報酬の約3分の1を占めていましたが、ステップ30までに飽和し、それ以降は勾配がゼロになりました。実際の変動を示した唯一のシグナルであるHPSv3は、0.10で重み付けされていました。私たちが作成したルーブリックは、モデルに何度も同じことを伝えていました。
修正は2つの部分からなりました。
絶対スコアリングをペアワイズ評価に置き換える。元のルーブリックでは、審査員は各ロールアウトを0から10のスコアで評価するように求められました。スコアはゼロ付近で圧縮されて返されました。ペアワイズスコアリングは異なる質問をします。審査員は、ロールアウト、プールからの2つの参照、および単一のプロンプトを表示されます。「これらのうち、どちらがより良いハイビスカスの水彩画ですか?」報酬は、比較で勝つ割合です。ダイナミックレンジが開きます。審査員モデルは、抽象的なスケールよりも相対的な質問をより確実に扱います。手動で評価された例の参照プールを構築する。
1,664枚の画像が、ラブ、オッケー、ノープに1枚ずつ評価されました。117件のラブティアの例が比較プールをシードしました。それ以降のすべてのロールアウトは、私が良いと判断したものと比較されていました。次のステップ(私たちは到達しませんでしたが)は、評価自体で小さな報酬モデルをトレーニングすることでした(適切なRLHF)、これにより、毎回プールと比較する必要なしに、モデルの「良い」という感覚を適用できるようになります。
新しいルーブリックは、それらすべてを4つのコンポーネントにまとめました。バイナリコンパイル・アンド・ユーズ・ブラシゲート(0.05)、バイナリ長チェック(0.05)、HPSv3(0.30)、および参照プールに対するペアワイズ審査員(0.60)。同じベースモデル、同じトレーニングデータ。次の実行は、以前のプラトーを3倍速く到達し、それを超えて登り続け、13,500トークンから2,000未満に圧縮されたコードを生成しました。モデルは、勝利の構成には冗長なコードが必要ないことを学びました。
最初のルーブリックには9つの個別のシグナルがありました。コンパイルゲート。ネイティブp5ではなくp5.brushを実際に使用しているかのチェック。約3,000トークンを目標とするコード長ランプ。HPSv3、人間の選好モデル。GPT-5.4とGeminiの評議会によって審査されたプロンプトへの準拠。そして、認識可能性、美的感覚、技術、深さの4つの品質審査員。
モデルは報酬0.65付近でプラトーに達し、そこに留まりました。すべてのロールアウトが同じように見えました。5つの丸い花びらを持つ、平坦なクリップアートのような花。報酬は上がり続けましたが、能力は向上していないように見えました。
診断は、サブ報酬を個別に調べることから得られました。4つの品質審査員とプロンプトへの準拠は、0.85から0.95で相関していました。それらは5回同じことを測定していました。コード長は、総報酬の約3分の1を占めていましたが、ステップ30までに飽和し、それ以降は勾配がゼロになりました。実際の変動を示した唯一のシグナルであるHPSv3は、0.10で重み付けされていました。私たちが作成したルーブリックは、モデルに何度も同じことを伝えていました。
修正は2つの部分からなりました。
絶対スコアリングをペアワイズ評価に置き換える。元のルーブリックでは、審査員は各ロールアウトを0から10のスコアで評価するように求められました。スコアはゼロ付近で圧縮されて返されました。ペアワイズスコアリングは異なる質問をします。審査員は、ロールアウト、プールからの2つの参照、および単一のプロンプトを表示されます。「これらのうち、どちらがより良いハイビスカスの水彩画ですか?」報酬は、比較で勝つ割合です。ダイナミックレンジが開きます。審査員モデルは、抽象的なスケールよりも相対的な質問をより確実に扱います。手動で評価された例の参照プールを構築する。
1,664枚の画像が、ラブ、オッケー、ノープに1枚ずつ評価されました。117件のラブティアの例が比較プールをシードしました。それ以降のすべてのロールアウトは、私が良いと判断したものと比較されていました。次のステップ(私たちは到達しませんでしたが)は、評価自体で小さな報酬モデルをトレーニングすることでした(適切なRLHF)、これにより、毎回プールと比較する必要なしに、モデルの「良い」という感覚を適用できるようになります。
新しいルーブリックは、それらすべてを4つのコンポーネントにまとめました。バイナリコンパイル・アンド・ユーズ・ブラシゲート(0.05)、バイナリ長チェック(0.05)、HPSv3(0.30)、および参照プールに対するペアワイズ審査員(0.60)。同じベースモデル、同じトレーニングデータ。次の実行は、以前のプラトーを3倍速く到達し、それを超えて登り続け、13,500トークンから2,000未満に圧縮されたコードを生成しました。モデルは、勝利の構成には冗長なコードが必要ないことを学びました。
9つのシグナル・5つの冗長なコンパイル5%ブラシ使用5%長さランプ32%HPSv310%評議会8%認識10%美的感覚15%技術8%深さ7%5人の審査員、ρ = 0.85–0.95NEW4つのシグナル・ペアワイズが支配的コンパイルゲート5%長さ5%HPSv330%ペアワイズ60%
古いルーブリック vs 新しいルーブリック、同じ軸上の報酬曲線。
参照プール
プールには581件の参照絵画があります。すべてが1,664回の生成から手動で評価され、117件のラブティア、266件のオッケー、および比較を広げるために使用された別の生成実行からの補足266件が含まれています。