Tele-FLM系列再升级!52B对话模型发布、全球首个万亿单体稠密模型开源

由北京智源人工智能研究院和中国电信人工智能研究院(TeleAI)联合研发的Tele-FLM(又名FLM-2)系列大模型近日再次升级,发布52B指令模型FLM-2-52B-Instruct(中文对话能力达到GPT-4的90%),并开源全球首个万亿单体稠密模型Tele-FLM-1T。相关技术报告介绍了52B模型监督微调的相关技术与方法,以及通过生长式方法高效、低成本训练万亿模型的探索和实践。为了促进相关领域的前沿探索,Tele-FLM-52B-Instruct和Tele-FLM-1T模型的checkpoint已经开源。

FLM-2-52B-Instruct模型开源链接

https://huggingface.co/CofeAI/FLM-2-52B-Instruct-2407

Tele-FLM-1T模型开源链接:

https://huggingface.co/CofeAI/Tele-FLM-1T

52B + 1T技术报告链接:

https://arxiv.org/abs/2407.02783

52B基座模型技术报告链接:

https://arxiv.org/abs/2404.16645

FLM-2-52B-Instruct 

FLM-2-52B-Instruct 是基于Tele-FLM-52B基座模型[1]进行指令微调获得的指令对话模型。

1.1 微调数据

我们专注于通过监督微调(SFT),使基座模型获得中文对话能力,以收集的100万条开源指令作为全集,并在不同的采样子集上进行微调,研究SFT数据对下游任务表现的影响。尽管SFT数据广泛涵盖了对话、数学、代码、推理、语言理解、头脑风暴、文本生成等多个领域,但是使用全集进行微调并不是SFT的最优解。通过对不同采样策略的实验,基于一个3万条数据的子集获得了最优结果。这3万条数据由两部分构成:

  • 25,000条被聚类模型标记为“数学”的数据,包括数学题目与对应的步骤、答案(主要是小学到初中难度),以及关于数学概念的问答。

  • 5,000条代码和多轮对话数据。

为了提升数据质量,我们使用Tele-FLM-52B基座模型计算每个回答的困惑度(Perplexity)。上述3万条数据是从更大的数据集样本中,在各个数据集中通过不同阈值,筛选出最低困惑度的数据。实验结果表明,选取低困惑度的数据有助于提升下游任务性能。

1.2 训练设置

训练过程中,将batch size设定为128,学习率设定为1.35e-5,总共训练4个epoch。学习率通过线性衰减,在第4个epoch末尾下降至5e-10。将weight decay设置为0.1,dropout设置为0。选取第4个epoch末尾的checkpoint进行评测和发布。

1.3 模型评测

基于AlignBench评测平台对中文对话能力进行评测。AlignBench包含8大类任务,其中数学计算、逻辑推理两项衡量模型的中文推理能力,基本任务、中文理解、综合问答、文本写作、角色扮演、专业能力六项衡量模型的中文语言能力。使用平台提供的CritiqueLLM服务对FLM-2-52B-Instruct模型的回答和参考答案进行打分。CritiqueLLM的打分与GPT-4具有较好的一致性[2]。

在下表中,GPT系列和ChatGLM-Turbo对比结果显示,FLM-2-52B-Instruct总体均分显著高于GPT-3.5,并达到GPT-4-0613的90%。

在表中可以观察到,在参与对比的模型中,FLM-2-52B-Instruct在基本任务和中文理解两个子项上取得最优,而在逻辑推理、综合问答、文本写作、角色扮演、专业能力等五个子项上位列第二,这说明对话模型具有先进的对话能力。同时,模型的数学和推理能力与GPT-4-1106仍然有明显差距,这是未来的改进方向之一。值得注意的是,SFT数据几乎只包含数学和推理相关的指令和对话,却在数学和推理以外的任务上取得了领先的效果。这表明SFT能够有效激发基座模型的知识和语言能力,并且达成这一目的所需要的训练数据量较少。这与SFT中一个“少即是多”的流行观点相吻合。然而,“少即是多”只对通用语言能力生效,而对于数学、推理任务,3万条领域内数据可能仍然是不足的。

Tele-FLM-1T

Tele-FLM-1T全球首个开源的具有万亿参数的稠密模型。基于前置工作FLM-101B的经验,Tele-FLM-1T采用生长式预训练以节省成本,旨在为开源领域的万亿模型训练提供一个较优的起始点。

2.1 模型结构

Tele-FLM-1T是由Tele-FLM-52B经过102B、1T两个阶段生长得到的。Tele-FLM系列在GPT系列的decoder-only Transformers基础上,引入了以下改动:

  • 加入Input和Output乘子

  • 旋转位置编码(RoPE)

  • RMSNorm和SwiGLU

  • 线型层去掉bias;Embedding和输出线性层取消绑定

每个生长阶段的模型结构参数如下表:

2.2 生长策略

Tele-FLM-1T的训练过程使用了类似于前置工作FLM-101B[3]的较为激进的生长策略,将较多的token分配给了52B阶段。在生长过程中,使用了基于前置工作MSG[4]改进的保值算子并探索了横向生长、纵向生长在万亿级模型上的可行方案。

  • 横向生长

横向生长指attention头数量、hidden_size和FFN隐层维度的增大。为了解决横向生长的保值性问题,在生长后的第一步,我们引入全零的mask,将新结构对模型计算流的影响完全消除;随后,这些mask的值在一定步数之内线性增加到1。这一过程的步数是一个可调节的超参数,称为"growth_transition_step"(过渡步数)。在过渡期结束后,模型所表达的函数与常见的目标结构等价。

  • 纵向生长

纵向生长是指模型层数的增加。在纵向生长过程中,我们也引入了与横向类似的mask机制实现保值。mask为0时,新增的层被完全跳过。纵向生长的一个关键问题是选取哪些已知层进行参数拷贝。我们观察到,每一层的输入和输出之间的欧式距离能够较为有效地反应该层的重要性。基于这一观察,我们设计了如下准则来筛选在纵向生长中进行拷贝的层:

· 优先选择输入-输出间欧氏距离最小的层;

· 对于距离相近的层,优先选择靠近模型输出位置的层;

· 避免将同一层参数拷贝两次或以上。

以上准则可以促使生长后的模型能够较快收敛。

2.3 预训练细节

生长式预训练过程采用的具体超参数设置见下表。

经验教训

3.1 监督微调

  • 观察发现,“少即是多”的指导思想在Tele-FLM-52B的微调中获得成功,少量的指令数据足以在通用对话场景下激发基础模型的能力。

  • 与此相反,对于数学、逻辑推理、代码生成等任务,更加精细的设计和更多的数据量可能是必须的,因为在低难度的数学题上进行SFT,其数学能力并不能推广到更难的数学和推理任务上。

3.2 生长式预训练

  • 保值的生长算子可以保证在千亿、万亿级别的激进生长策略下模型的收敛性。在生长后的每个阶段,更大的模型在相同数据量下的loss下降速度都快于前一阶段的小模型。计算资源限制了进一步与从零训练万亿模型进行横向比较,或进行全面的推理评测。

  • 当模型超过1T参数时,参数优化问题变得更加复杂。在生长场景下,有些小模型上的结论可以推广到大模型,有些则不能。初步观测表明2.3章中给出的参数设置是有效的,但更优的生长设计则需要进一步探索。

参考工作

[1] Tele-FLM-52B基座项目链接:https://huggingface.co/CofeAI/Tele-FLM

[2] AlignBench评测:https://github.com/THUDM/AlignBench

[3] FLM-101B项目链接:https://huggingface.co/CofeAI/FLM-101B

[4] MSG生长算子:https://github.com/cofe-ai/MSG

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值