跳到主要内容 大语言模型综述:背景、技术与资源 | 极客日志
Python AI 算法
大语言模型综述:背景、技术与资源 综述了大语言模型(LLM)的发展历程、核心技术与资源生态。文章从语言建模的历史演变出发,定义了 LLM 的概念,并分析了基于 Transformer 架构的规模化定律(KM 与 Chinchilla)。重点探讨了 LLM 的涌现能力,包括上下文学习、指令跟随和逐步推理。关键技术方面涵盖了扩大规模、分布式训练、能力引出、对齐调整及工具操纵。此外,梳理了百亿至千亿参数级别的公开模型(如 LLaMA、GPT 系列)、公共 API 以及主流开发资源库(Transformers、DeepSpeed 等)。最后总结了 LLM 面临的效率、安全、多模态及垂直领域应用等未来挑战与方向。
灭霸 发布于 2025/2/7 更新于 2026/4/20 1 浏览本文基于 2023 年 6 月人大和蒙特利尔大学的论文《A Survey of Large Language Models》进行整理。自上世纪 50 年代图灵测试提出以来,人类就开始探索机器对语言智能的掌握。语言本质上是一种由语法规则支配复杂、精密的人类表达系统,开发能够理解和掌握语言的人工智能算法是一项重大挑战。
背景与定义 语言建模作为语言理解和生成的一种主要方法,在过去的二十年里得到了广泛的研究,从统计语言模型发展到神经语言模型。最近,通过在大规模语料上预训练 Transformer 模型,提出了预训练语言模型 (PLM),在解决各种自然语言处理 (NLP) 任务中表现出强大的能力。由于研究者发现模型规模化可以提升模型容量,他们进一步通过将参数规模增加到更大来研究规模化效果。有趣的是,当参数规模超过一定水平时,这些扩大的语言模型不仅实现了显著的性能提升,而且还表现出一些小规模语言模型(例如 BERT)所不具备的特殊能力(例如,上下文学习)。为了区分不同参数规模的语言模型,研究界为具有相当规模(例如,包含数百亿或数千亿个参数)的语言模型创造了一个术语'大语言模型'(LLM)。
LLM 是基于神经网络大规模、预训练的统计语言模型。LLMs 最近的成功是语言模型研究和开发积累的结果,可以分为四个历史浪潮:统计语言模型(SLM),神经语言模型(NLM),预训练语言模型(PLM)和 LLM。
研究人员发现,扩展 PLM(例如扩展模型大小或数据大小)通常会导致下游任务的模型能力提高(即遵循规模化定律)。许多研究通过训练更大的 PLM(例如 175B 参数的 GPT-3 和 540B 参数的 PaLM)探索了性能极限。尽管扩展主要在模型大小上进行(具有相似的架构和预训练任务),但这些大型 PLM 表现出与较小 PLM(例如 330M 参数的 BERT 和 1.5B 参数的 GPT-2)不同的行为,并在解决一系列复杂任务中表现出令人惊讶的能力(称为涌现能力)。例如,GPT-3 可以通过上下文学习解决少样本任务,而 GPT-2 则表现不佳。因此,研究界为这些大型 PLM 创造了'大语言模型 (LLM)'一词,它们引起了越来越多的研究关注。
LLM 的规模化定律 目前,LLM 主要建立在 Transformer 架构之上,其中多头注意层堆叠在非常深的神经网络中。现有的 LLM 采用与小型语言模型类似的 Transformer 架构和预训练目标(例如语言建模)。然而,LLM 显著扩展了模型大小、数据大小和总计算量(放大几个数量级)。大量研究表明,规模化可以大大提高 LLM 的模型能力。因此,建立一种定量方法来表征规模化效果是很有用的。
KM 规模化定律 2020 年,Kaplan(OpenAI 团队)首次提出针对神经语言模型,建立模型性能与模型大小(N)、数据集大小(D)和训练计算量(C)三个主要因素的幂律关系模型。
Chinchilla 规模化定律 另一项代表性研究是 Hoffmann(谷歌 DeepMind 团队)提出了一种替代定律,用于指导 LLM 的计算优化训练。他们通过改变更大范围的模型大小(70M 到 16B)和数据大小(5B 到 500B 个 token)进行了严格的实验,并拟合了类似的规模化定律,但系数不同。
LLM 的涌现能力 在文献中,LLM 的涌现能力被正式定义为'小模型中不存在但在大模型中出现的能力',这是 LLM 与以前的 PLM 最显著的区别之一。它进一步介绍了涌现能力出现时的显著特征:当规模达到一定水平时,性能会显著高于随机水平。类似地,这种涌现模式与物理学中的相变现象有着密切的联系。原则上,可以针对一些复杂任务来定义涌现能力,而关心的是应用于解决各种任务的一般能力。
上下文学习 :上下文学习 (ICL) 能力是由 GPT-3 正式引入的:假设语言模型已经提供了自然语言指令和/或几个任务演示,它可以通过完成输入文本的单词序列为测试实例生成预期的输出,而无需额外的训练或梯度更新。在 GPT 系列模型中,175B GPT-3 模型总体上表现出很强的 ICL 能力,但 GPT-1 和 GPT-2 模型则不然。这种能力还取决于特定的下游任务。
指令跟随 :通过使用自然语言描述格式化的多任务数据集进行微调(称为指令调优),LLM 在以指令形式描述的未见过的任务上表现出色。通过指令调优,LLM 能够在不使用明确示例的情况下遵循新任务的任务指令,从而提高泛化能力。
逐步推理 :对于小型语言模型,通常很难解决涉及多个推理步骤的复杂任务,例如数学应用题。相比之下,通过思维链 (CoT) 提示策略,LLM 可以通过利用涉及中间推理步骤的提示机制来得出最终答案,从而解决此类任务。据推测,这种能力可能是通过对代码进行训练获得的。
LLM 的关键技术
扩大规模 :如前几部分所述,Transformer 语言模型存在明显的规模效应:更大的模型/数据大小和更多的训练计算通常会导致模型能力提高。作为两个代表性模型,GPT-3 和 PaLM 分别通过将模型大小增加到 175B 和 540B 来探索扩展极限。由于计算预算通常有限,可以进一步采用规模化定律来对计算资源进行更高效的计算分配。此外,数据规模话应经过仔细的清理过程,因为预训练数据的质量对模型能力起着关键作用。
训练 :由于模型规模巨大,成功训练一个有能力的 LLM 非常具有挑战性。需要分布式训练算法来学习 LLM 的网络参数,其中通常联合使用各种并行策略。为了支持分布式训练,已经发布了几个优化框架来促进并行算法的实现和部署,例如 DeepSpeed 和 Megatron-LM。此外,优化技巧对于训练稳定性和模型性能也很重要,例如重启以克服训练损失峰值和混合精度训练。
能力引出 :在对大规模语料库进行预训练后,LLM 被赋予了作为通用任务求解的潜在能力。这些能力可能不会在 LLM 执行某些特定任务时明确表现出来。作为技术方法,设计合适的任务指令或特定的上下文学习策略来引出这些能力是很有用的。例如,思维链提示已被证明可以通过包含中间推理步骤来解决复杂的推理任务。
对齐调整 :由于 LLM 经过训练以捕获预训练语料库(包括高质量和低质量数据)的数据特征,因此它们可能会生成对人类有害的、有偏见的甚至有害的内容。有必要将 LLM 与人类价值观相结合,例如乐于助人、诚实和无害。为此,InstructGPT 设计了一种有效的调整方法,使 LLM 能够遵循预期的指令,该方法利用了强化学习和人类反馈的技术。它将人类纳入训练循环中,并采用精心设计的标注策略。
工具操纵 :本质上,LLM 是在大量纯文本语料库上训练为文本生成器的,因此在不能以文本形式最好地表达的任务(例如数值计算)上表现较差。此外,它们的能力也仅限于预训练数据,例如无法捕获最新信息。为了解决这些问题,最近提出的一项技术是使用外部工具来弥补 LLM 的不足。例如,LLM 可以利用计算器进行精确计算,并使用搜索引擎检索未知信息。
考虑到具有挑战性的技术问题和对计算资源的巨大需求,开发或复制 LLM 绝非易事。一种可行的方法是学习现有 LLM 的经验并重用公开可用的资源进行增量开发或实验研究,比如开发 LLM 的公开可用资源,包括模型检查点(或 API)、语料库和库。
公开可用的模型检查点或 API 鉴于模型预训练的成本巨大,训练有素的模型检查点对于研究界研究和开发 LLM 至关重要。由于参数规模是使用 LLM 需要考虑的关键因素,将这些公共模型分为两个规模级别(即数百亿参数和数千亿参数),这有助于用户根据其资源预算确定合适的资源。此外,对于推理,可以直接使用公共 API 来执行任务,而无需在本地运行模型。
百亿参数的模型 此类模型大多数的参数规模在 10B 到 20B 之间,但 LLaMA(最大版本包含 65B 参数)、NLLB(最大版本包含 54.5B 参数)和 Falcon(最大版本包含 40B 参数)除外。此范围内的其他模型包括 mT5、PanGu-α、T0、GPT-NeoX-20B、CodeGen、UL2、Flan-T5 和 mT0。其中,Flan-T5(11B 版)可以作为指令调整研究的首选模型。此外,CodeGen(11B 版)作为一个专为代码生成而设计的自回归语言模型,可以被认为是探索代码生成能力的一个很好的候选模型。
此外,基于深度学习框架 MindSpore 开发的 PanGu-α 在零样本或少样本设置下的中文下游任务中表现出色。请注意,PanGu-α 拥有多个版本的模型(最多 200B 个参数),而最大的公开版本有 13B 个参数。作为一种流行的 LLM,LLaMA(65B 版本)包含的参数大约是其他模型的五倍,在与指令遵循相关的任务中表现出色。由于其开放性和有效性,LLaMA 引起了研究界的极大关注,许多努力致力于微调或持续预训练不同模型版本,以实现新的模型或工具。
千亿参数的模型 对于此类别的模型,只有少数模型已公开发布。例如,OPT、OPT-IML、BLOOM 和 BLOOMZ 的参数数量与 GPT-3(175B 版本)几乎相同,而 GLM 和 Galactica 分别具有 130B 和 120B 个参数。其中,OPT(175B 版本)和指令调整版本 OPT-IML 特别适合开放共享,旨在使研究人员能够进行大规模可重复的研究。对于跨语言泛化研究,BLOOM(176B 版本)和 BLOOMZ(176B 版本)可以用作基础模型,因为它们在多语种语言建模任务中表现出色。
LLaMA 模型系列 Meta AI 于 2023 年 2 月推出 LLaMA 模型集合,包括四种大小(7B、13B、30B 和 65B)。自发布以来,LLaMA 引起了研究界和工业界的广泛关注。LLaMA 模型在各种开放基准上都取得了非常出色的表现,成为迄今为止最受欢迎的开源语言模型。大量研究人员通过指令调整或持续预训练扩展了 LLaMA 模型。特别是,由于计算成本相对较低,指令调整 LLaMA 已成为开发定制或专用模型的主要方法。
在这些扩展模型中,Stanford Alpaca 是第一个基于 LLaMA(7B)微调的开放指令跟随模型。名为 Alpaca-52K 的指令数据和训练代码已在后续工作中被广泛采用。此外,Vicuna 是另一种流行的 LLaMA 变型,根据从 ShareGPT 收集的用户共享对话进行训练。与其他变型相比,Vicuna 在多模态语言模型中更受欢迎,这导致出现了各种流行的模型,包括 LLaVA、MiniGPT-4、InstructBLIP 和 PandaGPT。
LLM 的公共 API 与直接使用模型副本相比,API 为普通用户提供了一种更方便的方式来使用 LLM,而无需在本地运行模型。作为使用 LLM 的代表性接口,GPT 系列模型的 API 已被学术界和工业界广泛使用。OpenAI 为 GPT-3 系列中的模型提供了七个主要接口:ada、babbage、curie、davinci(GPT-3 系列中最强大的版本)、text-ada-001、text-babbage-001 和 text-curie-001。其中,前四个接口可以在 OpenAI 的主机服务器上进一步微调。
总体而言,API 接口的选择取决于具体的应用场景和响应需求。
训练语料库与资源 与早期的 PLM 相比,包含很多参数的 LLM 需要大量涵盖广泛内容的训练数据。为了满足这一需求,越来越多的训练数据集已被发布。简要总结几个广泛用于训练 LLM 的语料库,根据其内容类型,分为六类:书籍、CommonCrawl、Reddit 链接、维基百科、代码等。
在实践中,预训练 LLM 通常需要混合使用不同的数据源(如图所示各种数据的占比),而不是使用单个语料库。因此,现有研究通常将几个现成的数据集(例如 C4、OpenWebText 和 Pile)混合使用,然后进行进一步处理以获得预训练语料库。
GPT-3(175B) :在 300B 个 tokens 的混合数据集上进行训练,包括 CommonCrawl、WebText2、Books1、Books2 和 Wikipedia。
PaLM (540B) :使用 780B 个 tokens 的预训练数据集,该数据集来自社交媒体对话、过滤后的网页、书籍、Github、多语言维基百科和新闻。
LLaMA :从各种来源提取训练数据,包括 CommonCrawl、C4、Github、维基百科、书籍、ArXiv 和 StackExchange。LLaMA (6B) 和 LLaMA (13B) 的训练数据大小为 1.0T 个 tokens,而 LLaMA (32B) 和 LLaMA (65B) 使用的训练数据大小为 1.4T 个 tokens。
开发资源库
Transformers :是一个开源 Python 库,用于 Transformer 架构构建的模型,由 Hugging Face 开发和维护。它具有简单且用户友好的 API,可以轻松使用和定制各种预训练模型。
DeepSpeed :是由 Microsoft 开发的深度学习优化库(与 PyTorch 兼容),已用于训练许多 LLM,例如 MT-NLG 和 BLOOM。它为分布式训练提供了各种优化技术的支持,例如内存优化(ZeRO 技术、梯度检查点)和流水线并行性。
Megatron-LM :是由 NVIDIA 开发的深度学习库,用于训练大规模语言模型。它还为分布式训练提供了丰富的优化技术,包括模型和数据并行性、混合精度训练和 Flash Attention。
JAX :是 Google 开发的高性能机器学习算法 Python 库,允许用户使用硬件加速(例如 GPU 或 TPU)轻松地对阵列执行计算。
Colossal-AI :是由 HPC-AI Tech 开发用于训练大规模 AI 模型的深度学习库。它基于 PyTorch 实现,支持丰富的并行训练策略集合。
BMTrain :是 OpenBMB 开发的高效库,用于以分布式方式训练具有大规模参数的模型,强调代码简单、资源占用少和可用性高。
FastMoE :是一个专门用于混合专家(MoE)模型的训练库。它基于 PyTorch 开发,在设计上兼顾效率和用户友好性。
除了上述库资源之外,现有的深度学习框架(例如 PyTorch、TensorFlow、MXNet、PaddlePaddle、MindSpore 和 OneFlow)也提供了对并行算法的支持,这些算法常用于训练大规模模型。
总结与展望 本文回顾了大语言模型(LLM)的背景、关键技术及生态资源。从统计语言模型到神经语言模型,再到预训练语言模型,最终演变为具备涌现能力的大语言模型,其发展路径清晰可见。规模化定律揭示了模型性能与参数规模、数据规模及计算量的关系,而涌现能力则展示了大模型在上下文学习、指令跟随及逐步推理等方面的独特优势。
在技术应用层面,扩大规模、高效训练、能力引出、对齐调整及工具操纵构成了当前 LLM 发展的核心技术支柱。同时,开源社区提供了丰富的模型检查点、API 接口及开发工具,降低了研究与应用的门槛。
展望未来,LLM 的发展仍面临诸多挑战。首先,如何进一步提升模型效率,降低训练与推理成本,是实现大规模普及的关键。其次,模型的安全性与对齐问题仍需深入探索,确保生成内容符合人类价值观与伦理规范。此外,多模态融合将是重要方向,结合视觉、听觉等多模态信息将赋予模型更强的感知与理解能力。最后,垂直领域的深度适配与定制化也将是产业落地的重点,通过领域数据微调与知识注入,使 LLM 更好地服务于具体行业场景。随着技术的不断演进,LLM 有望彻底改变人工智能的开发与使用方式,推动社会生产力的进一步提升。
相关免费在线工具 加密/解密文本 使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online
RSA密钥对生成器 生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
Mermaid 预览与可视化编辑 基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
curl 转代码 解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online
Base64 字符串编码/解码 将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
Base64 文件转换器 将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online