大模型训练被分解成了预训练,监督调优,对齐等阶段。
先看预训练,预训练,即Pre-training。
预训练的目的是让模型学习语言的特性,主要是学习语言表达的流畅性和规则。
至于具体的语言任务,比如对话,角色扮演,信息抽取,翻译,阅读理解,问答等,则需要放到监督调优。
预训练是大模型的基础和核心,预训练阶段决定了模型的基础能力和上限。需要注意:
一、模型架构
1.1 模型架构
虽然业内普遍采用的是Decoder,但在词表、向量化、注意力、神经网络等各层依然有比较大的差异。基于时间、资源等方面考虑,可以从主流开源的大模型中选择一款作为参考。流程走通之后,再修改模型架构。
比如训练中文常规的大语言模型,可以从下面的列表中选择:
清华智谱的chatglm架构
百川的Baichuan模型架构
阿里的Qwen模型架构
零一万物的0-1模型架构
1.2模型参数量
理论上讲,最好选择可以承担的最大规模参数的模型。
当然,从实验的角度考虑,可以优选小一点的模型,逐步扩大模型参数规模。
比如,可以选择0.5B左右的参数量。
实际上,现在HuggingFace已经推出更小的参数规模,参考:
SmolLM:一个超快速、超高性能的小模型集合 (huggingface.co)huggingface.co/blog/zh/smollm
能力也不错:
二、训练数据
2.1 数据类型
初次训练通用的大模型,不需要包括翻译、代码、数学等专业知识的大模型。可以筛选掉这些数据。
2.2 数据量
根据数据和模型参数20倍比的关系,如果选择0.5B参数,则需要数据量:20*0.5B= 10B
换算成1000 Token/sample,则需要:10*1,000,000,000/1000=10,000,000 samples,即不少于1千万行。据说是越多越好。
2.3数据从哪里来
理论上讲,学习过程应该包括: 百科,新闻、作文、小说、书籍、杂志、论文、中小学教材等。
可以不包括古文、古诗、歌词、代码等。
三、训练成本估算
如果选择0.5B参数,10B训练数据。
0.5B参数,需要的显存大小可以估算:40*0.5= 20GB,单张4090可以训练。按单张4090卡进行训练。
计算量=0.5_109*10*109_8=4*10^19
4090能力=83Tfloats = 83*10^12/s
训练时长:计算量/4090能力/GPU卡利用效率(0.3)/3600 = 446 hours
按租用4090一小时2.5元,预计成本1116元。
如果使用多张卡,比如4张,时长在120小时左右。
优快云独家福利
最后,感谢每一个认真阅读我文章的人,礼尚往来总是要有的,下面资料虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走: