棒棒生

讓學習變成一種習慣


  • 首頁

  • 分類

  • 關於

  • 歸檔

  • 標籤

告別 Reward Model: DPO 如何讓 LLM 偏好對齊變得穩定且高效

發表於 2026-01-07 | 分類於 ML

Pre-trained model 經過 SFT (Supervised Fine-Tuning) 再經過 RLHF (Reinforcement Learning from Human Feedback) 的這一套組合拳在 2023 年堪稱顯學

網路上甚至產生了一個很有名的修格斯(Shoggoth)怪物梗圖. (wiki: 形態無定的原生質生物,是克蘇魯神話中最駭人的存在之一)

Elon Musk 也在 twiitter 發了一張帶著笑臉面具的修格斯對人類說著 [ref]:

“As an AI language model, I have been trained to generate responses that are intended to be helpful, informative, and objective…”

第一步的 pre-trained phase 就是大力出奇蹟硬 train 一發, 模型長得像觸手怪的修格斯般, 什麼都有可能也很難控制其行為 (產生人類要的笑臉). 因此需要第二階段的 SFT, 而這很好做, 只要藉由篩選或人工介入得到比較高品質的資料後, 重新 supervised fine tuning 一下就結束了.
不過若要達到最終更好的效果或是人類喜歡的輸出等等, 還是得依靠最後一階段的 RLHF
相比 SFT, RLHF 對超參數敏感許多, 同時 RLHF 必須依賴一個事先訓練好的 reward 模型來為每個 output tokens 打分數, 才能訓練 LLM, 這種兩階段訓練也是模型調整的一大困難點之一.

2023 年 Stanford 團隊提出 DPO (Direct Preference Optimization) [arxiv]
成功將 LLM 偏好對齊的問題從 RL 轉換成 supervised training, 一舉改善 RLHF 的缺點的同時, 效果仍然卓著.

[PS]: 由於原本的修格斯(Shoggoth)怪物梗圖實在太過鮮明, 我讀完 DPO 方法後, 很想知道這個梗圖可以怎麼改
以下為 Gemini nano banana 🍌 的版本:
沒有原圖那麼有衝擊力, 但倒也像個說明書般地圖示了… 😅

回到正文, 究竟 DPO 怎麼將 RL 變 supervised training 的? 這數學魔術怎麼變的?
帶著好奇心讓我們讀下去, 不過還得先從 RLHF 說起

閱讀全文 »

RL的數學原理: 趙世鈺課程濃縮筆記

發表於 2025-12-25 | 分類於 ML

📔 筆記內容: 赵世钰老師 “强化学习的数学原理” 課程 (也推薦用 Notion版本 來閱讀)
很高興我初次學習 RL 就是透過這門課, 讓我扎實理解其背後的數學和邏輯
老實說 RL 方法很多很雜, 套句趙老師的話, RL 數學很深, 結構性又很強, 一環扣一環
如果沒有這堂課這樣循序剖析和從數學出發解釋的話, 我自己應該很難入門, 謝謝這門課的赵世钰老師! 🙏🏻

本篇筆記方式盡量濃縮, 而每個章節更詳細的筆記參考:
 $\circ$ RL(1): Fundamentals of Reinforcement Learning
 $\circ$ RL(2): Sample-based Learning Methods
 $\circ$ RL(3): Prediction and Control with Function Approximation

閱讀全文 »

IndexTTS2 筆記 by AI

發表於 2025-12-11 | 分類於 ML

此篇文章為 IndexTTS2 論文 (arxiv, 官網, Github) 的筆記, 內容幾乎都是 AI 產出的, 而且也確實整理的很棒

LLM 的進步已經從根本上改變我讀論文的方式了

現在我都是想像有一個學生 (AI) 開始跟我報告, 先請他講論文的 whole (high-level) picture, 然後開始一點一點對話式的挖掘
整個過程絲滑舒服, 想聽什麼論文的報告隨時都可以, 想詢問多深入都可以, 也不用擔心學生報告整理太爛或沒準備好 😛

閱讀體驗正式進入 “Vibe Reading” 時代 … 😃

⚠️ 以下內容幾乎為 AI 口吻, 我依照結構整理起來而已(自己看的), 吃不下 AI 文的讀者請見諒左轉

閱讀全文 »

一統 Flow and Score Matching 的框架

發表於 2025-08-31 | 分類於 ML

⚠️ [提醒]: 本篇難度可能偏高, 有些地方不會從頭開始解釋, 畢竟主要給自己筆記的, 請讀者見諒.

筆記動機是由於之前陸陸續續讀過 (連結為之前的筆記們):

  • [Score matching]: Langevin dynamics 可以使用 score function ($\nabla\log p_{data}$) 來取 sample, 取出來的 sample 具有 $p_{data}$ 的分佈 (由 Fokker-Planck Equation 的定理可證). 因此我們要做的就是訓練一個 NN $s^\theta(x)\approx \nabla\log p_{data}(x)$, 這樣就能在 Langevin dynamics 中使用 $s^\theta$ 來對 $p_{data}$ 採樣了
  • [Denoised diffusion model]: 訓練出能去噪 (denoise) 的 NN model (加高斯噪聲的過程稱 forward process, 去噪稱 backward). 由於無法直接做 MLE (Maximal Likelihood), 因此訓練目標函式改為優化 MLE 的 lower bound, 稱 ELBO (Evidence Lower Bound). 藉由訓練出的 denoised model, 一步一步還原乾淨資料.
  • [Flow matching]: 從已知且容易採樣的 $p_{init}$ 採樣出初始 sample $x_0$, 根據學到的 vector field $u_t^\theta$ 來更新 trajectory $\{x_t\}_{0\leq t\leq1}$, 最終達到的 $x_1$ 滿足資料分布 $p_{data}$. 如何設計並訓練這樣的 vector field $u_t^\theta$ 可說是非常精彩, 也會用到物理中的 Continuity Equation (質量守恆).

我心理總認為這些東西應該有非常深刻的關聯 🤔, 但就是缺乏一個統一的框架來把這些觀念融合起來.

直到我看到 MIT 這門課程: Introduction to Flow Matching and Diffusion Models 的一些內容. (👍🏻 大推! 👍🏻)
簡直醍醐灌頂, 因此想筆記下來這個統一的框架. 正文開始

閱讀全文 »

[CLOSED] AI 演算法夥伴: 與我們一起打造次世代語音技術!

發表於 2025-08-18 | 分類於 雜

是的! 我們徵求工作夥伴! (深度學習算法開發單位, 新竹縣竹北市, 地址: 🗺️)

公司是意騰科技 intelliGo 成立於2016年, 一家專精於語音AI領域的公司, 並於 2025 年台股上市 (代號: 7749). 已有許多 AI 語音的解決方案, 一個代表例子為應用於 🎮 Switch2 GameChat 的方案 [新聞].
我們 (算法開發) 團隊正在招聘深度學習開發人員, 如果您願意與我們一起開發次世代語音技術, 打造影響全球使用者的功能, 別猶豫了! 請寄送您的簡歷與我聯繫: ✉️ bobondemon[at]gmail[dot]com

您將加入的團隊經歷過許多從 0 到 1 的新功能開發 (有些是業界首創), 同時也具有 1 到 100 的 scale up 產品經驗. 團隊文化注重每個人的成長, 並鼓勵鑽研與思辨, 而非僅求速成, 你能與一群同樣對技術有執著追求的夥伴共同成長!

我們正在尋找這樣的你/妳 (非語音領域的夥伴也沒問題喔 🙂)
 $\circ$ 心態上: 樂於接受新題目的挑戰, 自我驅動力強 (對新技術或進步上有”饑渴感”), 熱衷於鑽研技術和深度思考 (注重理解透徹)
 $\circ$ 本職學能上: 熟悉深度學習, 並有良好的數學能力, .e.g. 線性代數、機率、微積分、最佳化方法等, 能獨立閱讀論文了解某一問題的 SoTA 作法, 並快速實驗驗證想法, 同時持續迭代開發
 $\circ$ 專案上: 能從客戶角度思考什麼才是成功的應用 (有時候複雜厲害的作法不一定打到客戶痛點)
加入我們能完整經歷從 AI 模型的誕生到部署, 再到客戶回饋打磨的完整 loop 過程.
詳細 Job Descriptions 如下 (別害怕別猶豫, 就是你/妳了!)

閱讀全文 »

筆記 PyTorch FX 的 Graph Node 一些基礎概念

發表於 2025-07-29 | 分類於 ML

Computational graph 相當於 NN 的一種 IR (intermediate representation) 表達方式.
在 PyTorch 的 nn.Module 裡通常由 user 來定義 forward 函式藉此來表達這些 ops 怎麼關聯何其執行順序.
但在 torch.fx 把 NN 改由 Graph 來定義該怎麼 forward. 精確來說, 一個 GraphModule 包含了原本的 nn.Module 之外, 還包含了一個 Graph 物件, 並且Module 裡的 forward 函式改成由 Graph 物件來 ”自動生成”.
這樣做有許多好處, 例如可以自由地對 Graph 修改後, 再重新產生 forward. 更多請參考官方文件說明.

例如一些操作範例: [Replace one op], [Conv/Batch Norm fusion], [replace_pattern: Basic usage], [Quantization], [Invert Transformation]

當我在看 Replace one op 的時候, codes 雖然非常短, 但其實我產生了很多底層 graph 操作的疑問.
因此仔細對照 source codes 理解後特別紀錄一下.
相信對 Graph, Node, 和底層 fx 怎麼運作會有初步比較好的理解.

閱讀全文 »

不要逼 Attention 選擇, 留個出口吧

發表於 2025-07-09 | 分類於 ML

我們在看一些 attention 有時會看到會將 key 和 value ($K,V$) 各自 padding 一個 zero vector 的 token embedding. 如下圖所示 初次看到可能會很疑惑, 為啥要多 padding zero vectors? 本文就來解釋一下原因.
但首先故事要先回到 Transformer 本身
以下一些投影片內容取自 Song Han 課程投影片

閱讀全文 »

神經網路鍊金術之高手心法

發表於 2025-07-08 | 分類於 ML

這裡指的 “高手” 來自 Google DeepMind 的科學家 Sander Dieleman [blog], 而他的工作有多大影響力請自行查看 [google scholar] 就會知道.
這是筆者參加 ACDL 2025 MLSS 的其中一個 lecture, 也是私心認為最好的演講.
共分三堂, 前兩堂講了 diffusion models, 最後一堂講了他目前對神經網路訓練的各種心得/mindsets
能從這麼頂尖的 AI 科學家直接聽取經驗實屬難得!

有意思的是…這些經驗和目前主流技術, 有一些已經落實在自己的工作上, 這讓我感覺到自己確實也走在對的方向上.

但比較可惜的是過了一個月後才開始想要紀錄一下當時聽到的內容, 因此以下筆記或許會跟原本的意思有偏差, 對此情況則會融入自身的理解來記錄.
分四個部分 (擷取自演講投影片內容)

  1. Process: 點出該用什麼心態和工作流程, 來產生模型
  2. Architecture: 針對 NN backbone 設計的一些說明
  3. Training: 訓練 NN 的一些心得和技巧
  4. Miscellany: 其他各種雜項心得
閱讀全文 »

REINFORCE Estimator

發表於 2025-06-04 | 分類於 ML

某天忘記幹嘛了突然回想起之前學到的一個問題是有關 gradient 的 variance 很大, 使得 gradient descent 訓練不夠穩定.
不過可以利用扣掉一個 bias 或是使用 re-parameterization trick 來大幅降低 variance 解決此問題.

想了很久忘了在哪邊…縱使翻自己的 blog 筆記有時也沒查到很全面的資訊.
所以就開始跟 ChatGPT 學習, 只能說 👏🏻 ChatGPT 完美!! 👏🏻

現在這個時代隨時都有一個上通天文下知地理的助手在你旁邊 (或許無法贏過專精該領域最頂尖的人類, 但作為輔助絕對稱得上稱職), 這在以前根本很難想像, 且也只是這短短幾年才發生的事情.
這麼棒的東西, 還不把它用爆嗎?

好了, 回到本篇文章, 以下除了開頭的問題設定, 以及有一段人工補充的段落, 其他都是 ChatGPT 寫的, 根本超方便.

閱讀全文 »

Convolution 與 BatchNorm 的融合大法:從推論、QAT 到 PyTorch 的加速

發表於 2025-05-04 | 分類於 ML

常見的 NN blocks: Convolution (Conv) —> Batch Normalization (BN) —> ReLU
這 3 個 OPs 在量化後 inference 的時候可以直接融合成一個 OP:
  - Conv —> BN 可以融合是因為 BN 可以視為一個 1x1 convolution, 所以兩者的 weights 可以合併
  - ReLU 可以合併是因為在 QAT 時, 可以被 fake quant 的 quantization parameter 處理掉

本文筆記 Conv+BN 的合併, 分 3 部分:
  - 先討論 inference 階段怎麼合併 (已經都 train 好的情況下) [來源]
  - 再來討論做 QAT 時, 怎麼插 fake quant 效果才會好 [來源]
  - 最後看看 PyTorch 怎麼實作, 更重要的是, 怎麼加速?

閱讀全文 »
12…12
Chih-Sheng Chen

Chih-Sheng Chen

115 文章
5 分類
241 標籤
© 2026 Chih-Sheng Chen
由 Hexo 強力驅動
主題 - NexT.Mist
本站總瀏覽 次 本站訪客 人
[object Object] [object Object]