深度扩展 DUS 是什么?复制并拼接层数来低成本放大模型
深度扩展(Depth Up-Scaling,DUS)是一种简单高效地扩大大语言模型规模的方法,由韩国 AI 公司 Upstage 在 2023 年 12 月的论文《SOLAR 10.7B:用简单而有效的深度扩展来扩大大语言模型》中提出。它包括两个步骤:深度上的扩展,以及持续预训练。
为什么要扩展已有的模型
模型越大,通常能力越强。但从零开始训练一个大模型需要巨大的算力和数据。一种更经济的思路是“模型扩展”:在一个已经训练好的较小模型的基础上,把它变大,再继续训练,这样可以利用小模型已经学到的知识,大幅节省训练成本。一种常见的扩展方式是改成混合专家(MoE)结构,把一个模型复制成多个专家,但这需要改变模型的架构、引入额外的路由机制,训练和推理也变得更复杂,现有的推理框架和工具未必都能直接支持。
DUS 怎么做
DUS 的做法非常直接。以 SOLAR 10.7B 为例:它从一个 32 层的 70 亿参数模型(基于 Mistral 7B 的架构和权重)出发。第一步,把这个模型完整地复制一份,得到两个一模一样的 32 层模型。第二步,从第一个模型中去掉最后 8 层,从第二个模型中去掉最开始的 8 层,各剩下 24 层。第三步,把两个 24 层的部分首尾拼接起来,得到一个 48 层的更深的模型,参数量约为 107 亿。为什么要去掉一些层再拼接?如果直接把两个完整的模型首尾相连,连接处的“断层”会比较大,因为第一个模型的最后一层和第二个模型的第一层原本并不是相邻的。去掉一部分层,可以减小这种不连续性,让拼接后的模型更容易恢复性能。
拼接之后,模型的性能会暂时下降,所以第二步是持续预训练:用大量数据继续训练这个更深的模型,让拼接的部分重新协调起来,性能迅速恢复并超过原来的小模型。之后再进行指令微调和对齐训练。
效果和意义
论文报告,用 DUS 得到的 SOLAR 10.7B 模型,在多项基准上超过了 Llama 2、Mistral 7B 等同期的开源模型,而它的经过微调的版本,在发布时一度登上了 Hugging Face 开源模型排行榜的前列。DUS 的优点在于:它不改变 Transformer 的基本架构,扩展后的模型仍然是一个普通的稠密模型,可以直接使用现有的训练和推理工具;而且方法简单,扩展的成本远低于从头训练。这种“复制层来加深模型”的思路,在开源社区中也被广泛借鉴,用来低成本地制作更大的模型。