MiniCPM详解

Last updated on December 26, 2024 pm

“MiniCPM: Unveiling the Potential of Small Language Models with Scalable Training Strategies” 由清华大学和 Modelbest Inc. 的众多研究人员共同撰写,介绍了 MiniCPM 系列小型语言模型,包括模型架构、训练方法、实验结果等,展现了其在模型和数据维度的可扩展性,以及在小型语言模型中的优势。

1. 研究背景

1.1 之前研究存在的问题

近年来,大型语言模型(LLMs)如GPT-3、PaLM等在自然语言处理领域取得了显著的进展。这些模型通常拥有数十亿甚至上万亿的参数,能够处理复杂的任务并展现出强大的泛化能力。然而,训练和部署这些大型模型面临着巨大的资源消耗和成本问题。例如,训练一个万亿参数的模型需要大量的计算资源和能源,且在实际应用中,这些模型的部署也面临着效率和可行性的挑战。

1.2 研究难点

尽管大型模型的性能令人印象深刻,但其高昂的训练成本和资源消耗使得许多研究者和企业难以负担。此外,这些模型在实际应用中的部署也面临着诸多限制,尤其是在资源受限的设备上,如个人电脑或智能手机。因此,如何在不牺牲性能的前提下,开发出资源效率更高的小型语言模型(SLMs)成为了当前研究的一个重要方向。

1.3 相关工作总结

近年来,小型语言模型(SLMs)的研究逐渐受到关注。一些研究者提出了通过数据优化、模型剪枝和架构重构等方法来提升SLMs的性能。例如,Phi系列、TinyLlama、MobileLLM等模型通过高质量数据和结构优化,展示了SLMs在特定任务上的潜力。然而,这些模型在综合能力上仍然难以与大型模型相媲美,且缺乏透明和可扩展的训练方法。

2. 研究方法

2.1 模型风洞实验

Scaling Hyper-parameters Invariant LM

Scaling Hyper-parameters Invariant LM(缩放超参数不变的语言模型)是一种旨在通过调整模型的超参数来实现不同规模模型的性能稳定的方法。这种方法的核心思想是利用Tensor Program框架中的宽度缩放和深度缩放技术,以预测大型语言模型(LLMs)的损失,并确保在不同规模的模型上获得最佳的学习率。

在MiniCPM中,作者采用了Tensor Program的这两种缩放技术:

  1. 宽度缩放(Width Scaling):这种技术通过调整模型的隐藏层维度来改变模型的宽度。在MiniCPM中,宽度缩放被应用于所有模型,包括MiniCPM-1.2B和MiniCPM-2.4B。

  2. 深度缩放(Depth Scaling):这种技术通过增加模型的层数来改变模型的深度。尽管Yang等人在2023年的研究中观察到,当网络块深度大于2时,深度缩放的效果不理想,但作者在实践中发现,对于MiniCPM模型,深度缩放仍然能够带来稳定的学习率。

此外,作者没有采用注意力softmax缩放技术,因为他们在实践中发现,即使不使用这种技术,模型的学习率仍然是稳定的。

通过这些缩放技术,MiniCPM能够在不同规模的模型上实现超参数的稳定性和一致性,从而提高模型的训练效率和性能。

image-20241223141035777

image-20241223141106997

最优批量大小

在”3.2 Optimal Batch Size”部分,论文探讨了批量大小(batch size)对模型训练的影响以及如何确定最佳的批量大小。批量大小决定了模型在每次迭代中处理的数据量,它直接影响模型的收敛速度和计算资源的消耗。以下是该部分的几个主要观点:

  1. 批量大小与收敛速度和资源消耗的平衡

    • 如果批量大小过大,会导致大量的数据和计算成本。
    • 如果批量大小过小,则需要更多的训练步骤,可能导致损失函数下降有限。
  2. 实验设置

    • 论文在三个不同大小的模型上进行了实验:0.009B、0.03B 和 0.17B。
    • 每个模型在六个不同的批量大小上进行训练,全局学习率为0.01,使用余弦学习率调度器。
  3. 观察到的趋势

    • 批量大小与损失之间的关系显示,随着损失的减少,最佳批量大小会增大。
    • 通过拟合等损失点,发现批量大小与损失之间存在线性关系。
  4. 公式推导

    • 论文提出了一个公式来描述批量大小(bs)与C4数据集上的损失(L)之间的关系:
      $$
      bs=\frac{1.21\times10^{9}}{L^{6.24}}
      $$

总的来说,论文通过实验和分析,展示了如何根据预期的损失来确定最佳批量大小,并提出了一个基于损失预测的批量大小估计方法。

image-20241223141919897

最优学习率

由于我们使用了张量程序(Yang等人,2022年;2023年),我们预计学习率在模型扩展期间不会发生显著变化。为了验证这一点,我们在0.04B、0.1B、0.3B和0.5B的六个学习率实验中进行测试。在图3中,我们发现尽管模型大小增加了十倍,最优基础学习率2并没有明显变化,保持在大约0.01左右。我们进一步在2.1B的规模上进行简单验证,确认0.01的学习率确实实现了最低损失。

图3:损失与学习率的关系。在应用张量程序后,学习率的变动变得非常小。

2.2 WSD 学习率调度器(LRS)

分析 Cosine LRS

图4:具有不同周期的余弦学习率调度器。Y轴是C4语料库上的损失。

在”4.1 Analysing Cosine LRS”小节中,论文分析了余弦学习率调度器(Cosine LRS)的关键特性和其对模型性能的影响。以下是该小节的主要内容:

  1. 余弦学习率调度器的基本原理

    • 余弦学习率调度器(Cosine LRS)是一种常用的学习率调整策略,它在训练过程中逐渐降低学习率,遵循余弦曲线的变化。具体来说,学习率在预热阶段达到最大值后,按照余弦函数的形状逐渐下降。
  2. 关键超参数

    • 余弦学习率调度器的一个关键超参数是步长 $T$,即余弦函数首次降到最小值的时间点。通常,$T$ 被设置为总训练步数 $S$。
  3. 实验验证

    • 论文通过在0.036B模型上进行实验,验证了不同 $T$ 值对学习率调度器性能的影响。实验结果表明,当 $T=S$ 时,模型的损失最低。这表明在整个训练过程中保持较高的学习率有助于模型找到更好的全局最优解。
    • 当 $T<S$ 或 $T>S$ 时,模型的性能不如 $T=S$ 时的表现。特别是,$T>S$ 会导致性能下降。
  4. 假设分析

    • 论文提出了两个假设来解释为什么 $T=S$ 时余弦学习率调度器表现优异:
      1. 当 $T=S$ 时,高学习率训练的持续时间更长,这有助于模型找到更好的全局最优解。
      2. 当 $T=S$ 时,学习率衰减阶段更为彻底,这可能涉及独特的训练动态,使模型能够找到更好的局部最优解。
  5. 实验结果

    • 实验结果显示,在 $T=S$ 时,余弦学习率调度器的性能最佳。具体来说,当训练步数为 $S=20N, 40N, 60N, 80N$ 时,损失总是由 $\operatorname{Cosine}(T)$ 达到最低,而不是 $\operatorname{Cosine}(T)$ 或 $\operatorname{CosineLoop}(T)$。

通过这些分析,论文强调了余弦学习率调度器在特定条件下(即 $T=S$)的优越性,并为后续提出的WSD(Warmup-Stable-Decay)学习率调度器奠定了基础。

提出 WSD LRS

在”4.2 WSD LRS”小节中,论文提出了一种新的学习率调度器,称为Warmup-Stable-Decay (WSD) 学习率调度器。以下是该小节的主要内容:

引言
  • 背景:现有的学习率调度器(如Cosine LRS)在训练过程中逐渐降低学习率,但在某些情况下,可能需要更灵活的调度策略来优化模型性能。
  • 目标:提出一种新的学习率调度器,能够在训练的不同阶段有效地调整学习率,以提高模型的训练效率和性能。
WSD LRS的定义
  • 定义:WSD LRS将训练过程分为三个阶段:预热阶段(Warmup)、稳定阶段(Stable)和衰减阶段(Decay)。
  • 公式
    $$
    WSD(T; s)=\left{\begin{array}{l}
    \frac{s}{W}\eta,\quad s<W\
    \eta,\quad W<s<T\
    f(s-T)\eta,\quad T<s<S
    \end{array}\right.
    $$
    其中,$0<f(s-T)\leq 1$ 是一个关于 $s$ 的递减函数,$\eta$ 是最大学习率。
实验验证
  • 损失下降:在0.036B模型上使用WSD LRS进行实验,结果显示在衰减阶段,随着学习率的降低,损失显著下降,并且很快达到或低于Cosine LRS在步长 $T=S$ 时的表现。

image-20241223143810882

  • 快速测试:缩短衰减阶段可以加快不同模型检查点的快速测试。实验表明,使用10%的总标记数进行衰减足以达到最佳效果。
数据扩展的有效性
  • 连续训练:使用WSD LRS可以持续训练固定大小的模型到极端收敛。实验比较了连续训练0.036B模型和使用40N数据的0.17B模型的性能,结果显示0.036B模型在增加约4倍的训练计算量的情况下,可以达到与0.17B模型相当的性能,同时节省了约5倍的推理计算量。

衰减阶段的分析

image-20241223144222463

image-20241223144246606

在”4.4 Analysis of the Decay Stage”部分,论文对MiniCPM-2.4B模型在衰减阶段的训练过程进行了详细分析。以下是该部分的几个主要分析点:

  1. 权重更新与损失的关系

    • 研究者计算了MiniCPM-2.4B模型中所有权重矩阵的最大权重元素更新。结果显示,权重更新与学习率的幅度之间存在强相关性。具体来说,在学习率衰减之前,模型检查点经历了显著的权重更新,但损失几乎没有减少。相反,在衰减阶段,尽管权重更新的幅度较小,损失却迅速下降。
  2. 梯度信息的分析

    • 研究者记录了0.2B模型的每一步梯度信息,并评估了连续步骤之间的差异,以近似二阶梯度信息。结果显示,梯度范数在衰减阶段减小,梯度之间的角度余弦值主要为正值,表明在衰减阶段,模型参数在每一步都是一致变化的。
    • 一阶梯度在每一步显著减小,与学习率的变化密切相关。二阶梯度的幅度略有增加,表明损失函数的曲率增大,接近局部最优解。
  3. 优化过程的几何解释

    • 研究者将优化过程视为在高维流形上的轨迹,并计算了一阶和二阶梯向导数。结果显示,一阶梯向导数与学习率成指数衰减,而二阶梯向导数的幅度略有增加。这表明在衰减阶段,模型参数的变化更加一致,损失函数的曲率增大,接近局部最优解。
  4. 实验结果的可视化

    • 图7展示了权重更新的最大差异,图8展示了梯度统计信息。这些图表直观地展示了在衰减阶段,尽管权重更新的幅度较小,但损失迅速下降的现象。

通过这些分析,研究者揭示了在衰减阶段,MiniCPM-2.4B模型的训练动态具有独特的特征,这些特征有助于模型更快地收敛到局部最优解。这些发现为进一步优化模型训练过程提供了重要的见解。

缩放定律的测量

image-20241223144614364

image-20241223144647906

在”4.5 Measuring the Scaling Law with WSD LRS”部分,论文介绍了如何利用WSD(Warmup-Stable-Decay)学习率调度器来高效地研究大规模语言模型(LLMs)的规模定律。以下是该部分的详细介绍和分析:

1. 规模定律的重要性

规模定律是指导LLMs发展的重要原则,它描述了模型规模和数据规模之间的关系。Kaplan等人(2020)和Hoffmann等人(2022)分别提出了不同的规模定律模型,前者认为模型规模增加十倍应对应数据规模增加一倍,而后者则认为两者应同比例增加。

2. 传统规模实验的挑战

传统的规模实验需要在不同模型规模和数据规模上进行多次训练,计算成本高昂,时间复杂度为$O(m^2 C)$,其中$m$是模型数量,$C$是每次训练的成本。

3. WSD调度器的优势

WSD调度器允许在稳定阶段的任意检查点开始衰减,从而在不需要从头开始训练的情况下,精确测量规模定律。这使得规模定律的测量在数据轴上具有线性成本$O(m C)$,大大提高了效率。

4. 实验设计
  • 模型和数据规模:研究者在6个不同规模的模型(从0.04B到2B)上进行了实验,每个模型在稳定阶段的6个不同检查点(从10N到60N数据)开始衰减。
  • 训练和评估:每个模型在五个独立的评估数据集上进行最终损失评估。为了公平比较,损失按字节数而非标记数平均。
5. 规模定律的拟合
  • 拟合公式:研究者使用Hoffmann等人(2022)提出的公式来拟合损失与模型规模和数据规模的关系:
    $$
    L(N, D) = C_N N^{-\alpha} + C_D D^{-\beta} + L_0
    $$
    其中,$N$和$D$分别是模型规模和数据规模,$C_N$和$C_D$是常数,$\alpha$和$\beta$是指数,$L_0$是常数项。
  • 最优模型和数据规模:通过拟合,研究者得到了每个数据集和检查点的最优模型规模$N_{\text{opt}}$和数据规模$D_{\text{opt}}$,并计算了数据-模型比例$\frac{D_{\text{opt}}}{N_{\text{opt}}}$。
6. 结果分析
  • 数据-模型比例:研究结果表明,数据-模型比例比Hoffmann等人(2022)的结果高得多,平均约为192倍,而不是20倍。这表明较小的模型可以吸收更多的数据,从而提高推理和部署的效率。
  • 与Chinchilla Optimal的比较:尽管与Chinchilla Optimal的结果存在较大差异,但通过与Llama2的比较,研究者认为WSD调度器在更现代的配置下可能具有更高的数据-模型比例。
7. 未来方向
  • 进一步研究:研究者计划深入分析衰减阶段的损失下降原因,并通过扩大模型和数据规模来增强MiniCPM的能力。
总结

通过引入WSD调度器,论文提出了一种高效的方法来研究LLMs的规模定律,显著降低了计算成本。研究结果表明,较小的模型可以吸收更多的数据,从而提高推理和部署的效率。未来的研究将进一步探索WSD调度器在其他模型上的应用及其对规模定律的影响。

3. 两阶段预训练策略

论文提出了一种两阶段的预训练策略,旨在提高小型语言模型(SLMs)的性能。以下是对该章节的详细总结和分析:

3.1 背景与动机

  • 背景:大型语言模型(LLMs)的训练成本高昂,且在个人电脑或智能手机等终端设备上部署效率低下。
  • 动机:探索小型语言模型(SLMs)作为资源高效的替代方案,并通过可扩展的训练策略,使其具备与大型模型相似的能力。

3.2 两阶段预训练策略

  • 阶段划分

    • 第一阶段:仅使用大规模、低质量的预训练数据进行训练。
    • 第二阶段:在衰减阶段引入高质量、知识导向的监督微调(SFT)数据,混合到预训练数据中。
  • 优势

    • 全面学习:在衰减阶段引入高质量数据,促进模型在更接近实际用户场景的数据分布上进行更显著的损失减少。
    • 持续训练:避免在整个预训练过程中均匀分布高质量数据,集中资源和持续预训练。

3.3 实验验证

image-20241223145718563

  • 实验设置

    • 模型选择:使用MiniCPM-2.4B和MiniCPM-1.2B模型。
    • 对比实验
      • A-1:2.4B模型,仅使用预训练数据进行衰减,随后进行4B标记的SFT。
      • A-2:2.4B模型,在衰减阶段混合高质量数据和SFT数据,随后进行4B标记的SFT。
      • B-1:1.2B模型,仅使用预训练数据进行衰减,随后进行6B标记的SFT。
      • B-2:1.2B模型,仅使用预训练数据进行衰减,随后进行12B标记的SFT。
      • B-3:1.2B模型,在衰减阶段混合高质量数据和SFT数据,随后进行6B标记的SFT。
  • 结果分析

    • A-2 vs A-1:尽管A-2和A-1在SFT阶段使用相同的数据分布,但A-2在衰减阶段引入高质量数据,显著提升了模型性能。
    • B-3 vs B-2:B-3在衰减阶段引入高质量数据,表现优于仅在SFT阶段引入高质量数据的B-2。

3.4 结论

  • 策略有效性:引入高质量数据到衰减阶段比仅在SFT阶段引入数据更能提升模型性能。
  • 推荐:建议从衰减阶段开始,专门化和增强模型能力。

总结

论文提出的两阶段预训练策略通过在不同阶段引入不同类型的数据,显著提升了小型语言模型的性能。该策略不仅提高了模型的学习效率,还为未来的大型语言模型开发提供了有价值的参考。

4. MiniCPM 模型

第6章节“6 Model”详细介绍了MiniCPM模型的各个方面,包括模型细节、训练阶段、训练数据分布、训练损失和模型评估。以下是各部分的详细介绍:

4.1 Model Details

image-20241223153902417

词汇

  • MiniCPM-2.4B:使用122,753词汇大小的tokenizer。
  • MiniCPM-1.2B:使用73,440词汇大小的tokenizer,较小的词汇表有利于效率而不显著影响性能。

共享输入输出层

  • 为了减少参数空间,MiniCPM-2.4B和MiniCPM-1.2B都使用了嵌入共享技术。

深而薄的网络

  • MiniCPM-2.4B:在训练MiniCPM-1.2B之前,采用了更深更薄的网络架构。
  • MiniCPM-1.2B:进一步加深和变薄,以适应长上下文任务。

组查询注意力

  • MiniCPM-2.4B:未修改注意力层。
  • MiniCPM-1.2B:应用了组查询注意力(Group Query Attention)以减少参数数量。

4.2 Training Stages

稳定训练阶段

  • 使用约1T的数据,主要来自开放数据集。
  • 使用WSD学习率调度器,批量大小为3.93百万,最大学习率为0.01。

衰减阶段

  • 使用预训练数据和高质量的SFT数据混合。
  • 采用指数衰减形式,T设为5000步(20B标记)。

SFT阶段

  • 使用类似衰减阶段的数据,但不包括预训练数据,训练约60亿标记。
  • 学习率与衰减阶段末尾相同,使用WSD调度器。

4.3 Training Data Distribution

image-20241223153949999

  • 稳定阶段:主要使用开放数据集,如CommonCrawl、Dolma、C4、Pile、Code Pre-train等。
  • 衰减阶段:数据混合包含更多样化和专有的数据,如UltraChat、SlimOrca、OssInstruct、EvolInstruct等。

4.4 Training Loss

image-20241223154011909

  • 在C4数据集上的整体训练损失显示,衰减阶段的损失显著下降。
  • 由于使用指数衰减,学习率降至最大值的10%以下后,损失仍继续下降,但最终检查点未用于微调。

4.5 Evaluation

image-20241223154036251

  • 使用开源工具UltraEval进行评估,支持多种主流大型模型的性能评估。
  • 评估数据集包括MMLU、CMMLU、C-Eval、MBPP、GSM8K、MATH、HumanEval、BBH等。
  • 评估方法包括标准化输入提示和调整输入输出模板,确保公平比较。

评估结果

  • MiniCPM-2.4B:在多个基准测试中表现优异,特别是在中文任务中表现优于Mistral-7B。
  • MiniCPM-1.2B:在多个基准测试中也表现出色,特别是在直接生成任务中表现优于PPL测试。

通过这些详细的介绍,可以看出MiniCPM模型在设计、训练和评估方面都经过了精心考虑和优化,取得了显著的性能提升。

5. MiniCPM 家族模型

论文介绍了基于MiniCPM基础模型的几种扩展模型,包括MiniCPM-DPO、MiniCPM-128K和MiniCPM-MoE。这些模型在各自的应用领域中展示了卓越的性能。以下是该章节的详细介绍:

5.1 MiniCPM-DPO

image-20241223154302859

image-20241223154345626

  • 背景:在微调阶段之后,使用DPO(Direct Preference Optimization)进行人类偏好对齐。
  • 训练:使用UltraFeedback作为主要对齐数据集,并构建了一个专有的偏好数据集以增强模型的代码和数学能力。
  • 结果:在MTBench上的得分从SFT后的6.89提高到7.25,超过了像Llama2-70B-Chat这样的大型模型。然而,基准测试结果略有下降,这是对齐税(alignment tax)的表现。

5.2 MiniCPM-128K

image-20241223154425567

  • 背景:处理长上下文任务需要模型能够隐含地理解长文本中的信息。
  • 初始化:禁用输入和输出之间的嵌入共享,以适应长上下文训练所需的词汇并行性。
  • 训练:使用WSD学习率调度器,训练数据分为“短数据”和“长数据”,长数据占44%,短数据占56%。使用Adjusted Base Frequency (ABF)和NTK-Aware RoPE Scaling进行扩展。
  • 评估:在∞Bench基准测试中表现优异,特别是在长上下文推理任务中,超越了ChatGLM3-6B-128K。

5.3 MiniCPM-MoE

image-20241223154445784

  • 背景:通过混合专家(MoE)技术扩展MiniCPM的能力。
  • 初始化:使用Sparse Upcycling进行初始化,将密集模型的每个MLP层替换为MoE层,路由参数随机初始化。
  • 训练:使用WSD学习率调度器,训练批量大小在稳定和衰减阶段为4M,在SFT阶段减少到2M。
  • 结果:在多个基准测试中表现优异,特别是在C-Eval、CMMLU、MMLU、HumanEval、MBPP、GSM8K和MATH等任务上。

MiniCPM家族的扩展模型在各自的领域中展示了卓越的性能,证明了MiniCPM在多样化的SLM应用中的潜力。未来的研究方向包括深入分析衰减阶段的损失下降,并通过扩展模型规模和数据规模来增强MiniCPM的能力。

6. 研究结论

  • MiniCPM 系列模型展示了小型语言模型在资源效率和性能上的巨大潜力。通过创新的训练方法和架构设计,MiniCPM 不仅在小型模型中表现出色,还能够与大型模型相媲美。WSD 学习率调度器的引入为模型的持续训练和数据-模型缩放规律的研究提供了新的思路。此外,MiniCPM 家族的多样化模型进一步巩固了其在不同应用场景中的基础地位。

7. 论文研究的不足

尽管 MiniCPM 在小型语言模型的研究中取得了显著进展,但仍存在一些不足之处:

  1. 未验证在大型模型上的应用:论文主要集中在小型模型的研究上,尚未验证 WSD 调度器在大型模型上的应用效果。
  2. 缺乏对损失下降机制的深入分析:尽管 WSD 调度器在 Decay 阶段表现出色,但其背后的机制尚未得到深入分析,未来需要进一步研究。
  3. 未考虑实际部署中的优化:虽然 MiniCPM 在资源效率上表现出色,但在实际部署中,仍需进一步优化以适应不同的硬件环境。

8.论文评价

优点与创新

  1. MiniCPM模型系列:论文介绍了MiniCPM系列小型语言模型,包括1.2B和2.4B非嵌入参数变体,这些模型在各自的小规模类别中表现卓越,并且与7B-13B大型语言模型的能力相当。
  2. 可扩展性:研究展示了在模型和数据维度上的可扩展性,为未来的大型语言模型(LLM)研究提供了潜力。
  3. 模型风洞实验:通过广泛的模型风洞实验,确保了稳定和最优的模型扩展。
  4. 温暖的稳定衰减(WSD)学习率调度器(LRS):引入了WSD LRS,有利于连续训练和领域适应,并能够高效地研究数据-模型扩展规律。
  5. 训练动态分析:对WSD LRS的训练动态进行了深入分析,揭示了模型预训练的有趣损失景观。
  6. 更高的计算最优数据-模型比率:通过WSD LRS,能够在模型轴上线性努力,在数据轴上忽略不计的努力,从而得出比Chinchilla Optimal更高的计算最优数据-模型比率。
  7. MiniCPM家族:介绍了MiniCPM家族,包括MiniCPM-DPO、MiniCPM-MoE和MiniCPM-128K,进一步巩固了MiniCPM在多样化小型语言模型应用中的基础。
  8. 公开可用:MiniCPM模型系列公开发布,便于其他研究人员使用和改进。

不足与反思

  1. 未扩展到大型语言模型:尽管研究了小型语言模型的扩展规律,但论文并未扩展到训练大型语言模型以验证扩展规律。
  2. WSD LRS在大型语言模型上的应用未完全探索:尽管对WSD LRS在大型语言模型上的潜在优势保持乐观,但目前尚未完全探索其在大型语言模型上的应用。

9. 关键问题及回答

问题1:MiniCPM模型在模型风洞实验中是如何进行超参数优化的?

MiniCPM模型在模型风洞实验中进行了广泛的超参数优化,主要包括以下几个方面:

  1. 宽度缩放:使用Tensor Program技术进行宽度缩放,支持CerebrasGPT等模型在不同模型规模下的超参数一致性。
  2. 深度缩放:同样使用Tensor Program技术进行深度缩放,尽管对于深度大于2的网络,深度缩放的效果不如预期,但实验结果显示最优学习率是稳定的。
  3. 学习率调度器:引入了Warmup-Stable-Decay(WSD)学习率调度器,适用于连续训练和领域适应。WSD调度器将训练阶段明确分为高学习率阶段和衰减阶段。

通过这些超参数优化技术,MiniCPM模型能够在不同模型规模下实现稳定的训练和优化。

问题2:Warmup-Stable-Decay(WSD)学习率调度器在MiniCPM模型中的具体实现和效果如何?

Warmup-Stable-Decay(WSD)学习率调度器在MiniCPM模型中的具体实现如下:

  1. 高学习率阶段:模型在初始阶段采用较高的学习率进行训练,以便快速找到全局最优解。
  2. 衰减阶段:当学习率达到一定值后,学习率逐渐减小,直至达到最小值。这一阶段的学习率衰减是线性的,并且在衰减结束后保持恒定。
  3. 连续训练:WSD调度器允许模型在衰减阶段之后继续进行训练,从而实现连续训练。

效果方面,WSD调度器在MiniCPM模型中表现出显著的优势:

  1. 损失降低:在衰减阶段,学习率的突然减小导致损失显著下降,并且损失迅速降至与Cosine LRS相当的水平。
  2. 连续训练:通过WSD调度器,模型可以在衰减阶段之后继续训练,达到与较大模型相似的性能,同时节省了大量的计算资源。
  3. 数据-模型缩放定律:WSD调度器使得研究数据-模型缩放定律变得更加高效,能够在模型轴和数据轴上以线性努力进行研究。

问题3:MiniCPM家族中的其他成员(如MiniCPM-DPO、MiniCPM-128K和MiniCPM-MoE)有哪些具体功能和表现?

MiniCPM家族中的其他成员包括MiniCPM-DPO、MiniCPM-128K和MiniCPM-MoE,它们各自具有不同的功能和表现:

  1. MiniCPM-DPO:在SFT阶段之后,MiniCPM-DPO通过DPO(Direct Preference Optimization)进行人类偏好对齐。使用UltraFeedback作为主要对齐数据集,并构建了一个专有的偏好数据集以增强模型的代码和数学能力。在MTBench基准测试中,MiniCPM-DPO的性能从SFT后的6.89提高到7.25,超过了多个较大的模型。
  2. MiniCPM-128K:将MiniCPM-2.4B的上下文长度从4096扩展到128,000 tokens,展示了小型语言模型在处理长上下文任务中的能力。通过调整基础频率和使用NTK-Aware RoPE Scaling等技术,MiniCPM-128K在∞Bench基准测试中取得了与Mistral-7B-Instruct-v0.2相当的结果,尽管其模型规模较小。
  3. MiniCPM-MoE:通过引入Mixture-of-Expert(MoE),MiniCPM-MoE进一步扩展了MiniCPM的能力。MoE模型在每个token上激活两个专家,并使用Router参数进行路由。在MBPP基准测试中,MiniCPM-MoE的性能与Llama2-34B相当,表明其在多任务语言理解方面的强大能力。

文章合集:https://github.com/chongzicbo/ReadWriteThink

微信公众号


MiniCPM详解
https://chongzicbo.github.io/2024/12/20/人工智能/multi-modal/论文阅读14:MiniCPM深入解析/
Author
程博
Posted on
December 20, 2024
Licensed under