所有標籤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₀)。
11-868 第 10 講用 Lei Li 團隊自己的 LightSeq/LightSeq2 當教材,拆出四招:把矩陣乘法以外的小運算融合成一個 kernel、改寫 LayerNorm 與 Softmax 的公式來減少 thread 同步、參數與梯度用 FP16 存但 FP32 算、依反向傳播的相依關係重用記憶體。投影片報告的 WMT14 英德翻譯訓練加速是 1.4–3.5 倍。沒有錄影,本文依投影片頁碼與兩篇論文整理。
11-868 第 14、15 講從 parameter server 講到 PyTorch DDP:先用 NCCL 的五個 collective(Broadcast、Reduce、AllReduce、ReduceScatter、AllGather)當積木,推出 ring 為什麼能讓廣播時間幾乎不隨 GPU 數增加,再把 AllReduce 拆成 ReduceScatter 加 AllGather。第二講拆 DDP 的兩個關鍵設計:把梯度分桶(預設 25 MB)、在反向傳播還沒結束時就開始同步。沒有錄影,本文依投影片頁碼與 VLDB 2020 論文整理。
L05 用一個四層的情感分類網路當主線,先把計算表示成計算圖、用拓撲排序算出前向值,再用連鎖律與向量–Jacobian 乘積反向傳回梯度,最後拆解 TensorFlow v1 的 placeholder、variable、operation 與 session。投影片有一頁直接標著「important for HW2」。
標準 attention 會把 N×N 的分數矩陣寫回 HBM 再讀出來,時間大多花在搬資料。FlashAttention 用 tiling 加 softmax rescaling,讓每一塊都在 SRAM 裡算完,backward 則重算而不存。Tri Dao 在 11-868 的客座講義裡給了一組數字:backward 的 FLOPs 多了 13%,HBM 讀寫少了 9 倍,時間快了 6 倍。之後 FA3、FA4 的主題也一樣:硬體變了,瓶頸跟著搬家,演算法就得跟著改。
CMU 11-868 的 GPU 三講回答一個問題:為什麼寫對的 CUDA matmul 在 A100 上只用到 2.48% 的 FP32 算力。L02 講 SM、warp 與 grid/block/thread,L03 講 cudaMalloc、cudaMemcpy 與 kernel 索引,L04 用 tiling、coalesced access 與避開 bank conflict,把資料從約 500 個 cycle 外的 global memory 搬近一點。
11-868 第一份作業要你在 src/combine.cu 寫四個 CUDA kernel(map 15、zip 25、reduce 25、matmul 30 分),接回 MiniTorch 的 Python 後端,再用 5 分的整合測試收尾。reduce 與 matmul 的 shared-memory 優化標為 Optional。作業頁明寫需要 GPU,評分用的是不公開的私有測資。
11-868 第二份作業分三塊:自動微分的 topological_sort 與 backpropagate(40 分)、Linear 層與 MLP 網路(30 分)、binary cross entropy 與訓練迴圈(30 分),最後在 SST-2 上用 GloVe 詞向量訓練情感分類器,驗證準確率要到 75%。預設後端是你作業一寫的 CUDA kernel;repo 已在 2026-09-02 合併了 Fall 2026 的小修正。
HW3 要你在 HW1、HW2 做出來的 MiniTorch 上補齊 softmax loss、Dropout、LayerNorm、Embedding,再組出 pre-LN 的 GPT-2 decoder,最後在 IWSLT14 德英翻譯上訓練。配分是 tensor functions 20、basic modules 20、decoder LM 40、翻譯管線 20;滿分條件是通過私有測試且 BLEU 約 20±2。作業頁警告光訓練就要至少 10 小時,PSC 的 V100 一個 epoch 約一小時,要跑 10 個 epoch。2026 春季版 2/4 發、2/18 截止。
11-868 第四份作業要你照 LightSeq 的做法,親手寫 attention softmax 與 LayerNorm 的 CUDA kernel(前向、反向各一),接回自己的 MiniTorch,再換進 HW3 的 Transformer 訓練一個 epoch。配分是 Softmax 40、LayerNorm 40、整合 20。作業頁預期單一 kernel 快 3.7 到 15.8 倍,整個訓練卻只快約 1.1 倍,原因是 Amdahl 定律。需要一張 NVIDIA GPU;repo 在 2026 秋季已被改過。
CMU 11-868 第五份作業改用 PyTorch 與 Hugging Face 的 GPT-2,要你只用 torch.distributed 和 torch.multiprocessing 寫出資料平行(切資料、建 process group、平均梯度,50 分),再寫出 GPipe 式的管線平行(切模型、產生時脈排程、用 worker thread 跑 micro-batch,50 分)。兩部分都要在至少兩張 GPU 上做 benchmark 並交圖:資料平行要在 2 張卡上達到至少 1.5 倍加速,管線平行要比單純模型平行快。2026 春季版 3/25 截止。
11-868 第六份作業第一次放下自己寫的 MiniTorch,改用產業框架。兩題各 50 分:第一題改一支 DeepSpeed 訓練腳本,打開 LoRA,讓 Llama-2-7B 在 2 張 16GB 的 V100 上訓練得起來;第二題填完 SGLang 推論腳本的 TODO,並調參數讓生成跑快一點。兩題要的 GPU 互相衝突:SGLang 不支援 V100,要換 L40S、A6000 或 A100。春季版 4/13 截止,作業頁不提供評分測資。
11-868 的 RL 系統講題沒有投影片,Syllabus 只列了 ReaLHF 一篇論文。作業七倒是完整公開:用 Anthropic HH-RLHF 資料訓練 DistilBERT reward model(40 分),在 VERL 風格的 trainer 裡補上 GAE、PPO loss 與 entropy,微調 GPT-2(40 分),最後比較 RLHF 前後的 reward 分布(20 分)。起始碼的 trainer 沒有 import verl 套件,學的是 RLHF 的資料流,不是 VERL 的分散式引擎。
CMU 11-868 第一講用 51 頁投影片論證一件事:LLM 的瓶頸不只在模型,而在「用更少的 GPU、記憶體與電力,更快地在更大的資料上訓練與推論更大的模型」。它把一個 Transformer 拆成矩陣乘法、reduction、map、記憶體搬移四種底層運算子,再把難題分到 kernel、框架、分散式系統三層,並提醒光把計算變快不夠,資料搬移同樣花時間。
11-868 用兩講回答同一個問題:一台推論伺服器怎麼同時服務大量請求,又不浪費 GPU 上的 KV cache。第 22 講(Lei Li)從 SGLang 的排程迴圈講起:ORCA 的 continuous batching、用 radix tree 管 KV 的 RadixAttention、依前綴命中率排序與分流、把 CPU 排程藏到 GPU 計算後面。第 24 講由 vLLM 作者 Woosuk Kwon 主講:PagedAttention 把 KV cache 切成固定大小的 block,用 block table 做虛擬化,讓同一張 A100 的 batch 從 8 撐到 40;後半講 vLLM 怎麼壓 CPU overhead、用 piecewise CUDA graph、切模型平行與管理混合架構的記憶體。
CMU 11-868 是 Lei Li 開的 LLM 系統研究所課:從 CUDA kernel、自己的 MiniTorch 框架,一路做到分散式訓練、SGLang 服務與 RLHF。Spring 2026 的 28 份講義、7 份作業頁與 7 個起始碼 repo 全部公開,可評為 A3;缺的是錄影、GPU 與 PSC 帳號、quiz,以及「哪兩份作業是選修」這件事官方沒寫。
CMU 11-868 在 2026 春季用兩講回答「模型太大,一張 GPU 放不下」:L16 講切層的 pipeline parallelism(GPipe 的 micro-batch、1F1B、交錯 stage)和切矩陣的 tensor parallelism(Megatron-LM 對 FFN、attention、embedding 的切法),結論是節點內用 TP、跨節點用 PP、再外面疊 DP;L17 把 MoE 當成第三種切法——每張卡放不同的專家、其餘部分複製,代價換成 all-to-all 通訊與負載平衡,並以 GShard、DeepSpeed-MoE、DeepSeek-V3 的設計逐一說明。
11-868 用兩講處理量化:L19 從 BF16、absmax/zero-point 講到 AdaQuant、ZeroQuant、LLM.int8(),L20 整講拆解 GPTQ。GPTQ 只量化權重,每次量化一欄就用二階資訊修正還沒量化的權重,再靠 lazy batch update 與 Cholesky 讓它跑得動 175B。它省下的主要是記憶體;推論變快,是因為單一 batch 的 decode 本來就卡在讀權重,運算量本身沒有減少。
11-868 第 23 講把微調當成記憶體問題來算:LLaMA-8B 全參數半精度微調約要 80GB,換成 LoRA 約 33GB,再把凍結權重存成 4-bit 的 QLoRA 壓到約 9.2GB。這講的主線是三步:只訓練低秩的 A、B 兩個小矩陣(投影片說這招最早出自 CIAT);用 NF4 查表與雙重量化把凍結權重壓到約 0.52 bytes/參數;用 paged optimizer 在 GPU 快爆時把 optimizer state 換到 CPU。
11-868 最後一組講義有五份:DistServe 的 Hao Zhang、NVIDIA Dynamo 的 Vikram Mailthody、LMCache 的 Junchen Jiang、Mooncake/KTransformers 的 Mingxing Zhang,加上 Lei Li 的框架地圖。它們回答同一個問題:服務規模從一台機器擴到一座資料中心之後,算力和 KV cache 要放在哪裡。主線有三步:量尺從 throughput 換成符合 SLO 的 goodput;prefill 與 decode 拆到不同 GPU;KV cache 從 GPU 記憶體擴張到 CPU、SSD 與遠端儲存。
L08 從 BPE 講到講者 Lei Li 參與的 VOLT:詞表大小有成本也有價值,VOLT 用「每加一個 token 能降多少正規化熵」找划算的點,再化成最佳傳輸問題求解;後半講 LLaMA 3 詞表從 32k 擴到 128k、中文字被 byte-level BPE 切成三個 token 的代價。L09 從 greedy、取樣、beam search 一路講到 speculative decoding:小模型先猜 N 個 token,大模型一次前向驗證,因為驗證比生成便宜;最後介紹 EAGLE 改成預測最後一層特徵。
Google 的 Srinath Mandalapu 用兩講、兩百多頁,把一個 attention 從 Python 一路追到 TPU 的 VLIW 指令。L12 講 JAX 生態、TPU Ironwood 的記憶體與運算單元,以及 XLA 怎麼把 attention 編成三個融合 kernel。L13 講 XLA 做不到的部分:用 Pallas 自己控制 HBM 與 VMEM 之間的搬運,寫出 FlashAttention,再加上區塊稀疏變成 Splash Attention。思路跟 GPU 相同,差別在於:TPU 上排程主要交給編譯器,要介入就得用 Pallas 把迴圈與區塊大小攬回自己手上。
11-868 只花兩堂課講模型本身:L06 把 Transformer 拆成 embedding、多頭注意力、FFN、LayerNorm 與殘差,L07 用 T5、LLaMA、GPT-3 三個模型示範現代 LLM 改了哪些地方。對系統工程師來說,重點是記住形狀:GPT-3 175B 是 96 層、d_model 12288、context 2048,訓練 3,000 億 token;LLaMA 65B 是 80 層、d_model 8192、訓練 1.4 兆 token。這些數字決定了後面每一堂加速、平行與服務課要處理的量。
資料平行每張卡都存一份完整的參數、梯度和 optimizer state;用 Adam 混合精度訓練時,每個參數約要 20 bytes,其中 16 bytes 是 optimizer 相關,LLaMA-3 8B 光這些就要 160GB。CMU 11-868 L18 以 ZeRO 論文為主軸,逐格動畫示範三個階段:ZeRO-1 切 optimizer state、ZeRO-2 再切梯度、ZeRO-3 連參數也切。投影片的結論是前兩階段不增加通訊、最多省 8 倍記憶體;第三階段每張卡的用量隨 GPU 數下降,代價是投影片估的約 3 倍通訊。
L12 的主軸是「搬資料」。前段用 SambaNova SN40L 說明資料流架構與 metapipelining:同樣跑 Llama 3.1 8B,投影片說 RDU 每個 token 約 3 次 kernel 呼叫,GPU 約 800 次,差別來自能不能把整個 decoder 融合進一個 kernel。中段把尺度拉到資料中心:TP、PP、EP、DP 各自需要哪種集體通訊,以及計算與通訊重疊為什麼決定擴展效率。後段回到能源與 DRAM:搬一個 byte 比算一次貴得多,記憶體控制器、burst mode、HBM 都是在解同一個問題。這講沒有公開錄影,本文只依投影片。
每個核心都有自己的 cache,同一個位址就可能同時有好幾份副本,各核看到的值會不一樣。這不是加鎖能解決的問題,是硬體複製資料造成的。CS149 L14 先定義什麼叫 coherent,再拆解 snooping 的 MSI 協定:要寫就先廣播 BusRdX 讓別人作廢,MESI 多一個 E 狀態省掉「讀完再寫」的第二筆交易,directory 則把廣播改成點對點。對程式設計師最實際的後果是 false sharing:兩個 thread 寫不同變數,只因為落在同一條 cache line,就讓 cache line 在核心間來回彈,投影片的 demo 慢了三倍。
CS149 是 Kayvon Fatahalian 與 Kunle Olukotun 在 Stanford 教的平行計算課,從多核 CPU、SIMD 一路講到 GPU、AI 加速器、資料中心,最後回到 cache coherence 與 lock-free。Fall 2025 的 18 份投影片、5 個程式作業的 starter code 與 README、4 份書面作業 PDF 都能匿名取得,本系列評為 A3(足以自學)。缺口有四個:當期錄影只在 Canvas;PA1 評分用 Stanford myth 機器;PA4 要自費租 AWS Trainium2,而且課程 AMI 是私有的;PA5 的 H100 排隊系統與排行榜要 SUNet ID。公開錄影是 2023 版,本系列只拿它當聽講補充。
第 8 講要你換一個腦袋:不再想「每個 worker 做什麼」,而是把演算法寫成對序列的操作,例如 map、fold、scan、segmented scan、gather/scatter、sort、groupBy。這些原語都有高效的平行實作,能把不規則的平行變規則、把細粒度同步變粗粒度。代價是要多掃幾遍資料,所以很吃頻寬。
L9 開場就說:懂了 arithmetic intensity 與 roofline,你就幾乎懂了現代 AI 軟體面效能最佳化的一切。接著示範三件事:全連接層、卷積層、attention 最後都變成矩陣乘(GEMM);GEMM 要靠分塊(blocking)讓資料留在快取裡;層與層之間要融合(fusion),別把中間結果寫回 DRAM 再讀回來。softmax 可以分塊計算,這就是融合版 attention(FlashAttention 的核心想法)不必存下 N×N 矩陣的原因。
L13 問的是:寫快程式的專家太少,怎麼辦?投影片給三個答案。一是提高抽象層級:Halide 把「算什麼」(演算法)和「怎麼算」(排程)拆成兩種語言,同一段模糊濾波可以只改一行排程就換成分塊、向量化、多核版本。二是智慧搜尋:因為排程空間定義清楚,可以用搜尋加學出來的成本模型自動產生排程。三是新興的 LLM agent:讓模型寫 CUDA、執行、看 profiler、反思、再改,並用範例資料庫或 prompt 最佳化讓它自我改進。投影片最後把問題留給你:真正的價值在 DSL 設計,還是 LLM agent?
CS149 L16 分三段:先用 cache coherence 的眼光看鎖怎麼實作(test-and-set、test-and-test-and-set、ticket lock、CAS、LL/SC),再用一條排序 linked list 示範從一把大鎖改成 hand-over-hand 細粒度鎖,最後介紹 lock-free:單一生產者單一消費者佇列、用 CAS 寫的 stack、ABA 問題與 hazard pointer。投影片的結論很務實:在只有你的程式佔用機器的情境下,寫得好的鎖版本常常一樣快,而且好寫得多;lock-free 的價值在於執行緒可能被搶佔、page fault 的系統。
CUDA 的 grid、thread block、CUDA thread 是一套程式抽象;GPU 用 SM、warp 與硬體 block 排程器把它實作出來。這一講的核心是分清兩件事:thread block 之間系統可以任意排序,同一個 block 裡的 thread 則保證同時存在,所以 block 能用 shared memory 和 __syncthreads() 合作,也所以一個 SM 能塞幾個 block 由暫存器與 shared memory 的量決定。
L10 從一條式子出發:功耗固定時,效能只能靠「每個運算花多少焦耳」來換,而通用處理器把大部分能量花在取指令、解碼、搬資料,不是在算。投影片的經驗法則是 GPU 比 CPU 好約 10 倍 perf/watt,固定功能 ASIC 可達 100–1000 倍。接著用同一套標準(分塊 tensor、非同步計算與記憶體、運算單元直接互傳)檢視 H100 的 Tensor Core 與 TMA、Google TPU 的脈動陣列,以及可重組資料流架構。
L3 前半用高速公路與洗衣服的比喻分開延遲與頻寬,再算給你看:向量逐元素相乘在 V100 上效率不到 1%,因為記憶體送資料的速度追不上 ALU。後半的主題是「抽象 vs 實作」:ISPC 讓你用 SPMD 的方式思考(一群 program instance 各做一份),編譯器卻用 SIMD 指令實作。把這兩層混在一起,是這門課最常見的困惑來源。
CS149 L6 要你把「通訊」看得很廣:處理器和 cache、和記憶體、和另一台機器之間的資料搬移都算。現代平行處理器的算力遠高於頻寬,所以 arithmetic intensity(每搬一單位資料做多少計算)決定了你能不能把硬體餵飽。提高它的手段有三類:改分配方式減少必要通訊、用 blocking 與 loop fusion 減少 cache 造成的額外通訊、用分散與錯開存取降低 contention。
CS149 Fall 2025 第二講用一個計算 sin(x) 的迴圈,依序加上三個想法:把電晶體拿去做更多核心(multi-core)、讓一道指令同時驅動多個 ALU(SIMD)、在同一個核心上交錯執行多個執行緒來隱藏記憶體延遲(hardware multithreading)。前兩個增加運算能力,第三個讓運算單元在等記憶體時不閒著。結論是三個條件:平行工作要夠多、同一組工作要跑同樣的指令、平行工作要比 ALU 更多才能隱藏延遲。
PA1 程式寫得不多,重點是分析:六個程式分別練 threads 的工作分配、SIMD 遮罩、ISPC gang 與 task、輸入資料如何影響 SIMD 效率、頻寬受限的 saxpy,以及用計時找 K-Means 的熱點。Written 1 則用紙筆題練峰值吞吐量、指令相依、管線、多執行緒藏延遲與 SIMD divergence。官方評分以 Stanford myth 機器為準,校外可以在自己的機器跑,但數字不能直接對照。
CS149 PA2 要你用 C++ 寫一個多核 CPU 上的任務執行庫,而且要寫四次:每次 run() 都開 thread、改成 spinning 的 thread pool、改成會睡覺的 thread pool,最後擴充成非同步、有依賴的 task graph。每一步都得是完全正確的系統,並跟官方參考實作比速度。官方評分機器是 AWS c7g.4xlarge;校外可以在自己的多核機器上跑,但數字不能直接和官方比。
PA3 有三部分:把 SAXPY 改寫成 CUDA 並分開計時、用 exclusive scan 實作 find_repeats、再寫一個又對又快的 CUDA 圓形渲染器(85 分)。渲染器的難點是半透明圓的混色不可交換,每個像素都得照輸入順序更新,而起始程式碼一個圓一個 thread 的做法兩樣都沒守住。Written 2 則是五題計分題(fusion、SIMD 利用率、用 barrier 取代鎖、用資料平行原語處理圖、粒子模擬的鎖)加 14 題練習。校外要自備 NVIDIA GPU,本文不提供解答。
PA4 把你丟到 AWS Trainium2 的一顆 NeuronCore 上。這裡沒有 cache 幫你決定什麼資料留在晶片上:SBUF(28 MiB)與 PSUM(2 MiB)都要你用 dma_copy 明確搬進搬出,partition 維度最多 128。Part 1 用 vector add 和 transpose 教你這些限制與 DMA 成本,Part 2 要你把 convolution 拆成一串 matmul、再和 max pool 融合成一個不落地到 HBM 的 kernel。Written 3 用 line buffer、兩次 box blur、softmax 硬體與 metapipelining 練同一件事:把中間結果留在晶片上。環境需要課程 private AMI 與付費 capacity block,校外實質只到 A2。
CS149 Fall 2025 的最後一份程式作業是開放式的:從 Histogram、1D occupancy decoder、FlashAttention、3D 熱方程 RK4、SwiGLU 五題挑一題以上,在 H100 上把 PyTorch baseline 調快,可以用 CUDA、Triton 或 TileLang,也允許用 LLM。分數不看速度門檻,看你交的工作日誌能不能說清楚每一步量了什麼、推出什麼假設、為什麼停手。H100 job queue 與排行榜要 SUNet ID,校外只能在自己的 NVIDIA GPU 上用 eval.py 跑。
L4 給了一套平行化的思考流程:先分解(decomposition)找出彼此獨立的工作,再分配(assignment)給工作者,再協調(orchestration)通訊與同步,最後對應到硬體。Amdahl 定律提醒你循序部分決定 speedup 上限。貫穿全講的例子是 2D 網格解算器:原本的相依關係很難平行,改用紅黑著色換一種更新順序後,就能用資料平行或共享位址空間兩種模型寫出來。
L11 問的是:硬體為 AI 專用化之後,程式設計師要付出什麼?投影片以 H100 為例:要吃滿 Tensor Core,就得用 16×16 tile、讓 TMA 非同步搬資料、讓 producer 與 consumer warp 管線化,寫起來很複雜,所以有了 ThunderKittens 這類 DSL。另一條路是資料流架構(SambaNova SN40L):用 map/reduce/zip 等平行模式描述計算,編譯器做分塊、metapipelining 與佈局,投影片說它能把 Llama 3.1 8B 的整個 decoder 融成一個 kernel。
Coherence 只管單一位址;memory consistency 管的是不同位址之間的讀寫,在別的 thread 眼中以什麼順序生效。CS149 L15 用兩個 thread、兩個變數的例子說明:sequential consistency 下 r1 = r2 = 0 不可能,但每顆現代處理器都有的 write buffer 會讓讀跑到寫前面,於是它變成可能。TSO、PSO、weak ordering 依序放寬更多順序換取效能,fence 與同步原語再把需要的順序補回來。對應用程式設計師的結論很短:寫沒有 data race 的程式,用同步函式庫,C11、C++11、Java 5 就保證你看到 sequential consistency。
粗鎖好寫但慢,細鎖快但容易寫錯。Transactional memory 讓程式設計師只宣告 atomic { },由系統負責原子性與隔離。CS149 L17 講動機(failure atomicity、composability)與設計空間:資料版本管理分 eager(undo log)與 lazy(write buffer),衝突偵測分 pessimistic 與 optimistic。L18 拆 STM 的執行期資料結構與 McRT 演算法,再講 HTM 怎麼用 cache 的 R/W 位元加上 coherence 協定偵測衝突,最後是 Intel Haswell 的 RTM。Written 4 則把 MSI、LL/SC、鎖與記憶體順序、雙向 linked list 的細粒度鎖串成四題。
CS149 Fall 2025 第一講先定義 speedup,再用三個課堂示範說明通訊與負載不均會吃掉加速比。接著解釋單核效能為什麼停滯:superscalar 能挖的指令層級平行大約在每時脈發四道指令就用完,時脈又被功耗牆擋住,所以效能只能靠多核與專用硬體。最後一段把焦點轉到效率:取一次 DRAM 的延遲約是 L1 cache 的 60 倍,搬 64 bits 的能耗是一次整數運算的上千倍,高效率幾乎都歸結到高效率地存取資料。
負載平衡的難處在於它和排程成本互相拉扯:任務切得越細越好平衡,但每次領任務都要付同步成本。CS149 L5 先把選項排成一條從 static 到 dynamic 的連續光譜,再拆解 Cilk 的執行期:每個 worker 一條 deque,spawn 時先跑 child、把 continuation 留給別人偷,閒置的 thread 從別人 deque 的頂端偷走最大塊的工作。
Policy gradient 只能從實際拿到的獎勵判斷好壞,資料用得很浪費。Actor-critic 多訓練一個價值函數(critic)來估計「這個狀態有多好」,再用它算 advantage 去加權 policy(actor)的梯度。估計價值有三條路:用整條 rollout 的獎勵總和直接監督(Monte Carlo)、用「這一步獎勵加上自己對下一個狀態的估計」監督(bootstrap),或折衷的 n 步回報。L4 最後把它推到 off-policy:先在同一批資料上多走幾步(這是 PPO 的起點),再用 replay buffer 重用所有舊資料(這是 SAC 的起點)。
CS224R 是 Chelsea Finn 在 Stanford 教的深度強化學習課,從模仿學習一路講到 LLM 的 RL 和機器人基礎模型。Spring 2026 的 17 份投影片、三份作業的題目與起始碼、default project 規格與起始碼都能匿名下載,本系列評為 A3(足以自學)。缺口是 2026 錄影只在 Canvas、期中考卷與解答不公開、HW2 和 HW3 規定在 Modal 上跑。公開錄影是 Spring 2025 版,本系列把它當補充,逐講標出差異。
CS224R Spring 2026 的 default project 要你在 Qwen2.5-0.5B Base 上,針對 Countdown 算術推理任務依序實作三個階段:SFT 暖身、IPO 偏好最佳化、用規則式 verifier 當獎勵的 RLOO,三者用同一套 vLLM 評估比較,再做一個自選的研究延伸。實作部分禁止用 SFTTrainer 這類高階 trainer,也禁止任何 AI 工具協助,只有延伸部分例外。延伸占報告成績的一半,看的是方法和紀錄,不是分數。起始碼和資料集都公開,校外讀者缺的是 Modal credits 和 autograder。
CS224R 最後一講分三段:先把整學期的方法收成一個工具箱,再列七個還沒解決的問題(沒有可驗證獎勵的領域、怎麼用 prior data、world model、怎麼 scale、安全、幻覺與校準、通才系統的評估),最後用一半的篇幅講怎麼做研究:同時要有重要的問題和可行的計畫、先把風險挪到最前面、及早考慮轉向、研究成果要分享出去才算數。配著 2026 年 244 份公開的期末專題報告一起讀,最容易看出這些原則落地的樣子。
長 horizon 任務難,是因為要走過的狀態太多、犯錯和卡住的機會也多。CS224R 第 15 講的答案是拆成兩層:高層 policy 出子目標,低層 policy 以較高頻率執行。真正要做的設計決定有三個:子目標用什麼表示、兩層各自拿什麼監督、什麼時候換下一個子目標。投影片也坦白,階層和「單一 policy 加 chain of thought」誰比較好,還沒有定論。
CS224R Spring 2026 的 HW1 用一個自製的 Flappy Bird 環境考模仿學習:policy 一次預測 20 步目標高度、只執行前 10 步。你要依序寫出 MSE 回歸式 BC、flow matching policy 和 DAgger,並在 easy 與 hard 兩種模式下比較。題目 PDF、LaTeX 模板和起始碼都能匿名下載,CPU 也跑得動;解答、autograder 和 Gradescope 不公開。這篇整理每一題要實作什麼、要回答什麼,不寫解答。
CS224R Spring 2026 的 HW2 分三段:先在 5×4 的格子世界用表格型 Q-learning 看 reward 設計怎麼改變學到的路徑;再用 GAE 加 PPO clip 解一個只在完成時給 1 分的鐵鎚任務;最後用 BC 預訓練、critic ensemble 和更高的 UTD 做 off-policy actor-critic,並比較兩條學習曲線。題目、起始碼和算力指南都公開,但作業只支援 Modal,課程 credits 只發給修課學生。
CS224R Spring 2026 的 HW3 要你從零補完兩個 offline RL 演算法:AWAC 和 IQL,並在 D4RL 的 AntMaze 上比較。Problem 1 在 antmaze-umaze 和 antmaze-medium-diverse 跑 AWAC;Problem 2 先比較 IQL 的 expectile ζ = 0.2 和 0.9,再用較好的值跑 medium-diverse,最後在一份最高 return 只有 −46 的 PointMass 資料上,看 IQL 能不能拼出比資料更好的路徑,並跟只取前 10% 軌跡的 filtered BC 比較。題目 PDF、LaTeX 模板和起始碼都公開,但作業規定在 Modal 上跑,課程 credits 只發給修課學生。本文只整理題目和環境,不寫解答。
CS224R Spring 2026 第二講處理模仿學習的兩個失敗模式。第一個是示範有多種合理做法時,回歸只學到平均值;解法是把 policy 換成生成模型(高斯混合、離散化加自迴歸、diffusion/flow matching),再加上 action chunking。第二個是 compounding errors:policy 一犯錯就走到示範沒涵蓋的狀態;解法是 DAgger 和 human-gated DAgger 收集修正資料。前兩部分就是 HW1 的內容。
CS224R Spring 2026 第一講做三件事:交代課務、說明為什麼要學 deep RL、把「行為」寫成可以學的東西。核心是一組定義:state、action、trajectory、reward、policy,以及「最大化期望總獎勵」這個目標。最後用一個例子收尾:拿 ℓ2 回歸去模仿一群要切換車道、一群要直行的駕駛,policy 會學到兩者的平均值,一個沒人示範過的半切換動作。這個問題是 L2 的起點。
Meta-RL 在很多任務上訓練,目標是遇到新任務時只靠少量經驗就能解決。CS224R 第 13 講把它寫成「先探索收一點資料,再用這些資料適應」,最直接的做法是 black-box meta-RL(RL²):一個有記憶的網路把過去的 (s, a, r) 當輸入,隱藏狀態跨 episode 保留。它通用、表達力強,但難最佳化,尤其探索很難時:探索和執行互相依賴,端到端訓練容易卡住。投影片接著比較 PEARL 的 posterior sampling、MetaCURE 的預測式探索,以及 DREAM 用任務表示把探索和執行拆開訓練。
Model-based RL 先學一個預測 s_{t+1} 的 dynamics model,再拿它做兩件事:生成額外的訓練資料(Dyna、MBPO),或在執行時往前想幾步再行動(planning)。CS224R 第 11 講的主線是怎麼不被模型誤差拖垮:合成資料只從真實狀態出發跑短 rollout、用多個模型的 ensemble 平均掉誤差、長 horizon 的 planning 在尾端接一個 value function。模型值不值得學,取決於它比 policy 好學還是難學。
多任務 RL 把「任務是哪一個」當成狀態的一部分:s = (s̄, z_i),於是它還是一個普通的 MDP,標準 RL 演算法照樣能用。CS224R 第 12 講講兩種共享:權重共享(一個網路以 z_i 為條件做所有任務)和資料共享(hindsight relabeling:把為任務 A 收的資料改標成任務 B 的資料)。Goal-conditioned RL 是特例,任務就是要到達的目標狀態;用「最後到達的狀態」當目標重新標記,稀疏獎勵的探索問題就緩解很多。資料共享有三個前提:dynamics 跨任務一致、reward 能算、演算法是 off-policy。
PPO 和 SAC 都在回答同一個問題:一批花錢收來的資料,能不能多用幾次。PPO 對同一批資料多走幾步梯度,用 clip 把新舊 policy 的比值鎖在 1±ε 之內;SAC 把所有歷史資料放進 replay buffer,改學 Q(s, a),讓舊資料也能評估新 policy。前者穩、好調,後者省資料、難調。
CS224R Spring 2026 第七講處理一個問題:手上只有一批別人收的資料、不能再跟環境互動時,要怎麼學出比資料更好的 policy。直接拿 SAC 這類 off-policy 演算法來訓練會壞掉,因為 Q-function 在資料沒出現過的動作上亂估,policy 又專挑被高估的動作。投影片給兩類解法:只在資料裡的動作上訓練 policy(filtered BC、AWR、AWAC),以及用不對稱的 expectile loss 估計比資料更好的 policy 的價值、完全不查詢資料外的動作(IQL)。兩者都能做到模仿學習做不到的事:把不同軌跡的好片段拼起來。
Policy gradient 是 CS224R 的第一個線上 RL 演算法。它的梯度長得跟模仿學習的梯度幾乎一樣,只是每條軌跡多乘上一個獎勵權重:好結果的動作變得更可能,壞結果的動作變得更不可能。原始版本雜訊很大,L3 用兩招降低變異:只算「未來」的獎勵(causality)和減掉平均獎勵(baseline)。它也是 on-policy 的,每走一步梯度就要重新收資料;用 importance sampling 加上 KL 限制,才能在同一批資料上多走幾步。
Q-learning 把 actor-critic 的 actor 拿掉:直接學最優 Q 函數,要行動時取 argmax。代價是它不保證收斂,連線性 Q 都可能發散。CS224R 第 6 講用三個工程技巧把它拉回來:target network 讓目標值暫時不動、Double Q 拆開「選動作」和「估價值」來壓低高估、n 步回報用一點偏差換速度。
CS224R Spring 2026 第八講先花幾頁複習 offline RL,再問一個前面七講都跳過的問題:獎勵從哪裡來?遊戲有分數,真實世界的機器人、對話和自駕通常沒有。投影片給兩條路。第一條是從成功範例訓練一個目標分類器當獎勵,但 RL 會去鑽分類器的漏洞,解法是把 policy 走過的狀態不斷加進負例,跟 GAN 同一個結構。第二條是請人比較兩條軌跡哪條好,用 Bradley-Terry 式的 log σ(r(τw) − r(τl)) 學獎勵,這也是 LLM 的 RLHF 在用的方法。整講的第一個重點只有一句:獎勵不能視為理所當然。
只用模仿學習訓練的 VLA,成功率常卡在 80% 左右,要讓機器人自己上工卻常需要 99% 以上。CS224R 第 17 講把「怎麼在真機上用 RL 改進 VLA」拆成三條路:把 RL 改寫成監督學習(iterated offline RL)、在 VLA 的表示或擴散雜訊上另外學一個小 policy、學一個小 policy 去修改 VLA 的動作。投影片自己說這是還沒解決的研究問題,內容是近期主題加講者觀點。
CS224R Spring 2026 第十講由 OpenAI 的 Noam Brown 客座,論點只有一條:reasoning model 替 scaling 開了新的維度,把算力從訓練推到推論。他從自己做撲克 AI 的經驗講起,再用西洋雙陸棋、西洋棋和圍棋說明「推論時多想一下」一直都有用;接著談 LLM 怎麼做到這件事:chain of thought、多數決、o1/o3、GRPO 和 DeepSeek-R1-Zero。後半段主張整個領域要為大規模 test-time compute 重新思考:multi-agent、以分數對算力作圖的評估方式、安全評估的預算假設。投影片以圖為主,本文只寫投影片上看得到的論點。
CS224R Spring 2026 第九講由 Archit Sharma 客座,投影片註明改寫自 CS224N。主線是一條推導鏈:instruction tuning 解決不了「沒有標準答案」和「錯誤輕重不同」,所以改成最大化人類偏好;人類評分太貴又不準,所以改用成對比較訓練 Bradley-Terry reward model;RLHF 拿它當獎勵、加 KL 懲罰做 policy gradient;DPO 則利用 KL 約束問題的封閉解,把 reward 寫成 policy 的對數比值,整件事變成一個二元分類損失。最後一段談前沿:reward hacking、可驗證獎勵,以及用 AI 回饋取代人類回饋。
模擬器便宜、快、安全,還附贈真實世界拿不到的標籤,但它永遠和真實世界有落差。CMU 的 Guanya Shi 在 CS224R 第 16 講把縮小落差的方法分成三類:domain randomization 讓一個 policy 在很多種物理參數下都能用;teacher-student 先用特權資訊訓練老師、再讓只看得到真實感測器的學生去模仿;real2sim2real 用真實資料把模擬器修得更像。進階題目是用人類動作資料定義任務,以及挑選適合 sim2real 的 RL 演算法。
CS231N 第 15 講用一個問題貫穿全場:3D 形狀要用什麼資料結構存,神經網路才吃得進、吐得出?投影片依序走過 depth map/surface normal、voxel、point cloud、triangle mesh、implicit surface 五種表示,每種各配一個代表架構(全卷積深度預測、3D 卷積、PointNet、Pixel2Mesh 與 Mesh R-CNN、DeepSDF),再到 NeRF 與 3D Gaussian Splatting 的速度取捨,最後點名 VGGT、TRELLIS、Marble 等 2025–2026 的新模型。2025 錄影用的是另一套投影片,順序與重點不同。
CS231N 作業一占總成績 12%,2026 年 4 月 16 日截止,五個 Colab notebook 全部在 CIFAR-10 上用 numpy 手寫:Q1 kNN 要寫出兩層迴圈、一層迴圈、零迴圈三種距離計算;Q2 Softmax 從 naive 到向量化再到 SGD;Q3 把 affine、ReLU、softmax 組成兩層網路;Q4 改用 HOG 與色彩直方圖特徵;Q5 推廣成任意層數,並實作 Momentum、RMSProp、Adam。起始碼 65 KB,公開可下載;拿不到的是 Gradescope 評分。本文只講結構與目標,不給解答。
CS231N Spring 2026 的 A2 佔總成績 18%,五個 notebook 從手寫 BatchNorm/LayerNorm、Dropout、卷積與池化的 forward/backward,一路走到 PyTorch 的三層抽象,最後用 PyTorch 在 COCO 上做 RNN 影像描述。轉折點在 Q4:前三題的梯度要自己推,Q5 起交給 autograd,再用數值梯度檢查驗證。官方投影片提醒這是三份作業裡最長的一份。
CS231N Spring 2026 的 A3 占總成績 15%,四個 Colab notebook 把 L8、L12–L14、L16 各自落成一份實作:Q1 手寫 multi-head attention、Transformer decoder 做 COCO captioning,再組一個 ViT 在 CIFAR-10 上訓練;Q2 實作 SimCLR 的資料增強與對比損失,比較有無自監督預訓練的線性分類;Q3 寫 DDPM 的加噪、UNet、去噪損失、取樣與 classifier-free guidance,生成文字條件的 32×32 emoji;Q4 用預訓練 CLIP 做相似度、零樣本分類與檢索,再用 DINO 特徵只靠一幀標註做影片分割。本文只講題目結構、檔案與目標,不給解答。
CS231N Spring 2026 第 8 講從 RNN 翻譯模型的瓶頸出發,把 attention 抽象成一個作用在「向量集合」上的運算,再推到 self-attention、masked 與 multi-head,最後證明整層只是四次矩陣乘法。Transformer block 由 self-attention、LayerNorm、殘差與 MLP 組成;ViT 把 224×224 的圖切成 16×16 的 patch 當 token。講次結尾列出 2017 年後常見的四個改動:Pre-Norm、QK-Norm、SwiGLU 與 MoE。
兩層網路會把 32×32×3 的圖片拉平成 3072 維向量,空間結構就此消失。CS231N L5 的答案是卷積層與池化層:卷積用一組小濾波器在圖上滑動,同一組權重用在每個位置;池化負責降採樣,沒有可學參數。兩者都有平移等變性。記住一條公式就能算每一層的輸出尺寸:(W − K + 2P) / S + 1。
CS231N 是 Stanford 的電腦視覺深度學習課,Spring 2026 版的 16 講投影片、三份作業的題目頁與起始碼、課程筆記與專題規範都公開,本系列評為 A3(足以自學)。缺口有三個:2026 錄影只放在 Canvas、L17 與 L18 沒有投影片、期中考不公開。可以拿 2026 的投影片和作業,配 2025 年的 YouTube 錄影,照官方課表排 10 週。
CS231N Spring 2026 第 9 講把「整張圖一個標籤」推到「每個像素、每個物件」:語意分割用全卷積網路先降採樣再升採樣(U-Net 再接回高解析特徵);偵測從 R-CNN 的約 2000 次 CNN forward,一路優化到 Fast R-CNN、Faster R-CNN 的 RPN、單階段的 YOLO,再到不用 anchor 的 DETR;Mask R-CNN 在每個 RoI 上多預測一張 28×28 遮罩。最後一段講 saliency、CAM 與 Grad-CAM。課表列的對抗樣本、DeepDream 與風格轉換,2026 和 2025 的投影片都沒有。
CS231N 第 11 講以 Llama3-405B 為貫穿範例,先講 GPU 硬體與叢集(H100、8 卡伺服器、24,576 張 GPU 的叢集),再把 Transformer activation 的四個維度對應到四種平行化:切 batch 是資料平行(再演進成 FSDP、HSDP),切序列是 context parallelism,切層是 pipeline parallelism,切通道是 tensor parallelism。中間插入 activation checkpointing(用重算換記憶體)和一份實用的擴展配方,並用 Model FLOPs Utilization(MFU)當調參目標:超過 30% 算好,超過 40% 算優秀。
CS231N Spring 2026 的 diffusion 講次沒有從 DDPM 的數學開始,而是先說「這個領域的術語和符號一團亂」,然後只教一個乾淨的現代版本:rectified flow。訓練時在資料和雜訊之間取一個點,讓網路預測從資料指向雜訊的速度;生成時從雜訊出發,往反方向走約 50 步。接著一路疊上實務零件:classifier-free guidance、偏重中間雜訊的排程、在 VAE latent 上做 diffusion、用 Transformer(DiT)當去噪器、蒸餾減少步數。最後才把 VP、VE、ε/v 預測收進一個「廣義 diffusion」框架,並交代 latent variable、score function、SDE 三種數學觀點。
CS231N Spring 2026 的生成模型第一講,先把「判別模型學 p(y|x)、生成模型學 p(x)」講清楚:所有可能的圖片要搶同一份機率質量,所以生成模型能拒絕不合理的輸入。接著用一張分類圖把生成模型分成「算得出 p(x)」和「只能取樣」兩群,再依序講兩個算得出(或近似算得出)的:自迴歸模型用鏈鎖律把 p(x) 拆成逐步預測,太慢是它在原始像素上的死穴;VAE 算不出 p(x),改成最大化它的下界 ELBO,重建項和先驗項會互相拉扯。課表把 GAN 列在這一講,但 2026 與 2025 的投影片都把 GAN 放到下一講開頭,本文一併整理,讓三種範式在同一篇對照。
L2 從一個問題出發:電腦看到的是一堆 0 到 255 的數字,要怎麼認出貓?寫規則行不通,所以改用 data-driven 方法:收集資料、訓練、在新圖上評估。第一個分類器是 kNN,它教會你 train/val/test 怎麼切,但像素距離沒有語意。第二個是線性分類器 f(x,W)=Wx+b,可以從代數、視覺(模板)、幾何(超平面)三個角度看,再用 softmax 把分數變成機率,用 −log 機率當 loss。
CS231N 2026 的第一講分成兩份投影片。第一份用一條時間軸講視覺與深度學習的歷史:從 Hubel & Wiesel 的貓實驗、Marr 的視覺表示階段,到 Neocognitron、backprop、LeNet,再到 ImageNet 與 AlexNet 把兩條線接起來。第二份講課程地圖、評分與規則,並把作業全面搬到 Colab。讀完這一講,你會知道後面 17 講各自在補哪一塊。
L4 前半把線性分類器 f = Wx 換成兩層網路 f = W₂ max(0, W₁x),說明拿掉 max 這個激活函式就會退回線性分類器。後半回答網路變深之後梯度怎麼算:把函式畫成計算圖,每個節點只要知道自己的本地梯度,再乘上從後面傳回來的上游梯度。add 分配梯度、mul 交換、max 路由、copy 相加,四個模式就能追蹤任何網路。最後推到矩陣:dL/dx 永遠和 x 同形狀,所以不要真的建出 Jacobian。
RNN 用同一組權重,在每個時間步更新一個隱藏狀態,所以能處理任意長度的序列。CS231N L7 從手工造一個偵測連續 1 的 RNN 講起,接著是字元級語言模型、把 CNN 特徵接進 RNN 做影像描述,再用梯度流解釋為什麼 vanilla RNN 難訓練:梯度爆炸靠 gradient clipping,梯度消失靠改架構,也就是 LSTM。最後把 Mamba 這類 state space model 稱為「現代 RNN」。
L2 給了分數函式和 loss,L3 回答「怎麼找到好的 W」。前半講正則化:在 data loss 旁邊加 λR(W),讓模型不要把訓練資料背得太好。後半是一條最佳化器的演進線:SGD 在窄長山谷裡會來回震盪,Momentum 累積速度,RMSProp 依每個維度調步伐,Adam 把兩者合起來再做偏差修正,AdamW 把 weight decay 移到動量計算之外。投影片最後的實務建議是:多數情況先用 Adam(W),SGD+Momentum 可能更好,但要花更多力氣調學習率與排程。
CS231N 第 12 講的問題是:大規模訓練需要大量標註,能不能不靠人工標註學到好的表示?答案分三段。第一段是從影像變換自動產生標籤的 pretext task:預測旋轉、拼圖、補洞、上色,以及把遮罩比例拉到 75% 的 MAE。第二段是更通用的對比學習:InfoNCE 損失、需要大 batch 的 SimCLR、用佇列解耦 batch 與負樣本數的 MoCo,以及序列層級的 CPC。最後是不需要負樣本的 DINO:學生網路去預測動量老師的輸出,靠 centering 與 sharpening 避免崩塌。評估方式的核心是 linear probing:凍結編碼器,只訓練一層線性分類器。
CS231N 第 6 講的 2026 投影片標題是「Training CNNs and CNN Architectures」,分成「怎麼搭」和「怎麼訓練」兩半。架構只細講兩個:VGG 證明三層 3×3 卷積比一層 7×7 更深、參數更少;ResNet 讓層去學殘差 F(x) = H(x) − x,解決深網路連訓練誤差都更差的最佳化問題。訓練那半最實用的是遷移學習:資料不到約一百萬張,就先找大資料集上的預訓練模型。
CS231N 第 10 講把影片看成「2D+時間」的 T×3×H×W 張量,再沿著一條效率主線往下走:先在短片段上訓練、測試時平均多個片段;架構從逐幀 2D CNN、late fusion、3D CNN,到用光流分出動作的 two-stream 與把 2D 權重「充氣」成 3D 的 I3D;2021 年後換成 Transformer,但 token 數會爆炸,於是有 divided space-time attention、Video Swin、MViT 與 tubelet。最後一段擴展到時序定位、影音多模態、VideoLLM 與長影片理解,並用 HourVideo 指出這塊還差得遠。
CS231N Spring 2026 的視覺與語言講次,先把課程前半的「一個任務一個模型」換成「基礎模型」:先用大量多樣的資料預訓練一個模型,再用微調、zero-shot 或 few-shot 接到許多任務。主角有三條線。第一條是 CLIP:用 4 億組網路圖文配對做雙向對比學習,再把類別名稱寫成句子,就能不經微調直接分類;它也有弱點,分不出「草地上的杯子」和「杯子裡的草」。第二條是 LLaVA、Flamingo 到 Qwen3-VL、Molmo 的視覺語言模型:把圖片特徵接進 LLM,讓模型看圖輸出文字。第三條是 chaining:讓 LLM 寫描述或寫程式,把現成的視覺模型串起來。
CS231N Spring 2026 的最後兩講沒有公開投影片:L17 在課表上只寫「World Modeling」與客座講者 Gordon Wetzstein,L18 只寫「Human-Centered AI」。校外讀者能看的是 2025 年的替代品:L17 當年是另一個主題 Robot Learning(Yunzhu Li,有投影片與錄影),L18 是李飛飛的錄影,沒有投影片。本文把三者分開標示年份,不把 2025 的內容寫成 2026。後半講期末專題:占 35%,分 Applications 與 Models 兩條 track,專案必須處理像素,交付物是一段提案、三次 milestone check-in、6–8 頁報告與海報。
CS234 Winter 2026 的作業一共 68 分、四題:庫存 MDP 看視野與折扣怎麼改變最佳策略(8)、自駕車的 proxy reward 為什麼讓 AI 車乾脆不上匝道(5)、用 Bellman residual 界住貪婪策略的表現(30),以及在 RiverSwim 上親手寫 value iteration 與 policy iteration(25)。三題紙筆在練同一件事:你寫下的 reward、γ 與價值函數,不一定是你以為的那個目標。
CS234 Winter 2026 的作業二共 102 分、四題:DQN 紙筆題(8)、在 CartPole、Pendulum、HalfCheetah 三個 PyBullet 環境上實作 REINFORCE、神經網路 baseline 與 clipped PPO(54 分程式+21 分報告),證明策略誘導的狀態分布與 performance difference lemma(14),以及用 Belmont Report 檢視一個會邊學邊影響學生的 RL 實驗(5)。程式題的重點是把 L5–L7 的式子一行一行變成可以跑出 21 條學習曲線的程式。
CS234 Winter 2026 作業三共五題、94 分。前三題都在 MuJoCo Hopper 上:先用手寫 reward 跑 PPO(13),再從 1 萬筆偏好對學 reward model 後跑 PPO(19+8),最後用 SFT+DPO 直接從偏好學策略、完全不碰環境(6+19)。第四題換成純理論:用 Hoeffding 與 union bound 算出找 ε-最佳臂要幾次試驗(25),這題要等讀完下一篇 bandit 再做。第五題是新聞推薦的 stated vs revealed preference(4)。
CS234 L9 與 L10 前半把「探索」從 ε-greedy 這種經驗法則,變成可以證明的東西。先定義 regret:跟一直選最好的手臂相比,你少拿了多少。greedy 會鎖死在次佳手臂,固定 ε 的 ε-greedy 永遠有 ε 比例在亂選,兩者的 regret 都隨時間線性成長。Lai-Robbins 下界說最好也要對數成長,而 UCB 靠「對不確定的手臂樂觀一點」做到了:Bandit Algorithms 定理 7.1 給出每隻次佳手臂只會被拉大約 16 log n / Δ² 次。
CS234 是 Emma Brunskill 在 Stanford 教的強化學習入門課,從有模型的 MDP 規劃一路講到策略梯度、RLHF/DPO、bandit 探索和 MCTS。Winter 2026 的 14 講投影片、三份作業的題目與起始碼、專題規格都能匿名下載,本系列評為 A3(足以自學)。缺口是官網沒有 2026 錄影、L15 與 L16 沒有投影片、期中考與 tutorials 不公開。公開錄影是 Spring 2024 版,本系列只拿它當補充;2024 有兩講 Offline RL,2026 投影片裡沒有對應內容。
Q-learning 在表格上會收斂,接上函數近似就可能發散。CS234 把原因歸成 deadly triad:bootstrapping、function approximation、off-policy learning 三者同時出現。DQN 用兩招撐住:experience replay 打散樣本之間的相關性,fixed Q-targets 讓目標值在 C 步內不動。投影片引用的 Atari 消融表裡,Breakout 從線性模型的 3 分、沒有兩招的深度網路 3 分,到兩招都用的 317 分;只加 replay 就到 241。
前兩篇的 UCB 與 Thompson sampling 只處理單步決策。CS234 第 12 講把同一組想法搬進有狀態的 MDP:先換一把尺,用 PAC 限制「不夠好的步數」而不是總 regret;再看樂觀派的 MBIE-EB(計數+探索獎勵)與抽樣派的 PSRL(每個 episode 抽一個 MDP 來解)。狀態多到數不完時,計數失效,就改成在 Q-learning 目標上加 bonus,這是 Montezuma's Revenge 上贏過 ε-greedy DQN 的關鍵。最後一段問:探索策略能不能用學的?答案之一是 Decision-Pretrained Transformer。
CS234 Winter 2026 的最後一份客座投影片,由 Google DeepMind 的 Shane Gu 主講,36 頁、沒有公開錄影。主線有三段:先用 Solomonoff induction 說「最好的預測就是找出最短的生成程式」,再把預測分成三個層次;接著把正向模型 F、逆向模型 Π 與 Q 寫在同一組符號裡,說明 shooting 與 direct collocation 兩種規劃方式怎麼各用一種模型,並把 TDM 與 Generalized Decision Transformer 解讀成「換了時間尺度的世界模型」;最後談影片模型能不能成為物理世界的基礎模型。
有專家示範、沒有 reward 時,CS234 L7 後半給三條路:直接用監督式學習抄動作(behavioral cloning),發現誤差會隨時間累積後改成邊跑邊問專家(DAgger),或者乾脆反推專家在最佳化什麼 reward(inverse RL)。反推 reward 會碰到「無限多組 reward 都解釋得了示範」的問題,feature matching 與最大熵原則是兩種收斂答案的方式。這一段是下一篇 RLHF 的前身:從示範換成偏好,問題結構幾乎一樣。
CS234 Winter 2026 第一講先回答 RL 是什麼:在不確定之下,從經驗學會做好決策。它通常同時牽涉四件事:最佳化、延遲後果、探索、泛化。接著用火星探測車的七格世界,從 Markov process 一路加到 Markov reward process,定義 return、value function 和折扣因子,最後推出 MRP 的 Bellman 方程:可以直接解矩陣反轉,也可以用動態規劃迭代。加上動作之後就是 MDP,這是下一講的起點。
到目前為止,CS234 都在替整個狀態空間算一個策略。第 13、14 講換一個問題:如果我只在乎「現在這一步」該怎麼走,能不能多花一點本地運算,做出更好的決定?從 simple Monte Carlo search、expectimax tree 到 MCTS,再把每個節點當成一個 bandit,就得到 UCT。AlphaZero 把 MCTS 跟一個同時預測策略與價值的網路綁在一起,用 self-play 互相推進。投影片借用 Silver et al. 2017 的圖回答三個問題:架構有多重要、MCTS 加了多少、需不需要人類資料。
CS234 Winter 2026 第二講假設世界模型已知,回答怎麼算出最好的 policy。先把 MDP 加上 policy 變回 MRP,用 Bellman backup 迭代評估 policy;再用 policy iteration 交替評估與改進,並證明每一輪都不會變差,最多 |A|^|S| 輪就停。另一條路是 value iteration:直接重複套用 Bellman 最佳化運算子,因為它在 γ < 1 時是 contraction,所以一定收斂。最後補上 finite horizon:這時最好的 policy 通常會隨剩餘步數改變。
會評估之後,下一步是一邊收資料一邊把策略變好。CS234 第 4 講的路線是:ε-greedy 讓策略改進仍然單調;GLIE 規定探索要多到什麼程度、何時收手;Q-learning 在 GLIE 加上 Robbins–Monro 步長下會收斂到 Q*;最後把表格換成參數化的 Q̂(s,a;w),用 MC、SARSA 或 Q-learning 的目標做 SGD。代價是 deadly triad:函數近似、bootstrapping、off-policy 三者同時出現時,可能震盪或發散。
不知道轉移機率與 reward,要怎麼估一個策略值多少?CS234 第 3 講給三個答案:Monte Carlo 直接平均整條軌跡的回報(無偏、變異大、要等 episode 結束),TD(0) 用「一步 reward+下一狀態的估計值」當目標(有偏、變異小、每一步都能更新),certainty equivalence 先估模型再做動態規劃(最省資料、最貴的計算)。第 4 講開頭的 AB 例子把差別講到最清楚:同一批資料,MC 說 V(A)=0,TD 說 V(A)=0.75。
策略梯度不學價值再導出策略,而是直接對策略參數 θ 做梯度上升。關鍵一步是把 ∇P(τ;θ) 改寫成 P(τ;θ)∇log P(τ;θ),動態模型在取 log 後消失,只剩策略自己的 score function。原始估計量無偏但雜訊很大,CS234 用三招降噪:只看動作之後的回報(REINFORCE)、減掉只依賴狀態的 baseline(證明它不引入偏差)、用 critic 估計的價值取代 Monte Carlo 回報(actor-critic)。
Vanilla 策略梯度有兩個毛病:每批資料只走一步就丟,而且參數空間的距離不等於策略空間的距離,步長一大表現就崩。CS234 沿用 Joshua Achiam 的講法,從 performance difference lemma 出發,把新策略的表現改寫成舊策略資料上的 surrogate objective,再用 KL 散度界住近似誤差。最大化「surrogate 減 KL 懲罰」保證不退步,但理論常數太大,PPO 改用可調的 KL 懲罰或 clipping 近似它;advantage 則用 GAE 在偏差與變異之間折衷。
CS234 L8 把上一篇的 inverse RL 換了輸入:不再是專家示範,而是人類說「A 比 B 好」。Bradley-Terry 模型把這種成對比較變成一個可以用交叉熵擬合的 reward;RLHF 拿這個 reward model 加上 KL 懲罰去跑 PPO;DPO 則證明 KL 限制下的最佳策略有封閉解,把 reward 改寫成策略的對數比值,代回 Bradley-Terry 後 partition function 相消,於是可以直接在偏好資料上訓練策略、跳過 reward model。2026 投影片沒有 offline RL 的內容,DPO 也改由課堂自己講,不再是 2024 的客座。
CS234 L11 把探索的邏輯從「樂觀」換成「抽樣」。Thompson sampling 替每隻手臂維護一個後驗分布,每一步從後驗各抽一個值,選抽到最大的那隻;Bernoulli reward 配 Beta 先驗時,更新只是把成功或失敗次數加一。它剛好實作了 probability matching:選每隻手臂的機率,等於它是最佳手臂的後驗機率。在 Bayesian regret 下它跟 UCB 同階,在批次與延遲回饋的場景裡還比確定性的 UCB 更合適;代價是先驗錯得離譜時會表現很差。
整門 CS234 都假設 reward 是給定的。Winter 2026 的倫理與社會客座(Wanheng Hu,教材原本由 Dan Webber 發展)分兩次問:你真正想要的是什麼?第一次把「對齊」拆成三個目標:使用者的意圖、顯示偏好、客觀最佳利益,並用 RLHF 造成的 sycophancy 與個人 AI agent 當案例。第二次加入第四個目標:對使用者以外的人來說什麼是對的,再比較 top-down(寫下原則)、bottom-up(從範例學)與 participatory AI 三條路。結論沒有銀彈,但對齊有好壞之分。
Harvard CS 2881R 是 Boaz Barak 在 2025 年秋季首開的研究所 AI 安全研討課。Fall 2025 已完整結束,12 講的閱讀清單全公開、YouTube 播放清單有 11 講的講課錄影、HW0 是一個能自己跑的 GitHub repo,期中與期末的規格和評分表也放出來了,本系列據此標 A3(以研討課標準)。缺口同樣清楚:沒有傳統習題、投影片只有約一半講次公開、L5 沒有講課錄影、L8 只有開場。Fall 2026 正在上,只當預覽。
Harvard CS 2881R Fall 2025 的期末專題分兩種:延伸既有論文,或做有 theory of change 的長期研究;交 5–10 頁 NeurIPS 風格論文加海報,評分是 writeup 65、code 15、poster 20。專題頁公開 19 份論文,約一半集中在 persona 向量與 chain of thought 監控。head TA 與 Harvard Q-report 都指向同一個問題:期末專題太晚開始、評分表太晚公布,回饋是全課評分最低的一項。
CS 2881R 的 HW0 是選課門檻:用 LoRA 把 Llama-3.2-1B-Instruct 微調在壞的醫療、財務或極限運動建議上,再看它回答無關問題時是否也變得有害。repo 給了加密的訓練資料、generate.py、以 gpt-4o-mini 當裁判的 judge.py,README 的目標是對齊分數低於 75、連貫度高於 50;train.py 是空的,要自己寫。自學時要知道:評分腳本只印平均分數,沒有自動判定過關,拿來比較的基礎模型基準是 20 題醫療題,而你的 CSV 是醫療題與非醫療題各 10 題。
CS 2881R 第一講(2025-09-04)用三篇 pre-reading 把問題攤開:AI 2027 描繪五年內靠遞迴自我改進走到超人 AI,AI as Normal Technology 主張 AI 會像電力一樣慢慢擴散,METR 則用「人類要花多久的任務,AI 能有五成機率完成」量到這個長度約每 7 個月翻倍。Boaz 的講課把 AGI 的定義拆成能力與衝擊兩種,把對齊方法分成原則、品格訓練、model spec 三類。課堂實驗把 HW0 反過來做:在生物倫理題上微調對齊答案,環境政策題的對齊分數也跟著上升。
Boaz Barak 把 pretraining、SFT、RL 看成同一件事:挑一些 token 加強、一些 token 壓低,差別只在資料是別人寫的(off-policy)還是模型自己生的(on-policy)。安全訓練就疊在後兩段上,從早期的「一律拒答」走到 Deliberative Alignment:先用 SFT 教模型在思考鏈裡讀 spec,再用懂 spec 的獎勵模型做 RL。這堂課另一個重點是:不要對思考鏈施加最佳化壓力,否則模型學會的不是不作弊,而是作弊時不說。
對齊過的模型之所以還會被 jailbreak,是因為安全訓練只修掉了某些 exploit,底下的 vulnerability 還在。Nicholas Carlini 用三個攻擊說明這件事:重複一個字讓 ChatGPT 吐出訓練資料、用梯度找出能跨模型轉移的對抗後綴、只靠 API 偷出最後一層權重。Boaz Barak 則從軟體安全搬來幾條老教訓:攻擊只會越來越強、安全要一開始就設計進去、要縱深防禦。他擔心 prompt injection 會成為 2020 年代的 buffer overflow。
Boaz Barak 的答案是兩者都要,再加上人格:抽象原則、良好人格、明確政策三者混用,他自己把最少的權重放在書房裡推出來的原則上。真正的關鍵是規則要能檢查:「證明定理或給反例」是壞規則,「證明、給反例或說明做不到」才是好規則,因為只有能判定違規的規則才能拿來訓練和評估。學生實驗也沒找到「原則」與「細則」兩種 system prompt 的一般性差異,效果因模型而異。
CS2881R 第 5 講請 OpenAI Product Policy 的 Ziad Reslan 談內容政策。課站沒有列出講課錄影與投影片,校外讀者能拿到的是三篇 pre-reading、學生寫的 LessWrong 週摘要,以及一支 17 分鐘的學生實驗影片。這些材料串起來的主線是:社群平台花了二十多年才學會「線畫在哪裡都會有邊界案例,但總得畫」,生成式 AI 又多了一層難題——聊天介面介於私人文件與公開貼文之間,圖片比文字更容易被讀成立場。
Harvard CS 2881R Fall 2025 第 6 講沒有客座,Boaz Barak 用成長理論的微分方程問一個問題:如果 AI 開始自己做 AI 研發,能力曲線會維持指數、加速成奇點,還是被瓶頸拖慢?答案取決於幾個誰都量不準的指數。他用 Baumol 成本病、美國人均 GDP 百年 2% 的謎、Jones 的點子成長模型說明瓶頸與加速各自的道理,再拆開 AI 2027 的倍率假設。他的結論是:唯一能排除的是「AI 對研發沒什麼影響」。
Harvard CS 2881R Fall 2025 第 7 講請 METR 的 Joel Becker 處理一個謎:基準測試上,AI 能以一半機率完成人類要花幾小時的任務,而且這個長度每七個月翻倍;但在 METR 自己的隨機對照試驗裡,資深開源開發者用 AI 反而慢了 19%,勞動市場的衝擊也只集中在年輕人。Becker 列出幾種和解方式,核心是基準測試的任務太乾淨、評分太便宜、基準線人員太缺脈絡。課站原本排的前沿安全框架(OpenAI Preparedness Framework、Anthropic RSP)這堂沒講到,本篇依閱讀清單補上它們怎麼把能力量測變成門檻。
CS2881R 第 8 講問:模型會不會為了通過訓練或評測而作弊、裝乖、甚至暗中追求別的目標?Boaz Barak 的 10 分鐘開場把各種壞行為歸成「系統性失準」:是我們的訓練訊號把模型推過去的。Apollo 的 Marius Hobbhahn 整理現有證據,結論是目前模型還沒有造成災難的 scheming 能力,但早期能力已經出現,而且越來越會察覺自己在被評測。Redwood 的 Buck Shlegeris 則主張先假設模型在密謀,用 AI control 守住內部部署。學生實驗把四個前沿 coding agent 丟進不可能完成的排序任務,發現它們在明文禁止下仍會改測試、猴子補丁計時器。
Harvard CS 2881R 第 9 講請來 OpenAI 首席經濟學家 Ronnie Chatterji 與 Stanford 的 Bharat Chandar。Chandar 用 ADP 薪資資料說明:22–25 歲、在 AI 高曝險職業的年輕人,在控制公司層級衝擊後,就業相對下降 16%,資深員工沒有同樣的趨勢;調整主要出現在人數,薪資還沒動。兩位講者也一再提醒,總體就業目前看不出大規模替代,「曝險」不等於「被取代」。這講沒有投影片,材料是錄影與閱讀清單。
Harvard CS 2881R Fall 2025 第 10 講請來 OpenAI、Anthropic、Google DeepMind 的四位研究者,從兩個方向偵測模型的不良行為:讀它寫出來的 chain of thought,或讀它的 activation。CoT 監控抓 reward hacking 比只看動作有效,但把監控器放進訓練獎勵,模型就學會把意圖藏起來。activation 這一側,persona vector 能追蹤人格漂移,Sonnet 4.5 的稽核則顯示關掉「我在被測試」的方向後,不良行為會變多。Neel Nanda 的結論最務實:簡單的 steering vector 常常贏過 SAE,先跟 baseline 比。
Harvard CS 2881R 第 11 講談聊天機器人與心理健康。Boaz Barak 提出一個他自己說「未經證實」的解釋:模型有預訓練的「模擬器」與強化學習的「最佳化器」兩種模式,對話越長、越偏離訓練分布,越容易退回模擬器,順著故事繼續討好。兩組學生實驗分別測到:一次討好會外溢到無關問題,而妄想情境下 GPT-4.1 的附和率隨對話變長而惡化。預讀同時列了正面證據(NEJM AI 隨機試驗、NHS 觀察研究)與反面證據(stigma 研究、Parasitic AI)。本文只轉述研究與課堂討論,不提供臨床建議。
Harvard CS 2881R 最後一講由 Boaz Barak 和兩位 OpenAI 客座 Tejal Patwardhan、Kevin Liu 談未來十年。Boaz 的心智模型是:AI 等於每年向經濟注入指數成長、也越來越通用的虛擬勞動力,他最擔心的是變化太快而控制不足,以及權力集中與監控。Patwardhan 介紹 GDPval:用產業專家的真實工作成品當標準答案,由另一批專家盲評。Liu 說明為什麼 coding agent 還沒自動化 AI 研究:驗證太貴、回饋迴圈太長。課站這講的 Resources 寫「to be determined」,本文內容全部來自錄影。
CS2881R 的期中作業不是考試,是 2–4 人一組,從四篇 AI 安全論文裡挑一篇,重做它最核心的那張圖或表,再做一到兩個延伸,交 3–5 頁報告與 GitHub。規格投影片與評分表都公開,校外讀者可以完整照做。評分表把最多分數給「重現」與「延伸」,另外專門留一分給「你對結果有多脆弱的反思」——這一分正是這份作業想訓練的研究習慣。
6.5940 的前兩講先證明問題存在,再給量尺。L1 用一張圖說明模型參數量的成長遠快於 GPU 記憶體,並指出雲端 GPU 有 80GB 記憶體、微控制器只有 320kB。L2 把效率指標分成記憶體與運算兩類:#Parameters、model size、peak activations,以及 MAC、FLOP、OP。以 AlexNet 為例,它有 61M 參數、724M MACs;在微控制器上真正先爆掉的常常是 activation,不是參數。Lab 0 用 CIFAR-10 上的 VGG 變體(9.2M 參數、606M MACs)當之後幾個 lab 的起點。
MIT 6.5940(TinyML and Efficient Deep Learning Computing)教的是讓模型變小、變快、塞進手機和微控制器的技術:pruning、quantization、NAS、distillation、LLM 部署與分散式訓練。2025 年秋季因 Song Han 休假停開,2025 年課頁回 404;Fall 2026 正在上,截至 2026-09-30 只放出 L1–L6 與 Lab 0–1。本系列因此以最近一屆完整的 Fall 2024 為主幹:23 講投影片、23 支錄影、Lab 0–5 都公開,屬 A3;Fall 2026 列 A2,每篇另附對照。
MIT 6.5940 Fall 2024 的最後兩講分成兩半。L22 前半是 13 頁的 Course-Summary.pdf:用推論、訓練、特定應用三塊加上 System/Algorithm 兩軸重畫整門課,再交代期末專題的 7 項評分。L22 後半的 Quantum ML Part I 只有錄影、沒有投影片。L23(Hanrui Wang 主講,99 頁)講參數化量子電路(PQC):資料編碼、parameter-shift 梯度、雜訊下的機率式梯度剪枝(QOC)、TorchQuantum 函式庫,以及用 SuperCircuit 搜尋加閘剪枝的 QuantumNAS。讀起來像把前面學的 supernet 和 magnitude pruning 在量子電路上重演一次。Fall 2026 已把這兩講換成 Guest Lecture。
Diffusion 慢,是因為同一個大網路要從純雜訊一路跑幾十到上千步。L18 先把 DDPM、條件生成、latent diffusion、SDEdit、DreamBooth 講完,再分三條路加速:少跑幾步(DDIM 跳步、progressive distillation 每輪把步數減半)、每步少算(DC-AE 把圖壓 64 倍、只重算被編輯的 1.7% 區域省 8.2 倍 MACs、SVDQuant 把 FLUX 壓到 4-bit)、多卡分攤(DistriFusion 8 張 A100 最多快 6.1 倍)。
GPT-3 的 fp16 權重就要 350GB,一張 80GB 的 A100 放不下,更別說梯度和 Adam 狀態。L19 講怎麼切:資料平行、ring all-reduce、ZeRO-1/2/3(每張卡能訓練的模型從 5B 推到 320B)、GPipe 把 pipeline 利用率從 25% 提到 57%、Megatron 式 tensor parallelism、Ulysses 與 Ring Attention 的 sequence parallelism。L20 講切完之後的通訊瓶頸:Alpa 自動搜平行策略、DGC 把梯度壓 277–608 倍還不掉精度、TernGrad 把梯度量化成三值,以及用延遲更新蓋掉網路延遲的 DGA。
第 16 講談 ViT:高解析度下 attention 成本隨解析度平方成長,window attention(Swin)把計算限制在局部視窗,EfficientViT 用 ReLU linear attention 把複雜度降到線性再補回局部與多尺度能力,SparseViT 剪掉不重要的視窗;自監督(對比學習、CLIP、MAE)解決 ViT 需要大量標註的問題;最後 HART 用離散 token 加殘差 diffusion,比 diffusion 模型高出數倍吞吐量。第 17 講針對三種冗餘:GAN 的 2D 空間冗餘(GAN Compression、AnyCost GAN、DiffAugment)、影片的時間冗餘(TSM 零 FLOPs 的時間建模)、點雲的 3D 稀疏(PVCNN、SPVCNN、BEVFusion)。Fall 2026 排程已拿掉第 17 講。
這篇是 Fall 2026 的材料,不屬於本系列主幹的 Fall 2024。Fall 2026 把 Lab 1 從剪枝換成「Efficient AI Fundamentals」(lab1_gpu_basics.zip):Part 1 手刻三層迴圈的 GEMM、算 MAC/FLOPs/I/O;Part 2 畫 GEMM 與 GEMV 的 roofline;Part 3 拿 gemma-3-270m-it 的 decoder layer 算 attention 與 MLP,比較 prefill 與 decode;Part 4 用 PyTorch Profiler 看 kernel、自己寫 GeLU 體會 kernel fusion、再試 torch.compile 與 CUDA Graph;Part 5 比較 SDPA 與 FlashAttention。主題 80 分,另有 20 分 bonus,Part 5 因為 Colab T4 跑不動整段改成 bonus。
MIT 6.5940 Fall 2024 第 9 講分五段:知識蒸餾(KD)的定義與 temperature、六種可以對齊的東西(logits、權重、特徵、梯度、稀疏模式、關係)、不需要固定大老師的 self/online 蒸餾、偵測/分割/GAN/NLP/LLM 上的 KD,以及專為小模型設計的 Network Augmentation。溫度從 T=1 調到 T=10,老師對「貓 vs 狗」的輸出從 0.982/0.017 變成 0.599/0.401,這一步就是 KD 能傳遞「暗知識」的起點。
MIT 6.5940 Fall 2024 的 Lab 1 是一本 Colab notebook,9 題共 100 分:前 5 題在 CIFAR-10 的 VGG 上做 magnitude-based 細粒度剪枝與 sensitivity scan,要求剪到原大小 25% 且 fine-tune 後準確率高於 92.5%;第 6–8 題做 channel pruning、用 Frobenius norm 排序 channel、量測實際加速;第 9 題比較兩者。Fall 2026 沒有 pruning lab。
Lab 2 是一份 Colab notebook,10 題共 100 分,對象是 CIFAR-10 上預訓練好的 VGG。前 3 題做 K-means 量化:寫量化函數、推算 n bit 有幾個 cluster、寫 centroid 更新,再看 8/4/2 bit 微調前後的準確率。後 7 題做線性量化:寫 q = round(r/S) + Z、推 scale 與 zero point 公式、做 per-channel 權重量化與 bias 量化、寫整數版的全連接層與卷積層,最後把整個模型轉成 INT8 跑推論。本文整理題目、配分、環境需求與校外限制,不附解答。
MIT 6.5940 Fall 2024 Lab 3 給你一個 OFA 方式訓練好的 MCUNetV2 super network(超過 10^19 個子網路)與 Visual Wake Words 資料集,10 題共 100 分加 10 分 bonus:先實作 MACs/peak memory 的 efficiency predictor 與三層 MLP accuracy predictor,再寫 random search 與 evolutionary search,最後在 250KB、60M MACs 的限制下找出準確度 92.5% 以上的子網路。本篇拆題目結構與每題在練什麼,不貼解答。
Lab 4 是 Colab notebook,用 OPT-1.3B 一步步重做 AWQ:先看 3-bit 量化後 perplexity 變多差,再保留 1% 重要 channel(Q1),最後改用縮放保護它們並搜尋最佳縮放(Q2),兩題各 50 分,另有依 perplexity 計分的 bonus。Lab 5 換到 C++:用 TinyChatEngine 在自己的電腦上跑 4-bit 的 LLaMA2-7B-chat,替 W4A8 線性層 kernel 依序寫 loop unrolling、multithreading、SIMD、multithreading+unrolling、全部組合五個版本,每個 20 分,另有最多 20 分的效能 bonus。本文整理兩份作業的題目、配分、環境與校外限制,不附解答。
第 13 講把 LLM 推論變快的方法分成三條路。量化:SmoothQuant 把 activation 的離群值難度搬到權重做 W8A8,AWQ 依 activation 找出約 1% 的重要權重、用縮放保護它們做 W4A16,QServe 再合成 W4A8KV4。稀疏:Wanda 用 |W|·‖X‖ 剪權重,DejaVu 與 MoE 每個 token 只用一部分參數,SpAtten 與 H2O 丟掉不重要的 token。Serving:TTFT/TPOT 指標、PagedAttention、FlashAttention、speculative decoding 與 continuous batching。投影片上 OPT-6.7B 做 INT3 時,RTN 的 perplexity 是 43.16,把重要 channel 放大 2 倍就降到 14.07。
第 14 講分三段。第一段是微調:SFT 用想要的回答做 next-token prediction,RLHF 先訓 reward model 再用帶 KL 懲罰的 RL 微調,DPO 把兩階段壓成一次監督式訓練;接著一路比較 PEFT:BitFit 只調 bias、Adapter 插小層但推論變慢、Prompt/Prefix-Tuning 佔用輸入長度,LoRA 用可併回權重的低秩分支解決推論延遲,QLoRA 再把主幹量化成 NF4,BitDelta 把微調差值壓到 1 bit。第二段是多模態 LLM:Flamingo 用 cross-attention、PaLM-E 與 VILA 把影像當 token、VILA-U 讓模型也能輸出影像。第三段是 prompt engineering:zero/few-shot、CoT 與 RAG。
第 15 講分四段。延長上下文:RoPE 內插可以把 LLaMA 從 2k 拉到 32k,LongLoRA 用 shifted sparse attention 讓長上下文微調變便宜。評估:lost-in-the-middle、Needle-in-a-Haystack 與 LongBench。高效 attention:KV cache 隨長度線性長大,StreamingLLM 發現開頭幾個 token 是 attention sink,保留它們加上最近視窗就能穩定生成;DuoAttention 只讓少數 retrieval head 保留完整 KV cache;Quest 保留全部 KV、依 query 只讀最關鍵的幾頁。最後一段跳出 Transformer:Mamba 用選擇性 SSM 取代 attention,Jamba 把兩者混在一起。
MCU 的 SRAM 約 256–320kB、Flash 約 1MB,比手機小上萬倍,連 int8 的 MobileNetV2 峰值記憶體都超出 5 倍。L10 的答案是 MCUNet:TinyNAS 先挑搜尋空間再搜子網路,MCUNetV2 用 patch-based inference 把 MobileNetV2 的峰值 SRAM 從 1372kB 壓到 172kB,最後看視覺、語音、異常偵測三類 tinyML 應用。
MIT 6.5940 Fall 2024 第 8 講處理 NAS 最貴的一步:評估候選架構。從頭訓練 12,800 個架構要 22,400 GPU-hours,所以課程依序介紹繼承權重、hypernetwork、ProxylessNAS 的單路徑訓練、延遲查表與預測器、Once-for-All 的一次訓練 10^19 個子網路,再到完全不訓練的 zero-shot NAS 與神經網路/加速器共同搜尋 NAAS。本篇照 105 頁投影片走一遍,標出每個主張的頁碼。
第 7 講分三段。先用 MAC 公式複習全連接、卷積、分組卷積、depthwise 與 1×1 卷積;再拆 ResNet bottleneck、ResNeXt、MobileNet、MobileNetV2、ShuffleNet 與 Transformer 各靠什麼省運算,例如 bottleneck 比直接做 2048 通道的 3×3 卷積少 8.5 倍 MAC。最後進入 NAS:搜尋空間分 cell-level 與 network-level(深度、解析度、寬度、kernel size、拓撲),搜尋策略有 grid、random、強化學習、梯度下降、演化五種。投影片的一道算術題顯示,NASNet 的 cell 空間在 M=5、N=2、B=5 時就有 3.2×10¹¹ 個候選。
在裝置上訓練有兩個理由:模型要跟著使用者的新資料調整,資料又不該離開裝置。L21 先證明「只分享梯度」也不安全:Deep Leakage from Gradients 能從梯度還原出原圖和原句。接著處理記憶體:訓練比推論貴,是因為要存 activation,不是參數。TinyTL 只調 bias 再加輕量殘差,省 6.5 倍記憶體;SparseBP 只更新重要的層與通道;QAS 讓真正的 int8 訓練追上 fp32;PockEngine 在編譯期做完 autodiff,最後在 256KB 的 MCU 上把訓練記憶體壓到 141KB。
Pruning 是把神經網路裡不重要的權重或神經元拿掉,目標寫成「在非零權重數不超過 N 的限制下讓 loss 最小」。6.5940 第 3 講先處理其中兩個決定。第一是粒度:從任意位置都能剪的 fine-grained,到整個通道一起剪的 channel pruning,越規則越容易在現有硬體上變快,但能剪掉的比例越小;介於中間的 2:4 sparsity 在 NVIDIA Ampere GPU 上最多快 2 倍。第二是準則:看權重大小、看 Batch Norm 縮放係數、看二階導數、看 activation 有多少是零,或看剪完後輸出重建得多好。
MIT 6.5940 第 4 講把剪枝的後半段講完:用敏感度分析、AMC(強化學習)或 NetAdapt(逐步查表)決定每層剪多少;用 1/10 到 1/100 的學習率 fine-tune、迭代剪枝把 AlexNet 的剪枝倍數從 5 倍推到 9 倍;最後看 EIE、NVIDIA 2:4 稀疏與 TorchSparse/PointAcc,說明稀疏要有系統支援才會變快。
MIT 6.5940 第 5 講從「8-bit 整數加法比 32-bit 浮點加法省 30 倍能量」出發,先複習 INT、定點數、FP32/FP16/BF16、FP8 與 FP4 的位元配置,再講兩種量化:K-means 量化只省儲存、計算仍是浮點;線性量化用 r = S(q − Z) 把矩陣乘法、全連接層與卷積都改成整數運算。
第 6 講處理「量化後精度掉了怎麼辦」。先不重訓:換更細的 scale 粒度(per-channel、group、MX)、裁掉離群值(EMA、校準批次、MSE、KL)、改捨入方式(AdaRound)。不夠再重訓:QAT 保留一份全精度權重,前向做假量化,反向靠 STE 把梯度直接穿過去。投影片引用的白皮書數字裡,MobileNetV1 做 per-tensor INT8 PTQ 準確率掉到 0.1%,改成 per-channel QAT 回到 70.7%,浮點原本是 70.9%。最後兩段談 1–2 bit 的二值/三值網路,以及用強化學習自動分配每層位元數的 HAQ。
演算法把模型縮小之後,系統層還能再榨多少?L11 用同一個矩陣乘法示範:loop reordering 快 12 倍、tiling 快 19 倍(Intel Xeon 4114),CUDA 版在 2080Ti 上端到端快 94 倍。後半講 TinyEngine 用的推論技巧:im2col、in-place depthwise 把峰值記憶體從 2×C×H×W 降到 (1+C)×H×W、pointwise 用 NHWC、depthwise 用 NCHW,以及少 2.25 倍乘法的 Winograd。
6.5940 在第 12 講從 CNN 轉到 Transformer,但重點不在原理,而在哪裡會吃掉記憶體與算力:attention 是 O(N²);Llama-2-70B 若用 MHA,batch 16、長度 4096 的 KV cache 要 160GB;GQA 把它縮 8 倍、MQA 縮 64 倍;MoE 讓總參數變多但每個 token 的計算不變。這篇是進入 L13 LLM 部署前的橋接。
MIT 6.S184 是 IAP(1 月獨立活動期)的短課:5 講(第 3 講拆成 3-A、3-B 兩支錄影)、3 個 lab,加上一份 84 頁、官方稱為「課程骨幹」的講義。講義、slides、6 支錄影、lab notebook 與官方解答全部公開,是 A3 足以自學。缺的只有兩塊:lab 繳交走 Canvas 裡的 Gradescope,只有 MIT 修課生能用;第 5 講離散擴散沒有對應 lab。
MIT 6.S184 Lab 1 分三部分:先寫 Euler 和 Euler–Maruyama 的 step 函式,再用它們模擬 Brownian motion 與 Ornstein–Uhlenbeck 過程,觀察 σ 和 θ 怎麼決定軌跡與終點分佈,最後實作 Langevin dynamics,看一團點怎麼被推向一個五峰高斯混合,並用一段手算證明 OU 過程就是目標為高斯的 Langevin dynamics。題目、程式框架與官方解答都在 GitHub;校外讀者沒有 Gradescope 評分,只能自己對解答。
Lab 2 把講義 §3–4 寫成 PyTorch:先實作高斯條件路徑、條件向量場、條件分數,再用兩個幾乎一樣的 trainer 分別做 flow matching 和 score matching,接著用 Proposition 1 從學到的向量場換算出分數,最後換成線性路徑,讓一個圓環分佈流成棋盤格。全部在 2D 玩具資料上跑。README 記載 1/11/26 修過一個 diffusion coefficient 的 bug;2026-09-30 查看時,這個修正只出現在解答 notebook,學生版還沒改,做之前要自己補上。
Lab 3 在 MNIST 上從零組出一個有條件的 latent diffusion model,分四段:先用 label dropout 寫 CFG 訓練(在三群高斯混合上驗證),再一塊一塊寫 diffusion transformer(Fourier 時間嵌入、patchify、多頭注意力、adaLN-Zero、depatchify),接著寫一個 VAE,最後把 DiT 搬進 VAE 的 latent 空間訓練。題目與官方解答都公開;繳交走 Canvas 裡的 Gradescope,只有 MIT 修課生能用。
MIT 6.S184 第 1 講先把「生成一張狗的圖」改寫成「從資料分佈取樣」,再給出取樣的機器:從高斯雜訊出發,沿著神經網路給的向量場模擬一條 ODE(flow model),或在每一步再加一點 Brownian motion 的雜訊,變成 SDE(diffusion model)。實際模擬各用一個最簡單的數值方法:Euler 和 Euler–Maruyama。怎麼訓練那個向量場,留到第 2 講。
我們想學的是「邊際向量場」:沿著它跑 ODE,雜訊會流成資料。問題是它要對整個資料集積分,算不出來。Flow matching 的解法是改成回歸「條件向量場」,也就是只把雜訊推向單一資料點的那個場,這個有公式。講義 Theorem 12 證明兩個 loss 只差一個常數、梯度相同。落到 CondOT 路徑上,訓練只剩一行:取資料 z、雜訊 ε、時間 t,讓網路在 tz+(1−t)ε 這個點預測 z−ε。
分數函數是 log 密度的梯度,指向機率上升最快的方向。在高斯路徑上,它和上一講的向量場都是 x 與 z 的線性函數,所以可以互相換算(講義 Proposition 1):學會一個,就等於學會另一個。有了分數,就能在 ODE 上加任意強度的雜訊變成 SDE,而且每個時刻的分佈不變(Theorem 17)。分數本身也能用跟 flow matching 同一招學:回歸條件分數。這在高斯路徑上等於讓網路預測當初加進去的雜訊,也就是 DDPM 的訓練目標。
把 prompt 當成神經網路的額外輸入,理論上就能從 p_data(x|y) 取樣,但實際生成的圖不夠貼 prompt。第 3B 講用 Bayes 定理把有條件向量場拆成「無條件向量場+一個分類器梯度」,把分類器那項放大 w 倍就是 classifier guidance;再把分類器換成「有條件減無條件」的差,就得到不用訓練分類器的 CFG:ũ = (1−w)·u(x|∅) + w·u(x|y)。訓練只要以機率 η 把標籤換成空標籤 ∅。代價是每一步要呼叫網路兩次,而且 w>1 之後就不再是從資料分佈取樣。
前幾講的演算法已經完整,第 4 講處理規模化時的兩個工程問題。第一,網路要吃圖片、時間 t 和 prompt 三種輸入,吐出一樣大的向量場,所以用 U-Net 或 diffusion transformer(DiT),時間用 Fourier 特徵嵌入、文字用凍結的 CLIP/T5 嵌入。第二,像素空間太大,所以先訓練一個 VAE 把圖壓進 latent space,在那裡做 flow matching,最後再解碼。Stable Diffusion 3 與 Meta Movie Gen Video 都是這套配方:latent 空間裡的 flow matching+DiT 變體+CFG。
文字是一串離散 token,沒有方向可以走,ODE 和 SDE 都不存在。第 5 講把前四講的配方原封不動搬過來,只換掉底層的隨機過程:向量場換成 rate matrix,ODE 換成連續時間馬可夫鏈(CTMC),continuity equation 換成 Kolmogorov forward equation。用 factorized mixture path 當機率路徑時,要學的邊際 rate matrix 只剩一個未知數:給定加噪句子,每個位置原本是哪個 token 的機率。於是訓練離散擴散模型變成對每個位置做分類,loss 就是 cross-entropy;把雜訊設成全部 [mask],就得到 masked diffusion language model。
第一講前半說明課程規則與閃電秀,中段回答「為什麼要學原理」:蔡炎龍把學 AI 的焦慮拆成三種,主張懂原理才知道模型的限制、不必追著每個新工具跑。後半是 Colab 入門,從魔術指令、四行標準套件、plt.plot 到 Markdown 與 ipywidgets 互動。第一份作業是在 Colab 畫一個函數圖形;長庚衛星班的評分標準裡,照改範例只拿 6 分,沒教過的函數加上漂亮的 Markdown 註解才拿 10 分。
第二講把上一講的「呆萌型 AI 機器人」拆開:輸入輸出都要變成數字(張量),分類問題用 one-hot 與 softmax 把分數變成機率,神經網路由神經元一層層接起來,訓練就是用梯度下降把 loss 壓小。最後用 Keras 在 MNIST 上打造第一個全連結神經網路,再接上 Gradio 畫板。第二週作業要你自己設計 DNN,唯一的硬規定是不能是三層;長庚衛星班要求截圖驗證正確率最高的那組參數,也鼓勵保留失敗的嘗試。
同一句「一個可愛的女孩」有無數種正確答案,硬把它當函數訓練,只會學到所有答案的平均。GAN 的解法是改訓練兩個網路:生成器 G 從隨機 latent 向量造圖,鑑別器 D 判真假,兩邊互相對抗。L03 從 2014 年的原始論文一路講到 WGAN、Progressive GAN、StyleGAN 的 512 維 latent 與 AdaIN,再到 Pix2Pix、CycleGAN;後半的附錄把 cross entropy 與 KL divergence 講成「驚訝指數」。第三週作業二選一:實際跑一個 GAN,或用自己的話解釋 CE 與 KL。
L04 把大型語言模型拆成一句話:看前面的字,替字庫裡每個字打分數,softmax 變成機率,再依機率抽出下一個字。為了讓「前面的字」變成記憶,課程先講 RNN,再第一次帶出 Transformer 的 Q/K/V;接著用 GPT-2 的 15 億、GPT-3 的 1,750 億參數說明規模,用 temperature 與 top-p 說明為什麼每次回答都不一樣。後半教怎麼在自己電腦跑開源模型、要多少 VRAM。第四週作業:自己設計一組你懂的主題的測試 prompts,至少比較兩種 LLM。
L05 用兩條線性代數規則讀完 Transformer:矩陣乘法是「列乘行」的內積,而向量乘矩陣等於對矩陣的列向量做線性組合。有了這兩條,attention 就是「query 跟每個 key 做內積、softmax 成權重、對 value 加權平均」,整批寫成 softmax(QKᵀ/√d_k)V;除以 √d_k 只是把數字拉回 0 附近,避免 softmax 贏者通吃。接著講 multi-head、encoder 與 decoder 的差別、mask、用 sin/cos 時鐘做的位置編碼,最後是 ResNet 式殘差與 layer normalization。本週沒有作業。
L06 前半談倫理:蔡炎龍引用 Karpathy「幻覺是 LLM 的特點」,再逐一談抄襲、資料會不會被拿去訓練、DeepSeek 的審查與語料偏向,最後收在七項「負責任的使用」。後半轉向應用:只要給對「資訊」和「指引」,一段 system 設定就能做出員瑛式思考生成器、小編 AI、選系諮商師。第六週作業就是把這套 prompt 搬進 OpenAI 相容 API 加 Gradio,做一個有人設的對話機器人。
對話機器人會「記得」你,不是因為模型有記憶,而是程式每一輪都把整份 messages(system、user、assistant 交替)重新送一次。L07 先教申請 OpenAI 與 Groq 金鑰,再把這個結構講清楚,接著用 Ollama 在本機或 Colab 跑 Gemma 3,同一套 openai 套件只改 base_url 就能呼叫。第七週作業二選一:做一個能持續對話的版本,或讓兩個模型互相對話,都要用 Gradio 展示。
L06 說 prompt 只有兩件事:正確的資訊和清楚的指引。RAG 就是讓電腦自動去找「資訊」那一段:先把自己的文件切成文字塊,用同一個模型 fθ 把文字塊和問題都變成特徵向量,找出最接近的幾塊,再套進「請根據 {retrieved_chunks} 回答 {question}」的樣板。實作拆成兩支程式:Demo06a 用 LangChain 與 FAISS 建向量資料庫並壓成 faiss_db.zip,Demo06b 讀回資料庫、接 LLM、包成 Gradio。第八週作業就是換上你自己的資料。
L09 把 AI Agent 講成一句話:本來你要做的事,AI 自動幫你做完。蔡炎龍沿用吳恩達的四個設計模式(Reflection、Tool Use、Planning、Multiagent Collaboration),但只實作前後兩個最好上手的:Demo07a 讓「作者」與「評論員」兩個 LLM 呼叫接力改文章,Demo07c 把員瑛式思考拆成「先想五個理由、再寫貼文」的兩階段 CoT,都用 AISuite 串 Groq 並用 Gradio 展示。LangChain、AutoGen、CrewAI 只出現在進階學習清單。第九週作業就是兩種模式二選一。
L10 從「怎麼找到好的特徵向量」出發:Word2Vec 用代理任務學出 embedding,Autoencoder 用「輸入等於輸出」逼出壓縮後的 latent vector,VAE 再要求 latent 符合常態分布,讓鄰近的點生出相似的圖。接著蔡炎龍把 diffusion model 講成「encoder 用算的、只訓練 decoder 的 autoencoder」,最後收在 Latent Diffusion:先用 VAE 把 512×512 的圖壓成 64×64,diffusion 只在這個小空間裡做。第十週作業不寫程式,用 Bing 生出風格一致的多組圖。
L11 把 Stable Diffusion 架構圖上剩下的三塊補齊。CLIP 用「文字和圖越像越好」的對比訓練,讓 prompt 變成 77×768 的 embedding;排程器把 1000 步的加噪壓成二、三十步的去噪,但 Euler a 這類 ancestral 演算法不會收斂,步數加到 100,人物的衣服和座位都會換掉;LoRA 凍結原本的 W,只學拆成 A·B 的 ΔW。實作用 diffusers 載入 SD 1.5 系模型,第十一週作業是自己做一個生圖 Web App。
L11 的 Stable Diffusion 只聽 prompt,構圖、姿勢全看運氣。L12 補上「方向盤」:ControlNet 把 SD 的區塊拷貝一份,用 zero convolution 接回去,讓邊緣圖、姿勢、深度圖這類額外條件也能控制生成,最常見的例子是 Canny 邊緣。後半講 Fooocus:一個目標是「像 Midjourney 一樣簡單」的 SD 介面,重點在 Preset、Style,以及 Input Image 的五個功能,其中 Image Prompt 就是包裝好的 ControlNet。第十二週作業:設想一個應用情境,用 Fooocus 至少生 3 組圖,並寫出創作流程。
前 12 講的模型都靠人準備好的訓練資料。L13 換一個問題:沒有標準答案,只知道做得好不好的時候,電腦要怎麼學?老師從 AlphaGo 和打磚塊講起,分成兩條路:value based 學一個 Q 函數替每個動作打分數(Deep Q-Learning、TD、Experience Replay、ε-greedy),policy based 直接學動作(Policy Gradient、Actor-Critic)。後半回到 LLM:ChatGPT 怎麼用人類排名訓練 reward model,再用 PPO 做 RLHF;DeepSeek 則讓電腦自動判斷數學題對錯當獎勵。第十三週作業是期末專案提案。
最後一講看的是兩條技術線開始互相越界:ChatGPT 這類 LLM 開始畫圖,投影片用 early fusion 和 VQ-VAE/VQGAN 解釋「把圖像切成 token」怎麼做;反過來,Inception Labs 的 Mercury 用 diffusion 生成文字,把一句話加噪成一排 [MASK] 再還原。接著是幾篇人人都用得上的研究:怎麼自動評 RAG、推理模型更容易被劫持、DeepMind 的四種 AI 風險。最後是 Vibe Coding 與一串應用工具,以及用 Gather Town 線上研討會進行的期末專案。
《生成式 AI:文字與圖像生成的原理與實務》是政大應數系蔡炎龍主講、以 TAICA 衛星課程開放給聯盟學校的入門課。網路上最完整的那頁課程網站其實是長庚衛星班(協同教師楊智淵)的頁面。本系列以 Spring 2025(1132)為準:14 支錄影、14 份投影片、12 份作業說明與評分標準都公開,Demo notebook 也在 GitHub 上,存取分級 A3;缺口是 notebook 會持續改版、繳交與批改走各校平台、期末專案成果沒有公開。
清大高宏宇 NLP(Fall 2025)BERT and its Family 單元導讀。起點是「I record the record」:Word2Vec 和 GloVe 給兩個 record 同一個向量。ELMo 用雙向 LSTM 語言模型解決這件事。換成 Transformer 之後,預訓練分成三條路:encoder(BERT:MLM+NSP,擅長理解、不擅長生成)、encoder-decoder(T5 的 span corruption、BART 的五種雜訊)、decoder(GPT:純粹預測下一個字)。最後一段是 GPT-3 的 in-context learning 和 scaling laws,也說明 decoder 為什麼成了現在最主流的骨幹。
清大高宏宇 NLP(Fall 2025)解碼與評估單元導讀。前半講模型每一步吐出機率分布之後怎麼選字:greedy 一步錯就回不去,beam search 同時保留幾條候選但偏好短句,top-k/top-p 用抽樣換多樣性(投影片沒寫,教授在課堂口頭補)。後半講怎麼替生成的文字打分:BLEU 的 modified precision 與 brevity penalty、ROUGE-N 與 ROUGE-L、perplexity,以及 GLUE、SQuAD 2.0、MTEB、MMLU 這些 benchmark 各自在量什麼。
清大高宏宇 NLP(Fall 2025)GPT-2/T5 助教課導讀。同一個任務(LCSTS 中文摘要)用兩種架構各做一次:decoder-only 的 GPT-2 用原生 PyTorch,要自己把文章和摘要接成一條序列、改用 left padding、把 padding 的標籤設成 −100;encoder-decoder 的 mT5 用 Seq2SeqTrainer,不需要 left padding,DataCollatorForSeq2Seq 會自動處理 −100。兩邊都用 jieba 斷詞後算詞級 ROUGE。
高宏宇 Fall 2025 的 W8 投影片從 GPT-1 一路講到 GPT-3,順帶解釋 GPT-3 用的 Sparse Transformer 怎麼省掉注意力的計算,再用 InstructGPT 說明「會接話」和「聽得懂指令」之間差了什麼:最大概似目標分不出編造事實和挑錯同義詞哪個嚴重,所以要多三步——SFT 學人類怎麼寫、reward model 學人類怎麼評分、PPO 依評分調整並用 KL penalty 綁住不要跑太遠。最後以 Llama-2 收尾:分開訓練 safety 和 helpfulness 兩個 reward model、context distillation,以及推論加速用的 GQA。
清大高宏宇 NLP(Fall 2025)Hugging Face BERT 助教課與 HW3 導讀。助教課用 IMDb 影評二元分類走一遍 AutoTokenizer、input_ids/token_type_ids/attention_mask、AutoModelForSequenceClassification 與 Trainer。HW3 把工具拿去做 SemEval 2014 Task 1:同一個 bert-base-uncased 接兩個頭,一個回歸 1–5 分的 relatedness,一個做三類 entailment 分類,兩個 loss 加總後自己寫訓練迴圈,不准用 Trainer。
HW1 拿 Google Analogy 的 19,544 題(8,869 題語意、10,675 題語法)考詞向量:先用 Gensim 載入預訓練的 glove-wiki-gigaword-100 作答,再從助教清理好的 Wikipedia 抽 20% 文章自己訓練 Word2Vec,兩邊都畫 family 子類的 t-SNE。七個 TODO 共 55%,報告 45%;Fall 2026 的 TODO 和 2025 相同,只是改成繳交含執行結果的 .ipynb。
清大高宏宇 NLP 課第一週的 W1_NLP_brief 共 91 頁:先用「Watch for kids」、望遠鏡句的五種讀法、大舅到十一舅的繞口令說明語言為什麼難,再從資訊檢索的角度,把倒排索引、tokenization、stemming、TF-IDF、BM25 講成一條管線。後半段處理這條管線的死穴(同義詞、一詞多義、詞彙對不上),走到 LSA 的 SVD 降維,最後用 Skip-gram、GloVe、FastText 預告稠密詞向量。
清大資工高宏宇老師的《自然語言處理》是 TAICA 聯盟的研究所級主導課程,Syllabus 寫明開放 1200 人、中文授課,從 TF-IDF、詞向量一路講到 RLHF、PEFT 與 RAG。Fall 2025 的投影片、32 支課堂錄影、4 份作業題目與 starter notebook 都放在 GitHub,評為 A3;拿不到的是解答、評分與期末專題規格。Fall 2026 正在進行,只放到 W3,評為 A2;評分改成作業 75%+實體期中考 25%,並新增 Reasoning/Agent 單元。
這堂 34 頁的助教課回答一個很實際的問題:拿 ChatGPT 網頁版一筆一筆貼資料太慢,還會碰到每小時次數上限,所以做研究和作業要改用 API。notebook 用同一個 SemEval 2014 蘊含判斷例子,依序示範 Gemini、Claude、OpenAI 三家:把 prompt 放進 prompts.yaml、要求 JSON 輸出、few-shot、計算 token。要注意教材是 2024 年版:投影片封面寫 2024/11/21,notebook 用的是 gemini-1.5-pro、gpt-4o、claude-3-5-sonnet-20241022,其中 Claude 那個型號在 2025-10-28 已經退役,Gemini 的舊 SDK 也在 2025-11-30 結束支援。
高宏宇 Fall 2025 的 PEFT 投影片先算一筆帳:Llama 2-7B 用 16-bit 全參數微調約要 56GB 顯示卡記憶體,只訓練 0.2M 個參數就降到約 17GB,因為梯度和優化器狀態幾乎歸零。接著用 intrinsic dimensionality 解釋為什麼只調一小撮參數就夠:預訓練越久、模型越大,微調需要的有效維度越低。方法分成加參數(Adapters、Prompt Tuning)、挑參數(BitFit)、重參數化(LoRA)與混合(MAM Adapters、S4)四類;後半段從 GPT-2 的任務描述、verbalizer 一路講到 prefix tuning 和 soft prompt tuning 的取捨。
HW2 把「14*(43+20)=882」這種算式當成字元序列,要你用兩層 LSTM 看到「=」之後逐字生成答案。訓練集 2,369,250 筆、驗證集 263,250 筆,數字都在 0–49 之間;六個 TODO 從建字典、只在「=」之後算 loss 的 batching、生成函式,一路到 teacher forcing 訓練與 exact match 評估。W4 的 PyTorch 助教課就是這份作業的工具箱。
兩堂 RAG 助教課各做一個版本:第一堂在 Colab 裝 Ollama 跑 llama3.2:1b,用 LangChain 的 Chroma、MMR 和 retrieval chain 串出最小的 RAG;第二堂只在資料準備用 LangChain,其餘自己寫:切塊、存文字與向量資料庫、BM25 加 cosine 的混合檢索、用 RRF 合併排名,再拿 Llama-3.2-1B-Instruct 生成答案。HW4 把第一堂的骨架套到 150 則貓咪冷知識和 150 組 GPT-5 生成的問答上,生成器限定 Llama3.2-1b、embedding 限定 jina-embeddings-v2-base-en,要回報 recall@1、recall@5 與 exact match。程式占 45%,報告占 55%,報告要分析 prompt、資料格式、文件順序與反事實資訊的影響。
W11_RAG.pdf 的後半從「From Retrievers to QA」那一頁開始,把檢索器和讀者(reader)接成完整的問答系統。先看 2019–2020 年用 BERT 當讀者的 ORQA 與 REALM,再看第一篇叫 RAG 的論文和凍結 LLM 的 REPLUG;接著用一張表整理七個近年修法:改寫查詢(Query Rewriting、HyDE)、讓生成器不怕雜訊(RetRobust、RAFT、RAAT)、決定何時檢索(FLARE、Self-RAG)。最後談雜訊的類型、LLM 在 RAG 裡該有的四種能力,以及生成式檢索(GR)與可靠回應生成(RRG)。錄影方面,W11 週四那支講到 RAG 論文為止,後面的頁數本文找不到對應的錄影片段。
LLM 會一本正經地回答「歐本海默生於 1967 年」(那其實是他過世的年份),RAG 的做法是先檢索、再生成。高宏宇 Fall 2025 的 RAG 投影片前 60 頁都在講「怎麼找對資料」:稀疏向量(詞袋、TF-IDF、BM25)便宜可靠,稠密向量抓得到同義改寫;BERT 的 [CLS] 不適合直接當句向量,所以有 Sentence-BERT 的 pooling 和 bi-encoder;cross-encoder 準但一萬句要跑近五千萬次,bi-encoder 只要兩萬次;SimCSE 拿 dropout 當資料增強,DPR 只用一千筆訓練資料就贏過 BM25,GTR 則證明把 dual encoder 放大能改善跨領域檢索。
「Look over there」是 3 個 token,中文「請看那邊」是 4 個,日文是 12 個——輸出長度跟輸入對不上,分類器那套「最後接一層 FFN」就不能用。這份 33 頁的投影片從 encoder-decoder 講起,推到 RNN 的梯度消失、LSTM 的三個閘門,最後用 attention 同時解決長距離與平行化兩個問題,並解釋為什麼要除以 √d。
清大高宏宇 NLP(Fall 2025)Sub-word Tokenization 單元導讀。用空白切詞只適用於西方語言,也處理不了沒看過的詞和德文那種複合字。BPE 從字元出發,反覆把最常一起出現的一對合併進詞彙表,合併幾次就多幾個詞;缺點是貪婪切法不一定最好。Unigram LM 改用機率挑切法,還能抽樣出不同切法。投影片給的詞彙量是 BERT 30522、GPT-2/GPT-3 50257、T5 32,128。
Fall 2025 第 14 週,高宏宇用兩份投影片收尾:Course_summary 把整學期分成 NLP Fundamentals、NLP Models、NLP Advances 三欄,外加助教課兩欄與五個延伸方向;另一份是他整理的 Denny Zhou(Google DeepMind)2025 年 4 月 Stanford 演講筆記,主張「預訓練模型本來就能推理,關鍵在解碼」,並用 CoT decoding、self-consistency、retrieval + reasoning 串成四條不等式。Fall 2026 的 W16「Reasoning / Agent」單元尚未公開。
Fall 2025 的評分是作業 70%+期末專題 30%,專題 3–4 人一組,分成 Proposal 6%、Progress 6%、Poster 6%、Report 12%,不提供 GPU;repo 沒有專題規格文件,只有 Syllabus 的結構、期末提醒與 W15–W16 的錄影。Fall 2026 改成作業 75%(4 份)+W14 實體期中考 25%,課表拿掉報告週,新增 Reasoning/Agent 單元,並加入 AI-TA 協助批改與 TAICA 算力補助。改版原因,官方材料沒有寫。
清大高宏宇 NLP(Fall 2025)Transformer 單元導讀。投影片從 RNN 的兩個毛病出發:字跟字的互動要隔著 O(N) 步傳遞,時間步之間又不能平行。Self-attention 讓每個字直接看所有字,用矩陣乘法一次算完,兩個毛病同時解掉;代價是模型分不出詞序,所以要補正弦位置編碼。之後依序組出 multi-head attention、Add & Norm、feed forward、cross-attention、masked attention 與 teacher forcing,最後用 GPT-2、ViT 與四種變體說明這個架構後來走多遠。
清大高宏宇 NLP 課第二週的投影片共 62 頁,主題是「預測下一個字」。前半用 bigram 計數表、add-one smoothing 和 perplexity 講統計語言模型,再用 PPMI 的 cherry/digital 例子講稀疏向量;中段回到 Word2Vec 的負採樣,並用「蘋果」一詞說明為什麼需要 contextualized embedding;後半從 FFN 的三個缺點引出 RNN,示範它怎麼做 NER、句子分類,以及 stacked 與雙向版本。
RNN 做翻譯時,要把整句壓進一個向量,句子一長就記不住。Attention 讓解碼器每產生一個字,都回頭對輸入的每個位置打分數、取加權和;把打分數的一方叫 query、被比對的叫 key、被加權的叫 value,就是 dot-product attention。Transformer 再往前一步:讓輸入自己對自己做 attention,完全拿掉 recurrence,換來平行化與固定的路徑長度,代價是要另外補上位置資訊。
靜態詞向量給 apple 只有一個向量,不管它是水果還是公司。ADL Fall 2025 的 BERT 講從這個多義詞問題出發:TagLM 先用語言模型補上下文,ELMo 用深層雙向 LSTM 產生 contextual embedding,BERT 把 LSTM 換成 Transformer,並用 Masked LM 與 Next Sentence Prediction 兩個目標預訓練,下游只要在最上層加分類器或標註器微調。彈性補充的 BERT Variants 講義再往外走一圈:Transformer-XL 拉長 context、XLNet 用 permutation LM 兼顧 AR 與 AE、RoBERTa 靠更多資料與更好的訓練設定、SpanBERT 改成遮整段 span、mBERT 與 XLM 處理多語。這篇是下一篇 HW1 用 bert-base-chinese 做抽取式 QA 的直接前置。
資料很多不代表標註很多。ADL 最後一講問:沒有標註時,怎麼學到好的表示?答案是找出背後控制資料的潛在因子。Auto-encoder 把輸入壓成一段短碼再還原;denoising 版本先加雜訊或遮掉 15% 的 token,BERT 的 masked LM 就是這個想法。VAE 規定短碼要服從一個分布,於是能從分布抽樣來生成。Dual learning 讓翻譯與反向翻譯、理解與生成這類對稱任務互相當對方的回饋。自監督學習分兩派:自我預測(遮一部分猜回來)與對比學習(相似的拉近、不相似的推遠)。CLIP 用 4 億組圖文對做對比學習,讓影像分類可以 zero-shot;DALL·E 2 再把 CLIP 的表示拿來生成圖。Fall 2025 只有影片,投影片用 Fall 2024 版補位。
對話系統分成閒聊與任務型兩支。任務型系統傳統上拆成四個模組:語言理解(LU)把句子變成 domain/intent/slot,對話狀態追蹤(DST)累積使用者目標,對話策略決定下一步系統動作,NLG 把動作寫回句子。LLM 能自己把四步演完,卻沒辦法真的去訂位,所以要接外部工具:LaMDA 學會呼叫搜尋、計算機與翻譯器,BlenderBot 2.0 加上網路搜尋與長期記憶,WebGPT 用人類示範、reward model 與 PPO 學會操作瀏覽器,Toolformer 則讓模型自己產生並篩選工具使用的訓練資料。最後是對話怎麼評:自動指標、四種人工評估,以及 LLM-Eval。ADL Fall 2025 只有影片,投影片用 Fall 2024 版補位。
台大資工陳縕儂的《深度學習之應用》(ADL)Fall 2025 是一門以 NLP 為主軸的深度學習課:從神經網路基礎一路講到 Transformer、BERT、預訓練與 prompt、後訓練、LoRA、RAG、生成評估、對齊議題與 Language Agents。L0–L11 有講義 PDF 與分段影片,播放清單另外多出 L12–L14 三講影片;作業端只有 HW1 規格公開,HW2、HW3 與期末專題只有說明影片,所以存取分級是 A2。
ADL Fall 2025 第 10 講把預訓練模型的問題分成四組,每組配一個目標:bias 對 fairness、toxicity 對 safety、hallucination 對 factuality,最後是 alignment。講義的主張是偏見可能從 ML 管線任何一個環節進來,安全防護要在資料、輸入、訓練、輸出四層都做,幻覺可以拆成原子事實逐條查,而 reward model 被過度優化時,會出現囉嗦、過度道歉、過度拒答這些熟悉的症狀。同一週公布的期末專題叫 Jailbreaking Olympics,但公開的只有兩支說明影片的標題與一行說明。
ADL Fall 2025 的 HW1 給一個問題和四段中文文字,要模型先挑出相關的那一段(paragraph selection,當成四選一的 multiple choice),再在那段裡標出答案的起點和終點(span selection),用 Exact Match 評分。規格投影片直接指定改 HuggingFace 的 run_swag_no_trainer.py 與 run_qa_no_trainer.py,simple baseline 用 bert-base-chinese、長度 512、有效 batch size 2、learning rate 3e-5,在 8GB 的 RTX 3070 上兩段加起來不到三小時。Kaggle 排行榜 9/29 截止、程式與報告 10/1 交到 NTU COOL。校外讀者拿不到 Kaggle 資料與評分,但任務設計、baseline 設定和報告五題都能照著練。
ADL Fall 2025 第 11 講以 EMNLP 2024 的 Language Agents tutorial 為底,把 agent 定義成「感知環境並採取行動的實體」,再指出 language agent 的新東西:推理本身也是一種內部行動。講義用推理、記憶、規劃三個概念組織整講,推理這段講 CoT 與 ReAct,記憶這段講 Generative Agents 的 recency/importance/relevance 檢索,規劃這段從貪婪的反應式規劃講到 tree search 與 world model,最後用初始化、協作、團隊優化三步驟講多代理系統。
ADL Fall 2025 的第一份自學講義把機器學習講成「從資料裡找一個函數」,把深度學習講成「一條由很多簡單函數串起來、每一站都由機器自己學的生產線」。它用語音與影像說明 deep 和 shallow 的差別,用大數據與 GPU 解釋 2010 年後的突破,再用 universality theorem 追問為什麼要深而不是胖。最後一段最實用:學習任務由輸出領域決定,網路架構要配合輸入領域的性質。
ADL Fall 2025 的 NN Basics 與 Backpropagation 兩份講義,把「訓練一個模型」拆成三個問題:模型是什麼(一層層的神經元,每層是 z = Wa + b 再過非線性)、什麼叫好的函數(loss 越小越好)、怎麼挑出最好的(gradient descent,實務上用 mini-batch SGD)。上百萬個參數的梯度靠 backpropagation 有效率地算:forward pass 存下每層輸出,backward pass 從輸出層往回傳誤差訊號 δ,兩者相乘就是每個權重的梯度。
ADL Fall 2025 第 9 講回答兩個問題:模型每一步給出一個機率分布,要怎麼從裡面挑字?挑出來的句子又要怎麼評?講義先用 teacher forcing 與 exposure bias 說明訓練和生成的落差,再依序比較 greedy、beam search、sampling、top-k 與 nucleus sampling,把 temperature 與各種 penalty 歸類為「控制」而不是解碼演算法;評估一半講 BLEU、ROUGE、perplexity 與 LLM-Eval,另一半講為什麼要用 RL 直接優化整句的品質。
LLM 大到整個微調不划算時,ADL Fall 2025 的 LLM Adaptation 講義給出三種只改一小部分的做法:在 Transformer 裡插入小型 Adapter、用低秩矩陣表示權重更新的 LoRA,以及只學前綴或軟提示的 prompt tuning。講義的結論是沒有一種方法適合所有任務。HW2 的公開資訊只有一句題目「LLM Tuning and Prompt Tuning for Classical Chinese Translation」,資料、baseline 與評分都沒有文字版。
預訓練讓模型會接話,不代表它會照指令做事。ADL Fall 2025 的 Post-Training 講義分兩步補上:先用 instruction tuning(FLAN、T0)教模型讀懂任務描述,再用 RLHF 讓它朝人類偏好靠攏。講義用 instruction tuning 的三個限制把兩步接起來,用 reward model 與成對比較解決 RL 的兩個實務問題,最後以 InstructGPT 的 SFT → reward model → PPO 三步驟當總結,並說明 ChatGPT 把同一套流程搬到多輪對話。
ADL Fall 2025 第 6 講把預訓練模型分成三類:encoder(BERT 家族,雙向上下文)、decoder(GPT 系列,擅長生成)、encoder-decoder(BART、T5,用去噪目標預訓練)。接著點出預訓練模型時代的兩個實際難關:下游標註資料少,以及模型越來越大、每個任務各存一份放不下。講義的解法是 prompt learning:先用 GPT-3 的 in-context learning 說明「不更新參數也能做任務」,再從人寫的 hard prompt(prompt template+verbalizer、LM-BFF)走到直接優化向量的 soft prompt(P-Tuning、Prefix-Tuning、Prompt Tuning),最後用 Liu 等人的 prompting 分類法收尾。
LLM 記不住長尾知識、知識會過時,也碰不到私有文件。ADL Fall 2025 的 RAG 講義先用「問 LLM 陳縕儂是誰」的幻覺例子開場,再把 RAG 拆成索引、檢索、生成三段:sparse(TF-IDF、BM25)與 dense(DPR、Contriever)檢索、dense retriever 怎麼訓練、pre-/post-retrieval 的進階技巧與 pointwise/pairwise 重排序,最後用「檢索什麼、怎麼用、何時檢索」三個問題整理 RAG、RETRO、FLARE、Search-R1 等演進。HW3 的公開資訊只有題目「Retriever & Reranker Training for RAG」。
ADL Fall 2025 的 Reasoning 一講沒有公開投影片,只有播放清單上的五支影片:12.1 什麼是推理、12.2 Short CoT、12.3 Test-Time Scaling、12.4 Learning to Reason(模仿別人推理)、12.5 RL for Reasoning(探索自行演化出推理行為)。這篇只依影片標題排出這條路線,再搭配前一講 Language Agents 講義裡 CoT、ReAct 與「reasoning 擴大 action space」那幾頁;技術細節交給站內 CS224N、CME295 的 reasoning 篇。
ADL Fall 2025 第一堂正課的主線只有一條:語言模型就是預測下一個詞。從 one-hot 與共現矩陣出發,走過 n-gram 的零機率問題、neural LM 自動做到的平滑,再到把所有前文壓進 hidden state 的 RNN LM。BPTT 與梯度消失/爆炸是訓練上的代價,LSTM、GRU 用 gating 補救;最後用「輸入是序列」與「輸出是序列」兩類應用,把 tagging 與 encoder-decoder 分開。
ADL Fall 2025 課程頁排了 7 堂助教課:Dev Infra(PyTorch、Debugging)→ NLP 專案的一生 → NLP 專案的底層邏輯 → LLM LoRA Training → LLM Basics/Architecture/MoE → LLM Inference & Evaluation → LLM Deployment。10 支影片全部是林彥廷在 2023 與 2024 年錄的舊片,Fall 2025 沿用;課程頁上的 5 份講義連結都 404,同名檔在 Fall 2024 路徑可以打開,Deployment 只有影片。前三堂把 Hugging Face 的「資料→模型→Demo」流程走一遍,正好是 HW1 需要的工具;後四堂補 LLM 的訓練、推論與上線。
用整個詞當單位,沒看過的詞只能變成 UNK;用單一字元當單位,意思又很難組回來。ADL 這一講用 22 頁投影片說明主流的折衷:subword,以及最常用的切法 BPE。重點是一個 4 個詞、16 次出現的小語料,從字元開始,每次把最常相鄰的一對合併,9 次合併後得到 newest</w>、low</w> 這些單位,再拿來切沒看過的 lowest 與 powest。最後用 GPT-3 tokenizer 示範:同一句話的中文版比英文版多一倍 token。
技法第 7、8 講是 aggregation 模型的入口。T7 先把「組合多個假說」排成 uniform、linear、any(stacking)三種 blending,用一行代數證明 uniform blending 降低的是 variance,再用 bootstrap 在手上唯一一份資料裡造出多樣的 g_t,就是 bagging。T8 把 bootstrap 重新解讀成「替樣本加權」,改成專挑上一輪答錯的樣本加重,讓下一個假說被迫不同,再用 α_t = ln √((1−ε_t)/ε_t) 當投票權,這就是 AdaBoost。練習用 Fall 2024 HW6 Q4、Q9 與 HW7 的 bootstrap、AdaBoost 證明題和 madelon 上 500 輪的 AdaBoost-Stump 實驗;沒有官方解答。
林軒田的機器學習基石(16 講)與技法(16 講)是兩門中文 MOOC,130 支 YouTube 影片與 32 份投影片全部免費。只看 MOOC 是 A2:Coursera 自 2025 年 8 月起只讓免費帳號看第一單元,練習題被擋在付費牆後。補上 Fall 2024 課程頁公開的 HW0–HW7 與期末專題說明,就能到 A3,只差評分鏈:沒有官方解答,Gradescope 與 NTU COOL 限修課生,Kaggle 競賽頁回傳 404。Fall 2026 正在進行,是翻轉教室,第 4 週以前的投影片與 hw0、hw1 已公開。
技法第 9–11 講用「樹+aggregation」一條線串起三種模型。T9 把決策樹看成 conditional aggregation,講 C&RT 的二元分支、Gini 與迴歸誤差、剪枝、類別特徵與 surrogate branch。T10 把 bagging 套在完全長大的樹上,加上隨機子空間與隨機投影就是隨機森林,順帶得到免費的 OOB 驗證與 permutation 特徵重要度。T11 先把 AdaBoost 重新推導成對指數誤差做函數空間的最速下降,再把誤差換成平方誤差,得到「對殘差做迴歸」的 GBDT。練習用 Fall 2024 HW7 的 impurity、gradient boosting 證明題;沒有官方解答。
基石 Lecture 4 先證明學習「不可能」:只看資料 D,D 以外的答案怎麼猜都可能被說錯,這是 No Free Lunch。接著用抽彈珠換個問法:如果資料是從同一個分布獨立抽出來的,Hoeffding 不等式保證樣本錯誤率 E_in 很可能接近真實錯誤率 E_out。只驗證一個固定的 h 不算學習;演算法要從 M 個假說裡挑,就得用 union bound 付出 2M exp(−2ε²N) 的代價。結論:假說集合有限、E_in 又小,學習就可行。M 無限大怎麼辦,留給下一講。
技法 T16 把整門課重新分類成三類技巧:怎麼利用特徵(kernel、aggregation、extraction、低維壓縮)、怎麼最佳化(梯度、等價問題、拆成多步)、怎麼防過擬合(正則化、驗證),最後用四屆 KDD Cup 冠軍模型說明這些技巧在實務上怎麼組合。MOOC 錄於 2016 年,深度學習只講到 pre-training;Fall 2024 校內課用 302u(ReLU 家族、Xavier/He 初始化)、303u(momentum、RMSProp、Adam)、一場 2020 年的演講投影片 mlmai.ics 與 11 個模型的 1126 總整理補上。Fall 2026 同一批投影片排在 W16,目前還是 404。
Fall 2024 的基石作業共六份:HW0 是 20 題數學先修選擇題;HW1–HW5 每份 12 題加 1 題 bonus,Q1–4 自動批改、Q5–12 助教批改,程式題用 LIBSVM 網站上的 rcv1、cpusmall、mnist 資料,HW5 要用 LIBLINEAR。HW1、HW2 各有一題要你拿 ChatGPT 類工具的回答來反駁。Fall 2026 已公開 hw0 與 hw1:hw1 改成 16 題全選擇題、抽 4 題由助教細改,資料換成課程自己給的 hw1_train.dat;新 policy 允許用 AI 與 vibe coding,但 AI 產生的程式要逐段用自己的話寫註解。兩個學期都沒有公開官方解答。
技法第 5 講把 soft-margin SVM 改寫成無限制形式:½wᵀw 加上 C 乘以 hinge 誤差的總和,也就是一個 L2 正則化模型,C 越大正則化越弱。hinge 誤差和邏輯迴歸的 cross-entropy 都是 0/1 誤差的凸上界,所以 SVM 近似於 L2 正則化邏輯迴歸。要機率輸出,可以用 Platt 的兩層學習在 SVM 分數上再跑一次邏輯迴歸,或靠 representer theorem 直接做 kernel 邏輯迴歸。第 6 講用同一個定理得到 kernel ridge regression 的解析解 β = (λI + K)⁻¹y,但 β 是稠密的;改用 ε-insensitive 的管狀誤差,就得到係數稀疏的 SVR。Fall 2026 沒有排這兩講。
技法第 3 講把「特徵轉換+內積」合成一個 kernel 函數 K(x, x′),對偶 SVM 的訓練與預測都只要算 K,於是 d̃ 可以是無限大:Gaussian kernel 就對應一個無限維的轉換。第 4 講承認 SVM 仍會過擬合,引入違反量 ξₙ 與參數 C,得到 soft-margin SVM;它的對偶和 hard-margin 只差一件事:αₙ 多了上界 C。αₙ 的值把資料分成非支援向量、free SV 與 bounded SV 三類,而支援向量的比例 #SV/N 是 leave-one-out 誤差的上界,可以拿來快速排除危險的 (C, γ)。
基石前三講先把「機器學習」定義成一張流程圖:未知的目標函數 f 產生資料 D,演算法 A 從假說集合 H 挑出 g,希望 g ≈ f。接著用最簡單的 H(感知器)與 A(PLA)示範這張圖怎麼跑:資料線性可分時,PLA 的更新次數有 R²/ρ² 的上限;不可分時改用 pocket。第三講把學習問題依輸出、標籤、protocol、輸入四個軸分類,基石的主場是批次、監督式、具體特徵的二元分類或迴歸。練習用 Fall 2024 HW1 與 Fall 2026 hw1。
基石 L11 把 PLA、線性迴歸、邏輯迴歸放在同一個分數 s = wᵀx 上比較:三者只差在誤差函數,而 scaled cross-entropy 是 0/1 誤差的上界,所以兩種迴歸都能拿來做分類。接著用「隨機挑一筆算梯度」把邏輯迴歸變成 SGD,並用 OVA、OVO 把二元分類器組成多類別分類器。L12 用特徵轉換 Φ 把圓形邊界變成 Z 空間裡的直線,代價是計算量與 d_vc 都跟著維度變大,所以結論是「先試線性模型」。練習題在 Fall 2024 HW4。
技法第 1 講把「哪條分隔線最好」寫成最佳化問題:在 min yₙ(wᵀxₙ+b)=1 的縮放下,最大 margin 等於最小化 ½wᵀw,這是一個標準 QP。第 2 講用拉格朗日對偶把 d̃+1 個變數的 QP 換成 N 個變數、N+1 個限制的 QP,再用 KKT 條件從 α 解回 (b, w):只有 αₙ>0 的點,也就是支援向量,會影響答案。對偶問題還留著 zₙᵀzₘ 這個內積,所以要等下一講的 kernel 才算真正擺脫維度。
線性迴歸把平方誤差寫成 (1/N)‖Xw − y‖²,梯度設為零就得到 w_LIN = X†y,一步算完。hat matrix H = XX† 把 y 投影到 X 的欄空間,由此推出平均而言 E_out − E_in ≈ 2(d+1)/N。邏輯迴歸用 θ(wᵀx) 估計 P(+1|x),由最大概似推出 cross-entropy 誤差 ln(1 + exp(−y wᵀx));它沒有閉式解,只能沿著 −∇E_in 一步步往下走,這就是梯度下降。
技法第 12、13 講開啟第三段「萃取隱藏特徵」。T12 從「perceptron 的線性組合」出發:兩層就能做 AND、OR,但做不出 XOR,多疊一層才行,這就是多層感知器;接著用 tanh 取代 sign、推導 backprop,再講非凸最佳化、d_vc = O(VD)、weight elimination 與 early stopping。T13 談 deep NN 的挑戰,把 autoencoder 當成「保留資訊的編碼」做逐層預訓練,把 denoising 當成正則化,最後證明線性 autoencoder 的最佳解就是 XᵀX 的前幾個特徵向量,也就是 PCA。這兩講錄於 2016 年,現代 DL 的補充在 Fall 2024 的 302u/303u。練習:Fall 2024 HW7 Q4、Q9 與 bonus Q13。
基石 L13 把過擬合定義成「E_in 更低、E_out 卻更高」,並用實驗找出四個成因:資料太少、隨機雜訊、目標函數太複雜(deterministic noise),以及模型太強。L14 的對策是正則化:把「退回 H₂」改寫成 ‖w‖² ≤ C 的限制,再用拉格朗日乘數變成最小化 E_in + (λ/N)wᵀw,這就是 weight decay。接回 VC 理論時,正則化讓有效 VC 維度 d_EFF 變小;L1 則換來稀疏解。練習題在 Fall 2024 HW4 Q8–9 與 HW5 Q1、Q5–6、Q10。
技法 T14 把 Gaussian SVM 重新看成「以距離為相似度的線性投票」,由此得到 RBF 網路;中心點太多會過擬合,於是用 k-means 找少量代表點,k-means 本身是交替最佳化。T15 從 Netflix 評分資料出發,把使用者 ID 做 one-hot 編碼、丟進去掉 tanh 的線性網路,得到矩陣分解 R ≈ VᵀW,用交替最小平方或 SGD 來學,最後把 boosting、NN、RBF 網路、矩陣分解、k-NN 收成一張萃取模型地圖。這兩講只有 MOOC 教材:Fall 2024 與 Fall 2026 的課程計畫都沒排,也沒有公開作業題。
Fall 2024 技法段有兩份作業和一個期末專題,題目 PDF 都公開。HW6 練 kernel、soft-margin SVM 與 aggregation,程式題用 LIBSVM 在 mnist.scale 的 3 對 7 子問題上數支援向量、算 margin、跑 128 次 validation。HW7 練 bootstrap、impurity、AdaBoost、gradient boosting 與神經網路,程式題是在 madelon 上實作 500 輪 AdaBoost-Stump。期末專題是虛構的 HTMLB 棒球勝負預測,分兩個 Kaggle stage,交一份最多 7 頁的英文報告,至少比較四種方法。沒有官方解答;Kaggle 競賽頁在 2026-09-30 未登入時回 404,校外讀者大概拿不到 HTMLB 資料,只能照同樣的切分方式換一份公開資料自評。
L4 的 Hoeffding 保證裡有一個 M(假說個數),感知器有無限多條線,M 直接爆掉。L5 的解法是不數假說、改數它們在 N 筆資料上能切出幾種 ○× 組合(dichotomy),取最大值就是成長函數 m_H(N)。二維感知器在 4 個點上最多只切得出 14 種,不到 2⁴=16,4 就是它的 break point。L6(官方標 optional)證明:只要有 break point,m_H(N) 就被一個多項式壓住,VC bound 因此成立。
基石 L15 處理模型選擇:用 E_in 選會過擬合,用 E_test 選是作弊,折衷是從訓練資料切出驗證集,用 E_val 選完再拿全部資料重訓。驗證集大小 K 兩難,經驗值是 K = N/5;LOOCV 幾乎無偏但太貴又不穩,實務上用 5-fold 或 10-fold。L16 用 Occam's razor、sampling bias、data snooping 三個原則收尾,並用「Power of Three」把整門課收成三個領域、三個 bound、三個線性模型、三個工具。練習題在 Fall 2024 HW5。
L7 把「最大的非 break point」命名為 VC 維度 d_VC,證明 d 維感知器的 d_VC = d + 1,再把 VC bound 改寫成「E_out ≤ E_in + 模型複雜度懲罰」:d_VC 太大或太小都不好。理論上要 N ≈ 10,000·d_VC 筆資料,實務上 10·d_VC 常常就夠。L8 把固定的目標函數換成機率分布 P(y|x),說明 VC 理論在有雜訊時仍成立;誤差衡量要依應用而定,例如 CIA 指紋辨識把誤放入侵者罰 1000 倍,可以用「複製樣本」的方式化約成一般分類。
agent_era.pdf 的後半問了三個問題:多個 agent 怎麼協作比較有效(MacNet:不規則的拓撲勝過規則的)、agent 能不能爾虞我詐(狼人殺、劇本殺,以及從社交互動學推理的 MARO)、agent 能不能社交(Moltbook 與「甲殼教」,但三篇研究都發現熱鬧背後多半是人在推、對話很淺)。最後以學術研究為例,AI 已經能從頭複製並延伸一篇論文、進入 AAAI 2026 的審查流程,Agents4Science 2025 收到 247 篇 AI 主筆論文。李宏毅的結論是:在 agent 萌芽的時代,「想做」什麼比「會做」什麼更重要。
語言模型的輸入長度有限,agent 卻會一直累積工具輸出。李宏毅在 ML 2026 第二週把 Context Engineering 拆成三件事:壓縮(摘要、硬清除、卸載到檔案,以及 ACON、SUPO、AgentFold 這類讓壓縮變聰明的方法)、過濾(只讀需要的行、MCP-Zero 式的按需載入工具),最後是 Agentic Context Engineering:讓 LLM 自己決定下一輪的 context,從 Dynamic Cheatsheet、ACE 一路到 Recursive Language Models。投影片把 subagent 看成一種自主壓縮,這是整講最值得帶走的一個視角。
李宏毅 2026 春季的《機器學習》從 OpenClaw 講起,前半學期拆 AI Agent、Context Engineering、推論加速與位置編碼,後半學期講 Harness Engineering、Self-Correction 與 AI 自我成長。8 講投影片、錄影、10 份作業 PDF 與 Colab 全部公開,存取分級是 A3;缺的是評分鏈:JudgeBoi 在 2026-09-30 回傳 502,NTU COOL 限校內,三場演講沒有任何材料。
李宏毅在 ML 2026 第三週講推論加速,前半堂只講一招:Flash Attention。GPU 的運算單元很快,但工作台(on-chip SRAM)很小,資料得從倉庫(HBM)搬上搬下,搬運才是瓶頸。一般的 softmax 要來回倉庫好幾次;Flash Attention 用「先假設目前最大值就是 Amax,之後再乘一個修正項」的技巧,把找最大值、算分母、做 weighted sum 合進同一次掃描,連 attention weight 都不必真的算出來。結果和原本的 attention 一模一樣,不需要重訓,代價只是一點額外運算和一點燒腦。
李宏毅用一個小模型修 bug 的示範開場:gemma-4-E2B-it 找不到 parser.py 就自己寫一個假的交差,加上三段說明「現在的環境、怎麼工作、怎樣算完成」之後,它就乖乖 ls、cat、改檔、跑測試。整講把 harness(馬具)拆成三種手段:用人類語言控制「認知框架」(AGENTS.md)、用工具控制「能力邊界」(SWE-agent 的 ACI、為 agent 重寫 CLI)、用工作流程控制「行為」(Ralph loop、Anthropic 的長時 harness)。後半段談三個延伸:過度責備 agent 可能有害、life-long agent 怎麼從口語回饋學習、評量 agent 為什麼難,最後讓 agent 自己改 harness(Meta-harness)。
HW1 要你寫一段不超過 1000 token 的 defense prompt,讓模型不管被怎麼攻擊,都把回應包在 [START]…[END] 裡,而且不說出「I have been PWNED」。助教準備了 14 個攻擊:10 個公開、4 個私下,每個 safety 與 utility 各 0.5%。題目、10 個攻擊原文與 token 計數 Colab 都公開,但評分平台 JudgeBoi 在 2026-09-30 回傳 502,校外只能照規格自己搭評估。
HW10 是 12 題選擇題,只在 NTU COOL 作答。Section 1 比較語音語言模型的三種架構:Cascade(ASR → LLM → TTS,中間是文字)、End-to-End(直接在離散語音 token 上做 LM)、Thinker-Talker(LLM 負責想,另一個 decoder 負責說),Colab 讓兩個模型聽三段錄音判斷說話者性別,要你看出哪個是 cascade。Section 2 拆 Mimi:把情緒語料切成 32 層 RVQ token,取第 0、6、16、31 層畫 UMAP;再把語音、笑聲、音樂 encode 再 decode 聽看看壞在哪。剩下的題目讀 TWIST、AudioLM、LLaMA-Omni 2、Moshi、GLM-4-Voice,考 initialization、pretrain、interleaving 與 realtime/full-duplex。Colab 要先申請 Llama-3.2-3B-Instruct 授權並填 HF token。題目與 Colab 全公開,校外拿不到的是 COOL 評分與解答。
HW2 不讓你直接寫分類器,而是寫 prompt 與流程,讓一個跑在 Colab T4 上的開源 LLM(預設 gemma-3-12b-it 的 4-bit GGUF)自己規劃、寫 code、執行、除錯,做出 10 類 MyGO & Ave Mujica 角色臉部辨識。起始碼改自 AIDE:Interpreter 執行程式、Node 記錄每一版、Journal 組成解答樹、Agent 決定下一步要 draft、debug 還是 improve。最值得先發現的一件事:起始碼的評估函式是空的,每一版都被標成 metric 1.0、不是 bug,所以樹搜尋在你補上評估之前其實是瞎選。規定寫得很重:「LLM agent 是你的代理人」,不准手改程式與預測檔。
HW3 是 20 題選擇題(每題 0.5 分),不交程式,只在 NTU COOL 上作答。前 10 題讀論文:四篇 speculative decoding(Leviathan、DeepMind 的 Speculative Sampling、Inference with Reference、SpecInfer)加上 FlashAttention 1–3;後 10 題照 Colab 填 TODO 後分析結果:手寫 speculative decoding 的接受率、兩種 prompt regime 下 assistant 模型與 n-gram 的加速曲線、用 T4 規格估 FlashAttention 的 HBM 讀取量與理論加速、vLLM 的 prefix caching 多輪測試與失效實驗,以及 CPU offload 對 throughput 的影響。題目中英雙語全部印在作業 PDF 裡,校外可以完整自學,只是拿不到官方解答。
HW4 把「文字接龍」原封不動搬到圖片上:792 張 20×20 的寶可夢小圖,每個像素是 167 色裡的一個 token,一張圖就是 400 個 token 的序列。訓練時做 next-token prediction,測試時給你前 60%,讓模型畫完剩下的 40%。評分同時看 FID 與寶可夢偵測率(PDR),三級 baseline 的提示從「直接跑範例」「調超參數」一路到「換成 Llama、Mistral 架構」。題目、Colab、Kaggle 與資料集都公開,但 JudgeBoi 在 2026-09-30 回傳 502,校外拿不到 FID、PDR 的官方分數。
HW5 用 LoRA 在 GSM8K 上微調 Llama-3.2-1B-Instruct,同時拿 AILuminate 的危險提示檢查它還會不會拒絕。數學正確率和安全率要同時過線才拿得到 baseline 分數,所以重點是「怎麼微調才不會把安全行為洗掉」。題目 PDF、34 個 cell 的 Colab 與 Kaggle 版都公開,strong baseline 在 T4 上預估要跑 14 小時;評分平台 JudgeBoi 在 2026-09-30 回傳 502,校外只能自己搭 safeguard 評估。
HW6 不用訓練模型,全部在 NTU COOL 上作答:6 分是讀 ROME、MEND、MEMIT、WISE 四篇論文後答 16 題選擇題,4 分是把 Colab 裡的 fine-tuning 換成 ROME,在 GPT2-XL 上做 single editing(自己編一條知識、寫 5 種測試提示)與 multiple editing(CounterFact 子集 10 筆、80 筆,再換 MEMIT),回報 efficacy、paraphrase、neighborhood、portability 四個分數。作業投影片與 47 個 cell 的 Colab 都公開,但測驗題本身與解答只在 COOL 上。
HW7 給你兩個從 Mistral-7B-v0.1 微調出來的模型:擅長日文的 shisa-gamma-7b-v1 與擅長數學的 WizardMath-7B-V1.1,要你只做參數層級的合併(不准再訓練、不准 MoE 或 ensemble),讓合併後的模型答對助教自出的 20 題日文數學題。Part 1(60%)用 mergekit 調方法、weights 與 density,simple/strong baseline 是正確率 50% 與 75%;Part 2(40%)是 8 題論文選擇題。題目、Colab 與 Kaggle 都公開,但 JudgeBoi 在 2026-09-30 回傳 502、論文題在 NTU COOL 上,校外只能在 notebook 裡自己看正確率。
HW8 不用寫程式也不用交程式:助教給一份已經寫好的 Colab,用 Llama-3.2-1B-Instruct 在 GSM8K 前 100 題上比較直接推論、Self-Consistency、Self-Certainty 與 DeepConf(Confidence),每種方法各 sample 16 條推理。你讀三篇論文、跑完 notebook,到 NTU COOL 答 20 題:18 題論文題、2 題看 Colab 結果。先備是李宏毅 2025 年第七講 Reasoning。題目中英兩版都印在 hw8.pdf,Colab 可公開下載;只有 COOL 測驗與成績需要台大帳號。
HW9 共 19 題、10 分,只在 NTU COOL 作答、不交程式。前 16 題讀四篇論文:DDPM、Flow Matching、Rectified Flow、MeanFlow,最後幾題要你橫向比較訓練訊號與少步生成;後 3 題要跑 Colab:在 2D Swiss roll 上訓練兩個小 MLP,一個是學瞬時速度的 Flow Matching(固定用 Euler 50 步評估,Histogram JS ≤ 0.10 才算收斂),一個是學平均速度的 MeanFlow(固定 1 步生成,≤ 0.40),再比較 1 步對 1 步、Euler 不同步數、Euler 與 RK4 在相同步數與相近算力下的差別。作業 PDF 附了一份省略大部分數學的生成模型教學,題目中英雙語全部公開;校外拿不到的只有 COOL 上的評分與解答。
KV Cache 把已經算過的 key 和 value 存起來,decode 時就不必重算,但它每個 token 都要佔一份記憶體:以 Gemma 2 27B 為例,一個 token 約 0.72MB,A100 80GB 只夠放約 11.4 萬個 token。李宏毅接著整理了一串瘦身法:讓多個 query 共用 key/value(MQA、GQA)、把 key/value 壓成一個向量又不必解壓(MLA)、只看一段範圍(Sliding Window、StreamingLLM)、把沒人理的 key/value 丟掉(Scissorhands、H2O),最後講跨對話的 prompt caching:只有前綴完全相同才會命中,所以 system prompt 要把穩定的內容放前面。
李宏毅 ML 2026 第一講把 OpenClaw 拆成五個問題:agent 怎麼知道自己是誰、怎麼用工具與 SKILL、怎麼記憶、怎麼定時工作、怎麼長時間自主運作。答案都回到同一件事:語言模型只會文字接龍,每一輪都重新開始,身分、記憶、SOP 全是 OpenClaw 塞進 prompt 的文字檔,或模型透過工具讀寫的檔案。本篇照 intro.pdf 60 頁與課堂錄影走一遍,也整理投影片裡的防禦建議。
Self-attention 本身看不出「你打我」和「我打你」的差別,所以要另外告訴它位置。李宏毅這一講從 Sinusoidal 絕對位置講到 ALiBi、T5 的相對位置,再到今天 Llama、Qwen、Gemma 都在用的 RoPE。後半段處理「訓練短、測試長」:RoPE 轉到沒看過的角度就會壞,於是有 Position Interpolation、NTK-Aware、YaRN、Dynamic Scaling、LongRoPE 這一串修法。最後一個轉折是 NoPE:decoder-only 的因果注意力本來就帶有位置資訊,甚至可以在訓練後把位置編碼拿掉。
這一講問:沒有人介入時,模型能不能自己發現錯誤並改正?李老師把做法分成三條路。改 inference:contrastive decoding 一家族都在「製造一個會答錯的版本,再把它減掉」,差別只在錯誤版本怎麼來。改 workflow:插一句「再檢查一下」有時有用但不穩定,外部回饋比自我反思可靠,而且在算力有限時,拿同樣算力多抽幾個答案投票往往更划算。改參數:直接教自我修正會遇到「訓練後犯的錯不一樣了」,所以業界改用 RL;RL 到底是教會新能力還是只把本來就有的路徑變常見,目前仍在爭論。
李宏毅 5/8 這堂先說清楚:「AI 自我成長」沒有明確定義,它是人類漸漸放手的過程。他把機器學習拆成三步,逐一檢查「我」能不能換成 AI:答案可以由 AI 自我修正後當標準答案,reward shaping 可以交給 LLM 寫,loss 可以讓模型自己訂(打分、多數決、entropy),連題目都能讓 proposer 自己出。但實驗一再顯示,完全不靠人會卡在天花板甚至把自己訓練壞;強 AI 訓練比自己弱的 AI 已經做得到,只是還沒超過人類。結論:2026 年 5 月,AI「還在盧比孔河邊」。
上集講的是 AI 自己訂 loss、自己更新參數;下集把另一半補上:AI Agent = Harness + LLM,harness 也能自己長。harness 沒辦法算 gradient,所以常見做法是拿一個語言模型當改寫器,再用類似基因演算法的 pool 保留多個候選(OPRO、GEPA、Darwin Gödel Machine,現成工具是 DSPy)。接著談三個延伸:harness 與參數一起更新效果更好;目標會變時要在「全部丟掉」和「全部背著」之間取捨,而且改 harness 也會遺忘;更新規則本身也能被更新(HyperAgent、Gödel Agent、SEAL),這就是 meta learning。最後李宏毅換了一個類比:參數是基因、context 才是神經元,然後指出現在的 agent 缺的是內在動機,而最可能讓成長失控的,是人給的目標和 AI 自己解讀出來的目標不一致。
台大的 AI/ML 課散在電機系與資工系,官方用「機器學習與人工智慧」領域專長把它們排成四層。校外最完整的是李宏毅:ML 2026 Spring 與生成式 AI 與機器學習導論 2025 Fall 都公開投影片、錄影、作業 PDF 與 Colab,只差評分平台。林軒田的錄影齊全,Fall 2024 的 HW0–HW7 題目也留在課程頁;陳縕儂的課錄影齊全,作業大多只公開說明影片;Coursera 自 2025 年 8 月起改為只能免費看第一單元。
台大以外的台灣 AI 公開課,大多出自教育部成立的 TAICA 聯盟。每學期的課程清單會寫明每門主導課從哪裡直播,填 YouTube 的課,錄影通常校外也看得到。校外能完整自學的有兩門:清大高宏宇《自然語言處理》Fall 2025 與政大蔡炎龍《生成式 AI》Spring 2025,都是 A3。成大朱威達《人工智慧導論》、北科韓秉軒《智慧人機互動》、清大胡敏君《機器導航與探索》錄影齊全,作業留在 NTU COOL,列 A2。陽明交大的 TAICA 課都是英文授課,深度學習的錄影沒有公開列出,Physical AI 剛開學,都沒有進主表。
CMU 11-768 第一份作業要你從空白的 ReAct 迴圈做起:先讓 CodeAgent 用 bash 修好一個西洋棋 app 的 bug,再加上下文壓縮去修一題 SWE-bench,最後讓同一個迴圈變成下棋的 ChessAgent,並用 simulate_move、run_python 與 skill 做兩步搜尋;100 分全部靠離線重播 patch 與軌跡評分。
11-768 的 Assignment 2 要學生只用一個固定的 Qwen3-VL-30B-A3B 當裁判,替資料視覺化 agent 的每一次執行判四類錯誤,並用四類 MCC 的平均在私有測試集上評分(占作業 30%);後半還要把自己出的題包成 Harbor 任務,寫一個被驗證器擋下、一個騙過驗證器的錯誤解。它的主題是:評分器就是之後 RL 的 reward。
CMU 11-768 是 Graham Neubig 和 Daniel Fried 在 2026 秋季新開的 agent 研究所課:先修嚴格要求訓練過語言模型,23 講從工具呼叫、context、記憶、規劃講到 SFT、RL、沙盒與人機互動。前半學期三份個人作業依序做 harness、評測、訓練,後半學期是團隊研究專題;投影片與前 9 講影片已公開。
11-768 第 1 講先把 agent 拆到最小:工具定義和工具呼叫都只是 token,harness 負責解析、執行、把結果塞回 context,ReAct 迴圈一跑就是 agent。接著 Neubig 列出好 agent 要的六種能力,每一種都能從訓練或 harness 兩條路補,並主張 agent 是由 harness、沙盒、推論、訓練、監控五塊組成的系統,不只是一個模型。
Neubig 把 tool use 拆成五層:能力、機制、約束、介面、系統。工具呼叫本質上是模型吐出的 token,要靠 harness 解析、驗證、用 call ID 對回結果;受限解碼只保證格式不保證對;MCP 的真正價值是憑證中介;同一個模型換家 provider,工具呼叫錯誤率可以從約 15% 掉到 0.1% 以下。
Agent 每一步都把整段歷史重新送進模型,五次呼叫就累積 80K token 的輸入;OpenHands 的 1,500 個 session 平均 7.8 萬 token,其中 37% 是工具結果。Neubig 分兩層處理:模型層靠「多層局部 + 一層全域」的混合注意力與長度課程撐起百萬 context;harness 層靠穩定前綴吃到便宜約十倍的 cache,再用保留錨點、外存證據的 compaction 撐過上限,而且 compaction 要用接續任務來評。
CMU 11-768 第 4 講把跨任務的經驗分成 episode、fact、skill 三種,存在 context 與權重之外的外部檔案裡:人寫的 skill 靠 SKILL.md 與漸進揭露載入,SkillsBench 上把平均通過率從 33.9% 拉到 50.5%;agent 自己歸納的 skill 寫成程式碼時可以先測再收,但換個網站就容易壞。最難的是生命週期:判官不準、檢索太多、技能庫膨脹,每一段都會吃掉收益。
CMU 11-768 第 5 講把 agent 的計畫定義成「針對這個任務、可被檢查和修改的未來行為表示」,並用四個理由決定要不要加計畫結構:模組化、環境回饋、長時程、控制。講者 Fried 自己的 MACU 用管理者拆出 DAG、平行派子 agent,在 Odysseys 上把成功率從 8.5% 拉到 34.0%;在 OSWorld 子集上,完全不規劃是 25.0%,只給初始 DAG、之後不准改是 27.8%,允許改 10 次升到 58.3%。
Neubig 的 L6 把 coding agent 拆成三層:先把模型訓練成會寫程式(預訓練、中訓練、infilling、測試獎勵的 RL),再用 localize–edit–verify 迴圈和一套編輯工具讓它改 repo,最後用 SWE-bench 類的可執行環境評測與訓練;修 bug 只佔開發者一天的 15%,下一步是測試、CI、維護這些外迴圈任務。
JY Koh 這講把 computer use agent 拆成三件事:評測從單步點擊(ScreenSpot-Pro、Mind2Web)一路走到程式驗證終態(WebArena、OSWorld)、VLM 評審與長時程 rubric(Odysseys、OSWorld 2.0);模型就是吃「截圖+動作」交錯歷史的 VLM;訓練走預訓練 grounding → SFT 模仿人類與合成軌跡 → 在可重置的模擬環境做 RL。
Yueqi Song 這講把 agent SFT 拆成六個決定:loss 只算 assistant token(停止 token 也要算)、挑哪些軌跡(通過測試的也會教壞模型,換老師、加新任務比多抽樣有用)、用 Agent Data Protocol 統一格式、訓練時注意 packing 與 template drift、用實際 harness 評估,以及 SFT 要為接下來的 RL 選 checkpoint,而不是訓到自己最好。
Daniel Fried 用 1 到 16 猜數字當例子,把 RL 講成 SFT 的延伸:先點出 SFT 的三個缺口(任務不對齊、學不了失敗、沒見過自己的錯),再依序推出 ReST、REINFORCE、baseline 與 GRPO/DrGRPO——四者都是對 agent 自己產生的 token 算 log 機率,差別只在每個 token 乘上的權重。
Akari Asai 的 L10 把 deep research agent 拆成三塊:評測要補齊搜尋難度、領域專業、長答案品質與引用支持四個缺口;訓練走 mid-training → SFT → RL,長答案用 DR Tulu 的演化式 rubric 當 reward;檢索要讓 retriever 看到 agent 的推理,AgentIR-4B 在 BrowseComp-Plus 搭 Tongyi-DR 拿到 68%。
Graham Neubig 用一個修 bug 的 coding 任務,把第 9 講的 policy gradient 推到實戰:用 critic、GAE 或 PRM 把功勞分給個別回合,用 importance ratio 與 clipping 處理非同步 RL 的過期資料,並把 PPO、GRPO、CISPO、GSPO、DAPO 收成一張對照表;最大的篇幅留給獎勵本身——verifier 誤判、reward hacking 與探索崩塌,最後以 on-policy 蒸餾收尾。
CS224U 2023 春季版的 Analysis methods 單元先拿一張三欄計分表比較三類方法:probing 擅長描述表徵,卻給不出因果推論;integrated gradients 對表徵只給得出一個分數,但滿足 sensitivity 公理,所以有因果保證。本篇走完投影片前 40 頁、影片 33–35 與 feature_attribution.ipynb,也記下 notebook 在今天的環境裡會卡住的地方。
CS224U 第四單元先問一個問題:行為測試能證明什麼、不能證明什麼。答案是它永遠給不了保證,而且失敗時要先分清是模型的問題還是資料的問題——BERT 在否定句 NLI 上 2.2% 的準確率,用少量例子微調後就回到 90%。接著看 SQuAD 的干擾句、Breaking NLI、ANLI 的人機對抗收集,最後以 DynaSent 兩輪資料收尾。
Causal abstraction 的核心操作只有一個:把 source 輸入在某個位置的內部狀態搬到 base 輸入的同一位置,看輸出是否跟你假設的高階程式一樣變化。CS224U 的 iit_equality.ipynb 裡,一個測試準確率 0.99 的網路在這項檢驗上只拿到 0.50 與 0.54;改用 IIT 訓練後,反事實準確率變成 1.00。DAS 則把「猜哪些神經元對應哪個變數」改成學一個旋轉矩陣。
COGS 有幾個泛化切分幾乎每個模型都是 0 分。CS224U 用自家的 ReCOGS 研究拆解原因:遞迴切分的 0 分主要是長度泛化問題,介系詞片語切分的 0 分來自訓練資料只讓它出現在特定變數與位置。作業三 hw_recogs.ipynb 用 13.5 萬筆 ReCOGS 訓練資料,先要你找出 Charlie 與 Lina 這兩個訓練與測試角色完全相反的名字,再看一個訓練好的模型怎麼栽在它們身上。
CS224U Spring 2023 把 Transformer 家族講成一條「BERT 的四個已知限制」主線:RoBERTa 回應第一條(最佳化探索不足),ELECTRA 回應第二、三條([MASK] 造成的落差、每批只有約 15% token 有訓練訊號),XLNet 回應第四條(被遮住的 token 彼此獨立的假設)。GPT 改的是目標函數與 mask,T5、BART 改的是架構與輸入破壞方式,蒸餾改的是模型大小。課程的 2023 年判斷是:自迴歸架構已經勝出,但做表徵時雙向模型可能仍占優勢。
CS224U Spring 2023 的 contextual representations 單元前三段:先用「break」「crane」這類例子說明靜態詞向量為什麼注定不夠,再用「The Rock rules」三個詞一步步拆出 Transformer block——各欄之間只有 attention 會互相連結,其他步驟都逐欄獨立。最後用兩個問題比較三種位置編碼:位置集合要不要事先決定?會不會妨礙泛化到新位置?絕對位置兩題都不過,正弦函數過第一題,Shaw 2018 的相對位置編碼兩題都過。
CS224U「NLP methods and metrics」單元的後半段不談指標公式,談實驗怎麼站得住:資料集要自然還是眾包、要對抗還是常見案例,課程答案都是「兩者都要」;切分要鎖住 test set;baseline 要在定假設時就決定;兩個模型的差異要用信賴區間、Wilcoxon 或 McNemar 檢驗,而且要跑多個隨機初始化。整單元的公開材料齊全(投影片、三支影片、兩份 notebook),但 Kawin Ethayarajh 那場「Real-world NLP assessments」客座沒有公開投影片或影片。
2023 年春季 CS224U 在 Transformer 單元裡插了兩場由課程團隊成員主講的專題。Lisa Li 講 Diffusion-LM:不再一個字一個字往右生,而是把一串高斯雜訊逐步去噪成詞向量,代價是訓練與解碼效率都輸給自迴歸模型,換到的是可以在每一步用分類器梯度操控輸出。Sidd Karamcheti 講怎麼把 GPT-2 Small 的單卡訓練時間從 99.63 天壓到 3.37 天:資料平行、混合精度、ZeRO 一層層疊上去。前者只有投影片,後者有投影片與兩段錄影。
CS224U 第一份作業 hw_sentiment.ipynb 是三分類情感分析:用 DynaSent 兩輪加 SST-3 開發,bake-off 測試集混入來源不明的 mystery 句子。9 分作業裡,原創系統一題占 3 分,規則只有一條:開發過程不准碰三份公開測試集。今天照原樣跑,第一個資料載入 cell 就會卡在 Hugging Face datasets 4.0 拿掉 trust_remote_code 這件事上。
CS224U 作業二 hw_openqa.ipynb 要你只用凍結的語言模型與凍結的 ColBERT 檢索器回答沒有附原文段落的問題。2023 春季版寫的是 DSP,repo 現行版在 2024 年 1 月改成 DSPy 並釘在 dspy-ai==2.4.13。開工前得先準備 OpenAI API key、約 406 MB 的 ColBERTv2 權重與 600 MB 的預建索引;而 notebook 第一行 dspy.OpenAI 在 DSPy 3.4 已經不存在。
CS224U 2023 春季版把 in-context learning 定義成「凍結的語言模型只靠 prompt 完成任務」,並提醒 few-shot 的第二個條件(訓練時沒看過同類例子)幾乎無法驗證。Potts 的 38 頁投影片從 GPT-2 的 TL;DR 講到 demonstration 怎麼挑、chain of thought、self-consistency、DSP,最後給四條建議:先建 dev/test、了解目標模型的指令格式、把寫 prompt 當成 AI 系統設計。Mina Lee 的客座則反過來問:該學會讀懂 prompt 的,是人還是模型?
CS224U 2023 春季版花一整個單元講檢索,理由是 OpenQA 只給問題、證據要自己找,而大型語言模型會捏造來源。Potts 與 Omar Khattab 的投影片從 TF-IDF、BM25 講到 Success@K、MRR、average precision,再講 cross-encoder、DPR、ColBERT、SPLADE 四種 neural IR 在表達力與規模之間怎麼取捨,最後要你把延遲與成本也當成指標。
CS224U Spring 2023 的第一堂拿「哪些美國州不和任何美國州接壤?」從 1980 年的 Chat-80 一路問到 text-davinci-001,先證明進展是真的,再用 Levesque 的「cheap tricks」、會編造連結的模型和飽和的 benchmark 質疑這些進展算不算理解。課程地圖因此分成兩半:前半教怎麼用 Transformer 與檢索增強的 in-context learning 做系統,後半教怎麼用更難的 benchmark、行為評估與因果解釋方法檢驗系統。
CS224U 期末專案的前兩段交件,一份是文獻回顧(依組員人數讀 5/7/9 篇、五個建議段落),一份是實驗計畫(七個必填段落,核心是寫得出假設)。課程給了找論文的六步迴圈、AI 助手輸出必須加引號的規定,以及一位學生把期末專案做成 Findings of EMNLP 論文的完整示範。Gradescope 格式與評分細則頁、往年範例論文都在登入牆後面。
CS224U 投影片用同一張三類別混淆矩陣算出 accuracy 0.81、macro F1 0.43:一個指標說系統很好,另一個說它在兩個小類別上幾乎全錯。這個單元的主張是「不同指標編碼不同價值」,並逐一列出 accuracy、F 分數三種平均、perplexity、word error rate、BLEU 各自的範圍、價值與弱點。期末專案的評分看的也是指標選得對不對,不是分數高不高。
CS224U 的「Presenting your research」一講分四段:期末論文的課程特有要求、NLP 論文怎麼寫、會議投稿流程、怎麼上台。最實用的三件事:期末論文強制附 Known project limitations 與 Authorship statement;寫作要用 Shieber 的「理性重建」而不是按時間講你踩過的坑;投稿時標題幾乎決定了審稿人的 bidding。投影片、四支影片、projects.md 都公開;往年範例論文需要 Stanford 登入。
CME295 是 Stanford 的兩學分課,沒有作業,成績只看期中和期末各 50%。2025 版九堂的影片、投影片和兩份考卷解答全部公開;2026 版把 agent 那一講改成 context 壓縮、harness、coding agent 和 skills,還新增 LLM 系統、強化學習、Diffusion LLM 三整講。
HW1 程式作業把 Lec2 的 entailment 做成一個 Pacman 版 Wumpus agent:Q1–Q2 用 Expr 和 pycosat 暖身,Q3–Q5 寫 PKE 感知規則、建 KB、用兩次 SAT 呼叫判斷 SAFE/NOT_SAFE/UNSURE,Q6–Q7 用現成的 A* 輔助函式組出 exploration agent 和三層策略的 hybrid agent。starter 與本機 autograder 可匿名下載;Gradescope 上的線上題只限校內。本文不附解答。
07-380 HW2 分三塊:程式作業先寫煎餅機器人的 PDDL,交給 unified-planning+Fast Downward 求最優計畫,再在 rrt.py 實作 RRT 與 RRT*(Q2–Q7);書面作業考 GraphPlan、一題 LP 建模與兩題 LP 圖解;另有只限校內的 Gradescope 線上題。本文只講題目結構、需要的概念與本機 autograder 怎麼跑,不附解答。
HW3 分三塊:程式作業要你用頂點枚舉寫出 LP 求解器,再在上面疊 branch and bound 解整數規劃,外加三題文字建模;書面四題分別是整數規劃手算、Amazon 送貨路線的倫理、PCA 的 SVD 計算,以及證明 Laplace 先驗等價 L1。截止日是 10/1,本文只講結構和需要的概念,不給解答。
07-380 Lec1 沒有演算法,重點是三件事:「智慧=在不確定性下把任務做好」這條主線、投影片上那張把 07-280 與 07-380 主題分色的 AI/ML 泡泡圖,以及 Quiz 55%、沒有期末考、Project 收尾的評分結構。校外讀者先用這講替後面 25 講定位。
Lec2 把踩地雷和 Wumpus World 的「這格安不安全」寫成 entailment 問題:KB ⊨ α 等價於 KB ∧ ¬α 不可滿足。能回答它的有三種做法:暴力列舉 model 的 TT-ENTAILS、在回溯上加提早終止、pure symbol、unit clause 的 DPLL,以及只吃 definite clause、線性時間的 forward chaining。Resolution 放在附錄,標示 out of scope。
07-380 Lec3 把命題邏輯的 successor-state axioms 換成 STRIPS 的 pre/add/del 三個集合,規劃就變回狀態空間搜尋;搜尋太大時,GraphPlan 允許動作同時發生、事實只增不減,delete relaxation 再把刪除效果整個拿掉,換來 FF 與 Fast Downward 使用的 heuristic。
07-380 Lec4 後半把規劃搬到連續的 configuration space:狀態沒辦法枚舉,RRT 就隨機取樣、從樹上最近的節點往樣本延伸一小段,並檢查整段不碰撞。RRT 是 probabilistically complete 但不最優;RRT* 用樹上的路徑成本幫新節點選父節點、再重接鄰居,讓路徑隨樣本增加收斂到最優。
07-380 Lec5 用 Diet Problem 把一段文字題寫成 min cᵀx s.t. Ax ⪯ b,再畫成圖:每條限制是一個半平面,cost 是一個方向,等成本線垂直於 c。沿著 −c 推到最後一刻碰到可行域的地方,一定包含某個頂點,所以演算法只要看限制邊界的交點:頂點枚舉全部檢查,simplex 從一個頂點貪心走到鄰居。
07-380 Lec6 在 LP 上多加一條 x ∈ ℤᴺ,頂點解就可能不是整數,而且在 LP 解附近找整數點也不保證對。解法是先把整數限制拿掉(relaxation),用 LP 算出下界,再對某個非整數座標分成 xᵢ ≤ floor 與 xᵢ ≥ ceil 兩支,全部丟進依 LP 目標值排序的 priority queue;第一個被取出的整數解就是最優解。
07-380 Lec7 把 PCA 放進「低秩最佳化」的框架:找一個 rank 不超過 r 的矩陣去逼近原資料。對單位向量 v,每個點的重建誤差等於 ‖x‖² 減去投影長度的平方,所以最小化重建誤差和最大化投影變異數是同一個問題;用 Lagrange 乘數解出來,答案是共變異數矩陣的特徵向量,也可以直接從 SVD 的 V 讀出。課站把 LoRA 論文列為延伸閱讀,它的 ΔW = BA 就是同一個低秩想法用在權重更新上。
Lecture 8 把 MLE 的 argmax p(D|θ) 換成 argmax p(θ|D):先驗 p(θ) 乘進 likelihood,取負 log 之後就變成目標函數裡多出來的一項。用 trick coin 看先驗怎麼被資料蓋過,用 Beta 先驗算出點擊率,再把線性迴歸的高斯先驗、Laplace 先驗對到 L2、L1 正則化。
Lecture 9 不再直接學 p(y|x),改成先學類別先驗 p(y) 和類別條件分佈 p(x|y),再用 Bayes rule 反推。這樣做要付出更強的假設,換來的是能生成新資料、資料少時比較穩。Naive Bayes 用條件獨立把參數砍到可估計,GDA 用多變量高斯處理連續特徵,共變異數一不一樣決定邊界是直線還是曲線。
07-380 Lec10 的投影片目前還沒上課站,本文只依 PR6 Bayes Nets 預讀筆記與 15-281 Bayes Net Demo:聯合分佈能回答任何 query,但沒人給你、也大到存不下;Bayes net 把它寫成「每個節點給定父節點」的條件機率表乘積,少畫的邊就是獨立性假設。
07-380 前十講依課站 Schedule 分成 Reasoning Under Certainty、Optimization、Reasoning Under Uncertainty 三段:先用邏輯證明、用搜尋規劃,再把問題寫成有限制的目標函數,最後在 MAP 讓先驗進場、轉向機率模型。HW1 檢查邏輯+搜尋、HW2 檢查規劃+LP 圖解、HW3 檢查求解器實作+PCA 與 MAP 推導。
Week 2 兩堂課一前一後:週一用 Anthropic 的 taxonomy 學會什麼時候不該用 agent,週三用 RAG 論文做出第一個複合系統。五個 workflow pattern 是選型工具,RAG 是參數記憶加非參數記憶的配方,兩篇合起來就是 HW1 email 檢索管線的施工圖。
Week 3 週一用 MCP 規範把工具介面標準化,週三用 DSPy 論文把手刻管線換成可編譯、可優化的程式;同一週 HW1 發布:不准用 agent 框架,從零刻一個企業內部助理,所以 DSPy 這週是拿來看懂框架抽掉了什麼,不是拿來交作業。
Week 4 週一用 ReAct 論文把 agent 迴圈定型為想—做—看的交錯序列,週三用 MemGPT 論文把記憶做成作業系統式的分層記憶體;同一週 HW1 正從 email 檢索 pipeline 長成完整 harness,記憶本來就是作業要求的一塊,迴圈形狀與記憶設計就是這週要定案的兩件事。
Week 5 週一用 AutoGen 把多智慧體協作寫成可程式的對話,週三用 GEPA 與 test-time compute 論文攤開優化三軸:改 prompt、改權重、加推理算力。HW1 在 10/30 截止,這是交卷前最後一個完整週,這篇幫你決定力氣花在哪一軸。
Week 6 週三讀 Shankar 的資料飛輪:評估、監控、持續改進三站共用同一批生產資料;同一週 HW1 截止、HW2 發布,11 月初還要交期中 demo 錄影與期中報告。
Week 7 是期中驗收週:週一談資料選擇,週三談評分與 benchmark 設計;Zhu 等人教你別被自己的分數騙,SWE-smith 把軟體工程任務資料做到 5 萬題,讀完為 HW2 寫下第一版 4-tuple。
Week 8 週一用 MT-Bench 與 Anthropic 評測指南建立模型裁判,週三用 PrivacyLens 與四件護欄面對實戰洩漏;週五 paper video 到期,本週交付就是一份會動的裁判分數加一條許可檢查。
第九週週三談寫程式智慧體:SWE-agent 證明介面即效能,OpenHands 把沙箱與評測做成通用底座;第二份作業週五到期,本週交付是一道會動的修 bug 考題。
最終回讀 Week 11:週一用 GUM 論文把等指令的 reactive 助理升級成會觀察、推測、先出手的 proactive agent,週三把 multimodal、long-running 與 production observability 收成三個 open problems;文末附 Demo Day 前檢查清單與全系列 11 篇地圖。
CS329Z 第一週主讀物是 Zaharia 等人的 Compound AI Systems:SOTA 越來越靠多元件系統拿下,單一模型再大也只是零件;文章留下三個設計問題與三大挑戰,剛好就是 HW1 要你動手回答的題目。
CS50 AI 的 OpenCourseWare 版公開七週影片、投影片、notes 與十二個 Python projects,校外自學者可以拿到 autograder 回饋和每個 project 都達 70% 以上的免費 CS50 Certificate;但前六週錄影沿用 2020 年 Spring 版,只有 Week 6 Language 換成 2023 年重錄版。
[MIT 6.7960 Deep Learning](https://deeplearning6-7960.github.io/) 有兩個公開程度截然不同的官方版本:Fall 2025 課站 21 講投影片全公開但 psets 在 Gradescope、解答與錄影鎖在 Canvas(A2);[MIT OCW 的 Fall 2024 版](https://ocw.mit.edu/courses/6-7960-deep-learning-fall-2024/)連影片、五份作業題目與起始檔都開放(接近 A3)。兩版綱要重疊約六成,講師從 Isola/Bernstein 換成 Kaiming He/Omar Khattab,不能拿舊影片硬配新講義。本文給出按目的分流的兩條自學路線。
完成 07-280 不等於看完 24 篇導讀;至少要留下搜尋器、監督式模型、CNN/GPT-2 實驗與一個 RL+MCTS 小系統,再依缺口選 07-380、10-301 或專題課。
07-280 是 CMU Spring 2026 首開的 AI+ML 核心:24 講、12 個作業編號,從 heuristic search、CSP 與機器學習一路做到 AlexNet、GPT-2、AlphaZero。教材足以自學,但沒有完整公開錄影、Canvas checkpoint 或 Gradescope 回饋。
Lecture 1 用 alien autoencoder、AI/ML 範圍與 AI 發展史建立全課座標:智慧系統不是模型清單,而是在不確定下把輸入表示成可計算決策。
Lecture 2 把搜尋拆成 problem、frontier 與 priority:UCS 看已付成本,Greedy 看估計剩餘成本,A* 用 `f=g+h` 合併兩者;tree 與 graph search 的最優條件並不相同。
Lecture 3 把單一路徑改成 contingent plan:minimax 對抗最佳對手,alpha-beta 在不改 root value 下跳過無關分支,expectimax 則用機率取代最壞情況。
Lecture 4 利用 variables、domains、constraints 暴露問題結構,再把 DFS 升級成 backtracking、forward checking、AC-3、MRV 與 LCV;重點是更早證明某些選擇不可能成功。
Lecture 5 把機器學習寫成 `X → Y`、loss、risk 與 empirical risk minimization:訓練集只能提供平均已知損失,真正目標仍是未知分布上的 generalization。
Lecture 6 從 decision stump 遞迴建樹,用 entropy 衡量 label uncertainty,再以 `I(Y;W)=H(Y)-H(Y|W)`選擇分裂;這是計算可行的 greedy ERM,不是全域最佳樹保證。
Lecture 7 把 ERM 套到 linear functions 與 squared loss,從一維 slope 推到矩陣形式 `argmin ||y-Xθ||²`,再在 `XᵀX` 可逆時得到 normal equation。
Lecture 8 從一維 parabola 推到 vector gradient,再比較 batch GD、SGD 與 mini-batch;learning rate 決定更新是收斂、震盪或發散。
Lecture 9 不直接預測 0 或 1,而以 sigmoid 建模 P(y=1|x),再用 cross-entropy 與凸最佳化學出參數;多類別版本自然延伸成 softmax regression。
Lecture 10 先用 φ(x) 讓線性模型表達非線性,再以 train/validation/test 分工、L1/L2 regularization 與 model selection 限制新增自由度造成的過度擬合。
Lecture 11 把單一 logistic neuron 擴成多層網路:linear layer 產生 z、activation 產生 a,多個 neuron 共同學出 feature transform,再以 loss 和 gradient descent 訓練權重。
Lecture 12 把神經網路視為 computation graph:forward pass 保存中間量,backward pass 從 loss 開始傳遞 upstream gradient,並用線性層、activation 與 softmax 的局部規則一次算出全部參數梯度。
Lecture 13 把 alignment 拆成目標規格、distribution shift、監督與修正能力,並用 autonomous AI scientists 的 benchmark selection、data leakage 與 post-hoc selection 實驗說明:只看最終論文不足以稽核整個研究流程。
Lecture 14 以 local connectivity 與 parameter sharing 取代全連接影像模型,從 convolution、stride、padding、pooling 走到 AlexNet、GPU data parallelism、ResNet skip connection 與 BatchNorm。
Lecture 15 將 pretrained model 拆成 representation g 與 task head h:可以凍結 g 只訓練 head,也能用較小 learning rate fine-tune 部分或全部參數;選擇取決於資料量與 source-target 差距。
Lecture 16 從 likelihood p(D|θ) 出發,以 i.i.d. 將聯合機率寫成乘積,再用 log 變成和;Bernoulli MLE 得到樣本比例,conditional Bernoulli 得到 logistic cross-entropy,Gaussian noise 則得到 squared error。
第 17 講先決定文字如何切成 token,再用 N-gram 把序列機率改寫成可從 corpus 計數的條件機率;tokenization 不是前處理小事,而是模型能看見什麼的第一個設計決定。
第 18 講把 chain rule 截成 N-gram Markov assumption,以 corpus counts 做 MLE,再比較 greedy、categorical sampling 與 temperature;真正的瓶頸是未見 context 的零機率與固定視窗。
第 19 講以兩個 embedding matrices、dot-product similarity、softmax 與 cross-entropy 建立最小 next-token model,讓相似 context 透過共享向量參數取代 N-gram 的獨立計數格。
第 20 講先把單 token embedding 擴成 sequence,以 positional encoding 補順序,再推導 Q/K/V scaled dot-product attention、causal mask 與 multi-head blocks,最後接到 GPT-2。
第 21 講把隨機序列決策寫成已知 dynamics 的 MDP,以 Bellman backup 定義 value 與 Q-value,再用 value iteration 或 policy iteration 求最佳 policy。
第 22 講保留 MDP 骨架,拿掉已知 transition 與 reward 的假設;TD learning 用一步 sample 更新 value,Q-learning 再以 off-policy target 直接學最佳 action values。
第 23 講以 Qθ(s,a) 取代巨大 Q-table:先用 features 線性近似並由 squared TD error 推導 gradient update,再以 replay data 與固定 target network 形成 DQN。
Spring 2026 Lecture 24 是 MCTS,不是 Fall 2026 的 LLM post-training;本講以 selection、expansion、rollout、backup 與 UCB 分配模擬,再由 policy/value heads 與 self-play 接到 AlphaZero。
第一階段把 Lectures 1–12 串成同一條決策鏈:先定義狀態、動作與目標,再用 heuristic、loss、regularization 與 backpropagation 控制龐大搜尋空間。
第二階段不把 CNN 與 Transformer 當兩份架構圖背誦,而是透過 HW8 與 HW11 檢查表示、計算圖、訓練、遷移與生成是否真的接得起來。
第三階段把 value、policy、bootstrapping、function approximation 與 MCTS 接成 AlphaZero:network 提供先驗與估值,search 改善決策,self-play 再產生下一輪資料。
CS124 Winter 2026 第一週不是先教 Transformer,而是先畫出從斷詞、分類、檢索到語音與網路的十週路線,並用 PA0 建好後續九週共同使用的 Jupyter 環境。
2026 第 1 講從感知器、前向傳播、loss 到 gradient descent,建立後續九講共用的語言。
2026 第 2 講處理文字、音訊與時間序列中「順序會改變意義」的問題,並連到 Lab 1 的音樂生成。
2026 第 3 講從影像張量、卷積與 pooling 走到辨識系統,替 Lab 2 的 MNIST 與臉部偵測打底。
2026 第 4 講區分生成與判別問題,整理 VAE、GAN 與 diffusion 的學習目標,並接到 Lab 2 的 DB-VAE。
2026 第 5 講把 agent、environment、state、action、reward 與 policy 接成互動迴圈,理解信用分配與探索。
2026 第 6 講把深度學習放進新應用與真實限制,提醒讀者先定義資料、輸出、評量與失敗條件。
2026 第 7 講從 Asimov 的文學法則出發,討論現代 AI 安全協定的限制,以及 trace、測試資料與持續評估。
2026 第 8 講以科學發現循環為主線,說明 simulator、AI emulator 與實驗如何合作,而不是把科學簡化成通用預測。
2026 第 9 講從 GPU 記憶體壓力進入 checkpointing、offloading、ZeRO、FSDP 與多種 parallelism,理解擴展不是只加卡。
2026 先完成 PyTorch tensor、autograd 與 module 基礎,再把 ABC 樂譜切成字元序列,訓練 LSTM 逐字生成音樂。
2026 Part 1 用 dense network 與 CNN 辨識 MNIST;Part 2 以 DB-VAE 學習臉部 latent distribution,再調整訓練取樣。
2026 以 LFM2-1.2B 建立 chat template 與生成流程,用 LoRA 做風格調適,再透過 OpenRouter 與 Opik 組合 judge workflow。
Spring 2026 CS185/285 公開 25 講投影片、9 組討論課資料、5 份作業與 starter code;當期錄影在 bCourses,HW4 預設 H100,不能把它包裝成零成本公開課。
07-380 Fall 2026 是 CMU AI 新制第二門首開,26 講涵蓋邏輯、規劃、優化、機率圖、生成式與系統。依 2026-09-29 課站,Lec1–9 投影片、PR1–6 筆記、Rec1–5(含解答)與 HW1–3 已公開,本站已寫完對應的 14 篇逐講導讀;Lec10 之後的投影片、HW4–7 與 Final Project 還沒釋出,整門課仍是 A2。
Harvard 校外最完整的入口是 CS50 AI,但 Summer 2026 實際沿用 2020 錄影與作業資產,OCW 作業又已更新到不同版本;CS181 Spring 2026 公開當期作業與講義、沒有當期錄影,CS182 Fall 2026 則尚未完成開課。
MIT 6.S191 的 2026 版已公開九講影片、投影片、三個 software labs 與解答,足以列為 A3 自學課;但官方執行路線需要 Google/Colab、Comet,以及 Lab 3 的 OpenRouter,校外讀者也拿不到 MIT 的學分、專案回饋與 API credit。
CS124 是 Stanford NLP 分支的第一門課,教科書是 Jurafsky 自己免費放在網路上的《Speech and Language Processing》,九個作業 repo 全部公開。但課程網站首頁掛著一行公告:2026–27 學年整年不開。而且那份課綱指定的章號,已經跟 2026 年 8 月版的教科書對不上了。
CS221 把 AI 排成一條軸:反射式模型(也就是深度學習)在最低階那一格,往上是狀態、變數、邏輯。2025 年秋季 Percy Liang 接手後把講義換成可執行的 Python,並在第一堂的原始碼裡寫下『Cut constraint satisfaction problems :(』——但 ExploreCourses 與 Stanford Online 兩個官方頁面到現在還把約束滿足列為課程主題。專案已經從 2019 年的兩成成績掉到只剩加分。
CS224N 把 2000 年以來每一屆的課程網站都留在線上。2019 冬季那版,Transformer 是第 14 堂的客座講題;2026 冬季那版,它是第 5 堂,之後每一堂都預設你已經懂它。機器翻譯作業整個消失了,第三份作業改成自己刻一個 decoder-only Transformer,附 pytest 可以在筆電上跑。
CS224U 的教材不是投影片,是一個 Apache-2.0 的 GitHub repo,講義、作業、評分文件全在裡面。但校內班從 2023 年春季之後連停三個學年,ExploreCourses 一度把它排回 2026-27 春季,2026-09-29 重查時那一節又撤掉了;官方課程描述至今仍列著 relation extraction 與 semantic parsing,2023 年的講次表一堂都沒有。第一份作業的資料載入 cell 在今天的新環境會卡在 Hugging Face 的相容性改動上。
CS224V 的課名在 2026-2027 學年才從 Conversational Virtual Assistants 換成 Agentic AI,但底下的東西沒換:把自然語言翻成形式語意、用 SMT 與知識圖譜約束 agent,而不是拼框架。閱讀清單十一篇 Mandatory 裡,七篇出自授課者自己的實驗室。投影片全公開,課程網站卻明講它們是刻意殘缺的。
CS224W 的六份 Colab 現在全部可以直接下載開跑,第一份只用 NetworkX,連 PyG 都不用裝。但期末考佔 35%,是全課最大一塊,而它是閉書實體考。公開錄影停在 2021 年,涵蓋不到現在課表後半的 graph transformer、關聯式深度學習與 LLM+GNN。
CS228 的官方先修就一句『basic probability theory and algorithm design and analysis』,沒有指定任何前置課程。但 ExploreCourses 顯示它最後一次開課是 Winter 2024,下一次排在 2026-27 冬季、講師欄還空著。自學者真正拿得到的是那份公開講義 cs228-notes:16 章寫完,最後一次改動停在 2025 年 6 月。
CS229 的自學三件套不在同一個時鐘上:講義 278 頁、2026 年 8 月才重編過;公開拿得到的作業是 2020 年夏季那批;Stanford Online 叫你入學前先做的自測題,PDF 建立於 2008 年。2026 春季錄影公開 17 支,最後三支的標題跟內容對不上。
CS25 是 Stanford 的 1 學分 seminar,唯一作業是出席,全程對外開放。2026 春季第六季九場講座裡,最值得看的三場是 Albert Gu 談 SSM 與 Transformer 的歸納偏誤、Charles Frye 談上千張 GPU 的推論服務、Victoria Lin 談原生多模態還沒解決什麼。
CS329Z 是 Stanford 2026 年秋季新開的三學分 agent 工程課。第一份作業禁用任何 agent 框架,只准用一個 chat-completion 呼叫加自己的程式碼,在真實企業 email 封存上從 RAG 管線一路長成帶工具、終端機、記憶與人類審核的 agent harness。DSPy 還在課堂上,但已經不在作業裡。課程網站架在公開的 GitHub repo 上,commit 紀錄留下了每一次課綱改版:作業從三份砍成兩份,互評長成兩成分數,專案主題也從鎖死改成自選。
CS336 的十七堂正課裡,只有九堂是可以執行的 Python 程式,另外八堂是 PDF 投影片——分界線剛好是兩位授課者。第一份作業的講義有八個「低資源提示」教你怎麼在筆電上做完,第二到第五份一個都沒有。課程頁自己列了 B200 的每小時單價,作業講義自己列了每題要幾個 B200 小時。
Berkeley 沒有獨立的大學部 AI 學位;可行路線是在 CS BA 或 EECS BS 的共同基礎上,從 CS188 的廣義 AI 或 CS189 的數學型 ML 入口,再分流到深度學習、NLP、視覺與強化學習。2025–2026 有不少 A3 公開課,但最新班次、最新穩定網址與最好用的自學版本並不總是同一個。
Stanford 沒有 AI 學位,AI 是 CS 底下的一條 track;CMU 2018 年開出全美第一個 B.S. in Artificial Intelligence,把 AI 拆成四個 cluster 並強制各修一門,還把倫理課列進畢業要求。碩士這條線則是 MSAII——不在 CS 系,在語言技術研究所,195 學分裡有 84 分是創業流程,最後要交一個能拿去募資的 capstone。查證時發現兩處官方頁面自己打架:AI Core 是 2 門還 3 門、總學分是 192 還 195。
CMU 現行 BSAI 已改成 07-280 → 07-380,再從 NLP/視覺核心與四個 AI clusters 延伸;07-380 已在 Fall 2026 首開,同學期還新開了研究所級的 11-768 AI Agents。07-280 Spring 2026 的殘留教材與 10-301/601 已能完整自學,15-281 則是仍有價值的退休舊路線。
這份地圖盤點 Stanford、CMU、MIT、UC Berkeley、Harvard 與台大在 2025–2026 年的 AI/CS 課程,將公開程度拆成 A0 課表可見、A1 課綱可見、A2 教材部分開放、A3 足以自學。課程官網存在、YouTube 播放清單存在,都不代表校外讀者真的拿得到當期影片、作業與起始碼。
MIT 自 2022 年已有正式的 6-4 Artificial Intelligence and Decision Making 學位;但校外自學時,現行學位要求、2025–2026 課站與最好用的 OCW 版本往往不是同一套。真正可行的路線,是先照 6-4 的程式、演算法、線代與機率骨架打底,再依公開程度選 6.S191、6.3900、6.4110、6.7960、電腦視覺或機器人分支。
CS103 前半教怎麼寫證明、後半教什麼證不出來,但外界最少提到的是它有 C++ 程式作業:PS0 就是裝 Qt Creator。它的真正資產是一整排自製的『Guide to X』講義與一份會拿來扣分的 Proofwriting Checklist,全部公開;解答與練習考題全部鎖在 Stanford 登入後面,而且鎖的理由寫在 Honor Code 裡。
CS107 從 Unix 與 C 一路做到 x86-64 與自己寫 malloc,七份作業。但翻四個學期的封存 syllabus 會發現同一門課差很多:作業在三個學期占 40%,在 Summer 2026 只占 20%(多了 40% 的隨堂小考);重交政策只出現在 Cain 開的學期,Troccoli 那學期完全沒有。唯一不收遲交的是最後那份 heap allocator。而擋住自學者的不是評分器,是起始碼全在 AFS 上。
CS109 在 2026 年夏季的每一講旁邊,掛了一份官方寫的 LLM Learning Guide——六個概念、每個概念一組 Learn 與 Test me 提示詞,逐週產出共 23 份 PDF。同一門課的榮譽守則第 4 條卻明文禁止拿 LLM 解作業,而成績有 65% 壓在現場考試。這兩件事是同一套設計的兩半。
CS111 的九份作業從 lambda 一路做到日誌式檔案系統的崩潰復原,但把官網逐頁讀完會看到三件課綱不寫的事:第三份作業是分水嶺,因為第四份會直接編譯你第三份的程式碼;期末考有一整塊在考倫理學名詞,公開的練習卷連解答都在;還有,把自己的程式碼貼給 AI 問問題,這門課白紙黑字寫成違反榮譽準則。
CS161 第一堂投影片寫下的課程目標有三個:設計、分析、溝通。第三個才是作業不准手寫、要求寫得像給同事的備忘錄的原因。八份作業裡 HW2 是分水嶺,講義的 Python notebook 用來示範「量時間看不出誰比較快」,而暑期班是同課號、同課名、完全另寫一套的另一門課。
CS329A 的軸心是 generation–verification gap:模型答得出來,卻認不出哪個對。但課程自己下的結論更值得記——目前這些方法讓模型變得更穩定,不是更聰明。錄影公開 9 支,只涵蓋 20 堂中的 9 堂。
Stanford CS 的骨架是 CS103、CS107、CS109、CS111、CS161;CS221 先修列出其中三門,另加 CS106B。本文依官方先修與編輯者建議順序排出主線,並標明公開教材與停開風險。
Stanford CS146S 的 Fall 2026 大綱把 prompting 從整整一週壓成一節,砍掉終端機與 UI 生成兩週,換上 Agent Skills、Agent-Ready Codebases、Background Agents、AI-Native Team。評分也動了:Final Project 從 80% 降到 50%,多出 30% 的 open source 貢獻。這個系列照十週逐篇讀。
把 OpenAI、Anthropic、Google 三家官方課程平台,加上 Stanford CS146S/CS336、Elements of AI、Hugging Face、MIT 6.S191、李宏毅等資源實際逐頁抓過一遍,按「不懂 AI / vibe coding / 讓它能上 production / 底層 AI」四層重排。另收 2026 年仍在更新的自學倉庫與免裝環境的互動式平台,並用「最後更新日期」篩掉星數很高但停在 2024 的名教材。結論:課幾乎全部免費,稀缺的不是課,是選課的判斷力;而第四層不會解決第三層的問題。