人工智能咨询培训老师叶梓 转载标明出处
随着模型规模的扩大,如何确保训练数据的质量和模型的泛化能力,避免过度拟合特定数据集,成为了一个挑战。同时许多现有的大型语言模型虽然公开了部分信息,但关键的复现细节和数据集往往不透明,限制了研究者对模型的深入研究和应用。为了重振开源社区的活力并推动AI领域的透明度,Kunlun Inc.的Skywork团队提出了Skywork-13B,一个在超过3.2万亿词符的英文和中文文本上训练的大型双语基础模型。
论文链接:https://arxiv.org/pdf/2310.19341
项目链接:https://github.com/SkyworkAI/Skywork
方法
为了训练Skywork-13B,研究团队构建了一个名为SkyPile的大规模训练语料库,该语料库主要由公开可访问的网页组成。在SkyPile中,他们识别出一个小的子集,包括从小学到研究生级别的练习题和解答,这些大多与STEM领域相关。因此,他们将这个子集及其补充部分分别称为SkyPile-STEM和SkyPile-Main。
训练方法包括两个预训练阶段:
- 第一阶段:基础预训练阶段,从零开始在SkyPile-Main上训练模型。
- 第二阶段:在SkyPile-STEM上继续预训练,以增强模型在STEM相关领域的知识和问题解决技能。为了避免灾难性遗忘,这一阶段的预训练是在SkyPile-STEM和SkyPile-Main的混合数据上进行的。
目的有两个:
- 评估影响: 通过分离两个阶段的训练,可以更有效地评估通用预训练(基于网络文本)和针对性预训练(基于特定领域/监督数据)的影响。
- 提供选择: 通过限制第一阶段预训练使用通用数据,可以提供一个基础模型的版本,作为具有针对性增强的模型的替代品。这样的模型可能在某些下游任务上表现更优,但在自然文本的语言建模方面可能稍逊一筹。
现有的监控方法,如监控训练损失和中间检查点的基准测试结果,存在局限性。训练损失的有效性在考虑过拟合的可能性时受到质疑。训练损失只有在训练数据恰好使用一次(即在一个epoch中)时才等同于验证损失。然而,在实际训练大型语言模型时,高质量数据通常会多次经过训练过程。即使在明确去重之后,训练集中仍可能存在大量重复数据。在这些情况下,仅依赖训练损失可能会导致忽视过拟合问题,从而产生对模型性能过于乐观的估计。
基准测试结果的方差很大,可能导致对训练进展的评估不稳定和不可靠。此外,基准测试结果对训练中的微小进展不敏感,这使得准确跟踪训练过程中的逐步改进变得困难。最后,大多数基准测试需要模型生成,这是一个资源密集型的过程,需要大量的计算能力。
为了解决这些问题,研究者采用了一种监控方法,即在多个保留的验证集上监控语言建模损失,每个验证集反映了不同的数据分布。具体来说,他们为代码、学术出版物、社交媒体帖子、中英文网文等创建了单独的验证集。虽然也使用传统的监控指标,但它们仅作为辅助工具。在图1中,他们绘制了英语网文上的语言模型验证损失与几个英语下游任务的平均指标之间的曲线。很明显,这两个量之间存在很高的相关性,表明验证损失可以作为下游任务性能的有效代理指标。
想要掌握如何将大模型的力量发挥到极致吗?叶老师带您深入了解 Llama Factory ------ 一款革命性的大模型微调工具。9月22日晚,实战专家1小时讲解让您轻松上手,学习如何使用 Llama Factory 微调模型。
加助理微信提供直播链接:amliy007,29.9元即可参加线上直播分享,叶老师亲自指导,互动沟通,全面掌握Llama Factory,关注享粉丝福利,限时免费CSDN听直播后的录播讲解。
LLaMA Factory 支持多种预训练模型和微调算法。它提供灵活的运算精度和优化算法选择,以及丰富的实验监控工具。开源特性和社区支持使其易于使用,适合各类用户快速提升模型性能。
预训练
SkyPile包含超过6万亿个词符。其中超过1500亿个词符的网页文本已经开源,以促进中文大型语言模型(LLMs)的研究和训练。SkyPile主要由公开可获取的网络页面组成,强调文本质量和信息分布两个主要维度。
构建SkyPile的步骤包括:
- 结构化提取:从公开网页中提取相关内容,同时去除对语言模型训练无贡献的多余文本元素,如导航栏、特定网站联系信息、缺乏实质内容的标题文本等。
- 分布过滤:为了培养一个熟练的LLM,模型必须接触跨越广泛领域的多样化内容。研究团队通过评估文本片段之间的语义相似性来识别和排除重复率极高的文本块。
- 去重:去重在提高训练语料库的整体质量方面非常有效。在SkyPile中,去重被视为分布过滤过程的一个组成部分,有助于消除大量重复内容。
- 质量过滤:使用CCNet流水线执行两项关键过滤任务:淘汰质量较差的内容和排除非中英文的页面。通过训练一个二元分类器来预测给定网页是否适合作为维基百科语料库的参考。
为了提升模型在英文和中文上的语言能力,SkyPile还包括了精心策划的高质量平行语料库,这些数据被细致地组织起来,以确保英文段落与其相应的中文对应段落能够无缝对齐。
Skywork-13B在SkyPile上预训练了3.2万亿个词符。在第一阶段预训练中,训练数据主要由英文和中文文本组成,分别占数据的49.8%和39.6%。代码部分占8.0%,其他语言文本占剩余的2.4%。
数据使用字节对编码(BPE)进行标记化,这是在SentencePiece中实现的,遵循了LLaMA的方法。由于Skywork-13B旨在成为英中双语模型,因此扩展了LLaMA的原始词汇表,增加了常用的中文字符和词汇。词汇表的总大小为65,536个词符,其中17个是保留的特殊符号。
Skywork-13B基于变换器架构,由变换器解码器层堆叠而成。与原始变换器模型相比,团队进行了几项修改,这些修改受到了LLaMA的启发。图2展示了初步实验的结果,比较了传统的GPT架构和较新的LLaMA架构,清楚地显示了LLaMA架构在训练损失上优于GPT,证明了前者的优越性。
Skywork-13B在64个NVIDIA-HGX-A800节点上进行训练,总共有512个A800-80G SXM GPU。每个节点都配备了高速400GB/s NVLinks进行节点内通信和800Gb/s RoCE网络进行节点间连接。训练框架基于Megatron-LM库,支持大规模模型的稳定、长期训练。
Skywork-13B的预训练的两个阶段:
- 第一阶段:在SkyPile-Main上进行通用目的预训练。
- 第二阶段:在SkyPile-STEM上进行以STEM为导向的持续预训练。
在两个阶段中,模型都使用标准的自回归语言建模目标进行训练,上下文长度固定为4096个词符。AdamW优化器用于训练过程,β1和β2值分别为0.9和0.95。在预训练期间,应用了0.1的权重衰减和1.0的梯度裁剪。模型使用bfloat16混合精度进行训练。
图3展示了第一阶段预训练期间重要监控指标的轨迹。顶部左侧显示了训练损失,顶部中间和右侧显示了在英文和中文独立集上的验证损失。底部显示了CEVAL、MMLU和GSM8K基准测试结果。第一阶段预训练包括两个连续的训练阶段,损失曲线以不同颜色表示(0 ∼ 2T会话为红色,2 ∼ 3T会话为蓝色)。
图4展示了调整2 ∼ 3T训练阶段学习率的测试运行。可以看出,6e-5的学习率,即0 ∼ 2T训练阶段的最终学习率,取得了最佳结果。
图5展示了第二阶段预训练期间CEVAL基准分数的进展。其他与STEM相关的基准测试,如GSM8K,也呈现出类似的趋势。
实验
Skywork-13B的性能与几个类似规模的开源模型进行了比较,包括LLaMA-13B、LLaMA2-13B、Baichuan-13B、Baichuan2-13B、Xverse-13B和IntermLM-20B。这些模型的详细信息,如使用的词符数量和支持的主要语言,都在表4中进行了总结。
评估集中在几个流行的基准测试上,包括:
MMLU:一个旨在衡量预训练期间获得的知识的基准,涵盖57个STEM、人文、社会科学等学科,难度从初级到高级专业水平不等。
CEVAL和CMMLU:这两个中文基准测试模仿MMLU,CEVAL包含52个不同学科的13948个多项选择题,CMMLU涵盖从初级到高级专业水平的67个学科。
GSM8K:这个数据集包含8500个由人类编写的高质量小学数学文字题,这些多步骤问题需要2到8个步骤来解决。
在表5中,展示了不同模型在这些基准测试上的性能比较结果。CEVAL、CMMLU和MMLU的指标是5次准确率,而GSM8K是8次准确率。结果表明,Skywork-13B在CEVAL、MMLU和GSM8K基准测试上均取得了最高分,分别为60.6、62.1和55.8。在CMMLU基准测试上,Baichuan2-13B以62.0的得分表现最佳。
传统的LLM评估基准通常依赖于静态的人工标注样本数据集。这种方法的一个核心问题是,定期更新测试样本既困难又昂贵。随着时间的推移,静态测试集往往会过拟合,产生误导性的基准结果。研究者提出了语言建模评估作为一种有说服力的替代方案。语言建模中的困惑度(perplexity)作为与各种下游任务性能紧密相关的代理指标
为了对各种语言模型的语言建模能力进行评估,研究者特别收集了来自多个网站、每个网站根据其相应领域进行标记的多样化文本语料库。这些领域包括技术、电影、金融等。这些特定领域的评估数据集也已经开源供公众访问。
表6展示了Skywork-13B模型与其他模型在不同领域(如技术、电影、政府、金融)的语言建模性能比较结果。Skywork-13B在整体上展现出最佳性能,平均困惑度得分最低,为9.42。它不仅在类似规模的模型中表现突出,而且在某些领域中也超越了规模更大的模型,如InternLM-20B和Aquila2-34B。
随着Skywork-13B模型的发布,期待看到它在各种应用中的表现,希望它能够激发出更多创新的研究思路和应用场景。