2023年LLM大模型研究进展

2024-01-19

作者:田渊栋,Meta FAIR研究院研究员/高级经理,CMU机器人系博士,2023年研究的主要重心转移到了大语言模型(LLM)上面,包括理解LLM的运行机制,及用这些理解去改进LLM的推理效率和质量,也继续做了一些LLM的应用(如小说生成)。另外“应用AI来加速优化”这个研究方向,我们仍然在进行中。
大语言模型(LLM),这一年有几篇LLM文章获得了社区的广泛关注。一篇是六月底的Positional Interpolation[1],在这篇文章里,我们发现通过对RoPE一行代码的修改,就可以用少量微调来成倍增大模型预训练窗口,也是从这个时间点开始,能进行长文理解的开源大模型出现了井喷式爆发。另一篇是StreamingLLM[2](Attention Sink),在这篇文章里,我们发现在推理时保留前4个token,就能突破预训练窗口的限制,达到“无限聊天”的效果。文章放出来之后,网上出现了很多博客[3]、视频介绍[4]、媒体报道[5]和公开讨论[6],然后这个方法最近进了Intel Extension for Transformers[7]和Huggingface Transformer library[8],也被最近MLC Chat[9](手机端离线7B LLM)用上了,应该说影响力还是很大的。
有人可能会问,为什么会想到StreamingLLM这种做法?在它背后是H2O[10](NeurIPS'23) 这篇文章。在H2O里,我们发现按照某种准则,丢弃过去KV cache里80%的token,居然不影响下一个token的perplexity,那么自然我们会好奇留下来的是什么,就会自然追到前几个拥有反常注意力的token头上了。
另一篇Deja Vu(ICML'23 oral)则运用稀疏性来提高LLM系统推理效率。对于一段输入,Deja Vu预测LLM未来层中将被激活的神经元和注意力头,并只将对应权重载入GPU cache,这样就会大量减少费时的Memory I/O。临近年末,我们发现上海交大的PowerIter进一步运用了Deja Vu的思路,做到了CPU+GPU联合推理。
作为做LLM应用的副产品,我们提出了RLCD[11],通过同时使用正例和负例prompt,自动生成带标签的生成样本不需人工标注,然后可以接大模型微调,或者用于训练reward models,以避开RLAIF的一些问题,比如说两个生成样本非常相似,大模型很难判断谁好谁坏,或者大模型参数过少(如7B),无法判断样本间好坏。
另外,作为一作,我今年也发了两篇分析LLM的核心Transformer及注意力的训练动力学的理论文章,旨在揭示注意力(attention)为何会在训练之后变得稀疏,及为何FFN会出现低秩的现象。第一篇Scan&Snap[12](NeurIPS'23)分析单层线性MLP+attention;第二篇JoMA[13]将此拓展到多层非线性的MLP+attention,得出了更有趣的结果(训练过程中注意力先变稀疏,再稍微变回稠密),并且初步揭示了多层Transformer为何能借助这样的注意力机制,学到高层概念抽象的原因。我本来认为理论文章关注的人应该不多,但想不到在NeurIPS上仍然有大量听众对细节很有兴趣,觉得非常开心。之后我会在《求道之人,不问寒暑》系列里更新一篇,总结一下新的进展。
这些工作在9月底香港大学[14],10月初日本理化学研究所[15],及12月的远程演讲[16]中都有提及,有兴趣请戳链接。
用AI来加速(组合)优化(AI-guided optimization),另一方面,我们的SurCo[17](ICML'23)用线性代理(linear surrogate cost)加传统组合优化求解器,来间接求解非线性组合优化,并运用于一些工业上出现的复杂优化问题(如Table Sharding,光学器件设计,非线性最短路)。SurCo荣获ICML'23 SODL workshop[18]的最优论文奖。我的博后Arman之后发表了LANCER[19](NeurIPS'23),进一步减少调用组合优化器的次数,提高求解效率,并运用于投资组合优化。最近我们又发表了GenCo[20]用于生成非线性问题的多样可行解,并应用于游戏关卡及光学器件设计中。
另外我们也在用对比学习的方法来学习一些求解组合优化的启发式搜索规则,CL-LNS[21](ICML'23)及之后的ConPAS即是通过这些方式加速Large Neighborhood Search(LNS)优化的效率。总的来说,在资源有限或者需要在线运行的情况下,用机器学习完全替代已经积累了几十年的传统组合优化方法,还是比较困难的,目前比较实用的方案都是找更好的高层策略,然后在求解的某个阶段调用现有的求解器(DeepMind大力出奇迹的除外)。
一些感想,大模型时代,研究的迭代速度实在是太快了。三大机器学习会议已经成为线下社交平台,因为录的文章都是半年前的了;arXiv也不再是前线,更前线的在Discord群里,在X的争论里面,在Huggingface里不停增长的repo里,在Github的issues讨论中。
像StreamingLLM这篇paper,主要结果一作在八月中就弄出来了,但一直没放arXiv,于是我们在九月中旬看到了LM-Infinite[22],方法高度相似,当时就抓狂了,士气非常低落。还好顶住了压力,讨论出了另一种写作方案,从理解LLM工作原理的角度出发,换一种思路去写,并且沿着这条路径做了更多的验证实验(比如说Table 2),最后充分证明了Attention Sink的存在性。等到我们真的投稿了,又发现了有另一篇关于ViT的分析文章[23],在encoder-decoder模型中也发现了类似的现象。三篇都来自自家公司,也真是服了。
像Positional Interpolation,六月中开始发现有效果,但在写paper的时候发现已经有位不知名的博主于6/20把方法挂在网上[24]了,随即又发现某个github issue里面也在讨论很接近的idea,于是焦急地等待文章内部过审,在一番冰天雪地滑跪审核部门请求加速办理之后,终于放上arXiv(其间模版还搞错了一次)。文章放上去仅仅一天,就已经有红迪(reddit)网友提出了几乎不用微调的更优方案[25],马上有人在推特(twitter,现X)上提问[26],然后我直接在网上回复[27]……,总的来说,这次LLM的时代潮流,造成了非常剧烈的竞争,对研究者们冲击很大。越是愿意钻进技术细节里手写代码的,跟进速度越快,对于新范式的理解也越深入,甚至连风险投资者们都开始自己码代码调程序做LLM应用了。LLM也导致了很多思维的变革,许多以前感觉匪夷所思的操作(比如说让模型自我反省,或是用文字描述全新任务让它执行),今天写几个prompt就能实现,这对一些传统的研究思维,会是一个巨大的冲击。
恍然间又回到了2013-2014深度学习起飞的年代,但这次来势更猛,增速更快,因为基础架构,硬件支持,开源氛围,或是研究者们的认知,都已经更新换代了。往这个方向走下去,在不远的将来,就如之前关于GPT-4的一点狂想(其二) - 知乎(zhihu.com)[28]所预测的那样,也许个人及小团队的能力会越来越重要。迭代速度越快,一手经验越丰富,越不受已有的条条框框约束,越能发现别人发现不了的东西。
当全世界的公开数据都已经塞进模型里训练了,个人能做的贡献,就在于在自己深耕的领域,有独一无二的发现了。
我觉得自己这一年还是hands-on得少了,之后还是要做更多一线的工作,才能适应时代的潮流啊。

文章推荐

相关推荐