minGPT 實作驗收:用形狀、遮罩與位置找錯|CMU 10-423 作業 1
作業 1 把 RNN、Transformer 與現代 attention 的觀念拉到程式層。
作業 1 把 RNN、Transformer 與現代 attention 的觀念拉到程式層。
會抄加噪公式,還不代表 diffusion 實作正確。
以自擬數值例子驗收梯度、資料與評估,並保留原作業規格。
以自擬數值例子驗收梯度、資料與評估,並保留原作業規格。
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 的小修正。
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 的分散式引擎。
PA3 有三部分:把 SAXPY 改寫成 CUDA 並分開計時、用 exclusive scan 實作 find_repeats、再寫一個又對又快的 CUDA 圓形渲染器(85 分)。渲染器的難點是半透明圓的混色不可交換,每個像素都得照輸入順序更新,而起始程式碼一個圓一個 thread 的做法兩樣都沒守住。Written 2 則是五題計分題(fusion、SIMD 利用率、用 barrier 取代鎖、用資料平行原語處理圖、粒子模擬的鎖)加 14 題練習。校外要自備 NVIDIA GPU,本文不提供解答。
CS224R Spring 2026 的 default project 要你在 Qwen2.5-0.5B Base 上,針對 Countdown 算術推理任務依序實作三個階段:SFT 暖身、IPO 偏好最佳化、用規則式 verifier 當獎勵的 RLOO,三者用同一套 vLLM 評估比較,再做一個自選的研究延伸。實作部分禁止用 SFTTrainer 這類高階 trainer,也禁止任何 AI 工具協助,只有延伸部分例外。延伸占報告成績的一半,看的是方法和紀錄,不是分數。起始碼和資料集都公開,校外讀者缺的是 Modal credits 和 autograder。
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 的 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 只發給修課學生。本文只整理題目和環境,不寫解答。
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 的 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 特徵只靠一幀標註做影片分割。本文只講題目結構、檔案與目標,不給解答。
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)。
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 題。
這篇是 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 的 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 跑推論。本文整理題目、配分、環境需求與校外限制,不附解答。
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。本文整理兩份作業的題目、配分、環境與校外限制,不附解答。
第一講前半說明課程規則與閃電秀,中段回答「為什麼要學原理」:蔡炎龍把學 AI 的焦慮拆成三種,主張懂原理才知道模型的限制、不必追著每個新工具跑。後半是 Colab 入門,從魔術指令、四行標準套件、plt.plot 到 Markdown 與 ipywidgets 互動。第一份作業是在 Colab 畫一個函數圖形;長庚衛星班的評分標準裡,照改範例只拿 6 分,沒教過的函數加上漂亮的 Markdown 註解才拿 10 分。
第二講把上一講的「呆萌型 AI 機器人」拆開:輸入輸出都要變成數字(張量),分類問題用 one-hot 與 softmax 把分數變成機率,神經網路由神經元一層層接起來,訓練就是用梯度下降把 loss 壓小。最後用 Keras 在 MNIST 上打造第一個全連結神經網路,再接上 Gradio 畫板。第二週作業要你自己設計 DNN,唯一的硬規定是不能是三層;長庚衛星班要求截圖驗證正確率最高的那組參數,也鼓勵保留失敗的嘗試。
清大高宏宇 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。
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、資料格式、文件順序與反事實資訊的影響。
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 設定和報告五題都能照著練。
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 產生的程式要逐段用自己的話寫註解。兩個學期都沒有公開官方解答。
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 資料,只能照同樣的切分方式換一份公開資料自評。
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 評分與解答。
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 的官方分數。
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 上的評分與解答。
CS224U 第一份作業 hw_sentiment.ipynb 是三分類情感分析:用 DynaSent 兩輪加 SST-3 開發,bake-off 測試集混入來源不明的 mystery 句子。9 分作業裡,原創系統一題占 3 分,規則只有一條:開發過程不准碰三份公開測試集。今天照原樣跑,第一個資料載入 cell 就會卡在 Hugging Face datasets 4.0 拿掉 trust_remote_code 這件事上。
CS189 Spring 2026 HW1 分三塊:10 題書面數學熱身(線性方程組、特徵分解求矩陣冪次極限、SVD、翻轉影像的矩陣、偏微分、遞迴式連鎖律、四題機率含癌症篩檢的 Bayes),加上兩本公開在 Modal 上的 Fashion-MNIST notebook:Part 1 練 pandas/Plotly/K-means/MLP/矩陣做影像增強/tensor 謎題,Part 2 做價格回歸、MAE/MSE/R²、混淆矩陣,最後處理一份被旋轉過的秘密測試集。截止 2/20,沒有官方解答。
HW2 是一份純書面作業,共 10 題。前半練讀論文(Chatbot Arena)和回歸、MLE/MAP 的基本推導,後半兩大題最重:Mixed Feelings 從 k-means 對離群值的脆弱一路推到 robust k-means 和加了均勻背景的 GMM;Watch Me Flow Dat 證明 conditional flow matching 和離散化後的 MLE 是同一個目標。題目 PDF 和 LaTeX 範本都能匿名下載,沒有官方解答。
HW3 分兩半:書面四題從 logistic regression 的 Newton 法、座標下降的收斂分析,走到反向傳播/VJP/隱式微分,最後用資訊瓶頸重新看「深度網路在壓縮什麼」;notebook 要你用 NumPy 寫出 BearTensor 計算圖、拓撲排序反向傳播、SGD/Momentum/Adam,再拿它訓練紅酒品質回歸,選做 Muon。題目與 notebook 全部公開,官方解答與 hidden tests 不公開。
HW4 分三份:書面題帶你用「問題 → 現有做法 → 提案 → 方法 → 貢獻」的順序讀 ResNet 與《Attention Is All You Need》;4.1 notebook 用 PyTorch 寫 CNN、ResNet-18,再從 softmax 一路拼出 encoder-decoder transformer,在 TinyStories 上訓練並生成故事;4.2 notebook 把 DNA 切成 6-mer 餵給預訓練 DNABERT 分物種,把聲音轉成頻譜圖交給 ConvNeXt,比較從零訓練、凍結 backbone、全解凍三種微調。兩個 Kaggle 競賽,5/1 截止。校外讀者拿得到題目,拿不到課程資料包與測試。
HW5 是 Spring 2026 唯一標成選修的作業,5/11 到期,和期末考同一天。書面有三塊:用 scRNA-seq 當背景推 InfoNCE 的梯度與負樣本數的取捨;證明最佳去噪器是條件期望、推到 continuity equation;把 flow matching 的直線路徑推廣成一般插值。Notebook 則是完整的 LLM 微調流程:固定用 Qwen2.5-0.5B-Instruct,把 MMLU machine_learning 轉成 chat 格式,用 TRL 的 SFTTrainer 全參數微調,比較微調前後在 CS189 考題上的準確率,最後對 169 題測試集提交 Kaggle,同時要防 catastrophic forgetting。官方附 hw5-sol.pdf,只涵蓋書面題。
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 上的線上題只限校內。本文不附解答。
HW3 分三塊:程式作業要你用頂點枚舉寫出 LP 求解器,再在上面疊 branch and bound 解整數規劃,外加三題文字建模;書面四題分別是整數規劃手算、Amazon 送貨路線的倫理、PCA 的 SVD 計算,以及證明 Laplace 先驗等價 L1。截止日是 10/1,本文只講結構和需要的概念,不給解答。
CS181 Spring 2026 的 HW2(due 2/27)共四題 90 分:用行星觀測資料訓練 10 個 logistic 模型看偏差與變異、推導生成式分類的 MLE、在 27 筆貸款申請資料上實作五種分類器,再用 SGD/Momentum/Adam 看 ridge 怎麼改變損失地形。核心是分清「模型給的機率」和「10 個模型彼此不一致」這兩種不確定性。
CS181 Spring 2026 的 HW3(due 3/23)三題 100 分:先把多項式與 RBF kernel 拆回特徵映射、從 ridge 推到 dual 係數 α 與 support vector 直覺;再手推兩層 sigmoid 網路的 backprop;最後佔一半分數的是在 Fashion-MNIST 上訓練 ResNet,自己量出 scaling law,用 C≈6ND 推算固定算力下模型與資料該怎麼分。
HW4 Problem 2 先在 CelebA 64×64 上訓練卷積 autoencoder,再讓你從 N(0, I) 隨機取樣,看它生不出臉;接著推 ELBO、reparameterization 與封閉形式 KL,最後把同一個骨幹改成 VAE,比較兩者的重建與取樣。
HW4 Problem 1(40 分)分五小題拆解 self-attention:2×2 手算、為什麼除以 √dk、沒有位置編碼時的 permutation equivariance、只用 NumPy 寫單頭注意力、用 PyTorch 寫多頭並在合成資料上畫注意力熱圖。
HW4 Problem 3 用三步量化「多棵樹投票為什麼會準」:Hoeffding 界在 p=0.6 時要 B≈691 棵獨立樹才壓到 10⁻⁶;樹之間相關係數 ρ 讓集成變異數卡在 ρσ²;最後比較隨機森林的密集集成與 MoE 的稀疏路由。
HW5 的 Problem 3–4 把手寫數字丟給三種不看標籤的方法:K-means 用 10 個平均影像代表整批資料,HAC 用合併樹給出任意群數,PCA 用幾個連續方向壓縮影像。三者都在回答「用少量東西描述資料,誤差多大」,作業要你把它們的目標函數與重建誤差放在一起比。
HW5 的 Problem 1–2 都是「把學習變成分類題」:SimCLR 的 NT-Xent 損失是在 2N−1 個候選裡找出同一張圖的另一個增強版本,GAN 的判別器是在分真假。作業要你推出這兩件事的數學(交叉熵等價、最佳判別器與 JS divergence),再在 FashionMNIST 與 MNIST 上把兩套訓練迴圈寫出來。
HW6 Problem 4(20 分)用三個問題拆解「一個 token 接一個 token 生成」的代價:逐步挑最大機率不等於整句最可能、每步重算所有 key 讓成本變成平方級而 KV cache 把它壓回線性、speculative decoding 用小模型先猜再讓大模型一次驗證。全部是紙筆題,但每一題都對應到今天 LLM 推論系統的真實設計。
HW6 Problem 1(15 分)把課堂上的離散 HMM 換成連續狀態:狀態每步加一點高斯雜訊、觀測再加一點雜訊,要你推出 filtering 分布 p(zₜ | x₀…xₜ) 的均值與變異數。這就是一維 Kalman filter。解法只有兩步:先用轉移「預測」,再用觀測「修正」,兩個高斯恆等式題目都給了。
HW6 Problem 2(15 分)給你一張 4×5 的 Gridworld:動作會打滑、獎勵在離開格子時才拿到。你要在 notebook 裡寫 policy evaluation、policy iteration 與 value iteration 各一步,再觀察折扣因子 γ 怎麼改變策略,最後反問「這樣建模機器人任務合理嗎」。環境規則全部已知,所以這是規劃,還不是學習。
HW6 Problem 3(20 分)要你寫一個表格式 Q-learning agent 玩類 Flappy Bird 的 Swingy Monkey,最低標準是 100 局內至少一次超過 50 分,還要再加一個自選的改進。Problem 5(10 分)是 250 字內的倫理題:假設社群平台的使用者政治立場愈來愈極端,用 RL 的概念解釋 reward 設計可能怎麼推了一把。
手寫 NumPy MLP + 反向傳播 → PyTorch Autograd 驗證,完整複現 OCW HW1 核心考點
CS181 2026 以 hw0–6 七份作業為週節拍、官方課表未列對應講次的公開錄影但 A3 可自學;2025 多 practical、2024 雙期中、2023 單授 Weiwei Pan。看懂四年沿革後,從 HW0 體檢先修再逐週跟最穩。