欢迎大家在 GitHub 上 Star 我们:
分布式全链路因果学习系统 OpenASCE: https://github.com/Open-All-Scale-Causal-Engine/OpenASCE
大模型驱动的知识图谱 OpenSPG: https://github.com/OpenSPG/openspg
大规模图学习系统 OpenAGL: https://github.com/TuGraph-family/TuGraph-AntGraphLearning
不到5年的时间里,大模型和Transformers技术几乎彻底改变了自然语言处理领域,并开始革新计算机视觉和计算生物学等领域。Sebastian Raschka博士聚焦学术研究论文,为机器学习的研究人员和实践者准备了一份入门的阅读清单,按顺序啃完,你也能真正入门当下的大模型技术领域。
当然,Sebastian Raschka博士也提到还有许多其他有用的资源,例如:
- Jay Alammar的《Illustrated Transformer》;
- Lilian Weng的更技术性的博客文章;
- Xavier Amatriain整理的所有关于Transformer的目录和族谱;
- Andrej Karpathy为了教育目的而编写的生成语言模型的最小代码实现;
- 以及本文作者的讲座系列和书籍章节。
了解主要架构和任务
如果你是Transformers/大模型的新手,那么从头开始是最有意义的。
1. Neural Machine Translation by Joint Learning to Align and Translate (2014)
作者:Bahdanau、Cho和Bengio
论文链接:https://arxiv.org/abs/1409.0473
如果你有几分钟空闲,我建议从这篇论文开始学习。该论文为循环神经网络(RNN)引入了一种注意力机制,以增强对长序列的建模能力。这让RNN能更准确地翻译较长的句子——这也是后来开发原始Transformer架构的动机所在。
2. Attention Is All You Need (2017)
作者:Vaswani、Shazeer、Parmar、Uszkoreit、Jones、Gomez、Kaiser 和 Polosukhin
论文链接:https://arxiv.org/abs/1706.03762
这篇论文介绍了原始的Transformer架构,该架构包含编码器和解码器两部分,这两个部分之后将成为独立的模块进行说明。此外,这篇论文还引入了例如缩放点积注意力机制、多头注意力块以及位置输入编码等概念,这些仍然是现代Transformer模型的基础。
3. On Layer Normalization in the Transformer Architecture (2020)
作者:Yang, He, K Zheng, S Zheng, Xing, Zhang, Lan, Wang, Liu
论文链接:https://arxiv.org/abs/2002.04745
虽然上图所示的原始Transformer结构是对最初编码器-解码器架构的非常好的概括,但图中 LayerNorm 的位置一直备受争议。例如,“Attention Is All You Need”中的Transformer结构图将LayerNorm放置在残差块之间,这与原始Transformer论文配套的官方(更新后)代码实现不符。《Attention Is All You Need》图中展示的变体被称Post-LN Transformer,而更新后的代码实现默认采用Pre-LN变体。
在《Layer Normalization in the Transformer Architecture》一文中指出,Pre-LN工作得更好,能解决梯度问题。如下所示,许多架构在实践中采纳了这一做法,但它可能导致表示坍塌。因此,尽管关于使用Post-LN还是Pre-LN的讨论仍在继续,但有一篇新论文《ResiDual: Transformer with Dual Residual Connections》(https://arxiv.org/abs/2304.14802)提出要同时利用两者的优势;它在实践中的有效性仍有待观察。
4. Learning to Control Fast-Weight Memories: An Alternative to Dynamic Recurrent Neural Networks (1991)
作者:Schmidhuber
论文链接:
https://www.semanticscholar.org/paper/Learning-to-Control-Fast-Weight-Memories%3A-An-to-Schmidhuber/bc22e87a26d020215afe91c751e5bdaddd8e4922
本论文推荐给对历史趣闻及与现代Transformer架构类似的早期技术感兴趣的读者。例如,大约在原版Transformer论文《Attention Is All You Need》之前的25年,即1991年,Juergen Schmidhuber提出了一种作为循环神经网络替代方案的快速权重编程器(FWP)。FWP方法涉及一个前馈神经网络,该网络通过梯度下降缓慢学习,以编程另一个神经网络的快速权重变化。与现代Transformer的类比在以下博客文章中这样解释:
在当今的Transformer术语中,FROM和TO分别被称为键和值。快速网络所应用的INPUT则称为查询。实质上,查询经过快速权重矩阵处理,该矩阵是键和值的外积之和(忽略规范化和投影)。由于两个网络的所有操作都是可微分的,我们通过外积或二阶张量积的加性获得了快速权重变化的端到端可微分主动控制。因此,慢速网络可以通过梯度下降学习,在序列处理过程中快速修改快速网络。这在数学上等同于(除了规范化之外)后来所谓的线性自注意力Transformer(或线性 Transformer)。
正如上述博客文章摘录中提到的,这种方法现在通过2020年出现在 arXiv 上的论文《Transformers are RNNs: Fast Autoregressive Transformers with Linear Attention》和《Rethinking Attention with Performers》被称作“线性 Transformer ”或“具有线性化自注意力的 Transformer”。随后,在2021年的论文《Linear Transformers Are Secretly Fast Weight Programmers》中明确展示了线性化自注意力与90年代快速权重编程器之间的等价性。
5. Universal Language Model Fine-tuning for Text Classification (2018)
作者;Howard, Ruder
论文地址:https://arxiv.org/abs/1801.06146
这是一篇从历史角度看非常有趣的文章。它写作于《Attention Is All You Need》发布一年后,但并未涉及Transformer,而是聚焦于循环神经网络。然而,它仍然值得关注,因为它有效地提出了预训练语言模型和针对下游任务的迁移学习。虽然迁移学习在计算机视觉领域已经很成熟,但在自然语言处理(NLP)中还未普及。ULMFit是最早展示预训练语言模型并对其进行微调以适应特定任务,从而在许多NLP任务中取得最先进成果的论文之一。
ULMFit 提出的微调语言模型的三阶段过程如下:
- 在大量文本语料库上训练一个语言模型;
- 在特定任务的数据上对这个预训练的语言模型进行微调,使它能适应特定文本的风格和词汇;
- 通过逐步解冻层来避免灾难性遗忘,同时在特定任务的数据上微调分类器。
这一方法——先在大型语料上训练语言模型,再将其微调至下游任务——是基于 Transformer 的模型和基础模型(如BERT、GPT-2/3/4、RoBERTa等)的核心手段。然而,ULMFit 中的关键部分——逐步解冻,在实际操作变换器架构时通常并不常规执行,通常所有层会一次性进行微调。
6. BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding (2018)
作者:Devlin, Chang, Lee, Toutanova
论文链接:https://arxiv.org/abs/1810.04805
按照原始的Transformer架构,大型语言模型的研究开始向两个方向分化:用于预测性建模任务(如文本分类)的编码器式Transformer,以及用于生成性建模任务(如翻译、摘要及其它文本创造形式)的解码器式Transformer。
上述BERT论文引入了掩码语言建模和下一个句子预测的原始概念,它仍然是最具影响力的编码器式架构。如果你对这一研究分支感兴趣,我推荐你继续了解RoBERTa,它通过移除下一个句子预测任务简化了预训练目标。
7. Improving Language Understanding by Generative Pre-Training(2018)作者:Radford and Narasimhan论文地址:
https://www.semanticscholar.org/paper/Improving-Language-Understanding-by-Generative-Radford-Narasimhan/cd18800a0fe0b668a1cc19f2ec95b5003d0a5035
原始的GPT论文介绍了流行的解码器式架构及通过下一个词预测进行预训练的方法。鉴于BERT因其掩码语言模型的预训练目标可被视为双向变换器,GPT则是一个单向、自回归模型。虽然GPT嵌入也可用于分类,但GPT方法是当今最具影响力的大型语言模型(LLMs)的核心,比如ChatGPT。
如果你对这一研究方向感兴趣,我建议你继续深入了解GPT-2和GPT-3的相关论文。这两篇论文展示了LLMs能够实现零样本和少量样本学习,并突出了 LLMs 的涌现能力。GPT-3 至今仍是训练当前LLM的最常用的基准线和基本模型,稍后会在单独的条目中介绍催生了 ChatGPT的InstructGPT 技术。
GPT2相关论文:https://www.semanticscholar.org/paper/Language-Models-are-Unsupervised-Multitask-Learners-Radford-Wu/9405cc0d6169988371b2755e573cc28650d14dfe
GPT3 相关论文:https://arxiv.org/abs/2005.14165
8. BART: Denoising Sequence-to-Sequence Pre-training for Natural Language Generation, Translation, and Comprehension(2019)
作者:Lewis, Liu, Goyal, Ghazvininejad, Mohamed, Levy, Stoyanov, Zettlemoyer
论文链接:https://arxiv.org/abs/1910.13461.
如前所述,BERT类型的编码器式大型语言模型(LLMs)通常更适用于预测建模任务,而GPT类型的解码器式 LLMs 则更擅长生成文本。为了集两者之所长,上述BART论文结合了编码器和解码器两部分(与第二篇论文介绍的原始Transformer结构不乏相似之处)。
9. Harnessing the Power of LLMs in Practice: A Survey on ChatGPT and Beyond(2023)
作者:Yang, Jin, Tang, Han, Feng, Jiang, Yin, Hu,
论文链接:https://arxiv.org/abs/2304.13712
这不是一篇研究论文,但可能是迄今为止最好的架构综述文章,它生动地展示了不同架构是如何演变的。然而,除了讨论BERT风格的掩码语言模型(编码器)和GPT风格的自回归语言模型(解码器)之外,它还就预训练和微调数据提供了有益的讨论与指导。
Scaling Laws & Improving Efficiency
如果你想深入了解改进Transformer效率的各种技术,我推荐先阅读2020年的《Efficient Transformers: A Survey》论文,以及2023年的《A Survey on Efficient Training of Transformers》2篇论文。另外,以下是我发现特别有趣且值得一读的几篇论文。
- 《Efficient Transformers: A Survey》:
https://arxiv.org/abs/2009.06732
- 《A Survey on Efficient Training of Transformers》:
https://arxiv.org/abs/2302.01107
10. FlashAttention: Fast and Memory-Efficient Exact Attention with IO-Awareness(2022)
作者:Dao, Fu, Ermon, Rudra, Ré
论文链接:https://arxiv.org/abs/2205.14135.
尽管大多数Transformer论文并不费心替换原有的规模化点积机制以实现自注意力,但最近我最常看到被引用的一种机制是FlashAttention。
11. Cramming: Training a Language Model on a Single GPU in One Day (2022)
作者:Geiping 和Goldstein,
论文链接:https://arxiv.org/abs/2212.14034
本文中,研究人员使用单一GPU对一个掩码语言模型/编码器风格的大型语言模型(此处为BERT)进行了24小时的训练。作为对比,2018年原始BERT论文中是在16个TPU上训练了四天。一个有趣的发现是,尽管较小的模型具有更高的吞吐量,但它们的学习效率也较低。因此,较大模型在达到特定预测性能阈值时,并不需要更长的训练时间。
12. LoRA: Low-Rank Adaptation of Large Language Models (2021)
作者:by Hu, Shen, Wallis, Allen-Zhu, Li, L Wang, S Wang, Chen
论文链接:https://arxiv.org/abs/2106.09685.
现代大型语言模型通过在大规模数据集上的预训练,展现出涌现能力,并在多种任务上表现优异,包括语言翻译、摘要生成、编程及问答等。然而,若要提升变压器在特定领域数据和专业任务上的能力,对其进行微调是很有价值的。低秩适配(LoRA)是参数高效微调大型语言模型的最具影响力方法之一。
尽管存在其他参数高效微调的方法,LoRA尤其值得关注,因为它既优雅又非常通用,也可应用于其他类型的模型。预训练模型的权重在其预训练任务上具有全秩,而LoRA的作者指出,当大型语言模型适应新任务时,其具有较低的“内在维度”。因此,LoRA的核心思想是将权重变化ΔW分解为更低秩的表示形式,以此实现更高的参数效率。
13. Scaling Down to Scale Up: A Guide to Parameter-Efficient Fine-Tuning (2022)
作者:Lialin、Deshpande、Rumshisky
论文链接:https://arxiv.org/abs/2303.15647.
这篇综述回顾了超过40篇关于参数高效微调方法的论文(涵盖了诸如前缀调整、适配器及低秩适配等流行技术),旨在使微调过程变得(极为)计算高效。
14. Scaling Language Models: Methods, Analysis & Insights from Training Gopher(2022)作者:Rae和他的78位同事
论文链接:https://arxiv.org/abs/2112.11446
Gopher是一篇特别出色的论文,包含了大量分析内容,用以理解大型语言模型(LLM)的训练过程。研究者在此训练了一个拥有280B参数、80层的模型,该模型基于300B个token进行训练。其中包含了一些有趣的架构改良,比如使用RMSNorm(均方根规范化)替代LayerNorm(层规范化)。LayerNorm与RMSNorm都较BatchNorm更受青睐,因为它们不依赖于批次大小,且无需同步,在分布式设置中使用较小批次时尤为有利。然而,普遍认为RMSNorm能更有效地稳定深层架构的训练过程。
除上述这些有趣的细节外,该论文的主要焦点在于分析不同规模下的任务表现。针对152项多样化的任务评估显示,模型尺寸的增大对理解能力、事实核查以及识别有害语言等任务的提升效果最为显著。然而,与逻辑和数学推理相关的任务从架构扩展中获益较少。
15. Training Compute-Optimal Large Language Models(2022)
作者: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, 和 Sifre
论文链接:https://arxiv.org/abs/2203.15556.
本文介绍了一款名为Chinchilla的70B参数模型,该模型在生成建模任务上超越了广受欢迎的175B参数的GPT-3模型。然而,其核心观点在于指出当前大型语言模型“显著缺乏训练”。论文定义了大型语言模型训练的线性缩放定律。例如,尽管Chinchilla的规模仅为GPT-3的一半,但它之所以能超越 GPT-3,是因为它接受了1.4万亿(而非仅3000亿)个token的训练。换言之,训练token的数量与模型大小同样至关重要。
16.Pythia:A Suite for Analyzing Large Language Models Across Training and Scaling(2023)
作者:Biderman, Schoelkopf, Anthony, Bradley, O'Brien, Hallahan, Khan, Purohit, Prashanth, Raff, Skowron, Sutawika, 和van der Wal
论文链接:https://arxiv.org/abs/2304.01373
Pythia是一系列开源的大型语言模型(从700M到12B参数不等),旨在研究大型语言模型在训练过程中的演变情况。其架构类似于GPT-3,但包含了一些改进,比如Flash Attention(类似 LLaMA)和Rotary Positional Embeddings(类似 PaLM)。Pythia是在The Pile数据集(825Gb)上进行训练的,训练使用了300B个token(约等于常规PILE上的1次epoch,或去重PILE上的1.5次epoch)。
Pythia 研究的主要发现如下:
- 在重复数据上进行训练(由于大型语言模型的训练方式,这意味着训练超过一个epoch)对性能既无益也无害;
- 训练顺序不影响记忆效果。这很不幸,因为如果情况相反,我们可以通过重新排序训练数据来缓解不希望的逐字记忆问题;
- 预训练时的词频会影响任务表现。例如,对于出现频率较高的词汇,少量样本的准确率往往更高;
- 批量大小加倍可使训练时间减半,且不影响收敛。
对齐:引导大型语言模型达到预期目标和兴趣
近年来,我们已经见证了众多相对强大、能生成逼真文本的大型语言模型(如GPT-3和Chinchilla等)。似乎在常用的预训练范式下,我们已达到了所能达成成就的天花板。
为了使语言模型更加有用,并减少错误信息和有害语言的产生,研究人员设计了额外的训练范式,以微调预训练的基础模型。
17. Training Language Models to Follow Instructions with Human Feedback (2022)
作者:Ouyang, Wu, Jiang, Almeida, Wainwright, Mishkin, Zhang, Agarwal, Slama, Ray, Schulman, Hilton, Kelton, Miller, Simens, Askell, Welinder, Christiano, Leike, 和Lowe,
论文链接:https://arxiv.org/abs/2203.02155.
在这篇所谓的InstructGPT论文中,研究人员采用了一种结合人类反馈的强化学习机制(RLHF)。他们首先使用预训练的GPT-3基础模型,并通过监督学习对人类生成的提示-响应对进行进一步微调(步骤 1)。接着,他们让人类对模型输出进行排序,以训练一个奖励模型(步骤2)。最后,他们利用该奖励模型,通过近端策略优化的强化学习方法来更新预训练及微调后的 GPT-3 模型(步骤3)。
顺带一提,这篇论文也被认为是阐述了ChatGPT背后理念的论文——根据最近的传言,ChatGPT是InstructGPT的一个规模化版本,它经过更大数据集的微调。
18. Constitutional AI: Harmlessness from AI Feedback(2022)
论文作者: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.
本文中,研究人员更进一步地发展了“对齐”思想,提出了一种创造“无害”AI系统的训练机制。与直接的人类监督不同,研究人员提出了一种基于规则列表(这些规则由人类提供)的自我训练机制。类似于上文提到InstructGPT论文,所提议的方法采用了强化学习的方法。
19. Self-Instruct: Aligning Language Model with Self Generated Instruction(2022)
论文作者:Wang, Kordi, Mishra, Liu, Smith, Khashabi, 和 Hajishirzi
论文链接:https://arxiv.org/abs/2212.10560
指令微调是我们如何从类似GPT-3的预训练基础模型过渡到更强大LLMs(如ChatGPT)的方式。而像databricks-dolly-15k这样的开源、人为生成的指令数据集能助力这一过程成为可能。但如何实现规模化呢?一种方法是让LLM 基于自身的生成内容进行自举学习。
自我指令(Self-Instruct)是一种(几乎无需标注)将预训练LLMs与指令对齐的方法。这个过程是如何运作的呢?简而言之,它包括四个步骤:
- 用一组人类编写的指令(本例中为175条)初始化任务池,并从中抽样指令;
- 利用一个预训练LLM(如GPT-3)来确定任务类别;
- 针对新指令,让预训练LLM生成响应;
- 收集、筛选并过滤这些响应,之后再将它们加入到任务池中。
通过这种方式,自我指令方法能够在减少人工标注的情况下,有效提升预训练语言模型遵循和生成指令的能力,从而实现模型能力的扩展和优化。
在实践中,这种方法根据ROUGE分数表现得相对较好。例如,经过自我指导微调的大型语言模型(LLM)超越了GPT-3基础模型,并且能够与预先在大量人工编写指令集上训练的LLM竞争。而且,自我指导也能惠及那些已经经过人类指令微调的LLM。
当然,评估LLM的黄金标准是邀请人工评价者参与。根据人工评估,自我指导方法超越了基础LLM,以及通过监督方式在人工指令数据集上训练的LLM(如 SuperNI、T0 Trainer)。但有趣的是,自我指导并未超过那些通过结合人类反馈的强化学习方法训练的模型(RLHF)。
人力生成的指令数据集与自我指导产生的数据集,哪一个更有前景?我看好两者。为什么不从一个人力生成的指令数据集开始,比如databricks-dolly-15k中的1.5万个指令,然后再通过自我指导的方式进行扩展呢?
强化学习与人类反馈(RLHF) 关于强化学习与人类反馈(RLHF)的更多解释,以及实现RLHF的近端策略优化相关论文,请参阅我下方更详细的文章:
在讨论大型语言模型(LLMs)时,不论是研究动态还是教程,我常提及一种称为“强化学习与人类反馈”(RLHF)的过程。RLHF已成为现代LLM训练流程的重要组成部分,因为它能将人类偏好融入优化框架中,从而提升模型的有用性和安全性。
阅读完整文章 :
https://magazine.sebastianraschka.com/p/llm-training-rlhf-and-its-alternatives
结论与深入阅读
我力求使上方列表简洁明了,聚焦于理解当代大型语言模型设计、限制及演变的十大论文(外加三篇关于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 alternatives:
- 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行业却不懂编程?一文解锁零编程基础也能驾驭的9大AI岗位
平均月薪超4.6万!AI领域重磅课程汇总,哈佛,斯坦福,微软,谷歌等出品!
7个prompt小技巧,让你和AI的对话更有效
人人都是开发者的时代,学编程还有用吗?
如有侵权,请联系删除。参考链接:
https://magazine.sebastianraschka.com/p/understanding-large-language-models
关注我们
OpenSPG:
官网:https://spg.openkg.cn
Github:https://github.com/OpenSPG/openspg
OpenASCE:
官网:https://openasce.openfinai.org/
GitHub:[https://github.com/Open-All-Scale-Causal-Engine/OpenASCE]
“可信 AI 进展 “ 公众号致力于最新可信人工智能技术的传播和开源技术的培育,覆盖大规模图学习,因果推理,知识图谱,大模型等技术领域,欢迎扫码关注,解锁更多 AI 资讯~