<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Alignment on Tarragon</title><link>https://tarrragon.github.io/blog/tags/alignment/</link><description>Recent content in Alignment on Tarragon</description><generator>Hugo -- gohugo.io</generator><language>zh-TW</language><copyright>Tarragon (CC BY 4.0)</copyright><lastBuildDate>Tue, 12 May 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://tarrragon.github.io/blog/tags/alignment/index.xml" rel="self" type="application/rss+xml"/><item><title>DPO（Direct Preference Optimization）</title><link>https://tarrragon.github.io/blog/llm/knowledge-cards/dpo/</link><pubDate>Tue, 12 May 2026 00:00:00 +0000</pubDate><guid>https://tarrragon.github.io/blog/llm/knowledge-cards/dpo/</guid><description>&lt;p>DPO（Direct Preference Optimization、直接偏好最佳化）的核心概念是「&lt;strong>用人類偏好資料直接 fine-tune LLM、不訓 reward model、不用 RL&lt;/strong>」。Rafailov et al. (2023) 提出、用數學變形把 &lt;a href="https://tarrragon.github.io/blog/llm/knowledge-cards/rlhf/" data-link-title="RLHF" data-link-desc="Reinforcement Learning from Human Feedback：用人類偏好訓練的 reward model 透過 RL 對齊 LLM">RLHF&lt;/a> 的「reward model + PPO」兩階段合併成單一個 supervised loss、訓練流程大幅簡化。&lt;/p>
&lt;h2 id="概念位置">概念位置&lt;/h2>
&lt;p>DPO vs RLHF 的對比：&lt;/p>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>維度&lt;/th>
 &lt;th>RLHF&lt;/th>
 &lt;th>DPO&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>需要 reward model&lt;/td>
 &lt;td>是&lt;/td>
 &lt;td>否&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>訓練步驟&lt;/td>
 &lt;td>收偏好 → 訓 RM → PPO&lt;/td>
 &lt;td>收偏好 → 直接 DPO loss fine-tune&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>訓練穩定性&lt;/td>
 &lt;td>PPO 對 hyperparameter 敏感、容易不穩&lt;/td>
 &lt;td>像 supervised learning、相對穩&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>記憶體&lt;/td>
 &lt;td>三個模型同時運作（policy / RM / reference）&lt;/td>
 &lt;td>兩個（policy / reference frozen）&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>KL 約束&lt;/td>
 &lt;td>顯式加 β × KL term&lt;/td>
 &lt;td>內嵌在 loss 公式裡、不用顯式&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>流行度（2026）&lt;/td>
 &lt;td>商業大廠（OpenAI / Anthropic）&lt;/td>
 &lt;td>開源社群（Llama / Qwen / Gemma 系列許多用 DPO）&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;p>DPO 的 loss 形式（簡化）：&lt;/p>





&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-text" data-lang="text">&lt;span class="line">&lt;span class="ln">1&lt;/span>&lt;span class="cl">loss = -log σ( β · (log π(y_w|x)/π_ref(y_w|x) - log π(y_l|x)/π_ref(y_l|x)) )
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">2&lt;/span>&lt;span class="cl"> └─ 偏好 response 在 policy 跟 ref 的 ratio ─┘
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">3&lt;/span>&lt;span class="cl"> └─ 拒絕 response 的同樣 ratio ─┘&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>直覺：讓 policy 對偏好 response 的機率增加（相對 ref）、對拒絕 response 的機率降低（相對 ref）。&lt;/p>
&lt;h2 id="設計責任">設計責任&lt;/h2>
&lt;p>讀開源 LLM 的 paper / model card 看到「DPO-tuned」「preference fine-tuning」就是這個流程。實務上 DPO 訓練成本只是 RLHF 的一小部分、許多 fine-tune 平台（如 Hugging Face TRL）內建支援。後續還有 IPO、KTO、ORPO 等變體、都是「直接用偏好 fine-tune、不訓 reward」這條路線的進一步演化。&lt;/p></description><content:encoded><![CDATA[<p>DPO（Direct Preference Optimization、直接偏好最佳化）的核心概念是「<strong>用人類偏好資料直接 fine-tune LLM、不訓 reward model、不用 RL</strong>」。Rafailov et al. (2023) 提出、用數學變形把 <a href="/blog/llm/knowledge-cards/rlhf/" data-link-title="RLHF" data-link-desc="Reinforcement Learning from Human Feedback：用人類偏好訓練的 reward model 透過 RL 對齊 LLM">RLHF</a> 的「reward model + PPO」兩階段合併成單一個 supervised loss、訓練流程大幅簡化。</p>
<h2 id="概念位置">概念位置</h2>
<p>DPO vs RLHF 的對比：</p>
<table>
  <thead>
      <tr>
          <th>維度</th>
          <th>RLHF</th>
          <th>DPO</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>需要 reward model</td>
          <td>是</td>
          <td>否</td>
      </tr>
      <tr>
          <td>訓練步驟</td>
          <td>收偏好 → 訓 RM → PPO</td>
          <td>收偏好 → 直接 DPO loss fine-tune</td>
      </tr>
      <tr>
          <td>訓練穩定性</td>
          <td>PPO 對 hyperparameter 敏感、容易不穩</td>
          <td>像 supervised learning、相對穩</td>
      </tr>
      <tr>
          <td>記憶體</td>
          <td>三個模型同時運作（policy / RM / reference）</td>
          <td>兩個（policy / reference frozen）</td>
      </tr>
      <tr>
          <td>KL 約束</td>
          <td>顯式加 β × KL term</td>
          <td>內嵌在 loss 公式裡、不用顯式</td>
      </tr>
      <tr>
          <td>流行度（2026）</td>
          <td>商業大廠（OpenAI / Anthropic）</td>
          <td>開源社群（Llama / Qwen / Gemma 系列許多用 DPO）</td>
      </tr>
  </tbody>
</table>
<p>DPO 的 loss 形式（簡化）：</p>





<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="ln">1</span><span class="cl">loss = -log σ( β · (log π(y_w|x)/π_ref(y_w|x) - log π(y_l|x)/π_ref(y_l|x)) )
</span></span><span class="line"><span class="ln">2</span><span class="cl">                └─ 偏好 response 在 policy 跟 ref 的 ratio ─┘
</span></span><span class="line"><span class="ln">3</span><span class="cl">                                                            └─ 拒絕 response 的同樣 ratio ─┘</span></span></code></pre></div><p>直覺：讓 policy 對偏好 response 的機率增加（相對 ref）、對拒絕 response 的機率降低（相對 ref）。</p>
<h2 id="設計責任">設計責任</h2>
<p>讀開源 LLM 的 paper / model card 看到「DPO-tuned」「preference fine-tuning」就是這個流程。實務上 DPO 訓練成本只是 RLHF 的一小部分、許多 fine-tune 平台（如 Hugging Face TRL）內建支援。後續還有 IPO、KTO、ORPO 等變體、都是「直接用偏好 fine-tune、不訓 reward」這條路線的進一步演化。</p>
]]></content:encoded></item><item><title>RLHF</title><link>https://tarrragon.github.io/blog/llm/knowledge-cards/rlhf/</link><pubDate>Tue, 12 May 2026 00:00:00 +0000</pubDate><guid>https://tarrragon.github.io/blog/llm/knowledge-cards/rlhf/</guid><description>&lt;p>RLHF（Reinforcement Learning from Human Feedback、人類反饋強化學習）的核心概念是「&lt;strong>讓人類比較兩個模型回答的好壞、訓一個 reward model 學會這個偏好、再用 RL 把 LLM 推往 reward model 給高分的方向&lt;/strong>」。RLHF 是 LLM 對話品質飛躍的關鍵（從 GPT-3 base 到 ChatGPT 的差別主要是 RLHF）。&lt;/p>
&lt;h2 id="概念位置">概念位置&lt;/h2>
&lt;p>RLHF 在訓練流程的位置與步驟：&lt;/p>





&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-text" data-lang="text">&lt;span class="line">&lt;span class="ln"> 1&lt;/span>&lt;span class="cl">[SFT 後的模型]
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln"> 2&lt;/span>&lt;span class="cl"> ↓
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln"> 3&lt;/span>&lt;span class="cl">Step 1：收集人類偏好
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln"> 4&lt;/span>&lt;span class="cl"> 對同個 prompt 讓模型生 A、B 兩個 response、人類標「我較喜歡 A」
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln"> 5&lt;/span>&lt;span class="cl"> ↓
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln"> 6&lt;/span>&lt;span class="cl">Step 2：訓 reward model
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln"> 7&lt;/span>&lt;span class="cl"> 輸入 (prompt, response)、輸出一個分數
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln"> 8&lt;/span>&lt;span class="cl"> 目標：人類偏好的 response 分數高
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln"> 9&lt;/span>&lt;span class="cl"> ↓
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">10&lt;/span>&lt;span class="cl">Step 3：用 PPO 等 RL 演算法 fine-tune LLM
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">11&lt;/span>&lt;span class="cl"> 讓模型輸出讓 reward model 給高分的 response
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">12&lt;/span>&lt;span class="cl"> 加 [KL constraint](/llm/knowledge-cards/kl-divergence/)：不能偏離 SFT model 太遠
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">13&lt;/span>&lt;span class="cl"> ↓
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">14&lt;/span>&lt;span class="cl">[Aligned model]：回答更貼近人類偏好&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>關鍵特性與挑戰：&lt;/p>
&lt;ol>
&lt;li>&lt;strong>三個模型同時運作&lt;/strong>：policy（LLM）、reward model、reference model（SFT 後 frozen 那份）、訓練時記憶體吃緊。&lt;/li>
&lt;li>&lt;strong>Reward hacking&lt;/strong>：模型可能找到 reward model 的弱點、生成「reward 高但實質爛」的輸出（如冗長 boilerplate）。&lt;/li>
&lt;li>&lt;strong>訓練不穩&lt;/strong>：PPO 對 hyperparameter 敏感、需要小心調 β（KL 約束強度）、learning rate 等。&lt;/li>
&lt;/ol>
&lt;h2 id="設計責任">設計責任&lt;/h2>
&lt;p>RLHF 是 ChatGPT / Claude / Gemini 等商業 LLM 對話品質的核心。讀 model card 看到「RLHF-tuned」「helpfulness fine-tuning」就是這個階段。&lt;a href="https://tarrragon.github.io/blog/llm/knowledge-cards/dpo/" data-link-title="DPO（Direct Preference Optimization）" data-link-desc="RLHF 的簡化替代：跳過 reward model、直接從人類偏好資料 fine-tune LLM">DPO&lt;/a> 是 2023 年後出現的簡化替代方案、跳過 reward model、直接用偏好資料 fine-tune、訓練流程簡單很多、是現代許多開源模型的主流選擇。&lt;/p></description><content:encoded><![CDATA[<p>RLHF（Reinforcement Learning from Human Feedback、人類反饋強化學習）的核心概念是「<strong>讓人類比較兩個模型回答的好壞、訓一個 reward model 學會這個偏好、再用 RL 把 LLM 推往 reward model 給高分的方向</strong>」。RLHF 是 LLM 對話品質飛躍的關鍵（從 GPT-3 base 到 ChatGPT 的差別主要是 RLHF）。</p>
<h2 id="概念位置">概念位置</h2>
<p>RLHF 在訓練流程的位置與步驟：</p>





<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="ln"> 1</span><span class="cl">[SFT 後的模型]
</span></span><span class="line"><span class="ln"> 2</span><span class="cl">   ↓
</span></span><span class="line"><span class="ln"> 3</span><span class="cl">Step 1：收集人類偏好
</span></span><span class="line"><span class="ln"> 4</span><span class="cl">  對同個 prompt 讓模型生 A、B 兩個 response、人類標「我較喜歡 A」
</span></span><span class="line"><span class="ln"> 5</span><span class="cl">   ↓
</span></span><span class="line"><span class="ln"> 6</span><span class="cl">Step 2：訓 reward model
</span></span><span class="line"><span class="ln"> 7</span><span class="cl">  輸入 (prompt, response)、輸出一個分數
</span></span><span class="line"><span class="ln"> 8</span><span class="cl">  目標：人類偏好的 response 分數高
</span></span><span class="line"><span class="ln"> 9</span><span class="cl">   ↓
</span></span><span class="line"><span class="ln">10</span><span class="cl">Step 3：用 PPO 等 RL 演算法 fine-tune LLM
</span></span><span class="line"><span class="ln">11</span><span class="cl">  讓模型輸出讓 reward model 給高分的 response
</span></span><span class="line"><span class="ln">12</span><span class="cl">  加 [KL constraint](/llm/knowledge-cards/kl-divergence/)：不能偏離 SFT model 太遠
</span></span><span class="line"><span class="ln">13</span><span class="cl">   ↓
</span></span><span class="line"><span class="ln">14</span><span class="cl">[Aligned model]：回答更貼近人類偏好</span></span></code></pre></div><p>關鍵特性與挑戰：</p>
<ol>
<li><strong>三個模型同時運作</strong>：policy（LLM）、reward model、reference model（SFT 後 frozen 那份）、訓練時記憶體吃緊。</li>
<li><strong>Reward hacking</strong>：模型可能找到 reward model 的弱點、生成「reward 高但實質爛」的輸出（如冗長 boilerplate）。</li>
<li><strong>訓練不穩</strong>：PPO 對 hyperparameter 敏感、需要小心調 β（KL 約束強度）、learning rate 等。</li>
</ol>
<h2 id="設計責任">設計責任</h2>
<p>RLHF 是 ChatGPT / Claude / Gemini 等商業 LLM 對話品質的核心。讀 model card 看到「RLHF-tuned」「helpfulness fine-tuning」就是這個階段。<a href="/blog/llm/knowledge-cards/dpo/" data-link-title="DPO（Direct Preference Optimization）" data-link-desc="RLHF 的簡化替代：跳過 reward model、直接從人類偏好資料 fine-tune LLM">DPO</a> 是 2023 年後出現的簡化替代方案、跳過 reward model、直接用偏好資料 fine-tune、訓練流程簡單很多、是現代許多開源模型的主流選擇。</p>
]]></content:encoded></item></channel></rss>