棒棒生

讓學習變成一種習慣


  • 首頁

  • 分類

  • 關於

  • 歸檔

  • 標籤

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

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

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

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

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

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

閱讀全文 »

一統 Flow and Score Matching 的框架

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

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

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

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

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

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

閱讀全文 »

筆記 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 怎麼實作, 更重要的是, 怎麼加速?

閱讀全文 »

Robbins-Monro Algorithm 和 Dvoretzky's Convergence Theorem 筆記

發表於 2025-05-02 | 分類於 Optimization

Stochastic Gradient Descent (SGD) 算法:

wk+1=wk−αk∇wf(wk,xk)
其中 f 是要 minimized 的目標函數, xk, wk 是 k-th iteration 的 data 和 weight.
以前在學的時候都會提到 step size αk 有這樣一個神奇的條件:
∞∑k=1α2k<∞,∞∑k=1αk=∞;
左邊的條件希望 step size 要愈來愈小, 而右邊的條件又說也不能太小.
聽起來就有點神奇, 不知道藏了什麼秘密在裡面.
直到許多年後, 在我學赵世钰老師的 RL 課程第 6 章的時候才解開了以前不懂的地方.

鄭重介紹 Robbins-Monro (RM) 算法!

RM 可說十分重要, 除了可以證明 SGD 是 RM 算法的一個 special case. (因此只要保證滿足 RM 收斂的條件, SGD 就會收斂)
同時 RL (強化學習) 裡經典的 Temporal Difference (TD), Q-Learning 等的方法也依賴 RM 算法的觀念.
所以 RM 算法可說是 RL 的基石之一! 知道 RM 算法還是相當有好處的.
以下特別筆記赵世钰老師的 RL 課程第 6 章 內容.

閱讀全文 »

愉快充實的學習旅程 (Prof. Jeffrey R. Chasnov 的課程)

發表於 2025-03-13 | 分類於 雜

故事的開始從想看懂生成式模型的 flow matching 方法.
搜尋一下需要的數學知識, 大概還需要補 ordinary/partial differential equations, vector calculus (Gauss divergence theorem, Continuity equation), numerical methods for solving PDEs.
這些知識正好就是 Coursera 這門專項課的內容: Mathematics for Engineers Specialization by Prof. Jeffrey R. Chasnov
用了四個月的時間很充實又愉快的學習了四門課程

好啦我承認也花了點上班時間來學習 😆, 主要假日盡量投入, 確實有點辛苦

說一下四門課的心得內容:

閱讀全文 »

筆記 Langevin Dynamics 和 Fokker-Planck Equation 推導

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

筆記來源 [DeepBayes2019]: Day 5, Lecture 3. Langevin dynamics for sampling and global optimization 前半小時. 非常精彩!

粒子 x follow Langevin dynamics 的話 (x′ 為此時的位置, x 為經過無窮小的時間, dt, 後的位置): x−x′=−∇U(x′)dt+σ√dtN(0,I)

則 x 隨時間的機率分布 pt(x) 會滿足 Fokker-Planck equation 這種 Stochastic Differential Equation (SDE) 的形式:
∂∂tpt(x)=∇pt(x)T∇U(x)+pt(x)div∇U(x)+12σ2∇2pt(x)
其中 ∇2 是 Laplacian operator, 定義是 ∇2f:=∑i(∂2f/∂x2i), 而 div 是 divergence 定義是 ∇2F:=∑i(∂Fi/∂xi).
或這麼寫也可以 (用 div(p→u)=∇pT→u+pdiv(→u) 公式, 更多 divergence/curl 的微分[參考這, or YouTube]):
∂∂tpt(x)=div(pt(x)∇U(x))+12σ2∇2pt(x)
而從 F-P equation 我們可以發現最後 t→∞ 時某種設定下會有 stationary 分佈.
而如果將要採樣的目標分佈 p(x) 設定成這種 stationary 分佈的話.
由於是 stationary 表示就算繼續 follow Langevin dynamics 讓粒子 x 移動 (更新), 更新後的值仍然滿足目標分佈 p(x), 因此達到採樣效果!
而這也是 Denoising Diffusion Probabilistic Models (DDPM) 做採樣時的方法.

接著詳細記錄 Langevin dynamics, Fokker-Planck equation 推導, 以及 stationary 分佈和採樣方法.

如果讀者知道 Continuity equation 的話, 應該會發現與 F-P equation 非常相似. 它們的關聯可以參考 “Flow Matching for Generative Modeling” 論文的 Appendix D.

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

Chih-Sheng Chen

112 文章
5 分類
231 標籤
© 2025 Chih-Sheng Chen
由 Hexo 強力驅動
主題 - NexT.Mist
[object Object] [object Object]