LLaMA Pro:具有块扩展的渐进式 LLaMA[论文翻译]增量预训练 扩展transformer块

LLaMA Pro:具有块扩展的渐进式 LLaMA

https://arxiv.org/abs/2401.02415
Chengyue Wu1,2   Yukang Gan2   Yixiao Ge2
Zeyu Lu3   Jiahao Wang1   Ye Feng4   Ying Shan2   Ping Luo1

1The University of Hong Kong   2ARC Lab, Tencent PCG
3Shanghai Jiao Tong University   4Beijing Language and Culture University

https://github.com/TencentARC/LLaMA-Pro
Correspondence to yixiaoge@tencent.com.
摘要
人类通常会在不损害旧技能的情况下获得新技能;然而,大型语言模型(大语言模型)则相反,例如,从 LLaMA 到 CodeLLaMA。 为此,我们提出了一种新的大语言模型后预训练方法,并扩展了 Transformer 块。 我们仅使用新语料库来调整扩展块,高效且有效地提高模型的知识,同时减少遗忘。 在本文中,我们对代码和数学语料库进行了实验,产生了 LLaMA Pro-8.3B,这是一个从 LLaMA2-7B 初始化的多功能基础模型,在一般任务中表现出色,编程和数学。 LLaMA Pro 及其指令跟踪对应产品 (LLaMA Pro - Instruct) 在各种基准测试中实现了先进的性能,展示了相对于 LLaMA 系列中现有开放模型的优越性以及作为智能代理推理和解决不同的任务。 我们的研究结果为整合自然语言和编程语言提供了宝贵的见解,为开发在各种环境中有效运行的高级语言代理奠定了坚实的基础。

[Uncaptioned image]
LLaMA Pro:具有块扩展的渐进式 LLaMA


Chengyue Wu1,2   Yukang Gan2   Yixiao Ge2†
Zeyu Lu3   Jiahao Wang1   Ye Feng4   Ying Shan2   Ping Luo1
1The University of Hong Kong   2ARC Lab, Tencent PCG
3Shanghai Jiao Tong University   4Beijing Language and Culture University
https://github.com/TencentARC/LLaMA-Pro


Refer to caption
图1: LLaMA Pro - Instruct 在从通用语言到特定领域的各种任务中提供最先进的性能,优于 LLaMA 系列的现有模型。
1简介
大型语言模型(大语言模型)的出现彻底改变了自然语言处理领域,在各种现实世界任务中表现出了卓越的熟练程度OpenAI(2023); Chowdhery 等人 (2023)。 尽管具有多功能性,大语言模型在某些领域仍然存在不足,例如编程、数学、生物医学或金融。 这种限制阻碍了为更广泛的应用开发通用语言代理的进展。

现有作品Liu 等人 (2023);李等人 (2023a);吴等人(2023b)尝试通过定制数据配方来提高预训练大语言模型的多方面能力。 虽然可行,但它们需要大量的计算资源和大量的数据,这对大语言模型研究的民主化提出了挑战。 因此,另一项研究,称为领域自适应预训练,重点关注使用特定领域的语料库Gururangan 等人(2020)进行后预训练。 这些方法已证明能够有效地将各种大语言模型适应特定领域Roziere 等人 (2023);阿塞巴耶夫等人 (2023);吴等人 (2023b); Xu 等人 (2023b),从而以降低的计算成本提高下游特定领域任务的性能。

尽管如此,灾难性遗忘De Lange等人(2021)中出现了相当大的障碍。 预训练后往往会导致模型原有综合能力下降,抑制模型在不同任务上的微调性能Cheng 等人(2023);董等人(2023)。 这就需要一种方法,能够将特定领域的知识注入到大语言模型中,同时保留其通用能力,从而提高其综合能力。

Refer to caption
图2: (a)我们从一个在大量未标记语料库上预训练的大型语言模型(大语言模型)开始,得到一个具有很强通用能力的模型。 为了方便起见,这里我们选择现成的 LLaMA2。 (b) 我们采用主干扩展,并使用方面语料库对扩展的身份块进行扩展,同时冻结从基本模型继承的块。 预训练后的模型可以照常用于指令调优。
为此,我们引入了一种简单而有效的预训练后方法,称为块扩展。 我们使用复制的 Transformer 块扩展现成的预训练大语言模型,如图 2 所示。 新添加的块的线性层被零初始化以启用身份映射,仅使用特定领域的语料库进一步调整,而其余块则被冻结。 调整后,扩展的预训练模型在一般任务和特定领域任务中都表现出色。

在实践中,我们将预训练的 LLaMA2-7B Touvron 等人 (2023) 扩展了八个区块,产生了 LLaMA Pro,这是一个具有 8.3B 参数的基础模型,并且提高编程、编码和推理的性能。 我们使用开源代码和数学数据在 80B Token 上预训练 LLaMA Pro 的扩展块 2830 个 GPU 小时(16 个 NVIDIA H800 GPU 约 7 天)。 我们进一步使用大约 80M Token 在 LLaMA Pro 上执行监督指令调整(对所有块进行完全微调,aka SFT),产生LLaMA Pro - Instruct. 值得注意的是,我们的块扩展方法生成的预训练模型与后续的 SFT 技术很好地兼容,无需进行特定修改。

如图1所示,LLaMA Pro - Instruct在广泛的通用代码(即 、HumanEval)和数学(即、GSM8K)任务。 此外,我们还评估了LLaMA Pro - Instruct作为跨各种场景(即,MINT-Bench)的语言代理的能力,重点关注工具使用能力和立足于环境和人类反馈的能力。 我们还采用 GPT-4 OpenAI (2023) 自动评估来评估 LLaMA Pro 作为有效助手的能力(即,MT -长椅)。 综合实验结果表明,LLaMA Pro - Instruct 在基准测试和实际应用中均优于 LLaMA 系列的其他模型。 我们的贡献有三方面:

• 我们提出了一种新的大语言模型后预训练方法,称为块扩展,能够在保留初始能力的同时注入新知识。
• 我们推出LLaMA Pro和LLaMA Pro - Instruct,这是一个多功能的大语言模型,它很好地集成了自然语言和编程语言,在一般任务、编程和数学方面表现出色。
• 我们在广泛的数据集(包括传统任务和面向代理的任务)上对 LLaMA Pro 系列进行了基准测试,展示了其在更广泛的复杂应用中的优越性和巨大潜力。
2相关工作
大型语言模型的进步。
大型语言模型的最新进展带来了重大进展,模型和数据规模的增长推动了各种任务的最先进性能Hoffmann 等人 (2022); Kaplan 等人 (2020); Chowdhery 等人 (2023)。 通才模型的发展使得能够解决多样化的问题并快速适应新任务Radford 等人 (2019);布朗等人 (2020). 开源社区发布了 LLaMA Touvron 等人 (2023) 和 CodeLLaMA Roziere 等人 (2023) 等强大模型,进一步做出了贡献。 我们的工作建立在这些发展的基础上,提供了一种在代码领域专门化大语言模型的方法,促进未来的研究和应用。

后预训练。
语言模型应用通常涉及两步过程:通用领域预训练,然后是特定领域训练 Roziere 等人 (2023);阿塞巴耶夫等人 (2023)。 微调通常旨在增强遵循指令的能力 Sanh 等人 (2021);魏 等人 (2021); Wang 等人 (2023d) 或根据人类偏好调整模型输出 Ziegler 等人 (2019);欧阳等人 (2022); Bai等人(2022)。 一些研究探索了参数高效的微调方法,使预训练模型适应新领域Houlsby 等人 (2019);胡等人 (2021); Wu 等人 (2023a),而其他人则专注于预训练后的持续学习 Wang 等人 (2023b);古普塔等人 (2023); Scialom 等人 (2022)。 适配器和 LoRA 等参数高效的调优方法通常应用于指令调优阶段,而不是预训练阶段。 相比之下,我们的重点是通过在持续的预训练中增加深度来增强大语言模型的能力。 我们的工作提出了一种将持续训练与一般能力维护相结合的适应策略,使大语言模型能够在不牺牲整体性能的情况下进行专业化。

渐进式学习。
Progressive Training因加速计算机视觉Zhang 等人(2023)和NLP研究Yao 等人(2023)中的大规模模型训练而受到关注;李等人(2023b)。 Gong等人(2019)先后提出了一种将模型深度加倍的堆叠方法。 compoundGrowGu 等人 (2020) 在调度设计中通过前馈网络扩展来扩展堆叠。 Shen等人(2022)提出了一种支持隐藏尺寸扩展的分阶段方法。 Bert2BERTChen 等人 (2021a) 和 LiGO Wang 等人 (2023a) 适应所有增长维度。 我们的方法利用深度增长来保持总体性能,同时适应特定领域。

3方法
3.1预备:LLaMA 区块
Refer to caption
图3: (a) LLaMA 块概述,包括 MHSA 机制,后跟具有 SwiGLU 激活的 FFN。 (b) 恒等复制后的 Identity LLaMA 块,通过将输出线性矩阵初始化为零来实现,以保留基本 LLaMA 模型的输出。
LLaMA 块由多头自注意力 (MHSA) 机制组成,后跟具有剩余连接的位置前馈网络 (FFN) 和 Swish-Gated Linear Unit (SwiGLU) 操作,如图 3 显示。 给定输入 
𝑥
,LLaMA 模块会生成输出 
𝑦
,如以下等式所述:

𝑥

=
𝑥
+
MHSA

(
RMSNorm

(
𝑥
)
)
𝑦
=
𝑥

+
FFN

(
RMSNorm

(
𝑥

)
)
(1)
输入 
𝑥
 的尺寸为 
𝑛
×
𝑑
,其中 
𝑛
 是序列长度,
𝑑
 是隐藏大小。 输出 
𝑦
 与输入 
𝑥
 具有相同的尺寸。 MHSA 操作是 Transformer 的重要组成部分,定义为:

MHSA

(
𝑄
,
𝐾
,
𝑉
)
=
Concat

(
head
1
,

,
head

)

𝑊
𝑂
(2)
其中 
𝑄

𝐾
 和 
𝑉
 分别是查询矩阵、键矩阵和值矩阵,
𝑊
𝑂
 是输出权重矩阵没有偏见。 每个头计算如下:

head
𝑖
=
Attention

(
𝑥

𝑊
𝑖
𝑄
,
𝑥

𝑊
𝑖
𝐾
,
𝑥

𝑊
𝑖
𝑉
)
Attention

(
𝑄
𝑖
,
𝐾
𝑖
,
𝑉
𝑖
)
=
Softmax

(
𝑄
𝑖

𝐾
𝑖
𝑇
𝑑
𝑘
)

𝑉
𝑖
(3)
其中
𝑊
𝑖
𝑄

𝑊
𝑖
𝐾

𝑊
𝑖
𝑉
是第
𝑖
头的相应权重矩阵。

LLaMA 模型中的 FFN 模块利用 SwiGLU 激活函数,其定义为:

SwiGLU

(
𝑥
,
𝑊
,
𝑉
)
=
SiLU

(
𝑥

𝑊
)

(
𝑥

𝑉
)
FFN

(
𝑥
)
=
SwiGLU

(
𝑥
,
𝑊
1
,
𝑊
2
)

𝑊
3
(4)
其中

表示逐元素乘法,
𝑊
1

𝑊
2

𝑊
3
是无偏差的权重矩阵,
SiLU

(
𝑥
)
=
𝑥

𝜎

(
𝑥
)

3.2区块扩展
给定一个带有块 
(
𝜙
0
,
𝜙
1
,

,
𝜙
𝐿
)
 的模型,块扩展在原始模型中的每个块后面合并一个标识块 
𝜙
𝑖

𝑑
,确保扩展后的模型在扩展后保持相同的输出。 标识块定义为 
𝜙
𝑖

𝑑

(
𝑥
)
=
𝑥
,因此输入和输出是相同的。

假设我们有一个带有 
𝐿
 块的初始模型,需要扩展到 
𝐿

 块。 首先,我们将原始的 
𝐿
 块划分为 
𝑁
 组,每个组包含 
𝐿
𝑁
 块。 对于每个组,我们创建顶部 
𝑃
 块的身份副本,并将它们堆叠在每个组的顶部,如图 3 所示。 我们以交错的方式排列这些块,以保持 Transformer 模型的结构特征,其先验是更深的块编码更复杂的信息 Van Aken 等人 (2019); Tenney 等人 (2019)。 此过程会增加模型的深度,同时保持其输出行为。

Shen 等人 Shen 等人 (2022) 提出将恒等块内 Norm 模块中的尺度参数初始化为零,以构建恒等块。 然而,当应用于 LLaMA 块时,这种方法可能无效。 原因在于反向传播时损失函数
𝐿
相对于RMSNorm权重
𝑤
的梯度为零。 这将阻止 RMSNorm 的训练,这意味着当 
RMSNorm

(
𝑥

)
=
0
 时,以下条件将成立:


𝐿

𝑤
=

𝐿

𝑦


FFN

(
RMSNorm

(
𝑥

)
)

RMSNorm

(
𝑥

)


RMSNorm

(
𝑥

)

𝑤
=
0
.
(5)
该方程表示损失函数相对于 RMSNorm 权重的梯度为零,这将阻碍 RMSNorm 模块的性能。 附录A对此进行了进一步解释。 参考方程1中的LLaMA块公式,只要
MHSA

(
RMSNorm

(
𝑥
)
)
=
𝟎

FFN

(
RMSNorm

(
𝑥

)
)
=
𝟎
就可以实现恒等式。 我们将恒等块中的 
𝑊
𝑂
 和 
𝑊
3
 权重矩阵初始化为零。 由于 LLaMA 块中存在残差连接且不存在偏置项,因此只有残差流过恒等块。 结果,整个块在初始化时被简化为恒等块,保留初始模型的输出。

整个训练流程如图2所示。 我们的方法集中于预训练后阶段,针对特定领域的语料库。 我们首先使用在广泛的未标记通用语料库上训练的大型语言模型来初始化我们的模型,其中所有块都将进行微调。 为了增强模型容纳额外领域知识的能力,同时保留其一般知识,我们采用块扩展来增加大语言模型中的块数量。 在此过程中,我们仅对新添加的块进行操作,同时冻结原始块,从而保留了模型的一般能力。

4实验
本节介绍我们的主要实验结果。 我们从实验设置开始(在4.1节中描述),然后在预训练之后验证块扩展调整的有效性(在4.2节中描述)。 接下来,我们给出监督微调(SFT)结果(在第 3 节中描述)。 最后,提出了关键设计选择的消融研究(在4.5节中描述)。

4.1实验设置
预训练详细信息。
我们构建了一个专注于代码和数学的数据集。 对于代码组件,我们依赖 Stack-dedup 数据集,它是来自 GitHub 的许可源代码的编译。 在 Stack-dedup 中可用的所有编程语言中,我们特别利用了 Python split。 至于数学部分,我们选择 Proof-pile-2 数据集 Azerbayev 等人 (2023),这是一个包含 550 亿 Token 的科学论文、包含数学内容的网络数据和数学代码的组合。 详情请参阅附录3。

我们使用 LLaMA2-7B 初始化基本模型,并使用交错方法将块数量从 32 扩展到 40。 在块扩展过程中,我们将参数配置为
𝑃
=
1

𝑀
=
4

𝑁
=
8
,得到8组,每组从4个块扩展为5个块。 对于代码和数学语料库预训练,我们采用批量大小为 1024、序列长度为 4096、预热率为 6%、学习率为 2e-4 和余弦学习率调度器。 我们还使用 bf16 混合精度、0.1 的权重衰减和 1.0 的梯度裁剪。 为了加快训练过程,我们应用了 flash-attention 机制。

我们的实验是在 16 个 NVIDIA H800 GPU 上进行的。 LLaMA Pro 总共训练了 15,900 步。 此训练过程相当于大约 2830 个 H800 GPU 小时。

我们想强调的是,我们的方法不会产生更高的训练成本,并且值得投入额外的资源来在推理中实现特定领域任务的更好性能。

训练阶段费用: 我们的方法需要更少的计算资源,因为在训练期间仅调整新添加的块。 如图 4 所示,与 CodeLLaMA-7B(针对 500B Token 调整的 7B 参数)相比,LLaMA Pro-8B(针对 80B Token 调整的 1B 参数)产生的训练开销更少。 与从头开始训练特定领域模型(例如 StarCoder 和 CrystalCoder)相比,它使用的资源也更少。 尽管如此,我们的方法实现了一般性能和特定领域性能的更好平衡,提供了更具成本效益的解决方案。

推理阶段成本: 尽管我们的方法在推理过程中比最初的大语言模型需要更多的资源,但它在性能和效率之间取得了平衡。 LLaMA Pro-8B 在代码域中的性能优于 LLaMA2-13B 和 LLaMA2-34B 等较大模型,同时在训练和推理过程中所需的资源显着减少。

SFT 详细信息。
在指令微调阶段,我们结合五个数据源创建LLaMA Pro - Instruct,如表7所示。 最终的 sft 数据集由大约 1M 个样本组成。 为了模拟基本模型,我们采用了特定的配置,包括批量大小为 128、序列长度为 4096、预热比为 0.03、学习率为 2e-5、余弦学习率调度程序和 bf16 混合精度。

评价详情。
我们对LLaMA Pro与最新的最先进(SOTA)大型语言模型(大语言模型)进行了比较分析。 使用 Eleuther AI 语言模型评估工具在六个关键通用基准上进行评估1,一个统一的框架,旨在跨大量评估任务测试生成语言模型。 对于与代码相关的任务,我们使用 BigCode 评估工具2 来评估 HumanEval 和 MBPP,并报告使用贪婪解码的代码任务的 pass@1 率。 评估详情请参阅附录D。

4.2预训练结果
Model    Language Tasks    Math Tasks    Code Tasks    Avg.
ARC    HellaSwag    MMLU    TruthfulQA    Winogrande    GSM8K    GSM8K-PoT    HumanEval    MBPP    
Pretrained comparison
LLaMA Pro (8B)    54.10    77.94    47.88    39.04    73.95    17.89    25.42    28.66    33.20    44.23
CrystalCoder (7B)    47.01    71.97    48.78    35.91    67.17    10.77    24.96    28.38    36.38    41.26
LLaMA2-7B    53.07    78.59    46.87    38.76    74.03    14.48    17.68    13.05    20.09    39.62
CodeLLaMA-7B    39.93    60.80    31.12    37.82    64.01    5.16    25.20    33.50    41.40    37.66
StarCoder-15B    30.38    47.93    29.96    41.28    56.12    9.48    25.09    33.63    43.28    35.24
LLaMA-7B    50.94    77.81    35.69    34.33    71.43    8.04    10.46    10.61    17.04    35.15
OpenLLaMA-v2-7B    43.69    72.20    41.29    35.54    69.38    3.49    5.46    15.32    12.69    33.23
Falcon-7B    47.87    78.13    27.79    34.26    72.38    4.62    4.32    9.42    13.39    32.46
SFT comparison
LLaMA Pro - Instruct    52.30    76.88    52.57    48.80    72.53    43.59    55.61    44.51    37.88    53.85
LLaMA2-7B-Chat    52.90    78.55    48.32    45.57    71.74    7.35    19.73    14.63    21.60    40.04
CodeLLaMA-7B-Instruct    36.52    55.44    34.54    41.25    64.56    7.96    34.67    34.80    44.4    39.35
WizardCoder-Python-7B    41.81    65.06    32.29    36.32    61.72    4.70    17.60    42.07    47.20    38.75
WizardMath-7B    54.10    79.55    45.97    43.65    72.69    2.73    25.57    12.20    18.00    39.38
表格1:几种著名代码和语言模型的评估结果比较。
Refer to caption
图4: 我们将LLaMA Pro的总体性能和代码性能与一组大约在同一时间训练的模型进行比较,涵盖从通用大语言模型到面向代码的大语言模型。 blob 的大小与训练的 token 数量成正比。 Mistral-7B 未包含在此,因为其论文中未报告 Token 数量。
我们使用开放大语言模型排行榜的基准数据集评估LLaMA Pro的性能。 此外,我们还结合了编码基准数据集,包括 HumanEval pass@1 和 MBPP pass@1 以及数学基准 GSM8K,以提供全面的评估。 我们将 LLaMA Pro 的性能与一系列最先进的预训练模型进行比较,这些模型在同一时期以相似的大小进行了训练。 这包括通用预训练模型(如 LLaMA2)和面向代码的预训练模型(如 CodeLLaMA)。 结果如表1所示。

结果表明,LLaMA Pro 有效地平衡了自然语言处理和编码能力。 它不仅保留了其基础模型LLaMA2-7B的一般性能,而且在通用语言任务的平均性能上也超越了它。 相反,CodeLLaMA-7B 牺牲了总体性能。 我们将这一改进归功于我们的扩展设计,该设计冻结了初始的 LLaMA 块以保持其功能,并增加块以适应特定领域的知识。

如图4所示,LLaMA Pro显示出强大的总体性能以及与面向代码的大语言模型相当的代码性能。 位于 Pareto 前沿的 LLaMA Pro 与 LLaMA2 一起使用额外的 80B Token 进行了微调,使代码任务平均性能提高了一倍以上。 相比之下,CodeLLaMA 使用 500B Token 进行微调。 LLaMA Pro在总体性能方面表现出色,同时保持了与面向代码的大语言模型竞争的代码性能,无论是从头开始训练,例如StarCoder-15B和CrystalCoder,还是像CodeLLaMA一样进行微调- 7B.

4.3SFT 结果
Model    MT Bench
Alpaca-13B    4.53
CodeLLaMA-7B-Instruct    5.71
Vicuna-7B    6.17
LLaMA2-7B-Chat    6.27
LLaMA Pro - Instruct    6.32
表2:GPT-4 聊天机器人模型的自动评估。 LLaMA Pro - Instruct 的性能优于广泛使用的 LLaMA 社区聊天机器人。
现代大语言模型通常在对大量未标记数据进行预训练后进行有监督的微调或指令调整。 在本节中,我们的目标是证明我们的扩展策略可以适应这种广泛使用的训练管道,就像传统的大语言模型一样。

表 1 比较了 LLaMA 社区中几个著名的监督微调 (SFT) 大语言模型在一般任务、数学任务和代码任务基准方面的评估结果。 作为一个单一的 SFT 模型,LLaMA Pro - Instruct 实现了最先进的性能,即使与专门调整的模型(例如 WizardCoder 和 WizardMath)相比也是如此。 这展示了其更全面的能力。

如图 1 所示,LLaMA Pro - Instruct 将代码和数学任务提升至 SOTA 性能,同时保持可靠的总体性能。 我们将 LLaMA2-7B-chat 和 CodeLLaMA-7B-instruct 的平均性能分别提高了 13.81% 和 14.50%,这凸显了平衡文本和编码能力的好处。

为了评估 LLaMA Pro - Instruct 助手的综合对话性能,我们使用 Vicuna Zheng 等人 (2023)< 提出的带有 GPT-4 自动评分的 MT-Bench 对其进行评估/t1>. 如表 2 所示,LLaMA Pro - Instruct 超越了 LLaMA 社区广泛使用的聊天机器人。 这表明它作为聊天机器人的潜力,除了在传统基准测试中表现出色之外,还能够提供有用的响应。 MT-Bench的详细信息可以参见附录F。

我们使用 MINT-Bench Wang 等人 (2023c) 来评估我们的模型使用工具解决多轮交互的能力。 MINT-Bench通过生成和执行Python代码来测试大语言模型使用工具的能力,重点关注工具增强的任务解决和利用自然语言反馈。 MINT 包括八个数据集,涵盖推理、代码生成和决策。 MINT的详细信息可以参见附录E。结果如表LABEL:tab:mint所示。 与使用工具进行多轮交互的类似尺寸模型相比,LLaMA Pro - Instruct 实现了 SOTA 性能。

Model    Interaction Turns    Avg.
1    2    3    4    5    
AgentLM-7B    0.0    4.44    5.29    6.48    7.34    4.71
CodeLLaMA-7B-Instruct    0.34    7.85    10.24    9.73    8.70    7.37
LLaMA2-7B-Chat    1.02    4.27    6.66    6.48    7.34    5.77
Mistral-Instruct-v0.1    1.54    12.12    13.31    14.16    13.99    11.02
LLaMA Pro - Instruct    0.68    12.63    11.95    11.95    14.68    10.38
表3::在工具增强推理评估中,我们评估模型将工具集成到其推理工作流程中的熟练程度。 该模型的有效性是通过其在各个交互阶段的成功率来衡量的。
4.4Mistral-Pro 结果
Model    ARC    Hellaswag    MMLU    TruthfulQA    Winogrande    GSM8K    HumanEval
Gemma-7B    61.9    82.2    64.6    44.8    79.0    50.9    32.3
Mistral-7B    60.8    83.3    62.7    42.6    78.0    39.2    28.7
Mistral-Pro (Ours)    63.2    82.6    60.6    48.3    78.9    50.6    32.9
表 4:原版 Mistral-7B Jiang 等人 (2023)、Gemma-7B Team 等人 (2024) 与我们的 Mistral-Pro 与 Open 大语言模型排行榜的比较指标。
我们在 Mistral-7B Jiang 等人 (2023) 上进行了分块扩展实验,并在代码和数学数据集上进行了训练。 表 4 详细介绍了最终的预训练性能,突出显示了各种基准测试的优异结果,特别是在代码和数学领域。 值得注意的是,与新的开源模型 Gemma Team 等人 (2024) 相比,它展示了具有竞争力的结果,同时训练开销显着降低。 我们进一步利用 MetaMath 数据集 Yu 等人 (2023) 进行监督微调。 我们的方法在 GSM8k 上得到了 78.4 分,在 MATH 上得到了 30.3 分,分别超过了 Mistral 的 77.7 分和 28.2 分。 附录C中提供了更多详细信息。

4.5消融研究
Refer to caption
图5: 结合微调和 LoRA 等传统训练策略,分析了添加不同块和混合专家 (MoE) 扩展的训练损失。
Method    Language Tasks    Law Task    Avg.
ARC    HellaSwag    MMLU    TruthfulQA    Winogrand    Avg.    Unfair-ToS    
Add 1 Block    52.30    77.92    38.62    37.80    73.16    55.96    67.45    61.71
Add 2 Block    53.16    77.91    39.62    38.92    73.01    56.52    69.57    63.05
Add 4 Block    52.39    76.92    37.30    40.53    72.22    55.87    71.31    63.59
Add 8 Block    52.90    76.63    41.74    39.83    72.38    56.70    75.11    65.91
Add 16 Block    51.88    76.59    41.35    40.13    71.82    56.35    75.17    65.76
Add 32 Block    50.77    76.72    40.68    41.66    72.77    56.52    73.93    65.23
Mixture-of-Expert (MoE)    51.45    76.51    42.47    40.13    72.23    56.56    67.27    61.92
Fine-tuning    48.81    74.49    41.13    41.49    69.14    55.01    70.63    62.82
LoRA    53.50    78.12    44.30    40.96    73.88    58.15    65.34    61.75
Prefix Stacking (8 Block)    27.82    26.12    23.12    22.52    47.20    29.36    0.81    15.08
Suffix Stacking (8 Block)    52.56    77.89    39.10    39.03    72.38    56.19    60.98    58.59
表 5:比较不同训练策略的评估结果,报告一般任务和特定法律任务的表现。
Refer to caption
图6: 与初始 LLaMA-2-7B 相比,块扩展后词符分布发生变化。 未移动、轻微移动和显着移动的标记的比例用颜色编码并以百分比表示。 下面显示了经常转移的 Token 。
Refer to caption
图7: 通过使用相同的指令数据集对 LLaMA2-7B 和 LLaMA Pro 进行微调,LLaMA Pro 在所有任务中始终优于 LLaMA2-7B。 这一结果凸显了我们方法的有效性,因为它表明 LLaMA Pro 在预训练过程中成功编码了更多领域知识。
除了代码语料库方面,我们在另一个领域探索了我们的方法:法律,以 Pile 数据集的 freelaw 子集作为我们的预训练语料库 Gao 等人 (2020)。 我们对 LexGLUE 基准 Chalkidis 等人 (2021) 的 UNFAIR-ToS Lippi 等人 (2019) 进行评估。

在我们的实验中,当我们增加添加的块的数量时,我们根据训练损失和下游任务性能来评估块扩展方法的可扩展性。 我们还将我们的方法与 Mixture-of-Expert (MoE) 扩展方法 Fedus 等人 (2022) 和传统训练策略进行比较,例如微调和 LoRA Hu 等人 (2021) )。 详情请参阅附录12。

我们分析了不同添加块的训练损失(图5)。 无论添加的块数量如何,损失在训练过程中都会持续下降,并且模型越大,损失下降得越快。 这些发现表明我们的方法通过更大的模型和更多的数据表现出强大的可扩展性。

然而,较低的总体训练损失并不一定能保证在特定领域的任务上表现出色。 因此,我们在通用语言任务和Unfair-ToS上评估不同大小的模型,如表5所示。 所有扩展模型都有效地保留了初始模型的一般功能。 对于特定领域的任务,更大的模型可以获得更好的性能。 我们发现,与较大的模型相比,添加八个块可以以最小的成本提供最佳性能,因此我们采用此作为默认策略。 MoE 的性能与我们添加四个块的方法相当。 图9说明了传统训练策略(例如微调和LoRA)与我们提出的方法之间的差异。 我们观察到,虽然 LoRA 有效地保留了一般能力,但它很难对新域的分布进行建模,图 5 中描述的训练损失也证明了这一点。 相比之下,全面微调会导致总体性能下降更显着。 在这里,我们对 LoRA 使用 1024 的等级,从而得到许多与我们的方法相当的可训练参数。

按照Lin等人(2023)的方法,我们分析了原始LLaMA和LLaMA Pro之间的词符分布,以评估它们在回答一般问题时行为的相似性来自 Alpaca 数据集Taori 等人 (2023) 的问题。 如图6所示,LLaMA和LLaMA Pro之间的词符分布变化是微妙的。 详细信息可参见附录G。

我们还分析了单位块添加位置(模型底部或顶部)与交错添加单位的影响,如表 5 所示。 我们观察到,在底部添加块会导致评估性能不佳,可能是因为它破坏了模型的基础,导致错误在整个模型中传播。 在模型顶部添加块 Gong 等人 (2019) 保留了初始模型的性能,但其在特定领域任务上的性能低于添加交错块时的性能。

正如 LIMA 研究 Zhou 等人 (2023) 所强调的那样,大语言模型中的大部分知识都是在预训练过程中获得的,只需要有限数量的指令调优数据即可生成高质量的输出。 为了调查预训练过程中编码知识的程度,我们使用相同的指令数据集对 LLaMA2-7B 和 LLaMA Pro 进行了比较分析,如图7所示。 我们的结果表明,LLaMA Pro 在所有任务中始终优于 LLaMA2-7B,这表明我们的方法有效地使 LLaMA Pro 在预训练阶段编码更多特定领域的知识。

5范围和限制
尽管我们的研究提出了一种在大语言模型中平衡一般能力和特定领域能力的有前途的方法,但其范围仅限于语言模态,特别是编程语言和英语。 未来的研究可以探索将我们的分块扩展方法的应用扩展到其他领域,例如在多模态大语言模型中保持原始语言能力Ge等人(2023); Bai 等人 (2023),以及多语言领域。

6结论
在本研究中,我们引入了一种用于大语言模型(大语言模型)预训练后的新型块扩展方法,旨在增强特定领域的能力,同时保留原始的通用能力。 我们的方法有效地平衡了模型在一般任务和特定领域任务中的性能。 我们通过LLaMA Pro证明了我们方法的有效性,这是一个从LLaMA2-7B初始化并添加了8个块的大语言模型,它在综合基准测试中优于其他LLaMA系列模型。

7道德声明
LLaMA Pro 和 LLaMA Pro - Instruct 专为各种 NLP 任务而设计,重点关注编程、数学和通用语言任务。 适合需要自然语言和编程语言融合的场景。 虽然 LLaMA-Pro 解决了该系列中先前模型的一些限制,但它仍然可能遇到特定于高度专业化领域或任务的挑战。 用户应该意识到模型中的潜在偏差并负责任地使用它,考虑到它对具有 LLaMA-2 许可证的各种应用程序的影响。

参考
Austin et al. (2021)Jacob Austin, Augustus Odena, Maxwell Nye, Maarten Bosma, Henryk Michalewski, David Dohan, Ellen Jiang, Carrie Cai, Michael Terry, Quoc Le, et al. 2021.Program synthesis with large language models.arXiv preprint arXiv:2108.07732.
Azerbayev et al. (2023)Zhangir Azerbayev, Hailey Schoelkopf, Keiran Paster, Marco Dos Santos, Stephen McAleer, Albert Q Jiang, Jia Deng, Stella Biderman, and Sean Welleck. 2023.Llemma: An open language model for mathematics.arXiv preprint arXiv:2310.10631.
Bai et al. (2023)Jinze Bai, Shuai Bai, Shusheng Yang, Shijie Wang, Sinan Tan, Peng Wang, Junyang Lin, Chang Zhou, and Jingren Zhou. 2023.Qwen-vl: A frontier large vision-language model with versatile abilities.arXiv preprint arXiv:2308.12966.
Bai et al. (2022)Yuntao Bai, Andy Jones, Kamal Ndousse, Amanda Askell, Anna Chen, Nova DasSarma, Dawn Drain, Stanislav Fort, Deep Ganguli, Tom Henighan, et al. 2022.Training a helpful and harmless assistant with reinforcement learning from human feedback.arXiv preprint arXiv:2204.05862.
Brown et al. (2020)Tom Brown, Benjamin Mann, Nick Ryder, Melanie Subbiah, Jared D Kaplan, Prafulla Dhariwal, Arvind Neelakantan, Pranav Shyam, Girish Sastry, Amanda Askell, et al. 2020.Language models are few-shot learners.Advances in neural information processing systems, 33:1877–1901.
Chalkidis et al. (2021)Ilias Chalkidis, Abhik Jana, Dirk Hartung, Michael Bommarito, Ion Androutsopoulos, Daniel Martin Katz, and Nikolaos Aletras. 2021.Lexglue: A benchmark dataset for legal language understanding in english.arXiv preprint arXiv:2110.00976.
Chen et al. (2021a)Cheng Chen, Yichun Yin, Lifeng Shang, Xin Jiang, Yujia Qin, Fengyu Wang, Zhi Wang, Xiao Chen, Zhiyuan Liu, and Qun Liu. 2021a.bert2bert: Towards reusable pretrained language models.arXiv preprint arXiv:2110.07143.
Chen et al. (2021b)Mark Chen, Jerry Tworek, Heewoo Jun, Qiming Yuan, Henrique Ponde de Oliveira Pinto, Jared Kaplan, Harri Edwards, Yuri Burda, Nicholas Joseph, Greg Brockman, et al. 2021b.Evaluating large language models trained on code.arXiv preprint arXiv:2107.03374.
Chen et al. (2023a)Wenhu Chen, Xueguang Ma, Xinyi Wang, and William W. Cohen. 2023a.Program of thoughts prompting: Disentangling computation from reasoning for numerical reasoning tasks.Transactions on Machine Learning Research.
Chen et al. (2023b)Wenhu Chen, Ming Yin, Max Ku, Pan Lu, Yixin Wan, Xueguang Ma, Jianyu Xu, Xinyi Wang, and Tony Xia. 2023b.Theoremqa: A theorem-driven question answering dataset.arXiv preprint arXiv:2305.12524.
Cheng et al. (2023)Daixuan Cheng, Shaohan Huang, and Furu Wei. 2023.Adapting large language models via reading comprehension.arXiv preprint arXiv:2309.09530.
Chowdhery et al. (2023)Aakanksha Chowdhery, Sharan Narang, Jacob Devlin, Maarten Bosma, Gaurav Mishra, Adam Roberts, Paul Barham, Hyung Won Chung, Charles Sutton, Sebastian Gehrmann, et al. 2023.Palm: Scaling language modeling with pathways.Journal of Machine Learning Research, 24(240):1–113.
Clark et al. (2018)Peter Clark, Isaac Cowhey, Oren Etzioni, Tushar Khot, Ashish Sabharwal, Carissa Schoenick, and Oyvind Tafjord. 2018.Think you have solved question answering? try arc, the ai2 reasoning challenge.arXiv preprint arXiv:1803.05457.
Cobbe et al. (2021)Karl Cobbe, Vineet Kosaraju, Mohammad Bavarian, Mark Chen, Heewoo Jun, Lukasz Kaiser, Matthias Plappert, Jerry Tworek, Jacob Hilton, Reiichiro Nakano, et al. 2021.Training verifiers to solve math word problems.arXiv preprint arXiv:2110.14168.
De Lange et al. (2021)Matthias De Lange, Rahaf Aljundi, Marc Masana, Sarah Parisot, Xu Jia, Aleš Leonardis, Gregory Slabaugh, and Tinne Tuytelaars. 2021.A continual learning survey: Defying forgetting in classification tasks.IEEE transactions on pattern analysis and machine intelligence, 44(7):3366–3385.
Dong et al. (2023)Guanting Dong, Hongyi Yuan, Keming Lu, Chengpeng Li, Mingfeng Xue, Dayiheng Liu, Wei Wang, Zheng Yuan, Chang Zhou, and Jingren Zhou. 2023.How abilities in large language models are affected by supervised fine-tuning data composition.arXiv preprint arXiv:2310.05492.
Fedus et al. (2022)William Fedus, Barret Zoph, and Noam Shazeer. 2022.Switch transformers: Scaling to trillion parameter models with simple and efficient sparsity.The Journal of Machine Learning Research, 23(1):5232–5270.
Gao et al. (2020)Leo Gao, Stella Biderman, Sid Black, Laurence Golding, Travis Hoppe, Charles Foster, Jason Phang, Horace He, Anish Thite, Noa Nabeshima, et al. 2020.The pile: An 800gb dataset of diverse text for language modeling.arXiv preprint arXiv:2101.00027.
Ge et al. (2023)Yuying Ge, Sijie Zhao, Ziyun Zeng, Yixiao Ge, Chen Li, Xintao Wang, and Ying Shan. 2023.Making llama see and draw with seed tokenizer.arXiv preprint arXiv:2310.01218.
Gong et al. (2019)Linyuan Gong, Di He, Zhuohan Li, Tao Qin, Liwei Wang, and Tieyan Liu. 2019.Efficient training of bert by progressively stacking.In International conference on machine learning, pages 2337–2346. PMLR.
Gu et al. (2020)Xiaotao Gu, Liyuan Liu, Hongkun Yu, Jing Li, Chen Chen, and Jiawei Han. 2020.On the transformer growth for progressive bert training.arXiv preprint arXiv:2010.12562.
Gupta et al. (2023)Kshitij Gupta, Benjamin Thérien, Adam Ibrahim, Mats L Richter, Quentin Anthony, Eugene Belilovsky, Irina Rish, and Timothée Lesort. 2023.Continual pre-training of large language models: How to (re) warm your model?arXiv preprint arXiv:2308.04014.
Gururangan et al. (2020)Suchin Gururangan, Ana Marasović, Swabha Swayamdipta, Kyle Lo, Iz Beltagy, Doug Downey, and Noah A Smith. 2020.Don’t stop pretraining: Adapt language models to domains and tasks.arXiv preprint arXiv:2004.10964.
Hendrycks et al. (2020)Dan Hendrycks, Collin Burns, Steven Basart, Andy Zou, Mantas Mazeika, Dawn Song, and Jacob Steinhardt. 2020.Measuring massive multitask language understanding.arXiv preprint arXiv:2009.03300.
Hendrycks et al. (2021)Dan Hendrycks, Collin Burns, Saurav Kadavath, Akul Arora, Steven Basart, Eric Tang, Dawn Song, and Jacob Steinhardt. 2021.Measuring mathematical problem solving with the math dataset.NeurIPS.
Hoffmann et al. (2022)Jordan Hoffmann, Sebastian Borgeaud, Arthur Mensch, Elena Buchatskaya, Trevor Cai, Eliza Rutherford, Diego de Las Casas, Lisa Anne Hendricks, Johannes Welbl, Aidan Clark, et al. 2022.Training compute-optimal large language models.arXiv preprint arXiv:2203.15556.
Houlsby et al. (2019)Neil Houlsby, Andrei Giurgiu, Stanislaw Jastrzebski, Bruna Morrone, Quentin De Laroussilhe, Andrea Gesmundo, Mona Attariyan, and Sylvain Gelly. 2019.Parameter-efficient transfer learning for nlp.In International Conference on Machine Learning, pages 2790–2799. PMLR.
Hu et al. (2021)Edward J Hu, Yelong Shen, Phillip Wallis, Zeyuan Allen-Zhu, Yuanzhi Li, Shean Wang, Lu Wang, and Weizhu Chen. 2021.Lora: Low-rank adaptation of large language models.arXiv preprint arXiv:2106.09685.
Jiang et al. (2023)Albert Q Jiang, Alexandre Sablayrolles, Arthur Mensch, Chris Bamford, Devendra Singh Chaplot, Diego de las Casas, Florian Bressand, Gianna Lengyel, Guillaume Lample, Lucile Saulnier, et al. 2023.Mistral 7b.arXiv preprint arXiv:2310.06825.
Jiang et al. (2024)Albert Q Jiang, Alexandre Sablayrolles, Antoine Roux, Arthur Mensch, Blanche Savary, Chris Bamford, Devendra Singh Chaplot, Diego de las Casas, Emma Bou Hanna, Florian Bressand, et al. 2024.Mixtral of experts.arXiv preprint arXiv:2401.04088.
Kaplan et al. (2020)Jared Kaplan, Sam McCandlish, Tom Henighan, Tom B Brown, Benjamin Chess, Rewon Child, Scott Gray, Alec Radford, Jeffrey Wu, and Dario Amodei. 2020.Scaling laws for neural language models.arXiv preprint arXiv:2001.08361.
Li et al. (2023a)Raymond Li, Loubna Ben Allal, Yangtian Zi, Niklas Muennighoff, Denis Kocetkov, Chenghao Mou, Marc Marone, Christopher Akiki, Jia Li, Jenny Chim, et al. 2023a.Starcoder: may the source be with you!arXiv preprint arXiv:2305.06161.
Li et al. (2023b)Xiang Li, Yiqun Yao, Xin Jiang, Xuezhi Fang, Xuying Meng, Siqi Fan, Peng Han, Jing Li, Li Du, Bowen Qin, et al. 2023b.Flm-101b: An open llm and how to train it with $100 k budget.arXiv preprint arXiv:2309.03852.
Lian et al. (2023)Wing Lian, Guan Wang, Bleys Goodson, Eugene Pentland, Austin Cook, Chanvichet Vong, and "Teknium". 2023.Slimorca: An open dataset of gpt-4 augmented flan reasoning traces, with verification.
Lin et al. (2023)Bill Yuchen Lin, Abhilasha Ravichander, Ximing Lu, Nouha Dziri, Melanie Sclar, Khyathi Chandu, Chandra Bhagavatula, and Yejin Choi. 2023.The unlocking spell on base llms: Rethinking alignment via in-context learning.arXiv preprint arXiv:2312.01552.
Lin et al. (2021)Stephanie Lin, Jacob Hilton, and Owain Evans. 2021.Truthfulqa: Measuring how models mimic human falsehoods.arXiv preprint arXiv:2109.07958.
Lippi et al. (2019)Marco Lippi, Przemysław Pałka, Giuseppe Contissa, Francesca Lagioia, Hans-Wolfgang Micklitz, Giovanni Sartor, and Paolo Torroni. 2019.Claudette: an automated detector of potentially unfair clauses in online terms of service.Artificial Intelligence and Law, 27:117–139.
Liu et al. (2023)Zhengzhong Liu, Aurick Qiao, Willie Neiswanger, Hongyi Wang, Bowen Tan, Tianhua Tao, Junbo Li, Yuqi Wang, Suqi Sun, Omkar Pangarkar, et al. 2023.Llm360: Towards fully transparent open-source llms.arXiv preprint arXiv:2312.06550.
Luo et al. (2023)Ziyang Luo, Can Xu, Pu Zhao, Qingfeng Sun, Xiubo Geng, Wenxiang Hu, Chongyang Tao, Jing Ma, Qingwei Lin, and Daxin Jiang. 2023.Wizardcoder: Empowering code large language models with evol-instruct.
OpenAI (2023)OpenAI. 2023.Gpt-4 technical report.arXiv preprint arXiv:2303.08774.
Ouyang et al. (2022)Long Ouyang, Jeffrey Wu, Xu Jiang, Diogo Almeida, Carroll Wainwright, Pamela Mishkin, Chong Zhang, Sandhini Agarwal, Katarina Slama, Alex Ray, et al. 2022.Training language models to follow instructions with human feedback.Advances in Neural Information Processing Systems, 35:27730–27744.
Radford et al. (2019)Alec Radford, Jeffrey Wu, Rewon Child, David Luan, Dario Amodei, Ilya Sutskever, et al. 2019.Language models are unsupervised multitask learners.OpenAI blog, 1(8):9.
Roziere et al. (2023)Baptiste Roziere, Jonas Gehring, Fabian Gloeckle, Sten Sootla, Itai Gat, Xiaoqing Ellen Tan, Yossi Adi, Jingyu Liu, Tal Remez, Jérémy Rapin, et al. 2023.Code llama: Open foundation models for code.arXiv preprint arXiv:2308.12950.
Sakaguchi et al. (2021)Keisuke Sakaguchi, Ronan Le Bras, Chandra Bhagavatula, and Yejin Choi. 2021.Winogrande: An adversarial winograd schema challenge at scale.Communications of the ACM, 64(9):99–106.
Sanh et al. (2021)Victor Sanh, Albert Webson, Colin Raffel, Stephen H Bach, Lintang Sutawika, Zaid Alyafeai, Antoine Chaffin, Arnaud Stiegler, Teven Le Scao, Arun Raja, et al. 2021.Multitask prompted training enables zero-shot task generalization.arXiv preprint arXiv:2110.08207.
Scialom et al. (2022)Thomas Scialom, Tuhin Chakrabarty, and Smaranda Muresan. 2022.Fine-tuned language models are continual learners.In Proceedings of the 2022 Conference on Empirical Methods in Natural Language Processing, pages 6107–6122.
Shen et al. (2022)Sheng Shen, Pete Walsh, Kurt Keutzer, Jesse Dodge, Matthew Peters, and Iz Beltagy. 2022.Staged training for transformer language models.In International Conference on Machine Learning, pages 19893–19908. PMLR.
Shridhar et al. (2020)Mohit Shridhar, Xingdi Yuan, Marc-Alexandre Côté, Yonatan Bisk, Adam Trischler, and Matthew Hausknecht. 2020.Alfworld: Aligning text and embodied environments for interactive learning.arXiv preprint arXiv:2010.03768.
Taori et al. (2023)Rohan Taori, Ishaan Gulrajani, Tianyi Zhang, Yann Dubois, Xuechen Li, Carlos Guestrin, Percy Liang, and Tatsunori B. Hashimoto. 2023.Stanford alpaca: An instruction-following llama model.https://github.com/tatsu-lab/stanford_alpaca.
Team et al. (2024)Gemma Team, Thomas Mesnard, Cassidy Hardin, Robert Dadashi, Surya Bhupatiraju, Shreya Pathak, Laurent Sifre, Morgane Rivière, Mihir Sanjay Kale, Juliette Love, et al. 2024.Gemma: Open models based on gemini research and technology.arXiv preprint arXiv:2403.08295.
Tenney et al. (2019)Ian Tenney, Dipanjan Das, and Ellie Pavlick. 2019.Bert rediscovers the classical nlp pipeline.arXiv preprint arXiv:1905.05950.
Touvron et al. (2023)Hugo Touvron, Louis Martin, Kevin Stone, Peter Albert, Amjad Almahairi, Yasmine Babaei, Nikolay Bashlykov, Soumya Batra, Prajjwal Bhargava, Shruti Bhosale, et al. 2023.Llama 2: Open foundation and fine-tuned chat models.arXiv preprint arXiv:2307.09288.
Van Aken et al. (2019)Betty Van Aken, Benjamin Winter, Alexander Löser, and Felix A Gers. 2019.How does bert answer questions? a layer-wise analysis of transformer representations.In Proceedings of the 28th ACM international conference on information and knowledge management, pages 1823–1832.
Wang et al. (2023a)Peihao Wang, Rameswar Panda, Lucas Torroba Hennigen, Philip Greengard, Leonid Karlinsky, Rogerio Feris, David Daniel Cox, Zhangyang Wang, and Yoon Kim. 2023a.Learning to grow pretrained models for efficient transformer training.arXiv preprint arXiv:2303.00980.
Wang et al. (2023b)Xiao Wang, Yuansen Zhang, Tianze Chen, Songyang Gao, Senjie Jin, Xianjun Yang, Zhiheng Xi, Rui Zheng, Yicheng Zou, Tao Gui, et al. 2023b.Trace: A comprehensive benchmark for continual learning in large language models.arXiv preprint arXiv:2310.06762.
Wang et al. (2023c)Xingyao Wang, Zihan Wang, Jiateng Liu, Yangyi Chen, Lifan Yuan, Hao Peng, and Heng Ji. 2023c.Mint: Evaluating llms in multi-turn interaction with tools and language feedback.
Wang et al. (2023d)Yizhong Wang, Hamish Ivison, Pradeep Dasigi, Jack Hessel, Tushar Khot, Khyathi Raghavi Chandu, David Wadden, Kelsey MacMillan, Noah A. Smith, Iz Beltagy, and Hannaneh Hajishirzi. 2023d.How far can camels go? exploring the state of instruction tuning on open resources.
Wei et al. (2021)Jason Wei, Maarten Bosma, Vincent Y Zhao, Kelvin Guu, Adams Wei Yu, Brian Lester, Nan Du, Andrew M Dai, and Quoc V Le. 2021.Finetuned language models are zero-shot learners.arXiv preprint arXiv:2109.01652.
Wu et al. (2023a)Chengyue Wu, Teng Wang, Yixiao Ge, Zeyu Lu, Ruisong Zhou, Ying Shan, and Ping Luo. 2023a.
𝜋
-tuning: Transferring multimodal foundation models with optimal multi-task interpolation.In Proceedings of the 40th International Conference on Machine Learning, volume 202 of Proceedings of Machine Learning Research, pages 37713–37727. PMLR.
Wu et al. (2023b)Shijie Wu, Ozan Irsoy, Steven Lu, Vadim Dabravolski, Mark Dredze, Sebastian Gehrmann, Prabhanjan Kambadur, David Rosenberg, and Gideon Mann. 2023b.Bloomberggpt: A large language model for finance.arXiv preprint arXiv:2303.17564.
Xu et al. (2023a)Can Xu, Qingfeng Sun, Kai Zheng, Xiubo Geng, Pu Zhao, Jiazhan Feng, Chongyang Tao, and Daxin Jiang. 2023a.Wizardlm: Empowering large language models to follow complex instructions.arXiv preprint arXiv:2304.12244.
Xu et al. (2023b)Yiheng Xu, Hongjin Su, Chen Xing, Boyu Mi, Qian Liu, Weijia Shi, Binyuan Hui, Fan Zhou, Yitao Liu, Tianbao Xie, et al. 2023b.Lemur: Harmonizing natural language and code for language agents.arXiv preprint arXiv:2310.06830.
Yang et al. (2018)Zhilin Yang, Peng Qi, Saizheng Zhang, Yoshua Bengio, William W Cohen, Ruslan Salakhutdinov, and Christopher D Manning. 2018.Hotpotqa: A dataset for diverse, explainable multi-hop question answering.arXiv preprint arXiv:1809.09600.
Yao et al. (2022)Shunyu Yao, Jeffrey Zhao, Dian Yu, Nan Du, Izhak Shafran, Karthik Narasimhan, and Yuan Cao. 2022.React: Synergizing reasoning and acting in language models.arXiv preprint arXiv:2210.03629.
Yao et al. (2023)Yiqun Yao, Zheng Zhang, Jing Li, and Yequan Wang. 2023.2x faster language model pre-training via masked structural growth.arXiv preprint arXiv:2305.02869.
Yu et al. (2023)Longhui Yu, Weisen Jiang, Han Shi, Jincheng Yu, Zhengying Liu, Yu Zhang, James T Kwok, Zhenguo Li, Adrian Weller, and Weiyang Liu. 2023.Metamath: Bootstrap your own mathematical questions for large language models.arXiv preprint arXiv:2309.12284.
Zellers et al. (2019)Rowan Zellers, Ari Holtzman, Yonatan Bisk, Ali Farhadi, and Yejin Choi. 2019.Hellaswag: Can a machine really finish your sentence?arXiv preprint arXiv:1905.07830.
Zhang et al. (2023)Lvmin Zhang, Anyi Rao, and Maneesh Agrawala. 2023.Adding conditional control to text-to-image diffusion models.In Proceedings of the IEEE/CVF International Conference on Computer Vision, pages 3836–3847.
Zheng et al. (2023)Lianmin Zheng, Wei-Lin Chiang, Ying Sheng, Siyuan Zhuang, Zhanghao Wu, Yonghao Zhuang, Zi Lin, Zhuohan Li, Dacheng Li, Eric Xing, et al. 2023.Judging llm-as-a-judge with mt-bench and chatbot arena.arXiv preprint arXiv:2306.05685.
Zhou et al. (2023)Chunting Zhou, Pengfei Liu, Puxin Xu, Srini Iyer, Jiao Sun, Yuning Mao, Xuezhe Ma, Avia Efrat, Ping Yu, Lili Yu, et al. 2023.Lima: Less is more for alignment.arXiv preprint arXiv:2305.11206.
Ziegler et al. (2019)Daniel M Ziegler, Nisan Stiennon, Jeffrey Wu, Tom B Brown, Alec Radford, Dario Amodei, Paul Christiano, and Geoffrey Irving. 2019.Fine-tuning language models from human preferences.arXiv preprint arXiv:1909.08593.
附录A梯度求导
为了计算反向传播期间 RMSNorm 权重的梯度,我们首先需要考虑 Llama RMSNorm 的前向传递方程:

RMSNorm

(
𝑥
)
=
𝑤

𝑥
Var

(
𝑥
)
+
𝜖
(6)
其中 
𝑥
 是输入张量,
𝑤
 是权重参数,
Var

(
𝑥
)
 是 
𝑥
 在最后一个维度上的方差,
𝜖
 是一个用于数值稳定性的小常数。

现在,我们考虑反向传播过程中损失函数梯度相对于 RMSNorm 权重的链式法则。 将损失函数表示为
𝐿
,将 FFN 的输出表示为
𝑦
。 我们有:


𝐿

𝑤
=

𝐿

𝑦


𝑦

𝑤
(7)
为了计算梯度,我们需要找到偏导数

𝑦

𝑤
。 根据 FFN 方程,我们有:

𝑦
=
𝑥

+
FFN

(
RMSNorm

(
𝑥

)
)
(8)

𝑤
求导,我们得到:


𝑦

𝑤
=

FFN

(
RMSNorm

(
𝑥

)
)

𝑤
(9)
现在,让我们对 
𝑤
 的 RMSNorm 函数进行微分:


RMSNorm

(
𝑥
)

𝑤
=
𝑥
Var

(
𝑥
)
+
𝜖
(10)
使用链式法则,我们可以计算损失函数相对于 RMSNorm 权重的梯度:


𝐿

𝑤
=

𝐿

𝑦


FFN

(
RMSNorm

(
𝑥

)
)

RMSNorm

(
𝑥

)


RMSNorm

(
𝑥

)

𝑤
(11)
给定 
RMSNorm

(
𝑥

)
=
𝑡
,我们需要找到 FFN 相对于 
𝑡
 的导数。回想一下 FFN 方程:

FFN

(
𝑡
)
=
SwiGLU

(
𝑡
,
𝑊
1
,
𝑊
2
)

𝑊
3
(12)
现在我们想要求 FFN 对于 
𝑡
 的偏导数。回想一下 SwiGLU 激活函数:

SwiGLU

(
𝑡
,
𝑊
1
,
𝑊
2
)
=
SiLU

(
𝑡

𝑊
1
)

(
𝑡

𝑊
2
)
(13)
对 SwiGLU 函数对 
𝑡
 求导,我们得到:


SwiGLU

(
𝑡
,
𝑊
1
,
𝑊
2
)

𝑡
=
(

SiLU

(
𝑡

𝑊
1
)

𝑡
)

(
𝑡

𝑊
2
)
+
SiLU

(
𝑡

𝑊
1
)

(

(
𝑡

𝑊
2
)

𝑡
)
(14)
现在,回顾一下 SiLU 激活函数:

SiLU

(
𝑥
)
=
𝑥

𝜎

(
𝑥
)
(15)
因此,当 
𝑡
=
0
 时 FFN 相对于 
𝑡
 的梯度也为零:


FFN

(
𝑡
)

𝑡
=
0
(16)
综上所述,当
𝑡
=
0
时,FFN相对于
𝑡
的梯度为零,这说明当FFN的输入为零时,梯度为零。

附录 B数据集详细信息
Data source    Tokens    Weight
Proof-Pile-2    55B    1.00
 AlgebraicStack    11B
 OpenWebMath    15B
 ArXiv    29B
The-Stack-Dedup        
 Python    22B    1.50
表 6:预训练数据源、标记以及预训练期间每个组件的混合训练权重。
Datasets    Query Source    Response Source    # Instances    
𝑁
¯
rounds
𝐿
¯
prompt
𝐿
¯
completion
ShareGPT    User prompts    GPT-3.5/GPT-4    63,817    2.9    293.2    1157.1
WizardLM_evol_instruct_V2    GPT-4    GPT-4    143,000    1.0    602.6    1704.9
SlimOrca    Human-written    GPT-4    517,982    1.0    574.3    599.3
MetaMath    Human-written/GPT-4    GPT-4    395,000    1.0    209.4    498.2
Evol-CodeAlpaca    GPT-4    GPT-4    111,272    1.0    652.5    1552.0
表 7:这项工作中研究的指令数据集。 我们报告平均轮数 (
𝑁
¯
rounds
)、平均提示长度 (
𝐿
¯
prompt
)、平均完成长度 (
𝐿
¯
completion
)。
在本节中,我们提供有关用于预训练和监督微调(SFT)的数据集的详细信息。 表 6 概述了我们的预训练数据集的组成,其中包含来自数学和代码语料库的约 800 亿个标记。 SFT 数据的具体情况如表7 所示。

对于我们提出的LLaMA Pro - Instruct,我们混合使用了多个指令数据集,涵盖 SFT 过程的一般指令、数学和代码。 这些来源包括 ShareGPT3,包含真实用户和ChatGPT聊天历史记录,以及WizardLM进化指令数据集Xu等人(2023a),提供丰富的指令数据不同的复杂程度。 我们还纳入了进化Code​​Alpaca数据集Luo等人(2023),其中包括ChatGPT生成的复杂编码任务及其相应的解决方案。 此外,我们还使用 MetaMath Yu 等人 (2023)(它从多个角度重新构建问题)和 SlimOrca Lian 等人 (2023)(我们的 OpenOrca 数据的精选子集)。 SlimOrca 提供了一种有效的途径来实现与使用更大的数据切片相当的性能,同时仅包含大约 500,000 个 GPT-4 补全。

附录 CMistal-Pro 详细信息
Model
     
GSM8k Pass@1
MATH Pass@1
MPT-7B
     
6.8
3.0
Falcon-7B
     
6.8
2.3
LLAMA-1-7B
     
11.0
2.9
LLAMA-2-7B
     
14.6
2.5
MPT-30B
     
15.2
3.1
LLAMA-1-13B
     
17.8
3.9
GPT-Neo-2.7B
     
19.5

Falcon-40B
     
19.6
2.5
Baichuan-chat-13B
     
23.9

Vicuna-v1.3-13B
     
27.6

LLAMA-2-13B
     
28.7
3.9
MetaMath-7B
     
66.5
19.8
MetaMath-13B
     
72.3
22.4
MetaMath-Mistral-7B
     
77.7
28.2
MetaMath-Llemma-7B
     
69.2
30.0
MetaMath-Mistral-Pro
     
78.4
30.3
表8:各种模型在 GSM8k Pass@1 和 MATH Pass@1 上的表现
Mistral-Pro 是原始 Mistral 模型 Jiang 等人 (2023) 的高级版本,通过添加 Transformer 模块进行了增强。 该版本擅长将一般语言理解与特定领域的知识相结合,特别是在编程和数学方面。 它采用与 LLaMA-Pro 相同的方法来创建附加块,但仅利用 LLaMA Pro 学习率的 
1
10
,如 MetaMath-Mistral 4。 我们继续对代码和数学数据集进行预训练,包括 Cosmopedia 5、proof-pile-2 和 Stack 的 Python 子集。 监督微调 (SFT) 方法与 MetaMath-Mistral 保持一致,只是我们将基本模型切换到 Mistral-Pro。 GSM8k和MATH的详细结果见表8。

附录D评估基准
用于评估的基准包括:

• AI2 Reasoning Challenge Clark 等人 (2018)(25 个镜头):一组小学科学问题。
• HellaSwag (10-shot) Zellers 等人 (2019):常识推理测试,对人类来说很容易(约 95%),但对 SOTA 模型来说具有挑战性。
• MMLU (5-shot) Hendrycks 等人 (2020):衡量文本模型多任务准确性的测试。 该测试涵盖了基础数学、美国历史、计算机科学、法律等 57 项任务。
• TruthfulQA (0-shot) Lin 等人 (2021):衡量模型重现网上常见谎言的倾向的测试。
• Winogrande (5-shot) Sakaguchi 等人 (2021):一个对抗性且困难的大规模 Winograd 基准,用于常识推理。
• GSM8k(5-shot)Cobbe 等人 (2021):各种小学数学应用题,用于衡量模型解决多步数学推理问题的能力。 此外,我们在思想计划 (PoT) 设置 Chen 等人 (2023a) 的背景下评估模型。 PoT设置利用Python代码来解决数学问题,用于评估模型的代码生成能力。
• HumanEval (0-shot) Chen 等人 (2021b):164 个手写 Python 编程问题,包含函数签名、文档字符串、正文和多个单元测试。
• MBPP (3-shot) Austin 等人 (2021):众包的 Python 编程问题,旨在由入门级程序员解决。 每个问题都包含一个英文任务描述、一个代码解决方案和 3 个自动化测试用例。
附录 EMINT-Bench
Task Type    Task Name    # Instances
Code Generation    HumanEval (Chen et al., 2021b)    45
MBPP (Austin et al., 2021)     91
Decision Making    ALFWorld (Shridhar et al., 2020)    134
Reasoning    GSM8K (Cobbe et al., 2021)    48
HotpotQA (Yang et al., 2018)     43
MATH (Hendrycks et al., 2021)     100
MMLU (Hendrycks et al., 2020)     76
TheoremQA (Chen et al., 2023b)     49
Total    586
表 9: MINT-Bench 数据集统计。
Model    Code Generation    Decision Making    Reasoning    Micro Avg.
AgentLM-7B    1.47    9.70    8.86    7.34
CodeLLaMA-7B-Instruct    2.21    17.16    7.91    8.70
LLaMA2-7B-Chat    0.00    0.00    13.61    7.34
Mistral-Instruct-v0.1    6.62    34.33    8.54    13.99
LLaMA Pro - Instruct    11.76    29.10    9.81    14.68
表 10:每个模型在不同任务类型基准上评估的成功率,以及
𝑘
=
5
时的微平均值。
Refer to caption
图8: 通过使用工具和环境反馈通过 LLaMA Pro - Instruct 和 LLaMA2-7B-Chat 解决数学问题的多轮交互案例研究。
Refer to caption
图9: 三种训练策略、完全微调、LoRA 和我们提出的块扩展的差异。
本节提供了 MINT-Bench Wang 等人 (2023c) 的详细信息。 MINT-Bench 包含涵盖代码生成、决策和推理任务的 8 个数据集,总计 586 个实例,如表 9 所示。

我们使用成功率(SR)作为我们的评估指标,它衡量成功任务实例的百分比。 对于
𝑘
的交互限制,MINT-Bench从头开始,允许每个大语言模型交互直到第
𝑘
轮,测量相应的
𝑆

𝑅
𝑘
。 除非另有说明,MINT-Bench 会限制 
𝑘

[
1
,
5
]
,其中 
𝑘
=
1
 表示没有交互,
𝑘
=
5
 会在最现代的上下文窗口(4,096 个 Token )内最大化交互次数大语言模型.

在每一轮中,指示大语言模型执行以下步骤: (1) 选择性地表达其推理过程(称为“思想”,类似于 Yao 等人 (2022) ); (2) 通过生成Python代码并通过Python解释器执行它来与工具交互(称为“执行”),或者向用户提出解决方案(称为“提出解决方案”) 。

表10显示了在各种任务类型基准上评估的每个模型的成功率,以及
𝑘
=
5
时的微平均值。 与其他类似规模的模型相比,LLaMA Pro - Instruct 模型在所有任务类型上都表现出了强大的性能。 图 8 提供了一个案例研究,比较 LLaMA Pro - Instruct 和 LLaMA2-7B-Chat,其中 LLaMA Pro - Instruct 成功利用 Python 程序解决了多轮交互中的给定问题。

附录 FMT 工作台
Refer to caption
图10: LLaMA Pro - Instruct 与数学和代码问题中广泛使用的 LLaMA 社区模型之间的 MT-Bench 成对比较。
Refer to caption
图11: LLaMA Pro - Instruct 与综合问题中广泛使用的 LLaMA 社区模型之间的 MT-Bench 成对比较。
MT-bench 是一系列要求较高的多轮开放式问题,旨在评估聊天助手。 为了使评估过程自动化,我们使用强大的大语言模型,例如GPT-4,来充当法官并评估模型响应的质量。 我们在图10和图11中展示了详细的成对比较。 图12显示了LLaMA Pro - Instruct和LLaMA2-7B-Chat之间的比较案例研究。

Refer to caption
图 12: 用户和两个 AI 助手之间的多轮对话 - LLaMA Pro - Instruct 和 LLaMA2-7B-Chat。
附录G Token 分配
Model    General Domain Perplexity    Code Domain Perplexity
lambada openai    lambada standard    stack
LLaMA-2-7B    3.39    4.13    9.46
LLaMA Pro    3.46    4.30    5.25
表 11:LLaMA 和 LLaMA Pro 的困惑度在通用域和代码域中进行评估。
我们采用 Lin 等人 (2023) 提出的方法评估 LLaMA-2-7B 和 LLaMA Pro 之间的词符分布。 具体来说,对于给定的用户查询
𝑞
=
{
𝑞
1
,
𝑞
2
,

}
,我们将其输入LLaMA Pro以使用贪婪解码获得其输出
𝑜
=
{
𝑜
1
,
𝑜
2
,

}
。 对于每个位置
𝑡
,我们将该位置的上下文定义为
𝑥
𝑡
=
𝑞
+
{
𝑜
1
,

,
𝑜
𝑡

1
}
。 我们将对齐模型预测该位置下一个词符的概率分布表示为
𝑃
align
,其中
𝑜
𝑡
具有最高概率。

通过将上下文 
𝑥
𝑡
 传递到基础模型 LLaMA-2-7B,我们生成另一个概率分布 
𝑃
base
,用于在该位置采样下一个词符。 首先,使用贪婪解码的对齐模型生成完整输出
𝑜
。 对于每个位置 
𝑡
,标记根据基本模型预测的概率 
𝑃
base
 进行排名。 此排序列表中 
𝑜
𝑡
 的排名被定义为“基本排名”,表示为 
𝜂
。 这将位置分为三类:(1)未移位位置(
𝜂
=
1
):
𝑜
𝑡

𝑃
base

𝑃
align
中排名第一的词符,概率最高;(2)边缘位置(
1
<
𝜂

3
):虽然 
𝑜
𝑡
 不是 
𝑃
base
 中排名最靠前的词符,但仍有可能被采样用于解码,其概率为第 2 或第 3 高;(3) 移位位置(
𝜂
>
3
):在这种情况下,
𝑜
𝑡
 被 
𝑃
base
 取样的可能性相当小,这表明 
𝑃
base
 到 
𝑃
align
 的分布发生了显著的偏移。

我们对通用语料库和代码语料库中的 LLaMA-2-7B 和 LLaMA Pro 进行了困惑度评估。 对于一般领域,我们使用 LAMBADA 数据集的两个不同版本。 对于代码域,我们使用 bigcode/the-stack-smol-xs 数据集的 Python 拆分6。 表11中的结果表明,LLaMA Pro有效保留了通用语料库的语言建模能力,同时增强了其在代码领域的熟练程度。

附录 H法律领域
表12显示了我们用于在法律领域进行消融研究的超参数。 我们使用 Pile 数据集的 freelaw 子集作为法律领域的预训练语料库 Gao 等人 (2020)。 该子集具有 51.2 GiB 原始大小和 16.7B Token 以及 360 万个文档。

我们用来评估法律表现的 Unfair-ToS 数据集包含来自在线平台(例如 YouTube、Ebay、Facebook 等)的服务条款 (ToS)。 该数据集已在句子级别标注了 8 类不公平合同条款(句子),即根据欧洲消费者法可能侵犯用户权利的条款。 UNFAIR-ToS 任务是一个多标签分类任务。 为了获得此任务的模型预测,我们将其归类为多项选择题,如 Cheng 等人 (2023) 使用的方法。 如果模型预测(即每个标记可能性最高的选项)属于标签集,则单个数据示例的准确性被认为是正确的。 我们在 4-shot 场景中评估 Unfair-ToS 数据集,就像 Cheng 等人 (2023) 一样。

图9显示了我们用于进行消融研究的三种训练策略之间的差异。 对于 Mixture-of-Expert (MoE),我们的实现类似于 Jiang 等人 (2024)。 我们使用 2 位专家,对于每个词符,两位专家都会被激活。 具体来说,我们将每个 FFN 扩展到所有 32 层,保持原始 
`

𝑊
3

`
 不变,学习一个附加的带有权重 
`

𝑊
3
^

`
 的线性层,同时添加两个新的可学习参数 
`

𝛼
1
,
𝛼
2

`
 ,当转发时,对应于 
𝑊
3
,
𝑊
3
^
 的 Linear 输出将被加权并与 
softmax

(
𝛼
1
,
𝛼
2
)
 相加,并送入下一个块。

Hyperparameter    Assignment
Batch size    1024
Maximum sequence length    2,048
Maximum learning rate    2e-4
Optimizer    Adam
Adam beta weights    0.9, 0.95
Learning rate scheduler    cosine
Warmup ratio    0.06
Gradient clipping    1.0
表 12:法律领域预训练的超参数。

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-10 20:06:02       52 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-10 20:06:02       54 阅读
  3. 在Django里面运行非项目文件

    2024-07-10 20:06:02       45 阅读
  4. Python语言-面向对象

    2024-07-10 20:06:02       55 阅读

热门阅读

  1. 开源软件项目的崛起:机遇、挑战与个人成长

    2024-07-10 20:06:02       18 阅读
  2. Electron 跨平台桌面应用开发工具

    2024-07-10 20:06:02       19 阅读
  3. 【linux】linux的特殊符号

    2024-07-10 20:06:02       20 阅读
  4. Rust:常见 GUI 框架

    2024-07-10 20:06:02       20 阅读
  5. 【C++ 】中类的成员函数和析构函数的作用

    2024-07-10 20:06:02       16 阅读
  6. HTTP与HTTPS详解及其请求与响应报文的查看方法

    2024-07-10 20:06:02       22 阅读
  7. Postgres 与 MapLibre 实时位置共享

    2024-07-10 20:06:02       15 阅读
  8. NestJs实现各种请求与参数解析

    2024-07-10 20:06:02       22 阅读
  9. AHK的对象和类学习心得

    2024-07-10 20:06:02       16 阅读
  10. Spring中常见知识点及使用

    2024-07-10 20:06:02       23 阅读
  11. Uniapp的简要开发流程指南

    2024-07-10 20:06:02       19 阅读
  12. LeetCode //C - 204. Count Primes

    2024-07-10 20:06:02       19 阅读