用于记录个人从0开始实践一个小量级的llm的心路历程(x
流程会在日后实践中逐步完善,边做边学习
· 考虑实践0.5B,1B量级的模型,准备使用的基模型为Qwen2和Llama2
· 先在个人电脑上跑一个小体量的模型(暂定0.1B左右),之后将迁移至服务器完成0.5B和1B的流程。
· 个人电脑配置:CPU-13700KF,内存-64G DDR5, GPU-4070Ti,硬盘-4T
借鉴下目前其他优秀项目收集的优质公开数据集
pretrain数据集链接 | 描述 | 是否使用 |
---|---|---|
Wiki中文百科:wikipedia-cn-20230720-filtered | 中文Wikipedia的数据 | √ |
BaiduBaiKe:百度网盘 提取码: bwvb | 中文BaiduBaiKe的数据 | √ |
C4_zh:百度网盘 part1 提取码:zv4r;百度网盘 part2 提取码:sb83;百度网盘 part3 提取码:l89d | C4是可用的最大语言数据集之一,收集了来自互联网上超过3.65亿个域的超过1560亿个token。C4_zh是其中的一部分 | × (暂未加入使用) |
WuDaoCorpora:智源研究院BAAI:WuDaoCorpora Text文本预训练数据集 | × (暂未加入使用) | |
天工数据集:天工数据集 | √ |
tokenizer数据集链接 | 描述 |
---|---|
wiki语料wiki.txt | 中文wiki数据,用于训练tokenizer 来自于wiki_data |
下载后将源文件放入/data/tokenizer_data
下,提取其中的预料内容,执行/1_data_process
中的
python Tokenizer_1_WikiExtractor.py --infn /data/tokenzier_data/zhwiki-latest-pages-articles-multistream.xml.bz2
提取后需手动将wiki.txt
移动至/data/tokenzier_data
路径下
第二步将繁体转换为中文,名称可以对应调整,wiki_s
为对应的简体版本
python Tokenizer_2_convert_wiki_t2s.py
结果保存在/data/tokenzier_data/wiki_s.txt
训练tokenizer,将训练预料准备好并放入指定路径后,执行/2_pretrain
中的
python 1_train_tokenizer.py
训练好后的Tokenizer存储在model_save
路径下
预训练。(后续会加入acccelerate 加速,目前以脚本形式运行)执行/2_pretrain
中的
python 3_pretrain.py
训练好的checkpoints在model_save路径下
日常问答SFT数据:
SFT语料 | 描述 |
---|---|
alpaca-zh:alpaca-zh | 源自shibing624的一部分SFT数据。该数据集是参考Alpaca方法基于GPT4得到的self-instruct数据,约5万条。 |
bell:bell | 源自BelleGroup的一部分SFT数据。包含约100万条由BELLE项目生成的中文指令数据。 |
ChatLM-mini_Chinses: ChatLM-mini_Chinese
MINI_LLM: MINI_LLM
baby-llama2: baby-llama2