返回关卡地图
闯关题:0 / 2 XP 0 / 200

Level 28 | 零基础导学关卡

Pipeline Parallelism MicroBatch

先用小例子把必要知识学会,再用 2 道闯关题检查理解,最后回到 notebook 写真正的 PyTorch 作业。

28_Pipeline_Parallelism_MicroBatch.ipynb Pipeline ParallelismMicro-batchBubble
概念输入
闯关检查
Notebook 作业
bubble≈(stages-1)/(micro_batches+stages-1)
Mission 1 概念准备

Pipeline Parallel:把大模型切成流水线阶段

先补的知识

  • 模型可以按层切成多个 stage。
  • 一个 batch 可以再切成多个 micro-batch。
  • 流水线并行让不同 stage 同时处理不同 micro-batch。

图解原理

像工厂流水线:第一段处理第 2 个小批次时,第二段已经在处理第 1 个小批次。

t0: S0-M0t1: S0-M1 / S1-M0t2: S0-M2 / S1-M1

语法热身:把 batch 切成 micro-batch

micro_batches = torch.chunk(batch, chunks=num_micro_batches, dim=0)
for mb in micro_batches:
    hidden = stage0(mb)
    out = stage1(hidden)

闯关题

Pipeline Parallel 中 micro-batch 的作用是什么?

回到 notebook 的作业

这里不直接写答案。你已经拿到足够输入,最后用 notebook 的 TODO 做举一反三。

Mission 2 TODO

Bubble Ratio:流水线空转比例

先补的知识

  • stage 越多,填满和排空流水线需要的时间越长。
  • micro-batch 越多,真正忙碌的时间越多。
  • bubble ratio 近似衡量空转时间占比。

图解原理

流水线刚启动和收尾时总有人闲着;小批次越多,这段闲着的比例越小。

stages=4micro_batches=8bubble = (4-1)/(8+4-1)

语法热身:写一个比例函数

def bubble_ratio(num_stages, num_micro_batches):
    bubble = num_stages - 1
    total = num_micro_batches + num_stages - 1
    return bubble / total

闯关题

stage 固定时,增加 micro-batch 数通常会让 bubble ratio 怎样?

回到 notebook 的作业

这里不直接写答案。你已经拿到足够输入,最后用 notebook 的 TODO 做举一反三。

完成 2 道闯关题后,本关即算完成;作业 checklist 用来辅助你回 notebook 练习。
进度只保存在当前浏览器 localStorage,分享 HTML 不会带走你的记录。
上一关:L27 下一关:L29