DanceGRPO: Unleashing GRPO on Visual Generation
-
原文摘要
-
研究背景與問題
- 生成模型的突破:擴散模型和整流流等生成模型在視覺內容生成領域取得了顯著進展。
- 核心挑戰:如何讓模型的輸出更好地符合人類偏好仍是一個關鍵問題。
- 現有方法的局限性:
- 兼容性問題:傳統的基于強化學習(RL)的方法無法與現代基于常微分方程(ODE)的采樣范式兼容。
- 訓練不穩定:在大規模訓練中容易出現不穩定性。
- 缺乏驗證:現有方法在視頻生成任務上缺乏驗證。
-
提出的解決方案:DanceGRPO
-
DanceGRPO 是第一個將 GRPO 應用于視覺生成的統一框架
-
統一性:支持多種生成范式(擴散模型、整流流)、任務(文本生成圖像/視頻、圖像生成視頻)、基礎模型(如 Stable Diffusion、HunyuanVideo 等)和獎勵模型(如美學評分、文本對齊、視頻運動質量等)。
-
-
技術優勢
- 穩定性:在復雜的視頻生成任務中穩定策略優化。
- 軌跡學習:幫助生成策略更好地捕捉去噪軌跡(denoising trajectories),從而支持 Best-of-N 推理(即從多個生成結果中選擇最優輸出)。
- 稀疏反饋學習:能夠從稀疏的二元反饋中學習。
-
實驗結果
- 性能提升:在多個基準測試上顯著超過基線方法,最高提升達 181%。
- 廣泛驗證:覆蓋了多種任務、模型和獎勵機制,證明了其魯棒性和通用性。
-
研究意義
- 為 RLHF 提供新思路:DanceGRPO 為視覺生成領域的 RLHF 提供了可擴展且通用的解決方案。
- 調和 RL 與視覺生成:揭示了強化學習與視覺合成之間的協同潛力,為未來研究提供了新方向。
-
1. Introduction
-
研究背景與現狀
-
生成模型的進展
- 擴散模型 和 整流流取得突破性進展,顯著提升了圖像/視頻生成的質量和多樣性。
- 預訓練雖能建立基礎數據分布,但人類反饋的整合對對齊生成結果與人類偏好至關重要。
-
現有方法的局限性
-
ReFL方法:依賴可微獎勵模型,導致視頻生成中顯存(VRAM)效率低下,且工程實現復雜。
-
DPO系列方法:僅能帶來邊際視覺質量提升。
-
基于RL的方法雖具潛力,但存在三大挑戰:
- 整流流的ODE采樣與馬爾可夫決策過程(MDP)的數學形式沖突;
- 現有策略梯度方法在小規模數據集(<100 prompts)外表現不穩定;
- 現有方法未在視頻生成任務中得到驗證。
-
-
-
解決方案
-
技術路徑
-
通過隨機微分方程(SDEs)重新形式化擴散模型和整流流的采樣過程。
-
引入GRPO穩定訓練——GRPO原是提升大語言模型(LLMs)在數學/代碼等復雜任務性能的技術,本文首次將其適配到視覺生成任務,提出DanceGRPO框架,實現GRPO與視覺生成的“和諧協同”。
-
-
-
貢獻總結
-
統一性與首創性
- 首次將GRPO擴展到擴散模型和整流流,在統一RL框架下支持多視覺生成任務。
- 關鍵實現:SDE重構、優化時間步選擇、噪聲初始化與尺度調整。
-
泛化性與可擴展性
-
DanceGRPO是首個支持多生成范式、任務、基礎模型和獎勵模型的RL框架。
-
突破此前RL方法僅在小規模文本→圖像任務驗證的局限,證明其在大規模數據集的實用價值。
-
-
高效性
-
實驗顯示:在HPSv2.1、CLIP score等基準上,性能最高提升181%。
-
額外能力:
- 支持Best-of-N推理中的去噪軌跡學習;
- 初步驗證對稀疏二元獎勵(0/1反饋)分布的捕捉能力。
-
-
2. Approach
2.1 Preliminary
-
Diffusion Model
-
前向過程
- 核心公式: z t = α t x + σ t ? z_t = \alpha_t x + \sigma_t \epsilon zt?=αt?x+σt??, 其中 ? ~ N ( 0 , I ) \epsilon \sim \mathcal{N}(0, I) ?~N(0,I)
- 變量說明:
- x x x:原始數據。
- z t z_t zt?:第 t t t 步加噪后的數據。
- α t , σ t \alpha_t, \sigma_t αt?,σt?:噪聲調度系數(控制噪聲混合比例)。
- ? \epsilon ?:標準高斯噪聲(均值為0,方差為1)。
- 意義: 通過線性混合原始數據 x x x 和噪聲 ? \epsilon ?,逐步破壞數據。噪聲調度設計需滿足:
- t = 0 t=0 t=0 時 z 0 ≈ x z_0 \approx x z0?≈x(接近干凈數據)。
- t = 1 t=1 t=1 時 z 1 ≈ ? z_1 \approx \epsilon z1?≈?(接近純噪聲)。
- 變量說明:
- 核心公式: z t = α t x + σ t ? z_t = \alpha_t x + \sigma_t \epsilon zt?=αt?x+σt??, 其中 ? ~ N ( 0 , I ) \epsilon \sim \mathcal{N}(0, I) ?~N(0,I)
-
反向去噪
-
生成初始化: 從純噪聲 z 1 ~ N ( 0 , I ) z_1 \sim \mathcal{N}(0, I) z1?~N(0,I) 開始,逐步去噪生成樣本。
-
關鍵公式: z s = α s x ^ + σ s ? ^ z_s = \alpha_s \hat{x} + \sigma_s \hat{\epsilon} zs?=αs?x^+σs??^
- 變量說明:
- ? ^ \hat{\epsilon} ?^:去噪模型預測的噪聲。
- x ^ \hat{x} x^:去噪模型預測的原始數據
- s s s:比當前步 t t t 更低的噪聲級別。
- 意義: 通過去噪模型預測噪聲 ? ^ \hat{\epsilon} ?^,結合噪聲調度系數 α s , σ s \alpha_s, \sigma_s αs?,σs?,生成更低噪聲級別的數據 z s z_s zs?。
- 變量說明:
-
-
-
Rectified Flow
-
前向過程
- 核心公式: z t = ( 1 ? t ) x + t ? , ? ~ N ( 0 , I ) z_t = (1 - t)x + t \epsilon, \quad \epsilon \sim \mathcal{N}(0, I) zt?=(1?t)x+t?,?~N(0,I)
- t t t :時間步( t ∈ [ 0 , 1 ] t \in [0, 1] t∈[0,1]),控制插值比例。
- 核心公式: z t = ( 1 ? t ) x + t ? , ? ~ N ( 0 , I ) z_t = (1 - t)x + t \epsilon, \quad \epsilon \sim \mathcal{N}(0, I) zt?=(1?t)x+t?,?~N(0,I)
-
速度場(Velocity Field)
- 定義: u = ? ? x u = \epsilon - x u=??x
- 解釋:
- u u u 表示從數據 x x x 到噪聲 ? \epsilon ? 的方向向量(即“速度場”)。
- 前向過程可重寫為 z t = x + t ? u z_t = x + t \cdot u zt?=x+t?u,即沿速度場線性移動。
- 解釋:
- 定義: u = ? ? x u = \epsilon - x u=??x
-
反向過程
-
核心公式: z s = z t + u ^ ? ( s ? t ) , s < t z_s = z_t + \hat{u} \cdot (s - t), \quad s < t zs?=zt?+u^?(s?t),s<t
-
u ^ \hat{u} u^:模型預測的速度場。
-
意義: 通過模型預測 u ^ \hat{u} u^,從當前狀態 z t z_t zt? 反向沿速度場移動,生成更低噪聲的 z s z_s zs?。
- 若 u ^ = u \hat{u} = u u^=u,則完美逆轉前向過程(即 z s = x + s ? u z_s = x + s \cdot u zs?=x+s?u)。
-
-
-
-
分析:兩種方法具有統一的形式
-
數學表達 z ~ s = z ~ t + Network?output ? ( η s ? η t ) \tilde{z}_s = \tilde{z}_t + \text{Network output} \cdot (\eta_s - \eta_t) z~s?=z~t?+Network?output?(ηs??ηt?)
- z ~ s , z ~ t \tilde{z}_s, \tilde{z}_t z~s?,z~t?:變換后的狀態變量。
-
Network?output \text{Network output} Network?output:模型輸出(噪聲預測或速度場預測)。
-
η s , η t \eta_s, \eta_t ηs?,ηt?:與時間步相關的縮放系數。
-
2.2 DanceGRPO
2.2.1 去噪過程建模為MDP
-
MDP的要素定義
-
狀態(State): s t ? ( c , t , z t ) s_t \triangleq (c, t, z_t) st??(c,t,zt?)
- c c c:條件提示
- ? \triangleq ?:定義為
-
動作(Action): a t ? z t ? 1 , π ( a t ∣ s t ) ? p ( z t ? 1 ∣ z t , c ) a_t \triangleq z_{t-1}, \quad \pi(a_t | s_t) \triangleq p(z_{t-1} | z_t, c) at??zt?1?,π(at?∣st?)?p(zt?1?∣zt?,c)
-
動作 a t a_t at? 是下一步的狀態 z t ? 1 z_{t-1} zt?1?。
-
策略 π ( a t ∣ s t ) \pi(a_t | s_t) π(at?∣st?) 即去噪模型,對應 z t z_{t} zt? 到 z t ? 1 z_{t-1} zt?1?的概率。
-
-
狀態轉移(Transition): P ( s t + 1 ∣ s t , a t ) ? ( δ c , δ t ? 1 , δ z t ? 1 ) P(s_{t+1} | s_t, a_t) \triangleq (\delta_c , \delta_{t-1} , \delta_{z_{t-1}}) P(st+1?∣st?,at?)?(δc?,δt?1?,δzt?1??)
-
解釋
- δ y \delta_y δy? 是Dirac delta函數(僅在 y y y 處非零),表示確定性轉移。
- 也就是下一個狀態 s t + 1 s_{t+1} st+1? 一定為 ( c , t ? 1 , z t ? 1 ) (c,t-1,z_{t-1}) (c,t?1,zt?1?)
- δ y \delta_y δy? 是Dirac delta函數(僅在 y y y 處非零),表示確定性轉移。
-
意義: 去噪過程的每一步嚴格按時間倒序執行,無隨機性(與DDIM的確定性采樣一致)。
-
-
獎勵(Reward): R ( s t , a t ) ? { r ( z 0 , c ) , if? t = 0 0 , otherwise R(s_t, a_t) \triangleq \begin{cases} r(z_0, c), & \text{if } t=0 \\0, & \text{otherwise}\end{cases} R(st?,at?)?{r(z0?,c),0,?if?t=0otherwise?
-
設計邏輯:
- 僅在終止狀態計算獎勵。
- 中間步驟獎勵為0,因無法直接評估部分去噪結果的質量。
-
獎勵模型: r ( z 0 , c ) r(z_0, c) r(z0?,c) 通常基于視覺-語言模型(如CLIP、Qwen-VL)
-
-
-
軌跡(Trajectory)
-
長度:固定為 T T T 步。
-
終止:到達 t = 0 t=0 t=0 后進入終止狀態,不再轉移。
-
2.2.2 SDE的采樣形式化
-
核心動機
-
GRPO的需求: GRPO依賴隨機探索(通過多軌跡采樣)和軌跡概率分布來更新策略。
-
問題: 擴散模型和整流流的原始采樣過程是確定性或部分確定性的,無法提供足夠的隨機性。
-
解決方案: 將兩者的采樣過程統一為隨機微分方程(SDE)形式,通過引入噪聲項 ? t \epsilon_t ?t? 實現隨機探索。
-
-
擴散模型的SDE形式化
-
前向SDE(加噪過程): d z t = f t z t d t + g t d w dz_t = f_t z_t dt + g_t dw dzt?=ft?zt?dt+gt?dw
-
f t , g t f_t, g_t ft?,gt?:與噪聲調度相關的系數(控制噪聲注入速度)。
-
d w dw dw:布朗運動(標準Wiener過程),表示隨機噪聲。
-
-
反向SDE(去噪過程)為支持隨機探索,反向SDE需引入額外噪聲項 ? t \epsilon_t ?t?:
d z t = [ f t z t ? ( 1 + ? t 2 2 ) g t 2 ? log ? p t ( z t ) ] d t + ? t g t d w dz_t = \left[ f_t z_t - \left(1 + \frac{\epsilon_t^2}{2}\right) g_t^2 \nabla \log p_t(z_t) \right] dt + \epsilon_t g_t dw dzt?=[ft?zt??(1+2?t2??)gt2??logpt?(zt?)]dt+?t?gt?dw- ? t g t d w \epsilon_t g_t dw ?t?gt?dw:新增的隨機噪聲項,為GRPO提供探索能力。
-
-
整流流的SDE形式化
-
原始ODE形式 :前向過程是線性ODE-- d z t = u t d t dz_t = u_t dt dzt?=ut?dt
-
反向SDE
d z t = ( u t ? 1 2 ? t 2 ? log ? p t ( z t ) ) d t + ? t d w dz_t = \left( u_t - \frac{1}{2} \epsilon_t^2 \nabla \log p_t(z_t) \right) dt + \epsilon_t dw dzt?=(ut??21??t2??logpt?(zt?))dt+?t?dw -
關鍵修改:
- 添加得分函數修正項 ? 1 2 ? t 2 ? log ? p t ( z t ) -\frac{1}{2} \epsilon_t^2 \nabla \log p_t(z_t) ?21??t2??logpt?(zt?) ,確保路徑收斂性。
- 新增噪聲項 ? t d w \epsilon_t dw ?t?dw 實現隨機探索。
-
-
策略獲得
- 假設 p t ( z t ) = N ( z t ∣ α t x , σ t 2 I ) p_t(z_t) = \mathcal{N}(z_t | \alpha_t x, \sigma_t^2 I) pt?(zt?)=N(zt?∣αt?x,σt2?I)(高斯分布),則:
? log ? p t ( z t ) = ? z t ? α t x σ t 2 \nabla \log p_t(z_t) = -\frac{z_t - \alpha_t x}{\sigma_t^2} ?logpt?(zt?)=?σt2?zt??αt?x?
- 這個式子可以回帶入上面兩個SDE公式,來獲得策略 π ( a t ∣ s t ) \pi(a_t|s_t) π(at?∣st?)
2.2.3 算法
-
核心目標函數
-
給定提示詞 c c c,生成模型會從舊策略 π θ o l d π_{θ_{old}} πθold?? 采樣一組輸出 o 1 , o 2 , . . . , o G {o?, o?,..., o_G} o1?,o2?,...,oG?,通過最大化以下目標函數優化新策略 π θ π_θ πθ? :
J ( θ ) = E { o i } i = 1 G ~ π θ o l d ( ? ∣ c ) a t , i ~ π θ o l d ( ? ∣ s t , i ) [ [ 1 G ∑ i = 1 G 1 T ∑ t = 1 T min ? ( ρ t , i A i , clip ( ρ t , i , 1 ? ? , 1 + ? ) A i ) ] J(\theta) = {\mathbb{E}_{\substack{\{o_i\}_{i=1}^G \sim \pi_{\theta_{old}}(\cdot|c) \\ a_{t,i} \sim \pi_{\theta_{old}}(\cdot|s_{t,i})}}} [\left[ \frac{1}{G} \sum_{i=1}^G \frac{1}{T} \sum_{t=1}^T \min\left( \rho_{t,i}A_i, \text{clip}(\rho_{t,i}, 1-\epsilon, 1+\epsilon)A_i \right) \right] J(θ)=E{oi?}i=1G?~πθold??(?∣c)at,i?~πθold??(?∣st,i?)??[[G1?i=1∑G?T1?t=1∑T?min(ρt,i?Ai?,clip(ρt,i?,1??,1+?)Ai?)]-
ρ t , i = π θ ( a t , i ∣ s t , i ) π θ o l d ( a t , i ∣ s t , i ) \rho_{t,i} = \frac{\pi_\theta(a_{t,i}|s_{t,i})}{\pi_{\theta_{old}}(a_{t,i}|s_{t,i})} ρt,i?=πθold??(at,i?∣st,i?)πθ?(at,i?∣st,i?)? 是新舊策略的概率比
-
A i A_i Ai? 是標準化優勢函數(計算見下文)
-
? \epsilon ? 是控制策略更新幅度的超參數
-
-
-
優勢函數計算
A i = r i ? mean ( { r 1 , r 2 , ? , r G } ) std ( { r 1 , r 2 , ? , r G } ) A_i = \frac{r_i - \text{mean}(\{r_1,r_2,\cdots,r_G\})}{\text{std}(\{r_1,r_2,\cdots,r_G\})} Ai?=std({r1?,r2?,?,rG?})ri??mean({r1?,r2?,?,rG?})?-
其中 r 1 , . . . , r G {r?,...,r_G} r1?,...,rG?是對應輸出的獎勵值
-
由于實際獎勵稀疏性,優化時對所有時間步使用相同的獎勵信號
-
傳統GRPO方法使用KL正則化防止獎勵過優化,但實驗顯示省略該組件對性能影響很小,因此默認不包含KL正則項
-
-
-
完整算法流程
-
策略更新(第10-13行)
-
時間步子采樣:
- 從T個時間步中選擇?τT?個步(τ∈(0,1]),僅在這些步上計算梯度。
-
梯度上升更新:
-
對選中的時間步 t ∈ T s u b t ∈ T_{sub} t∈Tsub?,計算目標函數 J ( θ ) J(θ) J(θ) 的梯度并更新參數 θ θ θ:
θ ← θ + η ? θ J \theta \leftarrow \theta + \eta \nabla_\theta J θ←θ+η?θ?J -
因為每一個時間步采取特定動作的概率不同,所以需要在不同時間步上做梯度更新
-
我覺得可以加上一個權重參數來優化梯度更新函數,因為不同的時間步會對生成結果產生不同大小的影響
-
-
-
2.2.4 噪聲初始化
-
傳統方法初始化噪聲(如DDPO):
-
對同一提示詞(prompt)生成的多個樣本(如視頻或圖像),使用不同的隨機噪聲向量初始化。
-
問題:
- Reward Hacking:模型通過利用噪聲的隨機性,生成某些“幸運”樣本(恰好匹配獎勵函數偏好),而非真正學習提升整體質量。
- 訓練不穩定:噪聲差異導致梯度更新方向不一致,難以收斂。
-
-
DanceGRPO初始化
- 核心設計:對同一提示詞 c 生成的 G 個樣本,共享相同的初始化噪聲。
2.2.5 時間步選擇
- 在去噪軌跡中省略部分時間步的子集并不會影響模型性能。
- 這種減少計算步驟的方法在保持輸出質量的同時顯著提升了效率。
2.2.6 整合多個獎勵模型
- 在實際應用中,我們采用多個獎勵模型以確保訓練過程更穩定、視覺輸出質量更高。
- 僅使用HPS-v2.1獎勵訓練的模型易生成不自然(“油潤感”)的輸出
- 引入CLIP評分則有助于保持更真實的圖像特征。
- 作者沒有直接合并各獎勵值,而是通過聚合優勢函數來實現多模型協同。
- 該方法既能穩定優化過程,又能產生更均衡的生成結果。
2.2.7 基于Best-of-N推理擴展
- 本方法優先利用高效樣本–通過Best-of-N采樣篩選出的前k名與末k名候選樣本。
- 這種選擇性采樣策略通過聚焦解空間中的高獎勵區域與關鍵低獎勵區域,顯著提升訓練效能。
- 當前采用暴力搜索生成這些樣本。
- 樹搜索或貪婪搜索等替代方法同樣具有研究潛力
2.3 Different Rewards
-
實驗驗證范圍
-
兩種生成范式:擴散模型 / rectified flow
-
三種任務:文本→圖像、文本→視頻、圖像→視頻
-
四個基礎模型:
-
Stable Diffusion
-
HunyuanVideo
-
FLUX
-
SkyReels-I2V
-
-
-
五類獎勵模型設計
獎勵模型 作用 技術實現 1. 圖像美學評分 量化生成圖像的視覺吸引力 基于人類評分數據微調的預訓練模型 2. 文本-圖像對齊(CLIP) 確保生成內容與輸入提示詞語義一致 CLIP模型計算圖文跨模態相似度 3. 視頻美學質量 評估視頻幀質量及時序連貫性 視覺語言模型(VLM)擴展至時序域 4. 視頻運動質量 分析運動軌跡和形變的物理合理性 物理感知VLM對運動軌跡建模 5. 閾值二值獎勵 測試模型在閾值優化下的學習能力 基于固定閾值離散化獎勵(超過閾值=1,否則=0)
2.4 Comparisons
3. Experiments
-
文本到圖像生成(Text-to-Image Generation)
-
基礎模型: Stable Diffusion v1.4、FLUX、HunyuanVideo-T2I
-
獎勵模型: HPS-v2.1、CLIP Score、二值化獎勵
-
訓練數據: 精選提示詞數據集(平衡多樣性與復雜性)
-
測試評估:
- 1,000條測試提示詞,用于計算CLIP分數和Pick-a-Pic性能
- GenEval和HPS-v2.1官方基準
-
-
文本到視頻生成(Text-to-Video Generation)
-
基礎模型:HunyuanVideo
-
獎勵模型:VideoAlign
-
訓練數據: VidProM數據
-
測試評估: 額外1,000條測試提示詞,用于VideoAlign評分
-
-
圖像到視頻生成(Image-to-Video Generation)
-
基礎模型:SkyReels-I2V
-
獎勵模型:VideoAlign
-
訓練數據:
- 提示詞來自VidProM數據集
- 參考圖像由HunyuanVideo-T2I生成
-
測試評估:1,000條測試提示詞,計算VideoAlign分數
-