【論文閱讀】DanceGRPO: Unleashing GRPO on Visual Generation

DanceGRPO: Unleashing GRPO on Visual Generation

  • 原文摘要

    • 研究背景與問題

      • 生成模型的突破:擴散模型和整流流等生成模型在視覺內容生成領域取得了顯著進展。
      • 核心挑戰:如何讓模型的輸出更好地符合人類偏好仍是一個關鍵問題。
      • 現有方法的局限性
        • 兼容性問題:傳統的基于強化學習(RL)的方法無法與現代基于常微分方程(ODE)的采樣范式兼容。
        • 訓練不穩定:在大規模訓練中容易出現不穩定性。
        • 缺乏驗證:現有方法在視頻生成任務上缺乏驗證。
    • 提出的解決方案:DanceGRPO

      • DanceGRPO 是第一個將 GRPO 應用于視覺生成的統一框架

      • 統一性:支持多種生成范式(擴散模型、整流流)、任務(文本生成圖像/視頻、圖像生成視頻)、基礎模型(如 Stable Diffusion、HunyuanVideo 等)和獎勵模型(如美學評分、文本對齊、視頻運動質量等)。

    • 技術優勢

      1. 穩定性:在復雜的視頻生成任務中穩定策略優化。
      2. 軌跡學習:幫助生成策略更好地捕捉去噪軌跡(denoising trajectories),從而支持 Best-of-N 推理(即從多個生成結果中選擇最優輸出)。
      3. 稀疏反饋學習:能夠從稀疏的二元反饋中學習。
    • 實驗結果

      • 性能提升:在多個基準測試上顯著超過基線方法,最高提升達 181%
      • 廣泛驗證:覆蓋了多種任務、模型和獎勵機制,證明了其魯棒性和通用性。
    • 研究意義

      • 為 RLHF 提供新思路:DanceGRPO 為視覺生成領域的 RLHF 提供了可擴展且通用的解決方案。
      • 調和 RL 與視覺生成:揭示了強化學習與視覺合成之間的協同潛力,為未來研究提供了新方向。

1. Introduction

  • 研究背景與現狀

    1. 生成模型的進展

      • 擴散模型 和 整流流取得突破性進展,顯著提升了圖像/視頻生成的質量和多樣性。
      • 預訓練雖能建立基礎數據分布,但人類反饋的整合對對齊生成結果與人類偏好至關重要。
    2. 現有方法的局限性

      • ReFL方法:依賴可微獎勵模型,導致視頻生成中顯存(VRAM)效率低下,且工程實現復雜。

      • DPO系列方法:僅能帶來邊際視覺質量提升。

      • 基于RL的方法雖具潛力,但存在三大挑戰:

        • 整流流的ODE采樣與馬爾可夫決策過程(MDP)的數學形式沖突;
        • 現有策略梯度方法在小規模數據集(<100 prompts)外表現不穩定;
        • 現有方法未在視頻生成任務中得到驗證。
  • 解決方案

    • 技術路徑

      • 通過隨機微分方程(SDEs)重新形式化擴散模型和整流流的采樣過程。

      • 引入GRPO穩定訓練——GRPO原是提升大語言模型(LLMs)在數學/代碼等復雜任務性能的技術,本文首次將其適配到視覺生成任務,提出DanceGRPO框架,實現GRPO與視覺生成的“和諧協同”。

  • 貢獻總結

    1. 統一性與首創性

      • 首次將GRPO擴展到擴散模型和整流流,在統一RL框架下支持多視覺生成任務。
      • 關鍵實現:SDE重構、優化時間步選擇、噪聲初始化與尺度調整。
    2. 泛化性與可擴展性

      • DanceGRPO是首個支持多生成范式、任務、基礎模型和獎勵模型的RL框架。

      • 突破此前RL方法僅在小規模文本→圖像任務驗證的局限,證明其在大規模數據集的實用價值。

    3. 高效性

      • 實驗顯示:在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 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]),控制插值比例。
    • 速度場(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,即沿速度場線性移動。
    • 反向過程

      • 核心公式 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?)
      • 意義: 去噪過程的每一步嚴格按時間倒序執行,無隨機性(與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=1G?T1?t=1T?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} tTsub?,計算目標函數 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性能
      • GenEvalHPS-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分數

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/83089.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/83089.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/83089.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Milvus可視化客戶端Attu安裝與使用指南

導讀&#xff1a;在向量數據庫運維管理中&#xff0c;開發者往往面臨著復雜的命令行操作和繁瑣的API調用挑戰。作為Milvus向量數據庫的官方圖形化管理工具&#xff0c;Attu為這一痛點提供了優雅的解決方案。 本文深入解析Attu的核心架構和實用功能&#xff0c;重點介紹其在數據…

C# 結合PaddleOCRSharp搭建Http網絡服務

Windows打開端口&#xff1a; 控制面板 > 系統和安全 > 防火墻> 高級設置 → 入站規則 → 右側選擇 → 新建規則 → 端口 → 協議類型 TCP→ 端口 using System; using System.Drawing; using System.IO; using System.Net; using System.Text; using System.Threadi…

【論文精讀】2024 ECCV--MGLD-VSR現實世界視頻超分辨率(RealWorld VSR)

文章目錄 一、摘要二、問題三、Method3.1 Latent Diffusion Model3.2 Motion-guided Diffusion Sampling3.3 Temporal-aware Decoder Fine-tuning 四、實驗設置4.1 訓練階段4.2 訓練數據 貢獻總結 論文全稱&#xff1a; Motion-Guided Latent Diffusion for Temporally Consis…

初學c語言21(文件操作)

一.為什么使用文件 之前我們寫的程序的數據都是存儲到內存里面的&#xff0c;當程序結束時&#xff0c;內存回收&#xff0c;數據丟失&#xff0c; 再次運行程序時&#xff0c;就看不到上次程序的數據&#xff0c;如果要程序的數據一直保存得使用文件 二.文件 文件一般可以…

歷年廈門大學計算機保研上機真題

2025廈門大學計算機保研上機真題 2024廈門大學計算機保研上機真題 2023廈門大學計算機保研上機真題 在線測評鏈接&#xff1a;https://pgcode.cn/school 數字變換過程的最大值與步數 題目描述 輸入一個數字 n n n&#xff0c;如果 n n n 是偶數就將該偶數除以 2 2 2&…

MySql--定義表存儲引擎、字符集和排序規則

示例&#xff1a; CREATE TABLE users (id INT PRIMARY KEY,name VARCHAR(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci,email VARCHAR(100) ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COLLATEutf8mb4_0900_ai_ci;注意事項&#xff1a; 字符集和排序規則可以按列覆蓋表…

深耕數字化賽道,聯眾優車以創新風控體系構筑汽車金融護城河

近年來&#xff0c;在汽車金融市場規模持續擴大的行業背景下&#xff0c;企業風險管理能力已成為決定市場競爭格局的關鍵要素。面對快速擴張的市場需求&#xff0c;銀保監會2024年發布的《汽車金融公司監管評級辦法》明確要求行業強化風控能力建設&#xff0c;央行《金融科技發…

第十九章 正則表達式

第十九章 正則表達式 文本型數據在所有的類UNIX系統(如 Linux)中會扮演著重要角色&#xff0c;在完全領會這些工具的全部特征之前&#xff0c;要先了解一下工具最為復雜的用法和相關技術&#xff1a;正則表達式。 什么是正則表達式 簡單地說&#xff0c;正則表達式是一種用于…

內存監控方法與要點詳解

引言 在軟件性能測試領域&#xff0c;內存管理是評估系統穩定性和性能的關鍵指標之一。作為軟件測試工程師&#xff0c;我們經常遇到因內存泄漏、內存溢出等問題導致的系統崩潰或性能下降。本文將深入探討性能測試中內存監控的方法和要點&#xff0c;幫助測試團隊更有效地識別…

56、Ocelot 概述

Ocelot 是一個基于 .NET Core 開發的開源 API 網關&#xff0c;主要用于微服務架構中&#xff0c;為多個后端服務提供統一的訪問入口。它通過集中化管理請求路由、認證、限流、負載均衡等功能&#xff0c;簡化了客戶端與后端服務之間的交互&#xff0c;同時增強了系統的安全性和…

如何將多張圖組合到一張圖里同時保留高的分辨率(用PPT+AdobeAcrobat)

文章目錄 一、用PPT排版得到一頁排布了很多圖片的PPT二、用AdobeAcrobat打開pdf文件三、最后得到的圖片 一、用PPT排版得到一頁排布了很多圖片的PPT 步驟如下 ①將幻燈片大小的長設置為17.2&#xff0c;寬根據圖像多少進行調整&#xff0c;我這里是10 幻燈片大小的長設置步驟&…

【Web應用】若依框架:基礎篇12 項目結構

文章目錄 ?前言?一、課程講解&#x1f31f;1、尋找合適的對象?1) ?二、怎樣選擇設計模式&#xff1f;&#x1f31f;1、尋找合適的對象?1) ?三、怎樣使用設計模式&#xff1f;&#x1f31f;1、尋找合適的對象?1) ?總結 標題詳情作者JosieBook頭銜CSDN博客專家資格、阿里…

SolidWorks 文件打開時電腦卡頓問題分析與解決

最近遇到一個問題就是我點擊solid work的文件的時候會將電腦卡住然后電腦開始飛速的加載內存&#xff0c;鼠標移動很卡頓 解決辦法&#xff1a; 1.找到資源管理器 當遇到這種情況時&#xff0c;可以嘗試通過資源管理器來解決問題。首先&#xff0c;找到任務管理器&#xff08…

更新密碼--二階注入攻擊的原理

1.原理知識&#xff1a; 二階SQL注入攻擊&#xff08;Second-Order SQL Injection&#xff09;原理詳解 一、基本概念 二階注入是一種"存儲型"SQL注入&#xff0c;攻擊流程分為兩個階段&#xff1a; ??首次輸入??&#xff1a;攻擊者將惡意SQL片段存入數據庫?…

在 WSL Ubuntu-24.04 上安裝 Nacos 2.5.1 并使用 MySQL 數據庫

在微服務架構中&#xff0c;Nacos 是一個非常重要的服務發現和配置管理工具。本文將詳細介紹如何在 WSL&#xff08;Windows Subsystem for Linux&#xff09;中的 Ubuntu-24.04 系統上安裝 Nacos 2.5.1&#xff0c;并將其配置為使用 MySQL 數據庫進行數據存儲。我們將使用 roo…

2.qml使用c++

目錄 1.概述2.注冊方式3. 分類①枚舉類②工具類③數據類④資源類②視圖類 1.概述 qml是用來干嘛的&#xff1f; 當然是提高UI開發效率的 為什么要混合C&#xff1f; 因為qml無法處理密集型數據邏輯 而加入c則兼顧了性能 達到11>2 總結就是 qml 開發UI, C 實現邏輯 而js的用…

位置規劃模式和周期同步位置模式區別

專業方向&#xff1a; 伺服電機位置控制模式&#xff08;電氣自動化&#xff09; 標題解釋 位置規劃模式&#xff08;Profile Position Mode&#xff0c;PP&#xff09;和周期同步位置模式&#xff08;Cyclic Synchronous Position Mode&#xff0c;CSP&#xff09;區別。 常規…

C# ToString格式說明符

貨幣 "C"或"c" //C Console.WriteLine(666.ToString("C"));//&#xffe5;666.00//C數字 表示保留幾位小數精度 Console.WriteLine(666.ToString("C1"));//&#xffe5;666.0 Console.WriteLine(666.ToString("C3"));//&…

基本數據指針的解讀-C++

1、引言 筆者認為對于學習指針要弄清楚如下問題基本可以應付大部分的場景&#xff1a; ① 指針是什么&#xff1f; ② 指針的類型是什么&#xff1f; ③ 指針指向的類型是什么&#xff1f; ④ 指針指向了哪里&#xff1f; 2、如何使用指針 使用時的步驟如下&#xff1a; ① …

【Elasticsearch】suggest_mode

suggest_mode 是 Elasticsearch 中 term suggester 和 phrase suggester 的一個參數&#xff0c;用于控制建議的生成方式。它有以下三種模式&#xff1a; 1. missing&#xff1a;默認值。僅對索引中不存在的詞項提供建議。如果輸入的詞已經在索引中存在&#xff0c;則不會生成建…