原文地址:Noteworthy AI Research Papers of 2024 (Part One),by Sebastian Raschka, on 2024-12-31
2024年值得关注的AI研究论文(上)
1—6月的6篇具有影响力的AI论文
新年伊始,我终于完成了这篇《2024年AI研究亮点》文章的初稿。文章涵盖了诸多主题,从混合专家模型到全新的大语言模型精度缩放定律。
要盘点2024年所有重要的研究亮点,恐怕得写一整本书才行。即便在AI这个日新月异的领域,2024年也堪称成果极其丰硕的一年。为了让内容尽量精简,我今年决定只聚焦大语言模型(LLM)领域的研究。但即便如此,要从这成果丰硕的一年里选出一部分论文,又该如何抉择?我能想到的最简单的方式,就是每月精选一篇论文:覆盖2024年1月到12月。
因此,在本文中,我将分享那些我个人认为极具启发性、影响力深远,或是两者兼具的研究论文。但请注意,本文只是上篇,聚焦2024年上半年(1—6月)的内容。本系列的下篇将涵盖7—12月,于1月晚些时候发布。
诚然,筛选标准比较主观,是基于我今年关注到的重点内容而定的。我也尽量兼顾了主题的多样性,不只是围绕大语言模型的发布展开。
如果你想了解更全面的AI研究论文清单,可以参考我之前的文章(https://magazine.sebastianraschka.com/p/llm-research-papers-the-2024-list)。
对于读过我那篇《2024年大语言模型研究论文清单》的读者,我很高兴地告诉大家,我现在已经感觉好多了,正在缓慢但稳步地康复!也由衷感谢大家所有的祝福与支持,这份心意对我意义重大,陪我度过了一段艰难的日子。
新年快乐,祝大家阅读愉快!
1. 一月:Mixtral的混合专家架构
2024年1月刚过去没几天,Mistral AI团队就发布了论文(2024年1月8日,https://arxiv.org/abs/2401.04088),介绍了Mixtral 8x7B——一种稀疏混合专家(SMoE)模型。
这篇论文和该模型在当时都产生了很大影响,因为Mixtral 8x7B是首批开源权重的混合专家大语言模型之一,性能表现十分亮眼:在多项基准测试中,它的表现都超过了Llama 2 70B和GPT-3.5。
1.1 理解混合专家模型
混合专家(MoE,Mixture of Experts)是一种集成模型,它在类GPT的解码器架构中,整合了多个更小的“专家”子网络。每个子网络负责处理不同类型的任务,更具体地说,是处理不同的token。其核心思路是,用多个小型子网络替代单一的大型网络,从而更高效地分配计算资源。
具体到Mixtral 8x7B,它将Transformer架构中的每个前馈模块都替换为8个专家层,如下图所示。

标注后的Transformer架构,源自《Attention Is All You Need》,https://arxiv.org/abs/1706.03762
“稀疏混合专家”中的“稀疏”,指的是在任意时刻,只有一部分专家层被激活用于处理单个token(在Mixtral 8x7B中,8个专家里通常只激活1到2个)。
如上图所示,这些子网络替代了大语言模型中的前馈模块。前馈模块本质上就是一个多层感知机。用类PyTorch的伪代码表示,大致如下:
class FeedForward(torch.nn.Module):
def __init__(self, embed_dim, coef):
super().__init__()
self.layers = nn.Sequential(
torch.nn.Linear(embed_dim, coef*embed_dim),
torch.nn.ReLU(),
torch.nn.Linear(coef*n_embed, embed_dim),
torch.nn.Dropout(dropout)
)
def forward(self, x):
return self.layers(x)
除此之外,还有一个路由模块(也叫门控网络),负责将每个token的嵌入向量分发到8个专家前馈模块中,且同一时间只有部分专家处于激活状态。
本文还要介绍另外11篇论文,因此关于Mixtral模型我就先简要介绍到这里。更多细节可以参考我之前的文章:https://magazine.sebastianraschka.com/i/14113005/mixtral-of-experts
1.2 混合专家模型在当下的价值
年初的时候,我本以为开源权重的混合专家模型会比现在更普及、应用更广泛。虽说这类模型并非无关紧要,但目前很多顶尖模型依然采用稠密(传统)大语言模型架构,而非混合专家架构,比如Llama 3、通义千问2.5、Gemma 2等。当然,我们无从得知GPT-4、Gemini、Claude这些闭源模型的底层架构,它们内部很可能也采用了混合专家设计。
无论如何,混合专家架构依然有其价值,尤其是它提供了一种高效扩展大语言模型的方式:每个输入只激活模型的部分参数,从而在不牺牲模型容量的前提下降低计算成本。
顺便一提,写完这篇文章后,DeepSeek V3意外发布(https://github.com/deepseek-ai/DeepSeek-V3/blob/main/DeepSeek_V3.pdf),它采用的正是混合专家架构。所以没错,混合专家模型依然极具应用价值!
2. 二月:权重分解低秩适配(DoRA)
如果你做过开源大语言模型的微调,那大概率用过低秩适配(LoRA)——一种参数高效的大语言模型微调方法。
如果你对LoRA还不熟悉,可以参考我之前的文章(https://magazine.sebastianraschka.com/p/practical-tips-for-finetuning-llms),应该会对你有帮助;另外在我的书(https://amzn.to/4fqvn0D)的附录D中,还有从零实现LoRA的完整代码。
LoRA是一种非常普及、应用广泛的方法,而我在实现和测试它的一个新变体时也收获了很多乐趣,因此我二月的精选论文是Liu等人于2024年2月发表的研究(https://arxiv.org/abs/2402.09353)。
2.1 LoRA回顾
在介绍DoRA之前,先快速回顾一下LoRA的原理:
全量微调会计算一个大型的权重更新矩阵ΔW,以此更新大语言模型中每个大型权重矩阵W。而LoRA用两个更小的矩阵A和B的乘积来近似ΔW。也就是说,权重更新不再是$W + \Delta W$,而是$W + A\cdot B$。这大幅降低了计算开销和内存占用。
下图并排展示了全量微调(左)和LoRA(右)对应的公式原理。

常规微调(左)与LoRA微调(右)示意图
2.2 从LoRA到DoRA
在2024年2月的这篇论文(https://arxiv.org/abs/2402.09353)中,Liu等人对LoRA进行了扩展:首先将预训练的权重矩阵分解为两部分——幅度向量m和方向矩阵V。这种分解的核心思想是,任意向量都可以表示为长度(幅度)和方向(朝向)的组合,这里将该思想应用到权重矩阵的每一列向量上。得到m和V之后,DoRA仅对方向矩阵V施加LoRA风格的低秩更新,而幅度向量m则单独训练。

标注后的示意图,源自DoRA论文(https://arxiv.org/abs/2402.09353)
这种两步法让DoRA比标准LoRA更具灵活性。LoRA往往会对幅度和方向进行同步缩放,而DoRA可以在不必然改变幅度的前提下,对方向进行精细调整。最终带来了性能和鲁棒性的提升:即便使用更少的参数,DoRA的表现也能优于LoRA,且对秩(rank)的选择更不敏感。
后面还有10篇论文要介绍,这部分我就先简述至此。如果想了解更多细节,我今年早些时候专门写过一篇文章讲解该方法:https://magazine.sebastianraschka.com/p/lora-and-dora-from-scratch
2.3 LoRA及类LoRA方法的未来
DoRA是对原始LoRA方法的一个小幅但合理的改进。虽然目前还没有被广泛采用,但它几乎没有增加额外复杂度,下次你做模型微调时值得一试。总体而言,我认为LoRA及类似方法会继续保持主流地位。比如苹果公司在其论文(https://arxiv.org/abs/2407.21075)中就提到,他们在端侧大语言模型的任务专项化中使用了LoRA。
3. 三月:大语言模型持续预训练的实用技巧
据我观察,指令微调是大语言模型从业者最常用的微调方式,目的是让开源大语言模型更好地遵循指令,或是针对特定子集、新指令做专项适配。
但如果要让模型吸收新知识,持续预训练(有时也叫连续预训练)才是正确的思路。
在这一部分,我将简要总结Ibrahim等人2024年3月发表的这篇论文(https://arxiv.org/abs/2403.08763),其方法直白清晰,让人耳目一新。
3.1 简单的技术依然有效
这篇长达24页的论文(https://arxiv.org/abs/2403.08763)包含了大量实验和数据图表,以当下的标准来看十分详实。
成功开展持续预训练的核心技巧有哪些?
- 对学习率进行简单的重升温与重衰减。
- 在新数据集中混入少量(比如5%)原始预训练数据,防止灾难性遗忘。值得注意的是,0.5%、1%这样更小的比例同样有效。
关于第一点“重升温与重衰减”,说得更具体些:就是采用与模型初始预训练阶段完全相同的学习率调度策略,如下图所示。

持续预训练的学习率调度示意图。图源自《从零构建大语言模型》,https://github.com/rasbt/LLMs-from-scratch/blob/main/appendix-D/01_main-chapter-code/appendix-D.ipynb
据我所知,学习率重升温重衰减、以及在新数据中混入原始预训练数据,这些都算是业内共识。但我非常欣赏研究者们花精力在这篇24页的详细报告中,对该方法进行了正式的实验验证。
如果想了解更多细节,我之前的文章(https://magazine.sebastianraschka.com/p/tips-for-llm-pretraining-and-evaluating-rms)对这篇论文有更全面的讨论。
3.2 这些简单方法会持续有效吗?
我没有理由认为这些方法在未来的大语言模型上会失效。但需要注意的是,近几个月来预训练流程已经变得更复杂,通常包含多个阶段,包括短上下文预训练和长上下文预训练。(我在这篇文章中有更多相关论述:https://magazine.sebastianraschka.com/p/new-llm-pre-training-and-post-training)
因此,为了达到最优效果,这篇论文提出的方案在某些场景下可能需要做适当调整。
4. 四月:大语言模型对齐用DPO、PPO,还是两者都用?
四月的精选很难抉择。比如KAN论文(https://arxiv.org/abs/2404.19756)当月引发了巨大热议,但在我看来,这股热潮很快就消退了。这可能是因为其理论上的优势很难在实际中落地,缺乏有竞争力的实验结果或基准测试表现,而且其他架构的可扩展性要强得多。
因此,我四月的精选换成了一篇更偏实用的论文:Xu等人2024年4月发表的研究(https://arxiv.org/abs/2404.10719)。
4.1 RLHF-PPO与DPO分别是什么?
在总结这篇论文之前,先概述一下近端策略优化(PPO)和直接偏好优化(DPO)——二者都是通过基于人类反馈的强化学习(RLHF)实现大语言模型对齐的主流方法。RLHF是让大语言模型对齐人类偏好的核心方法,既能提升回复质量,也能提高安全性。

典型(简化版)的大语言模型训练生命周期
传统上,RLHF-PPO是训练大语言模型的关键步骤,InstructGPT、ChatGPT等模型和平台都采用了该方法。但去年起,DPO凭借其简洁性和有效性开始流行起来。与RLHF-PPO不同,DPO不需要单独训练奖励模型,而是通过类似分类的目标函数直接更新大语言模型。如今很多大语言模型都使用DPO,但一直缺乏它与PPO的全面对比研究。
以下是我今年早些时候整理并分享的两份关于RLHF和DPO的资料:
- https://magazine.sebastianraschka.com/p/llm-training-rlhf-and-its-alternatives
- https://github.com/rasbt/LLMs-from-scratch/blob/main/ch07/04_preference-tuning-with-dpo/dpo-from-scratch.ipynb
4.2 PPO表现通常优于DPO
这篇论文(https://arxiv.org/abs/2404.10719)撰写严谨,包含大量实验与结果。核心结论是:PPO的表现往往优于DPO;在处理分布外数据时,DPO的劣势更为明显。
这里的“分布外数据”,指的是模型之前通过监督微调训练所用的指令数据,与DPO使用的偏好数据存在差异。比如,模型先在通用的Alpaca数据集上训练,再在另一个带偏好标注的数据集上做DPO微调。(不过,要提升DPO在分布外数据上的表现,有一种方法:先用偏好数据集做一轮监督指令微调,再进行DPO微调。)
主要研究结果总结如下图所示。

标注后的表格,源自《DPO在大语言模型对齐中真的优于PPO吗?一项全面研究》(https://arxiv.org/abs/2404.10719)论文
4.3 当下PPO与DPO的应用现状
从最终大语言模型的原始建模性能来看,PPO可能略有优势。但DPO的实现难度低得多,计算效率也更高(毕竟不需要单独训练和调用奖励模型)。因此据我所知,实际应用中DPO比RLHF-PPO普及得多。
一个很有意思的例子是Meta的Llama系列模型:Llama 2采用RLHF-PPO训练,而更新的Llama 3则使用了DPO。
有趣的是,如今最新的模型甚至会同时使用PPO和DPO。近期的例子包括苹果的论文(https://arxiv.org/abs/2407.21075),以及Allen AI的Tulu 3论文(https://arxiv.org/abs/2411.15124)。
5. 五月:LoRA学得更少,忘得也更少
今年还有一篇LoRA相关的论文我觉得特别有意思(保证这是本次12篇精选里最后一篇LoRA相关的了!)。它算不上颠覆性突破,但我很喜欢它,因为它把关于是否使用LoRA微调大语言模型的一些行业共识进行了正式的实证验证:这就是Biderman等人2024年5月发表的论文(https://arxiv.org/abs/2405.09673)。
这篇论文(https://arxiv.org/abs/2405.09673)是一项实证研究,对比了低秩适配(LoRA)与全量微调在大语言模型上的效果,聚焦两个领域(编程和数学)、两种任务(指令微调和持续预训练)。如果需要回顾LoRA的原理,可以翻回上面二月的部分。
5.1 LoRA学得更少
研究表明,LoRA的学习效果明显不如全量微调,尤其是在编程这类需要习得新知识的任务中。如果只做指令微调,两者的差距会更小。这说明:相比把预训练模型改成指令遵循模型,用新数据做预训练(学习新知识)从全量微调中获益更多。

全量微调与LoRA对比。性能通过HumanEval数据集衡量,该数据集包含164道编程题目。图标注源自《LoRA学得更少,忘得也更少》,https://arxiv.org/abs/2405.09673
不过还有更多细节值得注意。比如在数学任务上,LoRA和全量微调的差距会缩小。这可能是因为数学问题对大语言模型来说更熟悉,预训练期间大概率见过类似的题目。相比之下,编程是一个差异更大的领域,需要更多新知识。因此,新任务与模型预训练数据的差异越大,全量微调在学习能力上的优势就越明显。
5.2 LoRA忘得更少
在考察原有知识的遗忘程度时,LoRA始终表现出更少的遗忘。在适配与源领域差异较大的数据(比如编程)时,这一点尤为明显。在编程任务中,全量微调会导致严重的遗忘,而LoRA能保留更多原有能力。在数学任务上,模型原本的知识就和新任务更接近,因此两者的差异没那么显著。

在编程数据上训练后,全量微调与LoRA在原始源任务上的表现对比。图标注源自《LoRA学得更少,忘得也更少》,https://arxiv.org/abs/2405.09673
5.3 LoRA的权衡
总体而言,这是一种权衡:全量微调更擅长吸收差异较大领域的新知识,但会导致更多原有任务的遗忘;而LoRA通过调整更少的参数,学到的新知识更少,但保留了更多原有能力。
5.4 大语言模型微调的未来方向
该研究主要对比了LoRA和全量微调。实际应用中,LoRA之所以流行,是因为它的资源效率远高于全量微调。很多情况下,受硬件限制,全量微调根本无法实现。此外,如果只需要应对特定的专项应用,只用LoRA可能就足够了。由于LoRA适配器可以和基础大语言模型分开存储,很容易在新增能力的同时保留原有能力。而且还可以将两种方法结合:用全量微调做知识更新,再用LoRA做后续的专项适配。
简而言之,我认为未来这两种方法都会继续发挥重要作用,关键是要根据具体任务选择合适的方法。
6. 六月:15万亿token的FineWeb数据集
Penedo等人2024年6月发表的论文(https://arxiv.org/abs/2406.17557)介绍了一个面向大语言模型的15万亿token数据集的构建过程,并将其公开,包括数据集地址(https://huggingface.co/datasets/HuggingFaceFW/fineweb)和可复现数据集制作流程的代码仓库(https://github.com/huggingface/datatrove/blob/main/examples/fineweb.py)。
6.1 与其他数据集的对比
目前已经有多个用于大语言模型预训练的大型数据集,这个数据集有什么特别之处?其他数据集的规模相对更小:RefinedWeb(5000亿token)、C4(1720亿token)、Dolma 1.6的Common Crawl部分(3万亿token)和Dolma 1.7(1.2万亿token)、The Pile(3400亿token)、SlimPajama(6270亿token)、去重版RedPajama(20万亿token)、Matrix的英文CommonCrawl部分(1.3万亿token)、English CC-100(700亿token)、Colossal-OSCAR(8500亿token)。
比如,约3600亿token只适合训练小型大语言模型(根据Chinchilla缩放定律,对应17亿参数的模型)。而FineWeb数据集的15万亿token,根据Chinchilla缩放定律,最高可适配5000亿参数的模型。(注意:RedPajama数据集(https://github.com/togethercomputer/RedPajama-Data)包含20万亿token,但研究者发现,由于采用的过滤规则不同,在RedPajama上训练的模型质量不如FineWeb。)

历年来大语言模型预训练所用数据集规模示意图。注意:这只是通用参考,与FineWeb论文及Chinchilla缩放定律论文无直接关联。
简而言之,纯英文的FineWeb数据集让研究者和从业者训练大规模大语言模型在理论上成为可能。(补充说明:Llama 3系列(8B、70B、405B参数,https://arxiv.org/abs/2407.21783)也是用15万亿token训练的,但Meta的训练数据集并未公开。)
6.2 有原则的数据集构建
此外,论文中还包含了严谨的消融实验,深入阐释了从CommonCrawl网页语料(https://commoncrawl.org/)出发,如何制定并应用过滤规则,最终得到FineWeb数据集。简而言之,每尝试一条过滤规则,他们都会从原始数据和过滤后的数据中各抽取3600亿token的随机样本,然后训练一个17.1亿参数的类Llama小型模型,通过模型在HellaSwag、ARC、MMLU等标准基准上的表现,判断该过滤规则是否有效。

6.3 FineWeb在当下的价值
总体而言,虽然训练数十亿参数的大语言模型对多数研究实验室和企业来说依然难以实现,但这个数据集向大语言模型研究与开发的普惠化迈出了坚实的一步。总而言之,这篇论文的工作值得称赞,为推动大语言模型预训练的发展提供了宝贵的公共资源。
7—12月内容预告
希望这些研究总结对你有帮助!由于我还在康复中,而且这篇文章本来也会过长,我决定把今年的年度综述分成上下两部分。
下篇(7—12月)对我个人来说其实更精彩,我会讨论关于缩放定律、复现O1、合成数据在大语言模型训练中的作用等更新的研究。此外,我还会分享对2025年的展望,以及我认为即将出现的趋势。敬请期待!
这本杂志是我个人的热爱项目。如果想要支持我的创作,欢迎购买我的书(https://amzn.to/4fqvn0D)。(我相信你会从书中收获很多,因为它对大语言模型工作原理的讲解深度是其他地方找不到的。)

《从零构建大语言模型》现已发售,购买链接:https://amzn.to/4fqvn0D
如果你读过这本书,还请抽出几分钟时间在亚马逊留下评论(https://www.amazon.com/Build-Large-Language-Model-Scratch/dp/1633437167),这对我们作者来说帮助很大!
你的支持意义重大!谢谢!