大型语言模型实战指南:应用实践与场景落地
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.2.8 Skywork模型

2023年10月30日,昆仑万维开源了130亿个参数的天工大模型Skywork-13B。Skywork-13B模型共采用3.2万亿个Token的数据进行模型预训练。预训练数据以网页、书籍、学术论文、百科全书、代码为主,涉及多种语言,但以中、英文为主,详细数据分布如表1-6所示。其中,杂项数据涉及法律文本、法律裁决书、年报等。Skywork模型的数据清洗过程主要包括结构内容提取、数据分布过滤、数据去重、数据质量过滤,并为了协调模型中英文的熟练程度,还构建了一个高质量的平行语料库(将英文段落与相应的中文段落配对,确保两种语言之间的语言能力无缝匹配)。

表1-6 Skywork模型的详细数据分布

(续)

Skywork模型在构建词表的过程中采用BPE分词器,对LLaMA模型的原始词表进行扩充,加入常用的中文字符和词语,包括BERT模型词表中的8000个单字符和25 000个高频的中文词语,并且保留了17个预留符号,最终词表大小扩展到65 536。Skywork模型的结构依然采用Transformer的解码器结构,但做了以下修改。

●位置编码:采用与LLaMA模型相同的RoPE,以便后续的上下文扩展。

●层归一化:对Transformer的输入进行前层归一化(pre-normalization),并用RMSNorm实现,以增强模型训练的稳定性。

●激活函数:采用SwiGLU激活函数,并将前馈网络的维度从隐藏层的4倍变成8/3倍。

与LLaMA模型相比,Skywork模型的结构更深、更窄,如表1-7所示,Skywork模型的层数较多,但隐藏层维度较小。

表1-7 Skywork模型与LLaMA模型结构差异对比

Skywork模型在预训练时采用了两阶段预训练策略,在第一阶段中主要采用通用语料(爬取的网页数据、书籍数据、论文数据等)进行模型预训练,让模型学习通用能力;在第二阶段中主要采用STEM(科学、技术、工程、数学)数据进行模型预训练,提升模型数据、逻辑推理、解题等能力。模型在预训练过程中输入上下文的最大长度为4096,采用AdamW优化器进行模型优化,其中β1和β2值分别为0.9和0.95,并且模型采用BFloat16混合精度进行训练。在第一阶段通用预训练时,采用2万亿个Token数据,利用余弦学习率进行训练,学习率从6×10-4逐步衰减到6×10-5。后续发现模型并没有完全收敛,增加了1万亿个Token数据进行增量训练,并将学习率恒定为6×10-5。在第二阶段预训练时,采用1300亿个数据和恒定为6×10-5的学习率进行模型训练。