長上下文與SSM:保留歷史的兩種取捨|CMU 10-423 主題單元
長上下文問模型能否處理、找到並使用很久以前的資訊;SSM問如何用狀態更新處理序列。SSM的效率不能直接證明長文件檢索可靠,attention的長窗口也不能直接證明重要資訊一定被使用。第19與21堂因此各自有獨立教學。
長上下文問模型能否處理、找到並使用很久以前的資訊;SSM問如何用狀態更新處理序列。SSM的效率不能直接證明長文件檢索可靠,attention的長窗口也不能直接證明重要資訊一定被使用。第19與21堂因此各自有獨立教學。
第 2 堂的 attention 知道如何比對內容,但實際語言模型還需要順序資訊,也要承受生成時的記憶體成本。
你可以讓模型適應新任務而不重訓所有參數,但這句話包含兩種不同做法。LoRA等PEFT方法仍有訓練,少量參數會改變;ICL把示例放進上下文,推論時不因這些示例做參數更新。來源也不只兩堂:第9堂末段已有zero/few-shot,第10堂講PEFT,第11堂接ICL與後續調適。
能比較候選選擇與GRPO優勢且區分機制因果證據
模型胡說、洩漏資料或被prompt injection誘導,是可觀察的產品風險;對齊理論問特定形式化假設下,哪些保證可以成立。兩者需要不同證據。這篇保留關係與界線,第22堂與第26堂的對齊教材分開教,不把一個定理擴成所有產品都不可能安全。
一句「我喜歡貓」不是三個互不相干的字。
Scaling laws問固定預算下模型與資料怎麼配置;MoE問如何有更多expert容量、卻只啟用少數expert。前者是配置與經驗模型,後者是架構與路由,不能合稱「把模型變大」就跳過其中一方的機制。
「文字加圖片」不能描述清楚模型的工作。文生圖要產生影像,文字是條件;VLM可能接受影像,產生文字回答。資料流方向、輸出目標與驗收不同。原第12–13堂的內容在這裡保留關係地圖,兩條路各有完整例子與檢查。
同樣一份歷史文字,模型怎麼讀、怎麼學、怎麼抽下一個token,是三個問題。注意力決定資訊如何混合;訓練目標用正確答案改參數;解碼策略在固定模型下選輸出。原本把第2–3堂合在一起,容易讓讀者以為換解碼策略就是換模型。這篇保留主題關係,完整機制與練習分開讀。
擴散與VAE都能用機率模型的觀點理解,但「都有潛在變量」不代表它們是同一套生成流程。擴散把噪聲步驟串成鏈;VAE用encoder近似latent的後驗,decoder從latent重建資料。這篇是關係導覽,原第8–9堂的教學已拆成各自可檢核的內容。
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 截止。