督點是如何生成的?)
【免費下載鏈接】HY-SOARHY-SOAR:Self-Correction for Optimal Alignment and Refinement in Diffusion Models項目地址https://gitcode.com/gh_mirrors/hy/HY-SOAR點擊查看免費下載HY-SOAR 是一個面向擴散模型SD3.5-Medium的免獎勵reward-free后訓(xùn)練方法核心思想是讓模型在去噪過程中自我糾錯。它不依賴獎勵模型、偏好標(biāo)簽或負樣本而是通過單步 rollout 生成離軌狀態(tài)再沿噪聲端點方向插值出輔助監(jiān)督點用解析解作為修正目標(biāo)去監(jiān)督模型。本文將帶你深入 soar/train_soar_sd3_5m.py 與 soar/utils/algorithm.py看懂這套訓(xùn)練信號是如何一步步構(gòu)造出來的。SOAR 訓(xùn)練流程總覽先看整體流程圖從干凈圖像編碼出的 latent $z_0$ 出發(fā)模型先做一步 ODE rollout 到達離軌點 $z_{off}$再沿著re-noise ray把離軌點逐步加噪回純噪聲 $z_1$得到一系列 re-noised latents每個點都配有解析修正速度 $v_{corr}$ 作為監(jiān)督目標(biāo)。整個訓(xùn)練循環(huán)可以概括為四步構(gòu)造噪聲狀態(tài)VAE 編碼圖像得到 $z_0$采樣噪聲 $z_1$ 與時間步 $t_0$按 $z_{\sigma} (1-\sigma)z_0 \sigma z_1$ 混合主損失標(biāo)準的 flow-matching 損失目標(biāo)為 $v_{gt} z_1 - z_0$單步 rollout用當(dāng)前模型CFG 組合后從噪聲狀態(tài)走一步得到離軌點 $z_{t}$輔助損失在離軌點與 $z_1$ 之間插值出多個輔助監(jiān)督點逐一用修正速度監(jiān)督。單步 rollout讓模型先走錯一步rollout 的目的不是生成圖片而是制造模型自己會遇到的錯誤狀態(tài)。SFT 訓(xùn)練時模型看到的是理想噪聲狀態(tài)而推理時它看到的是自己上一步預(yù)測出來的狀態(tài)——這種分布錯配exposure bias正是 SOAR 要修正的。第一步CFG 組合速度在 soar/train_soar_sd3_5m.py 中訓(xùn)練循環(huán)先把無條件與條件文本 embedding 拼接成一次 batch 送入 transformer一次前向同時拿到 $v_{uncond}$ 和 $v_{cond}$再組合出 CFG 速度v_cfg (v_uncond cfg_scale_sampling * (v_cond - v_uncond)).detach()注意.detach()rollout 過程不回傳梯度只用來造數(shù)據(jù)。cfg_scale_sampling默認 4.5模擬真實推理時的引導(dǎo)強度。第二步走一步 ODE或隨機路徑核心函數(shù) single_step_aux_points 的第一步是推進一個采樣步長t1 t0 - 1 / num_sampling_steps # 默認 40 步即前進一步ODE 路徑在 algorithm.py 第187-190行 中實現(xiàn)就是一次歐拉積分z_t1_prime_ode z_t0 v_cfg * (sigma_t1 - sigma_t0)當(dāng)--num_rollout_paths 1時還會額外生成隨機路徑。stochastic_rollout_step 支持四種模式simple附加高斯噪聲的歐拉-馬魯耀、sdediffusers 風(fēng)格隨機采樣、flow_sde反向 SDE 步和cps系數(shù)保持采樣。隨機路徑只在未觸底$t_1 0$的樣本上啟用——已經(jīng)走到干凈端的樣本只保留 ODE 路徑這在 algorithm.py 第193-215行 中有明確的hit_clean_boundary判斷。下圖直觀展示了 on-trajectory 與 off-trajectory 的區(qū)別紅色虛線是模型 rollout 走出軌道后的修正過程黑色實線是理想軌跡。輔助監(jiān)督點從離軌點插值回噪聲端點拿到離軌點 $z_{t}$ 后SOAR 并不直接丟棄它而是把它重新加噪回同一個噪聲端點$z_1$。插值邏輯在內(nèi)部函數(shù)_append_interpolated中algorithm.py 第159-185行在 sigma 區(qū)間 $[\sigma_{t1},\ \min(\sigma_{upper} \cdot \sigma_{t0},\ 1)]$ 內(nèi)對每條路徑均勻采樣points_per_path個隨機分數(shù)默認 6 個按分數(shù) $\alpha$ 在離軌點與純噪聲之間線性插值z_interp (1 - alpha) * z_t1_prime alpha * z_1這樣每條 rollout 路徑都會產(chǎn)出--trajectory_length默認 6個輔助監(jiān)督點每個點自帶 sigma 和對應(yīng) timestep打包成{sample_indices, latents, sigmas, timesteps}返回。修正目標(biāo)一個干凈的解析解回到 訓(xùn)練主循環(huán)第570-601行對每個輔助點計算修正目標(biāo)v_corr (z_t_prime - z_0) / sigma_t_prime因為 $z_{t}$ 本身就是 $(1-\sigma_{t})z_{t1} \sigma_{t} z_1$ 的插值所以 $\frac{z_{t} - z_0}{\sigma_{t}}$ 恰好是從這個離軌狀態(tài)回到真值方向的精確速度——不需要額外的標(biāo)簽數(shù)據(jù)。隨后讓模型在 $z_{t}$ 上預(yù)測速度與 $v_{corr}$ 做加權(quán) MSE累加進loss_aux。損失合并與分布式歸一化SOAR 的總損失把主損失和輔助損失按樣本數(shù)統(tǒng)一歸一化train_soar_sd3_5m.py 第604-616行各 rank 先all_reduce匯總主/輔樣本計數(shù)再計算loss_total (loss_main loss_aux) / (主樣本數(shù) λ·輔助點數(shù))其中--lambda_aux默認 1.0控制輔助損失的權(quán)重。這種設(shè)計讓輔助點的數(shù)量變化比如不同路徑數(shù)不會悄悄改變梯度尺度多卡訓(xùn)練也保持穩(wěn)定。關(guān)鍵超參數(shù)速查表參數(shù)默認值作用--num_rollout_paths1rollout 路徑數(shù)1 為純 ODE1 增加隨機路徑--trajectory_length6每條路徑生成的輔助監(jiān)督點數(shù)--num_sampling_steps40決定 rollout 的單步步長1/40--sde_rollout_typeflow_sde隨機 rollout 模式simple/sde/flow_sde/cps--sde_noise_scale0.5隨機 rollout 的噪聲強度--cfg_scale_sampling4.5rollout 使用的 CFG 引導(dǎo)強度--lambda_aux1.0輔助 SOAR 損失權(quán)重--sigma_upper_ratio1.5輔助點 sigma 上限防止插值過遠數(shù)據(jù)側(cè)則很簡單每行 JSONL 提供md5、caption_en、bw、bh字段多分辨率分桶采樣由 soar/utils/data.py 中的build_bucket_dataloader完成圖像在訓(xùn)練時經(jīng) VAE 實時編碼無需預(yù)緩存 latent。訓(xùn)練效果免獎勵仍勝過基于獎勵的方法SOAR 在 DrawBench 上將 SD3.5-Medium 的 GenEval 從 0.70 提升到 0.78OCR 從 0.64 提升到 0.67且訓(xùn)練全程未使用任何獎勵模型。在與 Flow-GRPO 的正面對比中后者顯式用 Aesthetic/ClipScore 作為獎勵信號SOAR 的終值同樣更高如下方曲線所示。在 WebUI 與版式設(shè)計類生成任務(wù)中SOAR 訓(xùn)練的模型展現(xiàn)出準確的布局、字體與視覺層次說明單步 rollout 輔助監(jiān)督點這套稠密信號確實改善了對齊質(zhì)量。小結(jié)HY-SOAR 的巧妙之處在于三免免獎勵模型、免偏好標(biāo)簽、免負樣本。它的實現(xiàn)也極簡——核心邏輯集中在兩個文件里soar/train_soar_sd3_5m.py 負責(zé)訓(xùn)練循環(huán)與損失合并soar/utils/algorithm.py 封裝單步 rollout 與輔助監(jiān)督點生成。理解了走一步 → 插值回 $z_1$ → 用解析解監(jiān)督這條主線你就能輕松復(fù)現(xiàn)并擴展這一免獎勵的自糾錯后訓(xùn)練范式。贊分享【免費下載鏈接】HY-SOARHY-SOAR:Self-Correction for Optimal Alignment and Refinement in Diffusion Models項目地址https://gitcode.com/gh_mirrors/hy/HY-SOAR點擊查看免費下載相關(guān)推薦Hugo Annotation處理器編譯期如何生成輔助代碼Hugo Annotation處理器編譯期如何生成輔助代碼 你是否還在為調(diào)試時手動編寫日志代碼而煩惱是否希望有一種方式能自動記錄方法調(diào)用參數(shù)、返回值和執(zhí)行時開發(fā)工具移動開發(fā)深入qutebrowser源碼一QtWebEngine后端與JavaScript注入是如何工作的深入qutebrowser源碼一QtWebEngine后端與JavaScript注入是如何工作的 qutebrowser 是一個基于 Python 和 Q桌面應(yīng)用突破性能瓶頸Ultralytics YOLOv9輔助監(jiān)督機制深度解析突破性能瓶頸Ultralytics YOLOv9輔助監(jiān)督機制深度解析 你是否還在為目標(biāo)檢測模型的訓(xùn)練效率和精度平衡而困擾當(dāng)模型陷入局部最優(yōu)解無法提升時是否人工智能計算機視覺深度學(xué)習(xí)機器學(xué)習(xí)預(yù)訓(xùn)練模型推理服務(wù)上一篇快速入門指南用wxauto輕松構(gòu)建你的微信自動化助手下一篇Qwen3.5-122B-A10B-singprobe源碼解析上SingProbeAttnModel與SingProbeMlpModel兩種探針架構(gòu)全拆解創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考