赞
踩
论文标题:A Survey of Large Language Model
论文地址:https://arxiv.org/abs/2303.18223
github:https://github.com/RUCAIBox/LLMSurvey
中文版本:https://github.com/RUCAIBox/LLMSurvey/blob/main/assets/LLM_Survey_Chinese.pdf
自20世纪50年代图灵测试提出以来,人类就开始探索机器掌握语言智能。语言本质上是一个受语法规则控制的复杂的人类表达系统。开发强大的人工智能 (AI) 算法来理解和掌握语言提出了重大挑战。作为一种主要方法,语言建模在过去二十年中被广泛研究用于语言理解和生成,从统计语言模型发展到神经语言模型。最近,通过在大规模语料库上预训练 Transformer 模型提出了预训练语言模型(PLM),在解决各种自然语言处理(NLP)任务方面表现出了强大的能力。由于研究人员发现模型缩放可以带来性能提升,因此他们通过将模型大小增加到更大来进一步研究缩放效果。有趣的是,当参数规模超过一定水平时,这些扩大的语言模型不仅实现了显着的性能提升,而且还表现出了一些小规模语言模型(例如 BERT)中不存在的特殊能力(例如上下文学习) 。
为了区分参数规模的差异,研究界为规模较大(例如包含数百或数千亿个参数)的 PLM 创建了术语“大型语言模型”(LLM)。近年来,学术界和工业界对LLMs的研究取得了很大进展,其中一个显着进展是ChatGPT(基于LLMs开发的强大AI聊天机器人)的推出,引起了社会的广泛关注。 LLMs的技术演变对整个人工智能社区产生了重要影响,这将彻底改变我们开发和使用人工智能算法的方式。考虑到这种快速的技术进步,在本次调查中,我们通过介绍背景、主要发现和主流技术来回顾LLMs的最新进展。我们特别关注LLMs的四个主要方面,即预训练、适应调优、利用和容量评估。此外,我们还总结了开发LLMs的可用资源,并讨论了未来方向的剩余问题。这项调查提供了有关LLMs文献的最新综述,这对研究人员和工程师来说都是有用的资源。
语言是人类表达和交流的一种重要能力,在幼儿期发展并在一生中不断发展[1, 2]。而对于机器来说,除非配备强大的人工智能(AI)算法,否则它们无法自然地掌握以人类语言形式进行理解和交流的能力。为了实现这一目标,使机器能够像人类一样阅读、写作和交流一直是一项长期的研究挑战[3]。从技术上讲,语言建模(LM)是提高机器语言智能的主要方法之一。一般来说,LM 的目标是对单词序列的生成可能性进行建模,从而预测未来(或缺失)标记的概率。 LM的研究受到文献的广泛研究关注,大致可分为四个主要发展阶段:
在现有文献中,PLM 已被广泛讨论和调查[36-39],而 LLM 却很少得到系统的综述。为了激发我们的调查兴趣,我们首先强调 LLM 和 PLM 之间的三个主要区别。
尽管取得了进展和影响,LLM的基本原则仍然没有得到很好的探索。
机遇与挑战并存,LLM的研究与发展需要更多的关注。为了让大家对LLM有一个基本的了解,本次调查从预训练(如何预训练一个有能力的LLM)、适应调优(如何有效地调优预训练)四个主要方面对LLM的最新进展进行了文献综述。从有效性和安全性)、利用性(如何利用LLM解决各种下游任务)和能力评估(如何评估LLM的能力和现有的实证结果)两个角度来训练LLM。我们彻底梳理文献并总结LLM的主要发现、技术和方法。对于本次调查,我们还通过收集LLM的支持资源创建了一个 GitHub 项目网站。
我们还知道一些关于 PLM 或 LLM 的相关评论文章 [32,36,38,39,43,48–54]。这些论文要么讨论 PLM,要么讨论 LLM 的一些特定(或一般)方面。与它们相比,我们重点关注开发和使用LLM的技术和方法,对LLM的重要方面提供了相对全面的参考。
在本节中,我们介绍了LLM的背景以及关键术语、能力和技术。
通常,大型语言模型(LLM)是指包含数千亿(或更多)参数5的语言模型,这些模型是在海量文本数据上训练的[32],例如GPT-3 [55]、PaLM [56]、Galatica [35]和LLaMA[57]。具体来说,LLM 是建立在 Transformer 架构 [22] 的基础上的,其中多头注意力层堆叠在一个非常深的神经网络中。现有的LLM主要采用类似的模型架构(即Transformer)和预训练目标(即语言建模)作为小语言模型。主要区别是,LLM在很大程度上扩展了模型大小、预训练数据和总计算(放大数量级)。他们可以更好地理解自然语言并根据给定的上下文(即提示)生成高质量的文本。这种容量的提高可以通过缩放定律来部分描述,其中性能大致遵循模型大小的大幅增加[30]。然而,根据缩放定律,某些能力(例如上下文学习[55])是不可预测的,只有当模型大小超过一定水平时才能观察到(如下所述)。
在文献[31]中,LLM的涌现能力被正式定义为“小模型中不存在但在大模型中出现的能力”,这是LLM区别于以往PLM的最显着特征之一。当涌现能力出现时,它还引入了一个显着的特征:当规模达到一定水平时,性能显着高于随机水平。以此类推,这种涌现模式与物理学中的相变现象有着密切的联系[31, 58]。原则上,涌现能力也可以根据一些复杂的任务来定义[31, 59],而我们更关心的是可以应用于解决多个任务的一般能力。在这里,我们简要介绍一下LLM具有代表性的三种新兴能力,描述如下。
现有文献中,对于LLM的最小参数范围尚未达成正式共识。在本次调查中,我们主要集中讨论模型大小大于10B的LLM。
LLM经历了很长的路才发展成为目前的状态:一般和有能力的学习者。在开发过程中,提出了许多重要技术,极大地提高了LLM的能力。在这里,我们简要列出了(可能)导致LLM成功的几种重要技术,如下所示:
此外,许多其他因素(例如硬件升级)也对 LLM 的成功做出了贡献。但是,我们主要讨论在开发 LLM 方面的主要技术方法和关键发现。
已发现中文版本,因此不再一一翻译 [中文版本],github上不去的话可在本用户下载资源中此处下载
OpenAI 对 LLM 的研究可以大致分为以下几个阶段:
ICL代表的是"Information Maximization and Contrastive Learning",即信息最大化和对比学习。尽管在GPT-2的论文中没有明确提及ICL这个术语,但是ICL的概念在GPT-2的无监督任务学习中起到了重要的作用。
信息最大化是指通过最大化模型对输入数据的预测能力来学习数据的有用表示。在GPT-2中,模型通过从上下文中预测下一个单词或一段文本的方式来学习语言的表示。这样的预测任务迫使模型学习捕捉句子中的上下文依赖关系和语义信息。
对比学习是指通过将正样本与负样本进行对比,使得模型能够更好地区分它们之间的差异。在GPT-2中,对比学习通过在预测任务中引入掩码机制(masking)来实现。模型被要求根据上下文来预测被掩盖的单词,这样可以使模型更好地理解上下文信息,同时学习到单词之间的关联性。
能力增强:由于其强大的能力,GPT-3 已经成为 OpenAI 开发更强大 LLM 的基础模型。总体而言,OpenAI 探索了两种主要方法来进一步改进 GPT-3 模型,即使用代码数据进行训练以及与人类偏好的对齐。
语言模型的重要里程碑:基于所有的探索工作,OpenAI 取得了两个重要的里程碑:ChatGPT [84] 和 GPT-4 [45]
此处链接众多,建议参看原文
考虑到技术问题的挑战和计算资源的巨大需求,开发或复现LLM 绝非易事。一种可行的方法是在现有的 LLM 的基础上进行开发,即重复使用公开可用的资源进行增量开发或实验研究。在本节中,我们简要整理了用于开发 LLM 的公开可用的资源,包括公开的模型检查点(或 API)、语料库和代码库。3.1 公开可用的模型检查点或 API考虑到模型预训练的巨大成本,训练良好的模型检查点对于研究组织开展 LLM 的研究和开发至关重要。由于参数规模是使用 LLM 时需要考虑的关键因素,为了帮助用户根据其资源预算确定适当的研究内容,我们将这些公开模型分为两个规模级别(百亿参数量级别和千亿参数量级别)。此外,也可以直接使用公开的 API 执行推理任务,而无需在本地运行模型。接下来,我们对公开可用的模型检查点和 API 进行介绍。
与早期的小型 PLM 不同,LLM 有着规模极大的参数量,需要更大量且内容广泛的训练数据。为满足这种需求,越来越多的可用于研究的训练数据集被发布到公共社区中。在本节,我们将简要总结一些常用于训练 LLM 的语料库。基于它们的内容类型,我们将这些语料库分为六个组别进行介绍:Books、CommonCrawl、Reddit Links、Wikipedia、Code、Others。
实际上,为了预训练 LLM,通常需要混合使用不同的数据源(见图 2),而不是单一的语料库。因此,现有的研究通常混合几个现成的数据集(如 C4、OpenWebText 和 the Pile等),然后进行进一步的处理以获取预训练语料库。此外,为了训练适用于特定应用的 LLM,从相关源(如 Wikipedia 和BigQuery)提取数据以丰富预训练数据中的相应信息也很重要。为了快速了解现有 LLM 使用的数据来源,我们介绍三个代表性 LLM 的预训练语料库:
Transformers [135] 是一个使用 Transformer 架构构建模型的开源 Python 库,由 Hugging Face 开发和维护。
DeepSpeed [65] 是由 Microsoft 开发的深度学习优化库(与 PyTorch 兼容)。
Megatron-LM [66–68] 是由 NVIDIA 开发的深度学习库,用于训练 LLM。
…
预训练为 LLM 的能力奠定了基础。通过在大规模语料库上进行预训练,LLM 可以获得基本的语言理解和生成能力 [55, 56]。在这个过程中,预训练语料库的规模和质量对于 LLM 获得强大的能力至关重要。此外,为了有效地预训练 LLM,也需要设计好模型架构、加速方法和优化技术。
预训练语料库的来源可以广义地分为两种类型:通用文本数据和专用文本数据。
在收集大量文本数据后,对数据进行预处理,特别是消除噪声、冗余、无关和潜在有害的数据 [56, 59],对于构建预训练语料库是必不可少的,因为这些数据可能会极大地影响 LLM的能力和性能。
与小规模的 PLM 不同,由于对计算资源的巨大需求,通常不可能对 LLM 进行多次预训练迭代。因此,在训练 LLM 之前构建一个准备充分的预训练语料库尤为重要.
本节中,我们将回顾 LLM 的架构设计,包括主流架构、预训练目标和详细配置。
一般来说,现有 LLM 的主流架构可以大致分为三种类型,即编码器-解码器、因果解码器和前缀解码器。
更新中
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。