完成作同士のスコア差で生成プロセスを直す — DiffusionART

複数の生成結果のスコア差から補正方向を一つ推定し、生成の各ステップがそれを分け合って使う。タスクごとの再チューニングなしに少ないGPUで学べるDiffusionARTを読む。
← 목록으로
온
온틀 리서치
2026년 10월 12일 更新 2026.10.16 読了 18分 閲覧 2

画像や動画を作るAIは、ふつう完成した一枚だけにスコアをもらう。ところがその一枚ができあがるまでに、モデルはぼやけたノイズを数十回かけて少しずつ取り除いていく。最後に付けたたった一つのスコアで、その数十ステップをどう直せばいいのか。この記事で扱うDiffusionARTの答えから書いておこう。複数の完成作のスコア差から「スコアを上げる方向」を一つ取り出し、その方向を生成のすべての中間ステップが分け合って使う。名前のARTもそのままだ — Aggregation-First Reward Tilting、報酬をまず一方向にまとめ(aggregation-first)、そちらへ生成分布を傾ける(tilting)。

この一行がなぜ重要なのかは、従来の手法がまさにこの地点でつまずいてきたからだ。

クレジット割り当てという厄介ごと

拡散モデルやフローマッチングモデル(どちらもノイズから出発してデータを少しずつ作り出す生成モデルの系統)は、もともと「与えられたデータ分布を真似ろ」という目標だけで学習される。「見栄えがいいか」「動きが自然か」「人がより好むか」はその目標には入っていない。だから完成した結果物を評価する報酬でモデルをもう一度仕上げるステップが別に付く。ここで使うのがオンライン強化学習だ。あらかじめ集めておいたデータではなく、いま学習中の生成器がたった今出した結果物をその場で評価して反映する。スコアをどう計算するのか分からなくても、出てきたスコアさえあればいいのが利点だ。人が押した選好ボタンでも、外部の評価モデルが出した数値でも問わない。

厄介なのは、そのスコアが完成作に対してたった一度だけ与えられるという点にある。一枚を作るのにノイズを取り除くステップが数十回かかるのに、一つのスコアをその多くのステップにどれだけずつ配るかを決めなければならない。これがクレジット割り当て(credit assignment)だ。どのステップが良い結果にどれだけ寄与したかを見積もり、その分だけ直す作業である。従来の二つの手法はこの割り当てを正反対に処理し、それぞれの弱点もそこから生まれた。

生成プロセスをたどりながら直す手法(代表格: Flow-GRPO)は、生成器が実際に踏んだステップをそのまま手直しする。問題は、あるステップが結果の一部しか左右していないのに、完成作全体の成績で評価されてしまう点だ。どのステップをどれだけ直すかが不正確で、学習が遅い。

完成作に再びノイズを入れて学ぶ手法(代表格: DiffusionNFT)は、きれいな結果物にノイズを入れ直し、報酬が高い方には似せ・低い方からは遠ざけるようにする。ステップごとの確率計算がないので効率的だが、学習が不安定だ。そこで安定装置を付けるのだが、そのうちEMA(過去のモデルにゆっくり追従させて縛っておく装置)は、タスクが変わるたびに強さを手で合わせ直さなければならない。一方は遅く、もう一方は手間がかかる。

DiffusionARTは完成作を基準に方向を取りつつ(二つ目の手法の効率)、その方向を実際に通ってきたステップに適用する(一つ目の手法の長所)。

補正方向を一つ、どう取り出すか

動作は四歩だ。同じプロンプトで結果をいくつも作る → それぞれを報酬で評価する → スコアが上がるほど結果物が共通してどちらへ変わるかを推定し「補正方向」を一つ作る → その方向を生成の中間ステップに適用する。三歩目が肝なので、例でほどいてみよう。

同じプロンプトで候補を三つ作ったとしよう。モデルはこの三つを目に見える絵そのものとして扱わない。内部ではそれぞれを複数の数値からなる一つの値、いわば空間上の一点として表す。三つの候補はその空間上の異なる三点だ。「方向」とは、この点をどちらへ押すかを指す。

さて、三点にスコアを付ける。スコアが高い点ほど一方に偏っているなら、その偏った側がすなわちスコアを上げる方向だ。ここでスコアが最も高い候補を一つ選んで丸ごとコピーするわけではない。三点の位置の違いとスコアの違いを一緒に並べ、スコア差が大きいペアほど比重を上げて共通方向を抽出する。スコア差で重みづけして平均を取るようなものなので、一つの候補にたまたま出た特異な細部よりも、複数の候補のスコアを一緒に引き上げた成分のほうが方向に大きく反映される側へ傾く。ただしこれはそうした共通成分を推定する計算であって、候補ごとの特異な細部がきれいに相殺され共通成分だけが残る保証ではない。(付録の用語では「報酬と結果物のあいだの共分散」を推定した方向だ。)

一つはっきり押さえておこう。この方向は、人が名前を付けられる画質項目と必ずしも一致しない。「明るさを上げろ」や「指の本数を合わせろ」といった言葉に翻訳される保証はない。あくまでそのスコア空間の中でスコアが上がる側を指す内部の数値にすぎない。

一つの方向をすべてのステップが分け合ってもいいのか

完成作から推定した方向は一つだ。ところが生成の中間ステップはそれぞれ状態が違う。ノイズが多く乗った序盤と、ほぼ取り除かれた終盤とでは、まったく別の絵を握っている。異なるステップに同じ方向を一つ押し込んでも大丈夫なのか。

DiffusionARTは、一つのプロンプトの中では方向を一つにしてすべてのステップが共有するよう設計する。しかしこれは「各ステップの方向がもともと同じ」という意味ではない。論文は、この共有方向が各状態(ステップ)の条件付き方向とずれうること、そしてその誤差がステップを経るうちに累積しうることを明示している(§4.1・付録B.3)。つまり方向の共有は保証された等式ではなく、完成作から推定した値一つを全ステップに適用する近似であり、ステップごとの条件付き方向がばらつくほどその誤差は大きくなる。むしろこうして方向を状態どうしで共有する設計は、NFTで状態ごとの誘導信号が互いに相殺して復元力が更新を支配してしまう現象を抑える方向に働く、と論文は説明している(§4.2)。

その代わり手放すものも明確だ。ステップごとに補正量を別々に切り分ける細やかさは捨てる。だがそもそもその切り分けが不正確で学習が揺れていたので、細やかさを手放した代償として揺れが減る。損と得が同じ場所から出ている。

安定化を二つの機能で読む

DiffusionARTの安定化は、互いに異なる二つの仕事をする。一つは不要な補正信号をそもそも作らないこと、もう一つはモデルが行きすぎたときに引き戻すことだ。

第一に、不要な補正信号をなくす。 完成作にノイズを入れ直す手法には、報酬と無関係な力が付いてくる。ノイズを入れ直す計算の中で「モデルが出した速度」と「理想的な速度」がずれるからだ(ここでの速度は処理時間ではなく、一ステップで生成状態がどちらへどれだけ変わるかを指す値だ)。このずれが、報酬と関係なくモデルを見当違いの方へ引っ張る。NFTはこの力を事後に抑え込もうと装置を追加した。DiffusionARTは抑え込む代わりに、最初から作らない。方向を結果物と報酬だけで組み、そのノイズ入れ直しの計算に手を付けないので、ずれが生じる場所そのものがない。

第二に、行きすぎた移動を引き戻す。 NFTでEMAが果たしていた本当の役割は「ゆっくり動く過去の分布」ではなく、モデルが行きすぎた分だけ元へ引き戻す復元力だった — 著者らの解釈である。DiffusionARTは過去のモデルを別に縛っておく代わりに、一まとまりのデータを重ならない二つの塊に割る。まず最初の塊でモデルを一度動かす。二つ目の塊で更新するとき、方向計算の基準点を「たった今動かしたモデル」ではなく「動かす前のモデル」に置く。この設定が復元力を生む。二度目の更新が動かす前の状態を基準にするので、モデルがその基準から遠く外れるほど引き戻す力が大きくなり、少ししか動いていなければ弱まる。移動距離に比例して復元がかかるわけで、EMAのように強さを手で合わせる目盛りがいらない。タスクごとの再チューニングが消えるのはまさにここだ。

(この第二の機能には、基準から遠ざかる更新だけを止め、近づく更新は生かす「マスキング」が補助として付く。著者らはこれを核心的な貢献ではなく補助装置と線引きしている。第一の機能で省いた「綱引き」の構図とマスキングの詳細は「さらに深く」に置いた。)

スコアがなく「選択」だけのとき

スコアの代わりに「二つのうちどちらが良いか」だけがあるときのためのDiffusionART-Pairwiseがある。結果物をペアで組んで勝ち・負け(引き分け含む)を付け、そのラベルがスコアの座を代わりに担う。絵と動画は正解がきっちり一つに決まらないので、スコアを無理に付けるより二つを見比べるほうがむしろ自然なフィードバックだ、という判断である。

実験はどう設計されたか

実験はテキスト→画像(T2I)から始め、テキスト→動画(T2V)、画像→動画(I2V)へと広げる。T2IではSD3.5-Mでモデルの小さな一部だけを学習し、T2Vでは代表的なモデルHunyuanVideo-13Bの全パラメータを微調整する。T2Vの指標は三つだ — 要求文と合っているか(テキスト整合 TA)、画面が見栄えするか(視覚品質 VQ)、動きが自然か(動作品質 MQ)。このスコアはVideoRewardという報酬モデルが付ける。公平な比較のため、競合手法のDiffusionNFTには原論文がタスクごとに手で合わせた設定値をそのまま与え、最大性能を引き出させた。

数字を読む前に、単位を三つだけ揃えておこう。生成の「ステップ(段階)」は一枚を出すときにノイズを取り除く回数で(下の「ステップ(更新)」とは別物)、学習の「ステップ」はモデルを一度直す更新の回数だ。「GPU時間」はGPU一枚を一時間回した量で、同じスコアに到達するのにかかった計算コストを測る。

結果: 三つの問いで読む

どれだけ速く学ぶか(速度)。 HunyuanVideo-13Bの主設定で視覚品質VQ 5.5に到達するのに、DiffusionARTは24ステップ・63.4 GPU時間で済んだのに対し、最も念入りにチューニングしたDiffusionNFT(EMA)は273ステップ・1,401.4 GPU時間かかった。学習ステップで11.4倍、GPU時間で22.1倍少ない。この数字は「VQ 5.5という一点まで」のコスト比較であり、それ自体が最終品質の優劣を語るものではない。

学ぶうちに崩れないか(安定性)。 復元(二度の更新)を抜いた「一度の更新」版は速く学んだあと次第に悪化し、復元を入れると長期的に安定した。マスキングも同じで、抜いたT2V実験では200ステップ付近で性能が落ちて回復したのに対し、入れると着実に上がった。二つの装置がそれぞれ別の崩壊を防ぐことを示す対照だ。

設定を変えなくても別のモデルへ移れるか(転移)。 より大きなFLUX.1-dev(12B)へ移したとき、NFTはSD3.5-M用に合わせた設定値をそのまま持って行ったせいで報酬が大きく振れた。DiffusionARTは同じ設定で最も速く学習した。この結果は「絶対性能がより高い」ではなく「設定に手を付けなくても崩れない」を指す。

実務に最も近い結果は「選択」だけがあるときのペアワイズ実験だ。400ステップ・VQ-only条件でコストとスコアがこう分かれた。

ペアワイズ選好実験(400ステップ, VQ-only) GPU時間 VQ品質
スコアを直接使った場合 891.1h 13.637
選好比較(候補数3設定) 260.8h / 465.6h / 883.3h 12.235 / 10.883 / 12.092

三つの設定はプロンプトあたりの候補数を変えたもので、候補数を減らせばGPU時間は260.8hまで下がる。コストをこれだけ削ってもVQスコアは、スコアを直接使った13.637から12点台へと、大きくは開かない。ただし「この程度のスコア差が目で見て小さな損失なのか」は数字だけでは断定できない。VQは報酬モデルが付けた尺度であり、体感品質の判断には出力例や受け入れ基準が別途いる。表が語ってくれることは明確だ — 選好比較はスコアの直接使用に近いVQを出しつつ候補数に鈍感で、GPU予算がきついなら候補数から減らしてみる余地がある。

この数値をどう読むか

効率の倍率は慎重に読む必要がある。倍率の大きさは比較のベースラインをどれだけうまくチューニングしたかに敏感で、倍率が最も大きく開く区間は、相手の手法が崩壊するか、設定がタスクに合わないまま転移したときだ。だから二つの主張を分けて読まなければならない。「チューニングしなければ競合手法が不安定だ」(設定転移の利得)と「十分にチューニングした競合手法よりも優れる」(絶対性能の優位)は、実務ではまったく意味が違う。前者が真なら「手がかからないレシピ」として価値があり、後者まで真であってはじめて「ただ単により良い手法」になる。著者らはNFTで状態ごとの誘導信号が相殺して復元力が更新を支配する現象を指摘し、DiffusionARTは方向を状態どうしで共有してその相殺を抑えると説明し、マスキングは補助装置と線引きした。導入を天秤にかけるなら、自分のタスクのベースラインをきちんと合わせて比較する検証が残る。

ONTLEなら

ONTLEはAI PMが顧客のコンテンツ制作を代わりに引き受け、毎週いくつかの案をまとめて渡す仕事をする。一つの場面を最後までたどってみよう。AI PMが今週、顧客のカードニュースをA案・B案で上げ、顧客が「Aのほうがいい」を選ぶ。この選択は数値スコアではなく、二つのうち一つを選ぶ比較だ。DiffusionART-Pairwiseが扱う入力形式がまさにこれである。

だからONTLEがいまできるのはモデルの学習ではなく、この選択をあとで使えるように残す記録の設計だ。記録は三つで足りる — 何を要求したか(プロンプト)、どの候補が上がったか、どれが選ばれたか。この三つだけで勝ち・負けラベルが作れる。「なぜ選んだか」はここに混ぜず、品質分析用の別情報として分けて付ける。フィードバックをスコアではなくペアワイズの選択で受けておくこの決定は、今日すぐにできる。

学習へ進むのはその次の話で、次の三つの条件が解ける必要がある。選択記録が十分に溜まっているか。顧客が使う生成モデルの重みを我々が手を付けられるのか、それとも外部APIで閉ざされているのか。微調整・推論のGPUコストが派遣単価の中に収まるか。三つとも「はい」になるまで、今日の課題は選択ログをきちんと集めておくこと一つだ。

さらに深く

追加用語

  • LoRAアダプター — モデル全体ではなく、差し込む小さな補助パラメータだけを学習する方式(T2Iで使用)。
  • ロールアウト — 生成器が決められた回数だけノイズを取り除いて結果を一度出すこと(T2Iは10ステップのロールアウト)。
  • ハイパーパラメータ — 学習の前に人が手で決める設定値。
  • 二系統の代表 — 逆過程系(生成プロセスをたどる)にFlow-GRPOとその変種(Flow-GRPO-Fast/CPS、DanceGRPO、Flow-DPPO)、順過程系(完成作にノイズを入れ直す)にDiffusionNFT。微分可能な報酬を逆伝播するReFL、あらかじめ集めた選好ペアで学ぶDiffusion-DPOとは「オンライン・ブラックボックス」である点で分かれる。

数式の背景

以下は拡散/フローマッチングの遷移とKLの概念、共分散をあらかじめ知っている読者向けの要約だ。

  • なぜ片方の枝だけ使うと崩れるのか(Lemma 1)。 NFTの陽性・陰性の枝は、理想的には同じ報酬方向を指す(二つの方向が平行)。ところが回帰目標が「順方向速度」から作られるため、「モデルが使った速度 = 結果物から誘導される理想的な順方向速度」という暗黙の仮定が入る。現実には両者はずれ、その差が報酬と無関係な順–逆一貫性の力を生む。共同学習がこれを相殺するが、報酬のセンタリングが状態ごとではなくサンプル間の平均なので残留する力が残り、ノイズが減って結果物の情報が現れる終盤のステップほどこの力が大きくなる。
  • 集計優先の報酬ティルティング(Lemma 2)。 報酬が高い結果物を指数的により上乗せして分布を傾けると、結果物の平均が「報酬–結果物の共分散」方向へ動く。この共分散を各プロンプトのロールアウトから推定し、RMS正規化で大きさを固定したうえで、そのプロンプトのすべての状態に共有方向として適用する。目標に順方向速度が挟まらないので、一貫性の力が設計上生じない。ただしこの共有方向は各状態の条件付き方向とずれうるし、著者らはその誤差が累積しうると§4.1・付録B.3で明示している。
  • 復元が核心の安定装置(Proposition 2)。 EMAロールアウトは維持しつつ損失から過去のアンカー(基準点)を外すと依然として崩壊し(オフポリシーのデータだけでは安定化しない)、逆にEMAなしでバッチを二つに分けて二度更新すると崩壊を避けられた。ただしNFTの中ではこの二度の更新が学習を15.2倍遅くした — 状態ごとの誘導が互いに相殺して復元が更新を支配したためだ。DiffusionARTは誘導をプロンプト内の状態どうしで共有して、この相殺を抑える。
  • 信頼領域マスキング。 ODE遷移は決定論的なので、使えるKLがない。そこでFlow-GRPOのODE→SDE公式で参照ガウス遷移を定義し、速度予測でドリフトを測るKLの代理値を作る。Flow-DPPOに着想を得て、外へ外れる更新だけを止めて内側の補正は生かし、ドリフト閾値は全過程で固定、ノイズの大きい状態を強調する係数を置く。

追加の実験数値

互いに異なる実験なので、一つの成果としてまとめて読んではいけない。HunyuanVideoでVQ:MQを同じ割合で混ぜた設定を基準に、同じ平均報酬へ到達するGPU時間がDiffusionNFT・Flow-GRPO-Fast比でそれぞれ12.02倍・11.72倍少なく、平均学習報酬は二つのベースライン比で+28.8%・+53.0%だった。TA:VQ:MQを合わせた主設定では、学習中にVQ 6へ29ステップ、MQ 3へ46ステップで到達(三つのベースラインは記録区間内で未到達)し、最終評価スコアはVQ 8.970・MQ 4.224で、最強のベースライン比でVQ +31.4%・MQ +57.4%だった。

コードは公開されていますか?

論文にGitHubリポジトリ(github.com/vanzll/DiffusionART)とプロジェクトページ(vanzll.github.io/diffusionart-project)のアドレスが明記されています。実装の詳細と擬似コードの一部は本文と付録に含まれています。

言語モデルのGRPOのような強化学習と何が違うのですか?

どちらもグループ単位の報酬を使う点は似ています。ただ言語モデルはトークンがそのまま出力なのでクレジット割り当てが比較的単純です。この論文の難所は、一つの絵・動画を作る数十回のdenoisingステップにスコアをどう反映するかにあり、DiffusionARTは各ステップにスカラーのスコアではなく共有方向を与える方式で取り組みます。

一般的な拡散モデルにも使えますか、それともrectified flow専用ですか?

論文はデータ–ノイズの線形補間を使うrectified flowを対象にしつつ、これが拡散(diffusion)と核心原理を共有すると述べています。著者らは「diffusion」を包括的な用語として使っており、同じ線形補間の系統には適用の余地があると読めます。

学習に人が直接付けた選好データは必ず必要ですか?

必ずしも必要ではありません。本文のT2V実験はVideoRewardのような報酬モデルが付けたスコアを学習・評価に使いました。人の選好があればペアワイズ(winner/loser)ラベルの形でPairwise版に入れられる、というのが追加の選択肢です。

参考資料