【转载】Llama 2、Flash-Attention 2 及更多前沿研究

原文地址:Llama 2, Flash-Attention 2, and More,by Sebastian Raschka, on 2023-08-13

Llama 2、Flash-Attention 2 及更多前沿研究

大语言模型(LLM)领域的研究每月都精彩纷呈。而本月尤其值得关注,因为Meta发布了Llama 2系列全新的前沿基础模型。双重惊喜:这一代Llama模型不仅没有严苛的使用限制,还在arXiv上配套发布了一份长达77页的详尽研究报告!

我仍在整理研读这份77页报告后的笔记与思考,将在本通讯的下一期正刊中呈现——敬请期待!在此之前,我想先在本月的「研究亮点」栏目中分享其中的核心结论,以及其他诸多值得关注的研究工作,内容如下。

大语言模型

Llama 2:开源基础模型与经过微调的对话模型

(7月19日,https://arxiv.org/abs/2307.09288

研究人员发布了Llama 2模型系列——Meta旗下热门LLaMA模型的继任者,配套发布了一份长达77页的深度研究报告。除了参数规模从70亿到700亿不等的Llama 2基础模型外,团队还推出了Llama 2-Chat模型,该模型采用类似InstructGPT和ChatGPT的训练方式,通过人类反馈强化学习(RLHF)训练而成。与前代模型相比,Llama 2的授权协议限制更少,现已允许商业使用(仍有部分限制条款)。

figure01

FlashAttention-2:通过更优的并行性与任务划分实现更快的注意力计算

(7月17日,https://arxiv.org/abs/2307.08691

FlashAttention-2是热门算法FlashAttention的升级版本,它是一种经过优化的多头自注意力实现方案,既能节省显存,又能提升运行速度(相比PyTorch基准实现提速2-4倍)。值得重点强调的是,它可以直接替换原有注意力模块,完全不会改变或影响模型效果,使用体验极佳。本次更新的核心贡献在于:实现了每个注意力头内部的计算并行化,并通过共享内存分配计算任务,从而降低通信开销。

figure02

Retentive Network:面向大语言模型的Transformer替代架构

(7月17日,https://arxiv.org/abs/2307.08621

该论文提出了一种大型语言Transformer的替代架构,其计算复杂度随输入序列长度呈线性增长,而非原有的二次增长。RetentionNet既可以并行模式训练,也可以切换为循环模式扩展上下文长度,且不会增加显存开销,从而实现出色的推理性能。该研究中最大的模型参数量为67亿,未来若能将RetNet与Llama-2 70B等模型进行对比研究,将会很有价值。

figure03

AlpaGasus:用更少数据训练更优的Alpaca模型

(7月17日,https://arxiv.org/abs/2307.08701

https://www.google.com/url?q=https://arxiv.org/abs/2305.11206&sa=D&source=editors&ust=1691861529907508&usg=AOvVaw3U_MnstTWlV2Y-6Qy3jNGo 之后,这篇论文同样得出了一个有意思的结论:对大语言模型进行微调时,数据并非越多越好。研究人员利用ChatGPT识别低质量的指令-响应对,发现原本包含5.2万条数据的Alpaca数据集可以精简至9000条,用精简后的数据训练70亿和130亿参数的(LLaMA)大语言模型,效果反而更优。

figure04

以不同方式堆叠更多层:通过低秩更新实现高秩训练

(7月11日,https://arxiv.org/abs/2307.05695

低秩适配(LoRA)是目前最主流的参数高效大语言模型微调方法之一——我曾在这篇文章中做过更详细的介绍:https://www.google.com/url?q=https://sebastianraschka.com/blog/2023/llm-finetuning-lora.html&sa=D&source=editors&ust=1691861529908424&usg=AOvVaw2uYPLave58JhiHo_uOsAxW 。在这篇论文中,研究人员探索了LoRA能否以参数高效的方式用于大语言模型的预训练(而非微调),并提出了名为ReLoRA的方法。尽管研究人员仅对最高3.5亿参数的模型进行了预训练(作为对比,最小的Llama模型参数量为70亿),但该方法展现出了不错的发展前景。

figure05

多语言大语言模型用英文思考时表现更好吗?

(8月2日,https://arxiv.org/abs/2308.01223

假设用户想在非英文输入场景下使用LLaMA这类模型,通常有三种选择:

  1. 直接用非英文语言给模型输入提示词。
  2. 先用外部翻译系统将提示词翻译成英文,再输入模型。
  3. 让大语言模型自行先将提示词翻译成英文(本文提出的方法)。

论文中作者发现,对于https://arxiv.org/abs/2112.10668https://arxiv.org/abs/2302.13971 这类模型,采用第三种方法(先翻译提示词)的效果,要优于第一种直接用原语言输入提示词的效果。

figure06

ChatGPT的行为随时间发生了怎样的变化?

(7月18日,https://arxiv.org/abs/2307.09009

这篇论文中,研究人员观察到一个有趣的现象:GPT-4的模型表现似乎随时间推移有所下滑。这究竟是为了节约成本采用了蒸馏方法,还是为了防范各类滥用行为加装了安全护栏?有意思的是,已有不少研究开始关注这些变化,但其实这些问题,只要是参与过模型开发的研究人员和工程师,大概率都能给出答案。

figure07

Skill-it!:一个用于理解与训练语言模型的数据驱动技能框架

(7月26日,https://arxiv.org/abs/2307.14430

研究人员提出了一种提升大语言模型训练效率的新方法,核心是一种在线采样算法。乍一看,它和课程学习有些类似,目标都是在训练过程中筛选训练数据。但二者的区别在于,该方法是按照「技能」来筛选训练数据,而非按照样本的难易程度筛选。

figure08

用于大语言模型上下文压缩的上下文内自编码器

(7月13日,https://arxiv.org/abs/2307.06945

该方法提出使用一个上下文内自编码器模型(编码器)来压缩目标大语言模型(解码器)的输入(上下文)。这个自编码器本身是一个经过低秩适配(LoRA)训练的大语言模型:先在大规模无标注语料上完成预训练,再在规模更小的指令数据集上进行微调。借助这个辅助自编码器大语言模型,作者实现了4倍的上下文压缩率。

figure09

无训练则无收益:重新审视基于Transformer的语言模型高效训练算法

(7月12日,https://arxiv.org/abs/2307.06440

论文中,作者评估了三类Transformer高效训练方法:

  • 动态架构(层堆叠、层丢弃)
  • 批次选择(选择性反向传播、RHO损失)
  • 高效优化器(Lion、Sophia)

和我个人有限的实际经验大致相符,这类方法相比常规训练(基准方法)带来的收益微乎其微。需要注意的是,该论文仅聚焦于编码器型和编码器-解码器型大语言模型(BERT、T5),并未研究LoRA、适配器这类参数高效微调方法。

figure10

计算机视觉与多模态模型

内容还是风格:你的图像嵌入到底学到了什么?

(7月10日,https://arxiv.org/abs/2307.05610

所谓的探测方法,是指用小型模型作用于文本嵌入,以此分析大语言模型(参见https://arxiv.org/abs/2102.12452)和卷积神经网络的表征特性。在这项研究中,作者将探测技术应用于基于Transformer的视觉模型。有意思的是,预训练任务的类型(监督、对比学习、掩码学习等)决定了嵌入中所包含的非语义信息的类型。

figure11

OpenFlamingo:训练大型自回归视觉-语言模型的开源框架

(8月2日,https://arxiv.org/abs/2308.01390

OpenFlamingo是DeepMind旗下Flamingo模型的开源复现版本,Flamingo是一系列自回归视觉-语言模型。这篇论文是一份详尽的技术报告,介绍了复现Flamingo模型的完整训练流程,复现模型的平均表现达到了原Flamingo模型的80%-89%。

figure12

从稀疏混合专家到软混合专家

(8月2日,https://arxiv.org/abs/2308.00951

稀疏混合专家(MoE)模型的思路是:让不同专家在数据子集上针对不同任务训练,再通过输入路由机制将结果整合。在这项研究中,研究人员提出了一种完全可微的稀疏视觉Transformer(ViT),解决了训练不稳定、令牌丢弃、微调效率低等诸多问题。最终得到的模型,推理成本仅为标准ViT的十分之一,同时模型效果与标准ViT持平。

figure13

Meta-Transformer:多模态学习的统一框架

(7月20日,https://arxiv.org/abs/2307.10802

和几年前的https://arxiv.org/abs/2305.05665https://arxiv.org/abs/2103.03206 等研究思路相似,这个Transformer可以处理图像、文本、音频等多种模态。该架构中,每种输入模态都由独立的可学习数据预处理器处理;将输入预处理到共享令牌空间后,再通过一个共享编码器生成嵌入表示。

figure14

本通讯是个人出于热爱运营的项目,没有直接的商业收入。如果您愿意支持我,可以考虑购买我的书籍:https://sebastianraschka.com/books 。如果您觉得这些书籍有启发、有帮助,也欢迎推荐给您的朋友和同事。

figure15

https://www.amazon.com/Machine-Learning-PyTorch-Scikit-Learn-scikit-learn-ebook-dp-B09NW48MR1/dp/B09NW48MR1/https://nostarch.com/machine-learning-and-ai-beyond-basics 以及 http://mng.bz/M96o

您的支持对我意义重大!非常感谢!

Leave a Reply

Your email address will not be published. Required fields are marked *

*