NLP——Model-Growth-Initialization


整体说明

  • 模型增长初始化(Model Growth Initialization,MGI)是一种让大模型在不从头开始训练的前提下迅速“长大”并具备良好初始性能的技术
  • Model Growth Initialization 的核心思想是:先训练一个小模型,然后在深度或宽度上扩展成更大的模型(如增加层数、宽度或专家数量),并把小模型已学到的知识完整复用到大模型里 ,从而显著节省训练成本、提升收敛速度
  • TLDR:Model Growth Initialization 就是“把小模型当预制件,复制粘贴成大模型,再微调”,用最小的算力让大模型站在小模型的肩膀上起跑
  • 一个通俗的比喻:可以把模型训练比作盖楼:
    • 传统做法 :平地起高楼,从地基开始逐层盖(随机初始化)
    • MGI 做法 :先盖一栋“小楼”并装修完毕,然后把整栋小楼连同装修一起复制+堆叠 ,瞬间变成一栋“大厦”,再只对新增部分做微调

Background

  • 直接训练千亿参数的大模型成本极高(如 Llama-3 需消耗 770 万 GPU 小时),而 Model Growth Initialization 通过复用小模型的知识,显著降低计算成本
    • 例如,使用已训练的 7B 模型初始化 30B 模型时,可减少约 50% 的训练时间

结构扩展策略

  • 模型扩展通常分为三类:
    • 深度扩展 :增加 Transformer 层的数量
    • 宽度扩展 :增加神经元数量、头数或 FFN 维度(如 Net2Net 通过复制神经元并均分权重)
    • 混合扩展 :同时调整深度和宽度(在扩展层数的同时增加隐藏层维度)

参数初始化原则

  • 扩展后的模型需保持与原模型行为一致 ,避免训练震荡
  • Model Growth Initialization 的初始化原则是确保模型在结构扩展(如增加层数、宽度或专家数量)后,既能继承原小模型的知识,又能保持训练稳定性(避免梯度爆炸/消失或性能骤降),同时为新参数提供合理的学习起点
  • 这些原则的核心逻辑是:在“继承知识”与“学习新能力”之间找平衡
    • 通过功能保留和身份映射确保模型初始稳定
    • 通过部分保留和跨层传递实现精准知识迁移
    • 通过优化器状态一致保证训练连续性

Function-Preserving Initialization, FPI 原则

  • 让扩展后的大模型在初始状态下,对任意输入的输出与原小模型完全一致(或近似一致),实现“无损知识迁移”
  • 避免扩展后模型“忘记”原有的能力,为后续训练提供稳定起点
  • 通过精确的参数复制与调整,确保扩展后的模型计算逻辑与原模型等效
  • 示例:
    • 宽度扩展示例 :若原模型某层有2个神经元(h1, h2),输出为 y = w1*h1 + w2*h2,扩展到3个神经元时,新增神经元h3的权重复制h2的参数,同时将w2拆分为w2/2w2/2,使新输出 y = w1*h1 + (w2/2)*h2 + (w2/2)*h3 与原输出完全一致
    • 深度扩展示例 :新增 Transformer 层时,将其参数初始化为“恒等映射”(如自注意力的输出投影矩阵设为单位矩阵,偏置设为 0),确保新增层对输入不做任何修改,等效于原模型的计算流程(实际上就是后面要介绍的 IMI 方法)

Identity Mapping Initialization, IMI 方法

  • 让新增的层/参数在初始状态下“不干扰”模型原有计算,仅在训练中逐步学习新功能
  • 防止新增结构破坏原模型的优化状态(如损失函数突增),降低训练震荡风险
  • 将新增组件的参数初始化为“中性值”,使其对模型输出的影响为零或极小
  • 示例:
    • 新增 Transformer 层 :将多头注意力的输出权重矩阵初始化为单位矩阵(确保输入=输出),前馈网络(FFN)的中间层权重设为 0(使 FFN 等效于“跳过连接”)
    • MoE 模型新增专家 :将新专家的输入/输出投影权重初始化为0,使其在初始阶段不参与计算,仅通过训练逐步被激活
  • 注:“自注意力输出投影矩阵设为单位矩阵、偏置设为 0” 的做法,本身是 Identity Mapping Initialization 的具体操作,因为它直接让该组件成为 “恒等变换”
    • 但当这种操作被用于确保 “扩展后的整体模型与原模型功能一致” 时,它成为实现 FPI 的手段之一
  • 注:FPI(是一个原则) 保证新旧模型输出完全一样,而 IMI(是一种方法) 只保证新增部分是恒等映射,不保证整体输出不变
    • IMI 只保证新增部分是恒等映射,原始参数往往可能也会被修改

Optimizer State Consistency

  • 确保扩展后的模型优化器(如Adam)状态与原模型兼容,避免训练进程中断
  • 使扩展后的模型训练能“无缝衔接”原训练过程,减少重新收敛的时间
  • 复用原模型的优化器参数(如动量、二阶矩估计),并对新增参数初始化合理的优化器状态
    • 对复用的参数,直接继承原优化器的动量值,确保梯度更新方向与原训练一致;
    • 对新增参数,将优化器的动量初始化为 0(或小值),避免其初期干扰整体更新节奏

附录:一些典型方法与技术细节

Net2Net:开创性的结构扩展框架

  • 深度扩展(Net2DeeperNet) :直接复制Transformer层(如将L层模型扩展为2L层),确保每层输入输出形状一致
  • 宽度扩展(Net2WiderNet) :新增神经元的权重复制相邻神经元,并调整输出权重使总和不变。例如,原输出为y = e*h1 + f*h2,扩展后变为y = e*h1 + (f/2)*h2 + (f/2)*h3

Stacking Your Transformers:深度堆叠优化

  • G_stack操作符 :通过堆叠多个小模型(如 7B 到 70B),使大模型在 194B tokens 即可收敛到传统 300B tokens 的损失,速度提升 54.6%
  • 增长规划(Growth Schedule) :分阶段扩展模型,例如先训练 16B 模型,再逐步扩展至 101B,同时调整学习率和优化器状态

MoE 模型的扩展

  • Mixtral-8x7B :从 Mistral-7B 初始化,直接复用其 FFN 层作为专家,并通过微调不同任务的 FFN 生成多样化专家
  • 参数共享与隔离 :专家层共享底层编码器参数,但各自保留独立的前馈网络,平衡效率与多样性

初始化策略的精细化设计

  • 部分保留初始化(Partial Preservation Init) :保留原模型部分层的参数,随机初始化新增层
  • 交叉层知识传递(AKI) :不仅考虑当前层参数,还结合下一层参数进行初始化

附录:MGI 中的 FPI 原则详细介绍

  • 功能保留初始化(Function-Preserving Initialization,FPI) 特指通过精确的参数复制与调整,确保扩展后的大模型在初始状态下对任意输入的输出与原小模型完全一致(或高度近似),从而实现“无损知识迁移”
  • FPI 是模型增长初始化(Model Growth Initialization,MGI)中的关键要求

核心机制与示例

  • 宽度扩展 :当某层神经元数量从 2 个扩展到 3 个时,新增神经元的权重复制原模型中邻近神经元的参数,并通过权重拆分(如将原权重w拆分为w/2和w/2),使新输出与原输出完全一致。例如:
    • 原模型:\( y = w_1 h_1 + w_2 h_2 \)
    • 扩展后模型:\( y = w_1 h_1 + (w_2/2) h_2 + (w_2/2) h_3 \)
  • 深度扩展 :在新增 Transformer 层时,将其参数初始化为“恒等映射”,确保新增层对输入不做任何修改,等效于原模型的计算流程
    • 如自注意力的输出投影矩阵设为单位矩阵可实现恒等映射
  • MoE 模型扩展
    • 新增专家的输入/输出投影权重初始化为 0,使其在初始阶段不参与计算,仅通过训练逐步被激活,避免干扰原模型的优化状态

为什么 MGI 中需要 FPI?

  • 降低训练震荡风险 :通过确保扩展后的模型初始输出与原模型一致,避免损失函数突增或优化器状态中断
  • 加速大模型收敛 :复用小模型的知识,使大模型在训练初期即可继承成熟的特征提取能力,减少从头学习的时间成本