写点什么

究诸经典,探寻大模型演变之踪迹

作者:Baihai IDP
  • 2023-05-29
    湖北
  • 本文字数:8868 字

    阅读完需:约 29 分钟

究诸经典,探寻大模型演变之踪迹

编者按:在仅仅五年的时间里,大语言模型、transformers 几乎完全改变了自然语言处理领域。

为了便于快速、扎实、深入地学习大语言模型,本文整理一个简单的经典学术资料列表,供正在入门中的机器学习研究人员和开发者参考。

以下是译文,Enjoy!


本文经原作者授权,由 Baihai IDP 编译。如需转载译文,请联系获取授权。


原文链接:


https://magazine.sebastianraschka.com/p/understanding-large-language-models


作者 | SEBASTIAN RASCHKA


编译 | 岳扬


大语言模型已经风靡全球——这并非妄言。在仅仅五年的时间里,大语言模型、transformers 几乎完全改变了自然语言处理领域。而且,它们也已经开始为计算机视觉(computer vision)和计算生物学(computational biology) 等领域带来变革性的改变。


由于 transformers 对每大家的研究安排(research agenda)都有比较大的影响,我想整理一个简单的经典学术资料列表,供正在入门中的机器学习研究人员和开发者参考。


下文的学术资料主要是按时间顺序排列的,主要是学术研究论文。当然,还有许多其它有用的学术资料。例如:


  1. Jay Alammar 的《The Illustrated Transformer》[1]

  2. Lilian Weng 的一篇更有技术深度的博客《The Transformer Family》[2];

  3. Xavier Amatriain 的《Transformer models: an introduction and catalog — 2023 Edition》介绍了所有重要的 Transformer models 及其系谱图(family tree)[3];

  4. Andrej Karpathy 介绍了实现生成语言模型(generative language model)的最简单方法[4];


以及我自己(原文作者)的一系列讲座[5]和书籍相关章节[6]。

01 了解主要的模型架构和 task

如果您之前从未接触过 transformer 模型或大语言模型领域,最好从头开始学习。


(1) Neural Machine Translation by Jointly Learning to Align and Translate (2014) by Bahdanau, Cho, and Bengio, https://arxiv.org/abs/1409.0473


如果您有能抽出较多空闲时间来学习,我建议从上面这篇的论文开始阅读。其介绍了一种注意机制(attention mechanism),可用于改进循环神经网络(RNN)的长序列建模(long-range sequence modeling)能力。这使得 RNN 能够更准确地翻译更长的句子——这也是后来开发原始 transformer 模型架构的动机。



Source: https://arxiv.org/abs/1409.0473


(2) Attention Is All You Need (2017) by Vaswani, Shazeer, Parmar, Uszkoreit, Jones, Gomez, Kaiser, and Polosukhin, https://arxiv.org/abs/1706.03762


上述论文介绍了最初的 Transformer 架构,由编码器(encoder)和解码器(decoder)组成,这两部分将在之后作为独立的模块而变得相关。此外,该论文引入了一些概念,如缩放点积注意力机制(scaled dot product attention mechanism)、多头注意力块(multi-head attention blocks)和位置编码(positional input encoding),它们仍然是现代 Transformer 系列模型的基础。



Source: https://arxiv.org/abs/1706.03762


(3) BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding (2018) by Devlin, Chang, Lee, and Toutanova, https://arxiv.org/abs/1810.04805


  • 基于原始的 transformer 架构,大型语言模型研究开始分为两个方向:

  • encoder-style transformers:用于预测语言建模任务,如文本分类;decoder-style transformers:用于生成语言建模任务,如翻译、生成摘要和其他形式的文本创作。


上面那篇 BERT 论文介绍了掩码语言建模(masked-language modeling)的原始概念(original concept),而 next-sentence prediction(下一句预测)仍然是一个具有影响力的解码器式架构(decoder-style architecture)。如果您对这个研究方向感兴趣,我推荐您继续阅读 RoBERTa[7],该模型通过删除下一句预测任务(next-sentence prediction tasks)简化了预训练目标(pretraining objectives)。



Source: https://arxiv.org/abs/1810.04805


(4) Improving Language Understanding by Generative Pre-Training (2018) by Radford and Narasimhan, https://www.semanticscholar.org/paper/Improving-Language-Understanding-by-Generative-Radford-Narasimhan/cd18800a0fe0b668a1cc19f2ec95b5003d0a5035


GPT 论文引入了现在流行的解码器式架构(decoder-style architecture),并通过 next-word prediction(下一个单词的预测)进行预训练。因其使用掩码语言建模预训练目标(masked language model pretraining objective),BERT 可以被视为双向 transformer,而 GPT 是一个单向、自回归的模型。虽然 GPT 嵌入(GPT embeddings)也可用于分类,但 GPT 这种方法是当下最具影响力的 LLMs 核心,比如 ChatGPT。


如果您对这个研究方向感兴趣,我推荐您接下来阅读 GPT-2 和 GPT-3 论文。这两篇论文表明,LLMs 能够实现零样本和小样本学习(zero- and few-shot learning),并突显了 LLMs 的“涌现”能力。GPT-3 仍然是当前 ChatGPT 等最新一代 LLM 的 baseline 和基础模型,我们将在后续的文章中单独介绍 InstructGPT 方法,它是 ChatGPT 的关键所在。



Source: https://www.semanticscholar.org/paper/Improving-Language-Understanding-by-Generative-Radford-Narasimhan/cd18800a0fe0b668a1cc19f2ec95b5003d0a5035


(5) BART: Denoising Sequence-to-Sequence Pre-training for Natural Language Generation, Translation, and Comprehension (2019), by Lewis, Liu, Goyal, Ghazvininejad, Mohamed, Levy, Stoyanov, and Zettlemoyer, https://arxiv.org/abs/1910.13461.


正如前面提到的,BERT-type encoder-style 的 LLMs 通常更适用于预测建模任务,而 GPT-type decoder-style 的 LLMs 则更擅长生成文本。为了兼顾两者优势,上述那篇 BART 论文将编码器(encoder)和解码器(decoder)部分结合起来(类似于原始的 transformer——该清单中的第二篇论文)。



Source: https://arxiv.org/abs/1910.13461


(6) Harnessing the Power of LLMs in Practice: A Survey on ChatGPT and Beyond (2023) by Yang, Jin, Tang, Han, Feng, Jiang, Yin, and Hu, https://arxiv.org/abs/2304.13712


这不是一篇研究性的论文,但可能是迄今最好的关于当前主要模型架构的调查,展示了不同的架构是如何演变的。然而,在讨论 BERT-style 掩码语言模型(编码器)和 GPT-style 自回归语言模型(解码器)的同时,该篇文章还提供了一些有关预训练和微调数据的有价值讨论和指导。



The evolutionary tree of modern LLMs via https://arxiv.org/abs/2304.13712.

02 缩放定律和提高效率 Scaling Laws and Improving Efficiency

如果您想要了解那些有助于提高 transformer 的效率的技术,我建议您阅读 2020 年发表的这篇论文——《Efficient Transformers: A Survey》[8],以及 2023 年发表的《A Survey on Efficient Training of Transformers》[9]。


另外,还有一些我认为特别有趣并值得阅读的论文。


(7) FlashAttention: Fast and Memory-Efficient Exact Attention with IO-Awareness (2022), by Dao, Fu, Ermon, Rudra, and Ré, https://arxiv.org/abs/2205.14135.


尽管大多数有关 transformer 的论文并不涉及取代原来的缩放点积机制(scaled dot product mechanism)来实现自注意力,但 FlashAttention 是我最近经常看到被提到或引用的一种机制。



Source: https://arxiv.org/abs/2205.14135


(8) Cramming: Training a Language Model on a Single GPU in One Day (2022) by Geiping and Goldstein, https://arxiv.org/abs/2212.14034.


在这篇论文中,研究人员花 24 小时在单个 GPU 上训练了一种掩码语言模型 encoder-style LLM(这里说的是 BERT)。相比之下,2018 年最初的 BERT 论文是在 16 个 TPU 上进行了为期四天的训练。有趣的一点是,虽然较小的模型具有更高的吞吐量(throughput),但较小的模型学习效率也较低。因此,更大的模型并不需要更多的训练时间就能够达到特定的预测性能阈值(predictive performance threshold)。



Source: https://arxiv.org/abs/2212.14034


(9) LoRA: Low-Rank Adaptation of Large Language Models (2021) by Hu, Shen, Wallis, Allen-Zhu, Li, L Wang, S Wang, and Chen, https://arxiv.org/abs/2106.09685.


低秩自适应(LoRA)是参数高效性(parameter-efficient manner)微调大型语言模型最具影响力的方法之一。虽然还有其他参数高效性微调方法(请参见下面的内容),但需要特别注意的是,LoRA 既是一个优雅的(elegant)方法,也是一个非常通用的(very general)方法,可适用于其他类型的模型。


尽管预训练模型的权重在预训练任务上具有 Full rank(满秩),但 LoRA 的作者指出,当它们适应新任务时,预训练的大型语言模型具有较低的“本征维度(intrinsic dimension)”。因此,LoRA 的主要思想是将权重变化ΔW 分解为 lower-rank(低秩)表示,这样使得参数效率更高。



LoRA 示意图及其性能表现 来自https://arxiv.org/abs/2106.09685


(10) Scaling Down to Scale Up: A Guide to Parameter-Efficient Fine-Tuning (2022) by Lialin, Deshpande, and Rumshisky, https://arxiv.org/abs/2303.15647.


如今的大语言模型在大型数据集上进行预训练,展现出了“涌现”能力,还能够在各种任务中表现良好,包括语言翻译(language translation)、摘要(summarization)、编码(coding)和问答(Q&A)。然而,如果我们希望提高 transformer 在特定领域数据和专业任务上的能力,微调 transformer 是值得的。本文回顾了 40 多篇有关参数高效性微调方法的论文(包括时下热门的技术,如 Prefix-tuning(前缀微调)、adapters 和 Low-Rank Adaptation (LoRA,低秩自适应)),以使微调能够拥有非常高的计算效率。



Source: https://arxiv.org/abs/1910.13461


(11) Training Compute-Optimal Large Language Models (2022) by Hoffmann, Borgeaud, Mensch, Buchatskaya, Cai, Rutherford, de Las Casas, Hendricks, Welbl, Clark, Hennigan, Noland, Millican, van den Driessche, Damoc, Guy, Osindero, Simonyan, Elsen, Rae, Vinyals, and Sifre, https://arxiv.org/abs/2203.15556.


该论文介绍了拥有 700 亿参数的 Chinchilla 模型,其在生成式建模任务(generative modeling tasks)上优于时下流行的 1750 亿参数的 GPT-3 模型。然而,该论文的主要观点是当下的大型语言模型“训练程度不足”。


该论文定义了大语言模型训练的 Linear Scaling Law。例如,虽然 Chinchilla 的大小仅为 GPT-3 的一半,但它的表现优于 GPT-3,因为它训练的 token 数目为 1.4 万亿(而不仅仅是 3000 亿)。换句话说,训练的 token 数目与模型大小一样重要。



Source: https://arxiv.org/abs/2203.15556


(12) Pythia: A Suite for Analyzing Large Language Models Across Training and Scaling (2023) by Biderman, Schoelkopf, Anthony, Bradley, O'Brien, Hallahan, Khan, Purohit, Prashanth, Raff, Skowron, Sutawika, and van der Wal, https://arxiv.org/abs/2304.01373


Pythia 是一套开源的 LLM 套件(70M 至 12B 参数),可用于研究 LLMs 在训练过程中如何演变。


该架构类似于 GPT-3,但拥有一些改进,例如 Flash Attention(类似于 LLaMA[10])和 Rotary Positional Embeddings(类似于 PaLM[11])。Pythia 在 The Pile 数据集[12](825 Gb)上进行了 300 B 个 token 的训练(~1 epoch on regular PILE, ~1.5 epochs on deduplicated PILE)。



Pythia 大模型套件 via https://arxiv.org/abs/2304.01373


Pythia 相关研究的主要结论如下:


  • 在重复的数据上进行训练(由于 LLMs 的训练方式特性,这意味着训练超过一个 epoch)对性能没有好处也没有坏处。

  • 训练顺序不影响模型的记忆能力(memorization)。这其实是不太好的,因为如果是相反的情况,我们就可以通过重新排序训练数据来减轻效果不好的逐字逐句记忆问题(verbatim memorization issues)。

  • 预训练时的词频(term frequency)影响任务性能。例如,小样本的准确率往往对于更常见的词语更高。

  • 加倍 batch size 可以使得训练时间减半,但不会影响收敛性(convergence)。

03 Alignment - 引导大语言模型达成预期的 Goals 和 Interests

近年来,我们看到许多相对有能力的大语言模型,能够生成逼真的文本(例如 GPT-3 和 Chinchilla 等)。就我们常用的预训练范式(pretraining paradigms)所能达到的效果而言,我们似乎已经达到了一个上限。


为了使语言模型对人类更加有帮助,并减少错误信息和有害言论,研究人员设计了额外的训练范式(training paradigms)来微调预训练的基础模型(base models)。


(13) Training Language Models to Follow Instructions with Human Feedback (2022) by Ouyang, Wu, Jiang, Almeida, Wainwright, Mishkin, Zhang, Agarwal, Slama, Ray, Schulman, Hilton, Kelton, Miller, Simens, Askell, Welinder, Christiano, Leike, and Lowe, https://arxiv.org/abs/2203.02155.


在这篇所谓的 InstructGPT 论文中,研究人员使用了一种有人类参与的强化学习机制(RLHF)。他们从预先训练好的 GPT-3 基础模型开始,并使用人类提供的提示-响应对(prompt-response pairs)进行监督学习来进一步微调它(步骤 1)。接下来,需要人类对模型输出内容进行排名,以训练一个奖励模型(步骤 2)。最后,使用奖励模型通过近端策略优化(proximal policy optimization)来更新预训练和微调的 GPT-3 模型(步骤 3)。


顺带一提,这篇论文也被称为 ChatGPT 背后核心思想的论文——根据最近的传言,ChatGPT 是一个对 InstructGPT 进行大规模数据集微调的扩展版本。



Source: https://arxiv.org/abs/2203.02155


(14) Constitutional AI: Harmlessness from AI Feedback (2022) by Yuntao, Saurav, Sandipan, Amanda, Jackson, Jones, Chen, Anna, Mirhoseini, McKinnon, Chen, Olsson, Olah, Hernandez, Drain, Ganguli, Li, Tran-Johnson, Perez, Kerr, Mueller, Ladish, Landau, Ndousse, Lukosuite, Lovitt, Sellitto, Elhage, Schiefer, Mercado, DasSarma, Lasenby, Larson, Ringer, Johnston, Kravec, El Showk, Fort, Lanham, Telleen-Lawton, Conerly, Henighan, Hume, Bowman, Hatfield-Dodds, Mann, Amodei, Joseph, McCandlish, Brown, Kaplan, https://arxiv.org/abs/2212.08073.


在这篇论文中,研究人员将对齐思想(alignment idea)推进了一步,提出了一种可用于创建“无危害”AI 系统的训练机制。与直接的人类监督不同,研究人员提出了一种基于人类提供的规则的自我训练机制。与上述 InstructGPT 论文类似,所提出的方法采用强化学习方法。



Source: https://arxiv.org/abs/2212.08073


(15) Self-Instruct: Aligning Language Model with Self Generated Instruction (2022) by Wang, Kordi, Mishra, Liu, Smith, Khashabi, and Hajishirzi, https://arxiv.org/abs/2212.10560


指令微调(Instruction finetuning)是一种让类似 GPT-3 这样的预训练基础模型变成更具能力的 LLM(如 ChatGPT)的方法。而像 databricks-dolly-15k 这样开源的人类输入指令数据集可以帮助实现这一目标。但是怎样才能扩展这个规模呢?有一种方法是通过自身生成来引导 LLM 的训练。


Self-Instruct 是一种(几乎无需注释)将预训练的 LLM 与指令对齐的方法。


它是如何工作的呢?简而言之有 4 个步骤:


第 1 步,使用一组人类编写的指令(本例中为 175 条)和样本指令(sample instructions)来作为种子任务池(seed task pool)。


第 2 步,使用预训练的 LLM(如 GPT-3)确定任务类别。


第 3 步,给定新指令,让预训练的 LLM 生成响应。


第 4 步,收集(collect),精简(prune),和过滤(filter)大模型的响应,然后将其添加到任务池(task pool)中。



self-instruct 方法的注释图,来源于https://arxiv.org/abs/2212.10560


在实践中,根据 ROUGE 分数,这种方法表现相对良好。


例如,经过 Self-Instruct 微调的 LLM 表现优于 GPT-3 基础 LLM(1),并且可以与以使用大规模人工指令集预训练的 LLM(2)竞争。此外,self-instruct 还可以使已经在人类指令上进行了微调的 LLM 受益(3)。


但当然,评估 LLM 的黄金标准是询问人类。根据人类的评价,Self-Instruct 方法优于基础 LLM 和以监督方式使用人工指令数据集(如 SuperNI、T0 Trainer)进行训练的 LLM。但有趣的是,Self-Instruct 方法并不能超越通过人类反馈进行强化学习训练的方法(RLHF)。


人类编写的指令数据集与 Self-Instruct 数据集,哪个更有前途?我认为两者都很有前途。为什么不先使用像 databricks-dolly-15k 中的人类编写指令数据集,然后再使用 Self-Instruct 方法来扩展呢?

04 Bonus: 介绍 Reinforcement Learning with Human Feedback(RLHF)

虽然 RLHF(带有人类反馈的强化学习)可能不能完全解决目前 LLM 的问题,但其目前被认为是最好的选择,特别是与前一代的 LLM 相比。我们以后很可能会看到更多具有创造性的方式,将 RLHF 应用于 LLM 的其他领域。


上面的两篇论文,InstructGPT 和 Consitutinal AI,都使用了 RLHF,我认为在不久的将来它会成为一种有影响力的方法,如果你想了解 RLHF,本节还介绍了其他资源。(为了技术层面上的正确性,Constitutional AI 的那篇论文使用了人工智能而不是人类的反馈,但是它遵循了一种 RL(强化学习)的类似概念)。


(16) Asynchronous Methods for Deep Reinforcement Learning (2016) by Mnih, Badia, Mirza, Graves, Lillicrap, Harley, Silver, and Kavukcuoglu (<https://arxiv.org/abs/1602.01783) 介绍了策略梯度方法(policy gradient methods)作为基于深度学习的 RL 中 Q-learning 的替代方法。


(17) Proximal Policy Optimization Algorithms (2017) by Schulman, Wolski, Dhariwal, Radford, Klimov (<https://arxiv.org/abs/1707.06347) 提出了一种改进的近端策略优化强化学习流程,比上面的原始策略梯度算法更具数据效率和可扩展性。


(18) Fine-Tuning Language Models from Human Preferences (2020) by Ziegler, Stiennon, Wu, Brown, Radford, Amodei, Christiano, Irving (<https://arxiv.org/abs/1909.08593) 阐述了 PPO 和奖励学习的概念,以及应用于预训练语言模型的方法(包括 KL 正则化),来防止策略(policy)与自然语言相差过大。


(19) Learning to Summarize from Human Feedback (2022) by Stiennon, Ouyang, Wu, Ziegler, Lowe, Voss, Radford, Amodei, Christiano [2009.01325] Learning to summarize from human feedback 介绍了时下流行的 RLHF 三步骤:


  1. 对 GPT-3 进行预训练,

  2. 以监督方式对其进行微调,

  3. 以监督方式训练奖励模型。然后使用近端策略优化(proximal policy optimization)算法,利用这个奖励模型对微调后的模型进行训练。


本文还表明,与仅使用常规监督学习方式相比,在近端策略优化强化学习的支持下会得到更好的模型。



Source: https://arxiv.org/abs/2009.01325


(20) Training Language Models to Follow Instructions with Human Feedback (2022) by Ouyang, Wu, Jiang, Almeida, Wainwright, Mishkin, Zhang, Agarwal, Slama, Ray, Schulman, Hilton, Kelton, Miller, Simens, Askell, Welinder, Christiano, Leike, and Lowe (https://arxiv.org/abs/2203.02155) 也被称为 InstructGPT 论文,使用与上述 RLHF 相似的三大步骤,但它不是总结文本,而是根据人类指令生成文本。此外,它使用一个 labeler 对输出进行排序(而不仅仅是在人工智能生成的文本和人类生成的文本之间进行二元比较)。

05 总结和扩展阅读 Conclusion and Further Reading

我已经尽量保持本文的论文清单简明扼要,重点是了解当代大语言模型背后的设计、约束和演变(design, constraints, and evolution),列出了 top-10 论文(以及三篇关于 RLHF 的论文)。


如果想要更进一步了解,我建议阅读上面提到的论文的参考文献。或者,下面这些扩展阅读材料(这个清单并不全面)也建议阅读:


替代 GPT 的开源方案


BLOOM: A 176B-Parameter Open-Access Multilingual Language Model (2022), https://arxiv.org/abs/2211.05100


OPT: Open Pre-trained Transformer Language Models (2022), https://arxiv.org/abs/2205.01068


UL2: Unifying Language Learning Paradigms (2022), https://arxiv.org/abs/2205.05131


ChatGPT 的替代方案


LaMDA: Language Models for Dialog Applications (2022), https://arxiv.org/abs/2201.08239


(Bloomz) Crosslingual Generalization through Multitask Finetuning (2022), https://arxiv.org/abs/2211.01786


(Sparrow) Improving Alignment of Dialogue Agents via Targeted Human Judgements (2022), https://arxiv.org/abs/2209.14375


BlenderBot 3: A Deployed Conversational Agent that Continually Learns to Responsibly Engage, https://arxiv.org/abs/2208.03188


计算生物学中的大语言模型


ProtTrans: Towards Cracking the Language of Life’s Code Through Self-Supervised Deep Learning and High Performance Computing (2021), https://arxiv.org/abs/2007.06225


Highly Accurate Protein Structure Prediction with AlphaFold (2021), https://www.nature.com/articles/s41586-021-03819-2


Large Language Models Generate Functional Protein Sequences Across Diverse Families (2023), https://www.nature.com/articles/s41587-022-01618-2


如果想要学习更多 AI 知识,可以阅读原文作者的书籍:



https://sebastianraschka.com/books

END

参考资料


  1. https://arxiv.org/abs/2203.02155

  2. https://lilianweng.github.io/posts/2020-04-07-the-transformer-family/

  3. https://amatriain.net/blog/transformer-models-an-introduction-and-catalog-2d1e9039f376/

  4. https://github.com/karpathy/nanoGPT

  5. https://sebastianraschka.com/blog/2021/dl-course.html#l19-self-attention-and-transformer-networks

  6. https://github.com/rasbt/machine-learning-book/tree/main/ch16

  7. https://arxiv.org/abs/1907.11692

  8. https://arxiv.org/abs/2009.06732

  9. https://arxiv.org/abs/2302.01107

  10. https://arxiv.org/abs/2302.13971

  11. https://arxiv.org/abs/2204.02311

  12. https://arxiv.org/abs/2101.00027

发布于: 刚刚阅读数: 4
用户头像

Baihai IDP

关注

还未添加个人签名 2021-08-31 加入

IDP(Intelligent Development Platform)是面向数据科学家和算法工程师的新一代AI开发生产平台,便捷、高效数据科学家对数据接入与探索、模型开发、调试、训练和模型发布的需求。

评论

发布
暂无评论
究诸经典,探寻大模型演变之踪迹_人工智能_Baihai IDP_InfoQ写作社区