-
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.18 KB
/
Copy pathquiz.json
File metadata and controls
78 lines (78 loc) · 3.18 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": "43-hdf5-tokenized-corpus",
"title": "顶点课 43 —— HDF5 Tokenized Corpus",
"questions": [
{
"stage": "pre",
"question": "为什么把 tokenized corpus 存成可扩容、分块的 HDF5 dataset,而不是 JSONL?",
"options": [
"HDF5 的 logo 更小。",
"HDF5 提供分块、纯整数、内存映射读取和 O(1) 随机访问;JSONL 每次热路径读取都要走解析器。",
"JSONL 已弃用。",
"随机原因。"
],
"correct": 1,
"explanation": "Dataloader 需要一个扁平 token 流和可寻址的切片;HDF5 原生支持。"
},
{
"stage": "check",
"question": "HDF5 chunk 大小相对于 trainer 的 window_size 应该怎么选?",
"options": [
"始终选 chunk=1。",
"把 chunk 设为 window_size 的整数倍,这样每个样本落在一到两个 chunk 内,读取保持页缓存对齐。",
"把 chunk 设成文档长度。",
"选能放进内存的最大 chunk。"
],
"correct": 1,
"explanation": "Chunk 和 window_size 不对齐会让吞吐量减半,因为每个样本都会跨两个 chunk。"
},
{
"stage": "check",
"question": "为什么 token_count 要存成 HDF5 attribute,而不是从 dataset shape 推断?",
"options": [
"Attribute 比较好看。",
"尾部 chunk 可能没填满;没有这个显式 attribute,reader 会读过真实末尾、进入零填充的 token 区域,导致模型学会预测零。",
"读取 shape 很慢。",
"Attribute 是必需的。"
],
"correct": 1,
"explanation": "分块布局有时会留下尾部空位;attribute 才是 ground truth。"
},
{
"stage": "check",
"question": "Writer 把 token 缓冲到 chunk_size 再做一次 resize,这实现了什么?",
"options": [
"省几个 CPU 周期。",
"写入是连续且 chunk 对齐的,避免了逐 token resize 带来的碎片化。",
"减小词表大小。",
"加快 sha256 计算。"
],
"correct": 1,
"explanation": "按 chunk 大小缓冲再扩展,是保持 HDF5 chunk 在磁盘上连续的唯一方式。"
},
{
"stage": "post",
"question": "为什么 swmr=True 是在 reader 端打开,而不是 writer 端?",
"options": [
"随意偏好。",
"Single-Writer-Multiple-Reader 模式让 dataloader worker 能安全共享文件;writer 不需要特殊模式,因为它是每个进程写一个分片。",
"性能考虑。",
"安全考虑。"
],
"correct": 1,
"explanation": "把两种模式搞混是 'file is locked' 报错最常见的原因。"
},
{
"stage": "post",
"question": "Boundary token id 的存在是为了显式化什么?",
"options": [
"词表大小限制。",
"Packed window 内的文档边界,防止模型被静默地训练在跨文档拼接上。",
"压缩。",
"随机数据。"
],
"correct": 1,
"explanation": "没有显式边界标记,trainer 会把边界当噪声学;有了它,边界就变成可用的分隔符。"
}
]
}