Classifier-Free Guidance/zh

    From Marovi AI
    This page is a translated version of the page Classifier-Free Guidance and the translation is 100% complete.
    Other languages:
    Article
    Topic area Generative Models
    Prerequisites Diffusion Models, Score Matching


    概述

    無分類器引導(CFG)是一種推理時技術,它使得單個條件 擴散模型 能夠在不訓練單獨分類器的前提下,以樣本多樣性換取對條件信號的保真度。該方法由 Ho 和 Salimans 於 2021 年提出,作為分類器引導的更簡潔替代方案。後者此前被用於將文本到圖像和類別條件 擴散模型 的樣本推向更高質量。其要點是訓練一個網絡,使其在訓練時通過隨機丟棄條件輸入而同時充當條件模型和無條件模型,然後在 採樣 階段沿着從無條件預測指向條件預測的方向進行外推。

    CFG 已成為幾乎所有現代條件擴散模型的默認採樣策略,包括 ImagenStable DiffusionDALL-E 2 等文本到圖像系統,以及文本到視頻和文本到音頻的各種變體。同樣的思想已被推廣到自回歸 生成模型 和流匹配生成模型。一個 標量 引導尺度控制採樣器跟隨條件信號的強度,使從業者可以用單一旋鈕在推理時調節條件性與多樣性之間的取捨。

    背景:分類器引導

    Dhariwal 和 Nichol 的早期工作使用了一個在含噪圖像上訓練的分類器 $ p_\phi(y \mid x_t) $,用於將無條件 擴散模型 引導至目標類別。在每個反向擴散步驟,含噪數據分布的得分都會被加上分類器對數 似然 的梯度:

    $ {\displaystyle \nabla_{x_t} \log p(x_t \mid y) = \nabla_{x_t} \log p(x_t) + \nabla_{x_t} \log p_\phi(y \mid x_t).} $

    將分類器梯度乘以尺度 $ w $ 會銳化條件分布,從而以多樣性換取樣本質量。其缺點很實際:分類器必須在所有噪聲水平的含噪輸入上訓練,難以擴展到諸如文本之類的自由形式條件,並且分類器本身也是一個需要維護的額外模型。

    形式化

    CFG 通過將擴散網絡重新用作隱式分類器,從而消除了對外部分類器的需求。將 貝葉斯法則 應用於條件得分得到

    $ {\displaystyle \nabla_{x_t} \log p(x_t \mid y) = \nabla_{x_t} \log p(x_t) + \nabla_{x_t} \log p(y \mid x_t),} $

    因此隱式分類器梯度就是條件得分與無條件得分之差。引導加權得分通過沿該差值方向以權重 $ w \ge 0 $ 進行外推來定義:

    $ {\displaystyle \tilde{\epsilon}_\theta(x_t, y) = (1 + w)\,\epsilon_\theta(x_t, y) - w\,\epsilon_\theta(x_t, \varnothing),} $

    其中 $ \epsilon_\theta $ 是噪聲預測網絡,$ \varnothing $ 是表示"無條件"的可學習空標記,$ w $引導尺度。取 $ w = 0 $ 恢復 條件模型$ w \to \infty $ 將樣本推向條件最強烈偏好的模態。某些文獻使用尺度 $ s = 1 + w $ 作用於條件分支並對無條件分支減去 $ s - 1 $ 來參數化同一操作;兩種約定是等價的。

    改寫為 得分 更新形式,同一表達式為

    $ {\displaystyle \tilde{s}_\theta(x_t, y) = s_\theta(x_t, y) + w \big( s_\theta(x_t, y) - s_\theta(x_t, \varnothing) \big),} $

    這清楚地體現了幾何含義:從無條件得分出發朝向條件得分邁出一步,然後繼續越過它。因此 CFG 在得分空間中是一種外推,而非插值。

    訓練

    訓練一個網絡同時處理條件輸入和無條件輸入。以概率 $ p_\text{drop} $ 將條件 $ y $ 替換為空標記 $ \varnothing $;否則使用真實條件。標準的 去噪目標 變為

    $ {\displaystyle \mathcal{L}_\text{CFG} = \mathbb{E}_{x_0, y, \epsilon, t}\big[\,\lVert \epsilon - \epsilon_\theta(x_t, c)\rVert^2\,\big], \quad c = \begin{cases} \varnothing & \text{with probability } p_\text{drop} \\ y & \text{otherwise.} \end{cases}} $

    典型的丟棄概率為 10% 到 20%。同一組參數因此學會在所有噪聲水平上同時進行有條件和無條件去噪,而無條件路徑充當隱式分類器的角色。

    推理

    在每個反向擴散步驟,採樣器執行兩次前向傳遞:一次帶條件,一次使用空標記。兩個預測按照上述 CFG 公式組合,結果輸入到所選的 DDPMDDIM 更新規則中。計算量翻倍是主要的運行成本;實踐中兩次前向傳遞通常一起批處理,因此牆鍾時間的開銷更接近一個常數因子,而不是兩倍。

    引導尺度是 採樣 階段最主要的 超參數。文本到圖像模型常用的默認值約為 $ w = 7.5 $;類別條件 ImageNet 模型通常使用更小的值,約 $ w = 1 $$ 3 $。較大的尺度提升衡量樣本與提示對齊的指標(如 CLIP 得分,獎勵對齊),但會劣化 FID,並明顯使輸出過飽和或簡化。最優尺度取決於數據集和模型,通常通過掃描一個小網格來選擇。

    權衡與病態現象

    CFG 在提示保真度與樣本多樣性之間提供了單旋鈕的取捨,但較大的引導尺度會引入系統性偽影。像素空間的 擴散模型 在大 $ w $ 時傾向於顏色過飽和並產生對比度過高的圖像;這一現象有時通過動態閾值來緩解,即在 採樣 期間對像素統計值進行 裁剪 並重新縮放,使其保持在範圍內,如 Imagen 所採用的做法。Stable Diffusion 等潛空間模型也表現出類似傾向,形式上為卡通化紋理和模式坍縮到少數幾種規範化構圖上。

    經驗上,CFG 還會放大訓練數據中已有的偏差。由於該技術將樣本推向模型認為最強烈依賴於提示的模態,刻板的關聯被強化。這是模型與數據的屬性,而非引導本身的缺陷,但它與引導尺度的相互作用使得審計結果對 $ w $ 的選擇十分敏感。

    另一個獨立的問題是,CFG 並不對應於任何嚴格意義上的概率分布:受引導的得分通常不是任何可歸一化 密度 的得分。因此,CFG 下的採樣最好被理解為一種移動 概率質量 的啟發式方法,而不是在某個良好定義的 後驗分布 下進行精確推理。

    變體與擴展

    若干改進方案在保留 CFG 優點的同時降低其成本。CFG++ 重新表述引導更新,使大尺度下能更好地保留無條件分布的結構,從而緩解過飽和。Autoguidance 用同一模型的較小版本或較早期檢查點作為無條件分支,取代可學習的空標記,從而將引導強度與條件路徑和無條件路徑之間的質量差距解耦。動態 CFG 在不同噪聲水平上調度引導尺度,通常在 採樣 早期使用較少引導,在低噪聲階段使用更多引導。負提示將空標記替換為用戶指定的負提示 $ y^- $,使採樣器遠離 $ p(x_t \mid y^-) $ 而趨向 $ p(x_t \mid y) $;這在文本到圖像的界面中被廣泛使用。

    CFG 已被移植到流匹配、整流流一致性模型,以及自回歸序列模型——在後者中,對應的做法是在條件傳遞和無條件傳遞之間對 logits 進行插值。相關思想還出現在 RLHF獎勵傾斜採樣中,它們可以被視為隱式分類器的可學習替代方案。

    與分類器引導的比較

    CFG 與分類器引導產生定性上類似的效果,但在幾乎所有現代場景中都更傾向於使用 CFG。它無需訓練對噪聲敏感的分類器;它能處理任意條件(包括自由形式的文本)而無需修改架構;並且它享有與底層 擴散模型 相同的擴展規律。當確實需要外部 獎勵模型 時——例如將生成 偏向 訓練條件中未涉及的某種屬性——分類器引導仍然保有一席之地。

    局限性

    推理成本翻倍是最常被提及的局限;關於引導 蒸餾 的持續研究試圖將 CFG 的效果摺疊到單次前向傳遞中。由於缺乏嚴格的概率解釋,將 CFG 與需要良定義 似然 的技術(例如某些 後驗 採樣 方法)相結合併不自然。此外,過飽和、模式收窄和 偏差放大效應意味着 CFG 並非免費的午餐:它在改善名義指標的同時產生的分布在性質上而不僅僅是程度上與無引導模型不同。

    參考文獻

    [1] [2] [3] [4] [5]