乐趣区

关于人工智能:究诸经典探寻大模型演变之踪迹

编者按:在仅仅五年的工夫里,大语言模型、transformers 简直齐全扭转了自然语言解决畛域。

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

以下是译文,Enjoy!

本文经原作者受权,由 Baihai IDP 编译。如需转载译文,请分割获取受权。

原文链接:

https://magazine.sebastianraschka.com/p/understanding-large-l…

作者 | 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-Unde…

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-Unde…

(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…
  3. https://amatriain.net/blog/transformer-models-an-introduction…
  4. https://github.com/karpathy/nanoGPT
  5. https://sebastianraschka.com/blog/2021/dl-course.html#l19-sel…
  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
退出移动版