- 博客(2)
- 收藏
- 关注
原创 nanoGPT源码浅析(下)
使用指定后端初始化分布式进程组,获取当前进程rank、local_rank(GPU标识符)、world_size(进程总数),添加设置device、主进程判断与设置等,对每个进程生成不同偏移量(初始化随机),最后调整梯度累积步数(原始步数/进程数,处理相同量梯度更新)最后清空梯度,释放内存。经前文判断和设置后计算迭代标记数(梯度累积步数、进程总数、批大小、块大小相乘),根据CPU或GPU创建输出目录、上下文,设置随机种子(固定值加随机种子偏移量)数据类型等属性,最后加载训练集和测试集数据并做内存映射。
2024-01-22 11:13:45 896
原创 nanoGPT源码浅析(上)
子模块包括词嵌入层(Word Token Embedding,twe,用于映射输入词向量),位置嵌入层(Positional Embedding,wpe,即位置编码),Drop(不赘述),基本块列表h(由多个基本块组成的列表,通过循环创建了n_layer 个基本块,归一层(ln_f,LayerNorm)。超参数有block_size(块)、vocab_size(词表大小)、n_layer(基本块层数)、n_head(注意力头数)n_embd(特征维度)、Dropout(丢弃率)、bias(是否偏置)等。
2024-01-22 09:39:58 1205
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人