-
Notifications
You must be signed in to change notification settings - Fork 37
Expand file tree
/
Copy pathquiz.json
More file actions
78 lines (78 loc) · 3.25 KB
/
Copy pathquiz.json
File metadata and controls
78 lines (78 loc) · 3.25 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
{
"lesson": "80-checkpoint-sharded-resume",
"title": "顶点课 80 —— 分片 checkpoint 与原子恢复",
"questions": [
{
"stage": "pre",
"question": "为什么「先汇集再写出」在大规模下是错误的 checkpoint 模式?",
"options": [
"它看起来丑",
"所有状态都过 rank 0;写带宽是最慢的那条单链路、而非聚合带宽,所以 TB 级的写入要花几个小时",
"它占用太多 CPU",
"它需要特殊硬件"
],
"correct": 1,
"explanation": "分片写入随集群规模扩展:64 个 rank 并行写,完成时间是单 rank 写汇集状态的 1/64。"
},
{
"stage": "pre",
"question": "清单(manifest)记录了哪些 shard 文件本身记不下的信息?",
"options": [
"随机数",
"world_size、schema 版本、每个 shard 的 sha256,以及 shard 归属;给加载器一份契约,让它在触碰状态前先校验",
"文件系统名",
"主机名"
],
"correct": 1,
"explanation": "没有清单,加载器只能猜哪个 shard 属于哪个 rank,并盲信文件数量是对的。"
},
{
"stage": "check",
"question": "为什么要写到 <name>.tmp 再 rename,而不是直接写?",
"options": [
"更快",
"同一文件系统内的 POSIX rename 是原子的:写到一半崩溃也不会动到前一个文件。直接写可能留下写了一半的 checkpoint,毒害下一次恢复",
"torch 要求如此",
"省内存"
],
"correct": 1,
"explanation": "没有原子写,一次写了一半的保存加上一份指向它的更新清单,会在下次加载时损坏状态。"
},
{
"stage": "check",
"question": "每个 shard 的 sha256 防的是什么?",
"options": [
"网络攻击",
"写了一部分或被损坏的写入;加载时校验哈希能在截断的 shard 触碰模型状态之前抓住它",
"性能变慢",
"内存泄漏"
],
"correct": 1,
"explanation": "没有 sha256 校验,一个被截断的 shard 会悄悄加载并损坏 optimizer,之后以 NaN loss 的形式暴露出来。"
},
{
"stage": "check",
"question": "为什么加载路径要对 world_size 不匹配大声报错?",
"options": [
"纯装饰",
"在 8 个 rank 上恢复 4-rank 的 shard 布局会悄悄错配 shard;大声拒绝逼操作者改用跨 world size 的再平衡路径",
"更好写代码",
"硬件需要"
],
"correct": 1,
"explanation": "跨 world size 的再平衡是一个独立操作;悄悄拼接尺寸不对的 shard 会损坏状态。"
},
{
"stage": "post",
"question": "为什么生产环境要轮转 checkpoint(只保留最近 K 个)?",
"options": [
"美观",
"不轮转的话磁盘会在运行中途写满、下一个 checkpoint 就失败;轮转在写新的之前删掉最旧的,把磁盘占用约束住",
"压缩",
"其实并不需要"
],
"correct": 1,
"explanation": "真实运行通常保留 3-5 个近期 checkpoint;每次新保存前丢掉最旧的,磁盘预算就固定了。"
}
]
}