最近做了一些大模型训练相关的训练相关的技术储备,在内部平台上完成了多机多卡的llm 预训练的尝试,具体的过程大致如下:
数据准备:
大语言模型的训练依赖于与之匹配的语料数据,在开源社区有一群人在自发的整理高质量的语料数据,可以通过 以下的一些链接获取
liwu/MNBVC at main
Skywork/SkyPile-150B · Datasets at Hugging Face
预训练框架:
选用了百川智能的开源框架
原始版本代码训练准备:
根据README 里面的介绍,需要准备以下几样东西:
-
训练数据,按照训练的卡的数目分成多个文件,每个文件的每一行为一整句的语料,类似这样的文件
添加图片注释,不超过 140 字(可选)
-
分词器(tokenizer) ,下载 分词器 到当前目录下。
-
修改hostfile训练脚本,单机训练情况下,不依赖于多机多卡的hostfile, 修改启动脚本 添加启动项 --num_nodes 即可完成单机多卡的训练
#!/bin/bash
deepspeed --hostfile config/hostfile --num_nodes=1 \ train.py \ --deepspeed \ --deepspeed_config config/deepspeed.json