Skip to content
所有標籤

#distributed-training

14 篇文章

強化學習系統:推論與訓練怎麼接起來|CMU 11-768 第 12 堂

RL 系統用推論引擎取樣、驗證器給獎勵、訓練引擎重算 logprob 與梯度,再把新權重同步回推論端。用一個自編的小例子走完這五步,再理解快取、歷史保留與非同步更新各在解決什麼問題。

分散式訓練與高效推論:先找成本在哪裡|CMU 10-423 主題單元

模型放不下一張GPU,和模型已放得下卻生成太慢,是不同故障。分散式策略重新分配資料、參數與狀態;FlashAttention主要改善attention的記憶體IO;KV cache避免decode時重算歷史K/V。先找成本的位置,再選方法。

分散式訓練與資料平行,梯度同步的代價從哪裡來|CMU 11-868 第 14–15 堂

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 論文整理。

在兩張 GPU 上自己寫資料平行與管線平行|CMU 11-868 作業 5

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 截止。

用 DeepSpeed ZeRO+LoRA 訓練 Llama-2-7B,用 SGLang 做推論|CMU 11-868 作業 6

11-868 第六份作業第一次放下自己寫的 MiniTorch,改用產業框架。兩題各 50 分:第一題改一支 DeepSpeed 訓練腳本,打開 LoRA,讓 Llama-2-7B 在 2 張 16GB 的 V100 上訓練得起來;第二題填完 SGLang 推論腳本的 TODO,並調參數讓生成跑快一點。兩題要的 GPU 互相衝突:SGLang 不支援 V100,要換 L40S、A6000 或 A100。春季版 4/13 截止,作業頁不提供評分測資。

模型放不進一張卡時,切層、切矩陣,還是切專家|CMU 11-868 第 16–17 堂

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 的設計逐一說明。

ZeRO 怎麼把資料平行的記憶體切掉——optimizer state、梯度、參數各切一刀|CMU 11-868 第 18 堂

資料平行每張卡都存一份完整的參數、梯度和 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 倍通訊。

從一顆晶片到整座資料中心——資料流硬體、kernel 融合、平行策略與記憶體瓶頸|Stanford CS149 第 12 堂

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 都是在解同一個問題。這講沒有公開錄影,本文只依投影片。

大規模分散式訓練——把一個模型切到上萬張 GPU|Stanford CS231N 第 11 堂

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% 算優秀。

分散式訓練:記憶體不夠就切模型,頻寬不夠就壓梯度|MIT 6.5940 第 19–20 堂

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。

LLM 系統:同一個模型怎麼跑快好幾倍|Stanford CME295 2026 版 第 5 堂

2026 版 CME295 第 5 講「LLM systems」(10 月 30 日)課表列了 7 個主題:分散式訓練、推論最佳化、KV caching、speculative decoding、高效 kernel、FlashAttention、硬體取捨。本篇在開課前,用 2025 版第 3、4 講約 70 頁投影片加原始論文,把它們串成同一本帳:H100 每搬 1 byte 大約要做 295 次運算才吃得滿算力,而逐字生成時每讀 1 byte 權重只做約 1 次,所以多數加速手法都在想辦法少搬資料。

17:兩場延伸講座——用擴散模型生成文字,以及把大模型訓練的「民間知識」講清楚|Stanford CS224U 主題單元

2023 年春季 CS224U 在 Transformer 單元裡插了兩場由課程團隊成員主講的專題。Lisa Li 講 Diffusion-LM:不再一個字一個字往右生,而是把一串高斯雜訊逐步去噪成詞向量,代價是訓練與解碼效率都輸給自迴歸模型,換到的是可以在每一步用分類器梯度操控輸出。Sidd Karamcheti 講怎麼把 GPT-2 Small 的單卡訓練時間從 99.63 天壓到 3.37 天:資料平行、混合精度、ZeRO 一層層疊上去。前者只有投影片,後者有投影片與兩段錄影。

從 collective operations 組出資料、張量與管線平行|Stanford CS336 第 7 堂

第七講不從 FSDP API 開始,而是用 broadcast、all-reduce、all-gather、reduce-scatter 與 all-to-all 建立通訊語言,再親手組出 data、tensor 與 pipeline parallelism。

ZeRO、FSDP 與 3D Parallelism 怎麼對齊硬體拓撲|Stanford CS336 第 8 堂

第八講把平行化從原語提升到系統設計:ZeRO 逐階切 optimizer、gradient 與 parameter,TP/PP/SP/EP 再分別切 width、depth、sequence 與 experts;組合順序必須服從網路拓撲與動態 activation memory。