所有標籤CMU 10-423 最後三講把前面學過的 Transformer、tokenizer、latent diffusion 搬到新的資料型態。L24 講音訊:先把聲波轉成 mel-spectrogram 或離散 token,再用 Whisper 轉錄、用 AudioLM 與 MusicGen 生成、用 AudioLDM 做擴散。L25 講影片:3D UNet 加時空注意力、latent 影片擴散、DiT 與 Sora,最後到可互動的 Neural OS。L26 前半講世界模型:給定狀態與動作預測下一個狀態,分成先生成 3D 場景、互動式影片(Genie)、潛在表徵(V-JEPA、PAN)三條路線。
CMU 10-423 第 5 講是影像單元的開場,講三種「理解」用的模型:CNN 把卷積核當成要學的參數;encoder-only Transformer 拿掉因果遮罩,讓每個 token 看左右兩邊,用 masked LM 預訓練,所以不是生成式語言模型;ViT 幾乎就是把 BERT 的輸入換成 16×16 之類的影像區塊。投影片用 ViT 論文的圖回答「Transformer 為什麼晚了四年才進電腦視覺」:資料集小時 ViT 輸給大型 CNN,資料夠大才反超。
CMU 10-423 第 23 講分兩半。前半講程式生成:評估從 BLEU 轉向「單元測試過了幾個」,基準從 HumanEval、MBPP 一路到 SWE-Bench Verified 與 Terminal-Bench 2.0;模型從 CodeBERT、Codex 到 FIM 與 StarCoder;程式領域特有的技巧是拿單元測試輸出做自我修正。後半講 agent:tool calling 的定義、Kimi K2 怎麼合成工具資料、coding agent 的五步迴圈,以及 Mind2Web、Set-of-Mark、SeeClick 這些操作網頁與 GUI 的方法。這一講沒有作業,只由 Quiz 6 驗收。
文字條件是從哪裡注入圖片生成模型的?CMU 10-423 L14 的答案是 cross-attention:query 來自影像的潛在表示,key 和 value 來自提示詞,所以每個潛在像素都有一個「看向哪些字」的機率分布。這張注意力圖可以拿來做很多事:classifier-free guidance 讓生成更貼近提示,Prompt-to-Prompt 在不重新訓練的情況下,把舊的注意力圖抄進新提示詞的生成,只改圖片的一部分。DiT 則把 UNet 換成 Transformer,用 adaLN-Zero 注入條件。L15 前半的 Q-Former 用一小組可學習的 query,把凍結的影像編碼器接上凍結的 LLM,也就是 HW4 要你實作的東西。
L7 把擴散模型拆成兩條 Markov 鏈:固定的前向過程一步步把圖片加噪成高斯雜訊,學出來的反向過程一步步去噪。精確的反向過程算不出來,但給定原圖 x₀ 時的後驗是封閉形式的高斯,所以可以拿它當學習目標。投影片比較三種參數化,實務上最好的是讓 U-Net 預測當初加進去的雜訊 ε,訓練迴圈只有八行。
CMU 10-423 Spring 2026 的 Scaling Up 單元後兩講。L17 從「GPU 之間的通訊才是主要瓶頸」出發,依序講資料平行、Megatron 式的張量平行、1F1B 管線平行、ZeRO 的 optimizer 平行、TeraPipe 的 token 平行與專家平行,結論是資料平行仍是主角,其他平行都在幫它塞進更多資料。L18 講兩件事:FlashAttention 用 tiling 加 online softmax 加 recomputation,在不改變結果的前提下減少 HBM 讀寫;解碼端則是 PagedAttention 管 KV cache 記憶體、speculative decoding 減少大模型呼叫次數。
CMU 10-423 除了四份作業,還用四種方式驗收:6 次課堂小考、2 次程式測驗、1 次綜合考試,以及占 25% 的三人期末專案;10-623/723 另外多一份 HW623 論文報告。校外拿得到的是附解答的練習考卷(13 大題、167 分)、HW623 題目與 33 篇論文清單、12 頁的專案 handout。本篇整理它們的結構與規則,並給出不用看解答也能自我檢核的方法。
L6 是 10-423 圖像單元第一個真正的生成模型。GAN 由兩個確定性網路組成:生成器把高斯雜訊變成圖片,判別器分辨真假,兩者玩 minimax 遊戲、輪流用 mini-batch SGD 更新。投影片接著談規模、浮水印與社會影響,後半段補上有向圖模型、Markov 模型與 factor graph,為 L7 的擴散模型鋪路。
CMU 10-423/623/723 是 Matt Gormley 與 Aran Nayebi 合授的生成式 AI 課,Spring 2026 用 26 講走完文字模型、影像生成、模型調適、多模態、規模化與進階主題。投影片、HW1–HW4 的題目與起始碼、附解答的練習考卷和專案說明都公開,可評為 A3;拿不到的是 Panopto 錄影、HW0 題目檔、HW3/HW4 的 recitation 投影片、小考與 Gradescope 評分。它的作業政策也值得一看:每份作業分兩次交,第一次只准人工作答,第二次才准用 AI。
CMU 10-423 Spring 2026 的 HW1 總分 62:書面題考 RNN LM(7 分)、Transformer LM(19 分)、sliding window attention(11 分),程式題(22 分)要你在 Karpathy 的 minGPT 上實作 RoPE 與 GQA,用莎士比亞全集訓練字元級模型並畫出損失與注意力時間。只需上傳 model.py;handout 附 5 個單元測試,官方估計所有實驗在 Colab T4 上合計約 40 分鐘。
CMU 10-423 Spring 2026 的 HW2 總分 60:書面題考 CNN(8 分)、encoder-only Transformer(4 分)、GAN(5 分)、VAE(6 分)與擴散模型(14 分),程式題(21 分)要你在 AFHQ 貓圖上從零實作 DDPM,填完 diffusion.py 與 unet.py 的 TODO,再用 W&B 交出損失曲線、FID 曲線與正反向擴散圖。最長的一個實驗是在 Colab T4 上訓練 10,000 步,官方估計約 2 小時。
CMU 10-423 Spring 2026 的 HW3 總分 66,2026-03-12 截止(Slot A)。書面題考 in-context learning(14 分)、參數高效微調(10 分)和 DPO 推導(15 分);程式題(25 分)要你從零寫 LoRALinear,把它接到 GPT-2 的 attention,再用 Rotten Tomatoes 影評做情感分類的指令微調。實驗全用 gpt2-medium,handout 估計每次訓練在 Colab T4 上 25–30 分鐘,還要一個 WandB 帳號。
CMU 10-423 Spring 2026 的 HW4 總分 79:書面題考 LDM(7 分)、VQ-VAE(8 分)、CLIP(4 分)、以 PaliGemma2 為例的 VLM(18 分),程式題(40 分)要你在凍結的 GPT-2 與凍結的 CIFAR-10 DiT 之間只訓練一個 Q-Former,讓類別條件的擴散模型改吃文字。要寫的程式只有三個函式,14 個單元測試;官方估計 25 個 epoch 在 T4 上要 2–3 小時、A100 約 1 小時,資料與 DiT 權重得用 download_data.sh 從 Google Drive 下載。
預訓練的 LLM 只會接話,不會對話。CMU 10-423 L11 後半先講 instruction fine-tuning:用 InstructGPT 的 13k 筆、Dolly 的 15k 筆或 Flan 的資料,把模型調成聊天助理。接著是 InstructGPT 的 RLHF 三步驟:人類排序回應、訓練獎勵模型、用 PPO 微調。L12 前半補上 REINFORCE 與 PPO 的直覺,列出 PPO 版 RLHF 的五個缺點,最後推導 DPO:從 Bradley–Terry 模型出發,把獎勵模型換成策略本身的對數機率比,只用偏好資料就能直接微調。
CMU 10-423 Spring 2026 的 L19 和 L21 都在處理同一個問題:序列一長,標準 attention 的記憶體與 KV cache 就撐不住。L19 給兩條路:用 sparse、sliding window、dilated attention 近似注意力,或保留完整注意力、改用 Blockwise Parallel Transformer 與 Ring Attention 把計算拆到多張 GPU。L21 給第三條路:換掉 attention,改用只保留固定大小隱藏狀態的 state space model(S4、Mamba),或把 attention 和線性注意力層交錯成 hybrid 模型(Jamba、Nemotron-H、Qwen3-Next)。
CMU 10-423 第 4 講前半區分預訓練、mid-training 與 post-training,後半挑出現代 LLM 幾乎都在用的三個元件:RoPE 把位置資訊改成對 query、key 的旋轉,讓注意力分數只取決於兩個 token 的相對距離;GQA 讓多個 query head 共用一組 key/value head,省記憶體和算力;sliding window 改注意力遮罩,讓每個 token 只看左邊固定數量的 token。三者都是 HW1 的題目。
手上只有少量標註資料和一個幾十億參數的 LLM 時,CMU 10-423 給兩條路:監督式微調,或把例子塞進 prompt 做 in-context learning。L10 先說明 2023 年的共識是微調通常贏,再介紹四種只調少量參數的做法:只調最上面幾層、adapter、prefix tuning 與 LoRA。L11 前半回到 in-context learning,說明它對例子順序、標籤比例有多敏感,以及怎麼挑 prompt、什麼是 chain-of-thought。HW3 的書面題與 LoRA 程式題都從這兩講出題。
CMU 10-423 Spring 2026 的 L20 把推理模型講成一條線:先用 chain-of-thought 提示讓模型寫出中間步驟,再用 STaR 把「寫對的推理」拿回來微調,接著 OpenAI o1 用強化學習訓練思考 token,訓練和推論時的算力都能往上加。開源這邊,DeepSeek-R1-Zero 只用規則式獎勵和 GRPO 就讓推理長度自己變長,DeepSeek-R1 再補上 SFT 修掉可讀性與語言混雜。講座最後轉到機制可解釋性:superposition 為什麼讓模型難懂,以及 sparse autoencoder、circuits、cross-layer transcoder 這些「替代模型」怎麼處理。
CMU 10-423 Spring 2026 的 L22 用同一套四問(是什麼、影響誰、為什麼發生、怎麼修)走過五種生成式 AI 風險:版權侵權、對抗式攻擊、幻覺、偏見與歧視、環境衝擊,每一段都停在「修起來很難」的具體例子上。L26 的後半份投影片再往上一層:Aran Nayebi 用 agreement 框架證明,對齊的成本會隨任務數、代理人數與狀態空間大小成長,所以要壓縮目標、挑重點狀態,並提出以 deference、off-switch 優先的字典序效用來做可證明的 corrigibility。課綱列的 data contamination 在兩份投影片裡都沒有出現。
CMU 10-423 第一講把生成式 AI 收斂成一句話:它就是機率建模,文字生成就是估計 p(下一個字 | 前面所有字)。投影片從 n-gram 的「數次數」講到 RNN 的「把前文壓成固定長度的向量」,中間插進 module-based autodiff:每個模組只要會 forward 和 backward,梯度就能沿計算圖自動倒推回去,PyTorch 就是這樣運作的。HW0 的題目檔在 Google Drive 回 401,公開的只有 recitation Colab,內容是 PyTorch、LSTM、Weights & Biases 與 einops。
CMU 10-423 Spring 2026 的 Scaling Up 單元前兩講回答兩個問題。L15 後半講 scaling laws:Kaplan 2020 說模型放大 8 倍、資料約 5 倍就夠,Chinchilla 改說兩者要等比例放大,接著用 Phi 系列與資料過濾的 scaling law 補上「資料品質」這個第三條軸。L16 講 MoE:前饋層佔了 GPT-3 大半參數,把它切成專家、每個 token 只走 top-k 條,記憶體跟著總參數、計算跟著活躍參數,代價是負載平衡與訓練穩定性。這段後半沒有程式作業,驗收靠小考、練習考卷第 13 題與期末專案。
CMU 10-423 用兩堂課把生成模型接上兩種模態。L12 後半講文字怎麼控制圖片:GAN、自迴歸(Parti)、diffusion(DALL-E 2、Imagen)三條路線,最後落在 latent diffusion——先把圖片壓進自編碼器的潛在空間,再在那裡跑 DDPM,用 cross-attention 讀提示詞。L13 反過來,讓語言模型讀圖:用 CLIP/SigLIP 或 VQ-VAE 把圖片變成向量或整數,送進 decoder-only Transformer;只讀不畫的 VLM(PaliGemma、Qwen-VL)和能輸出圖片的 VLM(LWM、Gemini)差在影像是不是離散 token。
CMU 10-423 第 2、3 講把 RNN 換成 attention。第 2 講先說明 RNN 為什麼不夠用:會遺忘、只能一步步算、梯度仍可能爆炸;再一步步拼出 Transformer 語言模型:scaled dot-product attention、multi-head、layer norm、殘差連接、位置嵌入、causal mask。第 3 講回答怎麼訓練:沒有 n-gram 那種數次數的封閉解,就用 autodiff 加 mini-batch SGD 做最大概似估計;再講 padding、KV cache、三種 tokenizer,最後用 greedy decoding 和 ancestral sampling 說明怎麼一個 token 一個 token 生成。
VAE 和擴散模型都卡在同一個地方:log p_θ(x) 要對潛變數積分,算不出來。L8–L9 的解法是變分推論:找一個好算的 q 去逼近真實後驗,把「最小化 KL」換成「最大化 ELBO」,而 ELBO 正好是 log p(x) 的下界。VAE 再加上 Monte Carlo 估計與 reparameterization trick,就能用一次前向、一次反向訓練;DDPM 的 ELBO 拆開後,每一項都是在要求學到的反向一步貼近封閉形式的 q(x_{t−1} | x_t, x₀)。