当前位置: 首页 > article >正文

大语言模型基础--task2:大模型技术基础

目录

1.2   大语言模型的能力特点

1.3   大语言模型关键技术概览

1.4   大语言模型对科技发展的影响

第二章  基础介绍

2.1   大语言模型的构建过程

2.1.1  大规模预训练

2.1.2  指令微调与人类对齐

2.2  扩展法则

2.2.1  KM 扩展法则

2.2.2  Chinchilla 扩展法则

2.2.3  关于扩展法则的讨论


1.2   大语言模型的能力特点

• 具有较为丰富的世界知识. 与传统机器学习模型相比,大语言模型经过超大规模文本数据的预训练后能够学习到较为丰富的世界知识。实际上,最早期的专家系统也是希望能够通过设计基于知识库与知识表示的推理引擎系统,进而解决特定领域的应用任务。然而,当时所采用的技术路径主要是基于逻辑、规则以及 初期的机器学习算法,系统能力还比较局限,无法充分建模以及利用世界知识信息。之前的预训练语言模型需要使用微调为主要手段来解决下游任务。大语言模型不一定比小型预训练语言模型具有更强的任务效果,而且某些大语言模型中也可能不具有某种涌现能力。

• 具有较强的通用任务解决能力. 大语言模型第二个代表性的能力特点是具有 较强的通用任务求解能力。大语言模型主要通过预测下一个词元的预训练任务进 行学习,虽然并没有针对特定的下游任务进行优化,却能够建立远强于传统模型的通用任务求解能力。实际上,基于大规模无标注文本的下一个词元预测任务本 质上可以看作一个多任务学习过程 ,因为针对不同词元的预测任务可能涉及 到情感分类、数值计算、知识推理等非常多样的训练任务。由于具有通用的任务求解能力,大语言模型深刻地影响了很多研究领域的科研范式。例如,在自然语言处理领域,很多传统任务(如摘要、翻译等)都可以采用基于大语言模型的提示学习方法进行解决,而且能够获得较好的任务效果,早期任务特定的解决方案已经被 逐步替代。

• 具有较好的复杂任务推理能力. 除了具有通用性外,大语言模型在复杂任务 中还展现出了较好的推理能力。例如,大语言模型能够回答知识关系复杂的推理 问题 ,还可以解决涉及复杂数学推理过程的数学题目。在这些任务中,传 统方法的性能相对较差,为了提升与其相关的特定能力,往往需要针对性地修改 模型架构或者使用特定训练数据进行学习。相比之下,大语言模型在大规模文本数据预训练后,能够展现出比传统模型更强的综合推理能力。尽管有些研究工作 认为大语言模型不具备真正的推理能力,而是通过“记忆”数据模式来进行任务求解,但在许多复杂应用场景中,大语言模型展现出了令人震撼的推理性能,这种现象很难完全通过数据模式的记忆与组 合来进行解释。

• 具有较强的人类指令遵循能力. 大语言模型建立了自然语言形式的统一任务 解决模式:任务输入与执行结果均通过自然语言进行表达。通过预训练与微调两个阶段的学习,大语言模型具备了较好的人类指令遵循能力,能够直接通过自然 语言描述下达任务指令(又称为“提示学习”)。在早期的对话系统中,指令遵循就是一个受到广泛关注的研究方向。然而,传统模型缺乏通用的任务理解与执行 能力,仍然需要依赖人工规则或者先验信息辅助指令理解模块的设计与训练。由 于具有较强的指令遵循能力,大语言模型为人机交互提供了一种自然的、通用的 技术路径,这对于打造很多以人为中心的应用服务(如智能音箱、信息助手等)具 有重要的意义。

• 具有较好的人类对齐能力. 机器学习模型的安全性一直以来是一个重要的研 究课题。然而,传统模型的智能性、通用性相对较弱,很多科研学者对于模型安全 性的关注程度通常远低于对于提升模型性能的关注。随着大语言模型的出现,由于其具有出色的模型性能,如果不进行有效的对齐与监管,将可能带来非常严重 的后果。目前广泛采用的对齐方式是基于人类反馈的强化学习技术,通过强化学习使得模型进行正确行为的加强以及错误行为的规避,进而建立较好的人类对齐 能力。目前很多线上部署的大语言模型应用,都能够有效阻止典型的模型功能滥 用行为,一定程度上规避了常见的使用风险。

• 具有可拓展的工具使用能力. 在机器学习领域,模型的设计和实现往往都具 有一定的局限性,例如会受到所采用的归纳假设以及训练数据的限制。同样地,大语言模型的能力也具有一定的局限性。例如,它仍然无法有效回答涉及到预训练 数据时间范围之外的问题,并且对于数学中的数值计算问题也表现不佳。作为解 决方案,由于大语言模型具有较为通用的任务求解形式,可以通过微调、上下文 学习等方式掌握外部工具的使用,如搜索引擎与计算器。实际上,世界上最会使 用工具的智能体就是人类,人类不断发明新的技术与工具,拓展自己的认知与能 力边界。工具学习实际上就是借鉴了这一思路,通过具有特殊功能的工具来加强 大语言模型的能力。目前最先进的大语言模型如 GPT-4 等能够支持多种工具 的使用,从而极大地提升了模型的任务解决能力。

除了上述主要的能力特点外,大语言模型还能够展现出很多其他重要能力,如 长程对话的语义一致性、对于新任务的快速适配、对于人类行为的准确模拟等。本 书将在后续的内容中对于这些特点再进行专门介绍。

1.3   大语言模型关键技术概览

从早期的统计语言模型到大语言模型,科研人员进行了一系列的技术探索,从 而实现了模型能力的显著提升。下面将概括性地介绍一下大语言模型能够取得重 要进展背后的关键技术。具体的技术细节可以参考本书后续章节的详细介绍。

• 规模扩展. 规模扩展是大语言模型的一个关键成功因素。研究人员发现这些超大规模语言模型能够展现出一些小型语言模型不具备的能力特点,如上下文学习能力、思 维链能力等,这也成为区分上一代预训练语言模型与大语言模型的重要标 志。早期的研究主要关注模型参数规模所带来的性能优势,最近的工作则是加大 对于高质量数据的规模扩展。针对十亿级别(如 2B 或 7B)参数的模型使用超大 规模的数据(如 2T 或 3T 词元)进行训练,仍然可能无法达到这些模型的最大数 据容量。实现规模扩展的关键在于模型架构的可扩展性。Transformer 模型的可扩 展性非常强,对于硬件并行优化的支持也比较友好,特别适合大语言模型的研发, 很多工作也在进一步针对其进行优化与改进。

• 数据工程. 目前来说,数 据工程主要包括三个方面。首先,需要对于数据进行全面的采集,拓宽高质量的 数据来源;其次,需要对于收集到的数据进行精细的清洗,尽量提升用于大模型训练的数据质量;第三,需要设计有效的数据配比与数据课程,加强模型对于数 据语义信息的利用效率。这三个方面的数据工程技术直接决定了最后大语言模型 的性能水平。目前来说,针对英文的开源高质量数据集合比较丰富,相关的数据 工程技术讨论也相对较多,但是对于其他语言的研究关注度还有待进一步加强。

• 高效预训练. 与传统预训练语言模型相比,成功训练出一个性能较强的大语 言模型极具挑战性。由于参数规模巨大,需要使用大规模分布式训练算法优化大语言模型的神经网络参数。在训练过程中,需要联合使用各种并行策略以及效率 优化方法,包括 3D 并行、ZeRO等。为了有效支持分布式训练,很多研究机构发布了专用的分布式 优化框架来简化并行算法的实现与部署,它们能够有效支持千卡甚至万卡的联合训练。在实现上,大语言模型的训练过程需要搭建一个全栈式的优化体系架构,能够支持大规模预训练数据的调度安排,建立起可迭代的模型性能改进闭环,加强效果反馈机制,从而能够快速、灵活地进行相关训练策略的调整。由于大语言模型的 训练需要耗费大量的算力资源,通常需要开展基于小模型的沙盒测试实验,进而 确定面向大模型的最终训练策略。研发过程需要关注较为实用的优化技巧,提升训练稳定性和优化效率,如混合精度训练。

• 能力激发. 大语言模型经过超大规模数据的预训练后,能够编码大量的文本 语义知识信息。然而,这个阶段的模型能力仍然是通过通用的下一个词预测任务 建立的,主要目的是为了进行预训练文本数据的恢复。为了提升模型的任务求解能力,需要设计合适的指令微调以及提示策略进行激发或诱导。在指令微调方面, 可以使用自然语言表达的任务描述以及期望的任务输出对于大语言模型进行指令 微调,从而增强大语言模型的通用任务求解能力,提升模型在未见任务上的泛化 能力。通常来说,现有的研究认为指令微调无法向大模型注入新的知识,而是训练 大模型学会利用自身所掌握的知识与信息进行任务的求解。在提示学习方面,需要设计合适的提示策略去诱导大语言模型生成正确的问题答案。为此,研究人员 提出了多种高级提示策略,包括上下文学习、思维链提示等,通过构建特殊的提 示模板或者表述形式来提升大语言模型对于复杂任务的求解能力。提示工程已经 成为利用大语言模型能力的一个重要技术途径。进一步,大语言模型还具有较好的规划能力,能够针对复杂任务生成逐步求解的解决方案,从而简化通过单一步 骤直接求解任务的难度,进一步提升模型在复杂任务上的表现。

• 人类对齐.互联网上开放的无标注文本数据的内容覆盖范围较广,可能包 含低质量、个人隐私、事实错误的数据信息。因此,经过海量无标注文本预训练 的大语言模型可能会生成有偏见、泄露隐私甚至对人类有害的内容。在实践应用中,需要保证大语言模型能够较好地符合人类的价值观。目前,比较具有代表性 的对齐标准是“3 H 对齐标准”,即 Helpfulness(有用性)、Honesty(诚实性)和 Harmlessness(无害性)。与传统的任务优化目标不同,这三个对齐标准一定程度 上都与人类主观感知相关,很难直接建立形式化的特定优化目标。为了解决这一问题,OpenAI 提出了基于人类反馈的强化学习算法,将人类偏好引入到大模型的对齐过程中:首先训练能够区分模型输出质量好坏的奖励模型,进而使用强化学习算法来指导语言模 型输出行为的调整,让大语言模型能够生成符合人类预期的输出。由于强化学习 算法的优化过程较为复杂,最近学术界开始涌现出一批使用监督微调的对齐方式。OpenAI专门发布了“超级对齐”的研究项目,旨在研究如何监管具有强人工智能能力的算法。

• 工具使用由于大语言模型的能力主要是通过大规模文本数据的语义学习 所建立的,因此在非自然语言形式的任务(如数值计算)中能力较为受限。此外, 语言模型的能力也受限于预训练数据所提供的信息,无法有效推断出超过数据时间范围以及覆盖内容的语义信息。为了解决上述问题,工具学习成为一种扩展大 语言模型能力的关键技术,通过让大语言模型学会使用各种工具的调用方 式,进而利用合适的工具去实现特定的功能需求。在技术路径上,工具调用能力主要是通过指令微调以及提示学习两种途径实 现,而未经历过特殊训练或者缺乏有效提示的大语言模型则很难有效利用候选工 具。本质上来说,工具使用这一思想来源于人类行为的启发,人类能够充分利用各种外部工具来提升某种特定技能。例如,人类发明了汽车,能够有效缩短通勤 的往返时间。随着应用范围的不断拓展,创建广泛的、可供大模型使用的工具资 源变得愈为重要。

尽管大语言模型技术已经取得了显著进展,但是对于它的基本原理仍然缺乏 深入的探索,很多方面还存在局限性或者提升空间。首先,大模型中某些重要能 力(如上下文学习能力)的涌现仍然缺乏形式化的理论解释,需要针对大语言模 型基础能力的形成原因进行深入研究,从而揭示大语言模型内部的工作机理。其 次,大语言模型预训练需要大规模的计算资源支持,研究各种训练策略的效果并 进行可重复性的消融实验的成本非常高昂。学术界难以获得充分的算力来系统性 研究大语言模型;虽然工业界或者大型研究机构不断推出性能优异的开源大模型, 但是这些模型的训练过程的开源程度还不够充分,许多重要的训练细节仍缺乏公 开的研究报道。特别地,现有的大语言模型非常依赖于工程方法的优化(如数据 清洗等),但是这些技术的理论支撑还比较缺乏。第三,让大语言模型充分与人类 价值观或偏好对齐也是一项重要的科研挑战。尽管大语言模型已经具有较好的模 型能力,但是在特定场景下或者蓄意诱导下,仍然可能生成虚构、有害或具有负 面影响的内容。这一问题随着模型能力的提升而变得更为难于解决。为了应对模 型能力未来可能超越人类监管能力的情况,需要设计更为有效的监管方法来消除 使用大语言模型的潜在风险。综述所述,大语言模型技术的研究才刚刚开始,仍 然存在众多的研究挑战等待突破,需要研究人员和工程人员携手努力解决。

1.4   大语言模型对科技发展的影响

大语言模型真正令我们震撼的地方是,它与小型预训练语言模型采用了相似 的网络架构以及训练方法,但通过扩展模型参数规模、数据数量以及算力资源,却 带来了令人意料之外的模型性能跃升。大语言模型首次实现了单一模型可以有效 解决众多复杂任务,人工智能算法从未如此强大。

大语言模型对人工智能技术的未来发展方向带来了重要影响,下面以四个典型的领域进行介绍:

• 自然语言处理. 在自然语言处理领域,大语言模型可以作为一种通用的语言 任务解决技术,能够通过特定的提示方式解决不同类型的任务,并且能够取得较 为领先的效果。进一步,很多传统任务的研究意义在衰减,甚至有些任务被宣告“结束”(如摘要任务),研究范式开始全面转向大语言模型技术,研究人员的关注 重点由“解决特定任务”迁移到“如何进一步提升大语言模型的综合能力”。语言 智能开始成为主导人工智能发展方向的重要路径。

• 信息检索. 在信息检索领域,传统搜索引擎受到了人工智能信息助手(即 ChatGPT)这一新型信息获取方式的冲击。在基于大语言模型的信息系统中,人们 可以通过自然语言对话的形式获得复杂问题的答案。微软也推出了基于大语言模 型增强的搜索引擎 New Bing,将大语言模型与传统搜索引擎进行融合。但是,目 前大语言模型信息系统的精确性与实时性还有待提升,无法完全胜任现有搜索引 擎的角色。鉴于大语言模型与搜索引擎各自的优势,信息检索领域主要关注两个新兴方向的研究,即检索增强的大语言模型以及大语言模型增强的搜索系统,全 面围绕大语言模型技术展开。

• 计算机视觉. 在计算机视觉领域,研究人员为了更好地解决跨模态或多模态 任务,正着力研发类 ChatGPT 的视觉-语言联合对话模型,GPT-4 已经能够支持图 文多模态信息的输入。由于开源大语言模型的出现,可以极大地简化多模态模型 的实现难度,通过将图像、视频等模态的信息与文本语义空间相融合,可以通过计算量相对较少的微调方法来研发多模态大语言模型。进一步,基于下一个词元 预测的思路也可能会带来多模态领域的基础模型架构的转变,例如 OpenAI 最新 推出的 Sora 模型就是基于图像块序列建模的思路进行构建的。

• 人工智能赋能的科学研究(AI4Science).  近年来,AI4Science 受到了学术界的广泛关注,目前大语言模型技术已经广泛应用于数学、化学、物理、生物等 多个领域,基于其强大的模型能力赋能科学研究。例如,著名数学家陶哲轩曾多次在社交网络表示,他在数学科研中广泛使用大语言模型,用于辅助提供解题灵 感甚至用于论文的撰写。此外,大语言模型也多次被证明在新材料发现、生物制 药等多个方面都能起到一定的促进作用。随着大语言模型训练数据规模与范围的 扩展,在未来将会在人类科学研究中扮演更为重要的角色。

除了在特定学科领域的应用,大语言模型对于整体的科研范式也正产生着重要影响。为了有效提升大模型的性能,研究人员需要深入了解大模型相关的工程 技术,对于理论与实践的结合提出了更高的需求。例如,训练大模型具备大规模 数据处理与分布式并行训练方面的实践经验。进一步,大语言模型将改变人类开 发和使用人工智能算法的方式。与小型预训练语言模型不同,访问大语言模型的 主要方法是通过提示接口(Prompting Interface),

大语言模型对于产业应用带来了变革性的技术影响,将会催生一个基于大语言模型的应用生态系统。在未来,将出现更多的以大语言模型为基础技术架构的科技应用产品,简化原来繁复的功能处理流程,加快软件研发周期,极大地改善用户体验。

大语言模型是指在海量无标注文本数据上进行预训练得到的大型预训练语言 模型。目前大语言模型所需要具有的 最小参数规模还没有一个明确的参考标准,但是大语言模型通常是指参数规模达 到百亿、千亿甚至万亿的模型;也有部分工作认为经过大规模数据预训练(显著 多于传统预训练模型如 BERT 所需要的训练数据)的数十亿参数级别的模型也可 以称之为大语言模型(如 LLaMA-2 7B)。对于大语言模型,本书泛指具有超大规 模参数或者经过超大规模数据训练所得到的语言模型。与传统语言模型相比,大语言模型的构建过程涉及到更为复杂的训练方法,进而展现出了强大的自然语言 理解能力和复杂任务求解能力(通过文本生成的形式)。为了帮助读者了解大语言 模型的工作原理,本部分将介绍大语言模型的构建过程、扩展法则(Scaling Law)、 涌现能力(Emergent Abilities),然后将介绍 GPT 系列模型的研发历程。

2.1   大语言模型的构建过程

本部分内容将概要介绍大语言模型的构建过程,为刚进入该领域的读者对于 大语言模型的研发建立一个初步的认识。从机器学习的观点来说,神经网络是一 种具有特定模型结构的函数形式,而大语言模型则是一种基于 Transformer 结构的 神经网络模型。因此,可以将大语言模型看作一种拥有大规模参数的函数,它的 构建过程就是使用训练数据对于模型参数的拟合过程。尽管所采用的训练方法与 传统的机器学习模型(如多元线性回归模型的训练)可能存在不同,但是本质上 都是在做模型参数的优化。大语言模型的优化目标更加泛化,不仅仅是为了解决 某一种或者某一类特定任务,而是希望能够作为通用任务的求解器。为了实现这一宏大的目标,大语言模型的构建过程需要更为复杂、精细的训练方法。 一般来说,这个训练过程可以分为大规模预训练和指令微调与人类对齐两个阶段, 下面将进行具体介绍。

2.1.1  大规模预训练

一般来说,预训练是指使用与下游任务无关的大规模数据进行模型参数的初 始训练,可以认为是为模型参数找到一个较好的“初值点”。这一思想最早在计算 机视觉领域被广泛使用,通过使用大规模的图像标注数据集合 ImageNet 用于初始 化视觉模型的参数。在自然语言处理领域,word2vec采用了类似的预训练思想, 使用无标注的文本语料训练可通用的词嵌入模型;后来被 ELMo、BERT 和 GPT-1  推广到训练可迁移的自然语言任务架构,逐步成为了研发大语言模 型的核心技术路径。早期的预训练技术还是聚焦于解决下游某一类的特定任务,如 传统的自然语言处理任务。OpenAI 在 GPT-2的论文中,提出通过大规模文本 数据的预训练实现通用任务的求解器(尽管 GPT-2 论文中所验证的实验还是主要 以自然语言处理任务为主),并且将这一思路在 GPT-3 中推广到了当时最大的千亿 规模。OpenAI 前首席科学家 Ilya Sutskever 在公开采访中指出大规模预训练本质上 是在做一个世界知识的压缩,从而能够学习到一个编码世界知识的参数模型,这 个模型能够通过解压缩所需要的知识来解决真实世界的任务。在 BERT 等传统预 训练模型中,所采用的模型架构以及训练任务还比较多样。由于 GPT 系列模型的 爆火,“解码器架构 + 预测下一个词”的有效性得到了充分验证,已经成为现有大 语言模型主要采纳的技术路径。

为了预训练大语言模型,需要准备大规模的文本数据,并且进行严格的清洗, 去除掉可能包含有毒有害的内容,最后将清洗后的数据进行词元化(Tokenization) 流,并且切分成批次,用于大语言模型的预训练。由于大语言模型的能 力基础主要来源于预训练数据,因此数据的收集与清洗对于模型性能具有重要的 影响。收集高质量、多源化的数据以及对于数据进行严格的清洗是构建大语言模 型关键能力的重中之重,需要大模型研发人员的高度关注。目前的开源模型普遍 采用 2∼3T 规模的词元进行预训练,并有趋势进一步扩大这一规模。这一过程对于 算力需求量极高,一般来说训练百亿模型至少需要百卡规模的算力集群(如 A100 80G)联合训练数月时间(与具体的算力资源相关);而训练千亿模型则需要千卡 甚至万卡规模的算力集群,对于算力资源的消耗非常惊人。

尽管整体的预训练技术框架非常直观,但是实施过程中涉及到大量需要深入 探索的经验性技术,如数据如何进行配比、如何进行学习率的调整、如何早期发现 模型的异常行为等。预训练过程需要考虑各种实施细节,而这些细节有很多并没 有公开发表的经验可循,需要研发人员具有丰富的训练经验和异常处理能力,避免大规模训练开始以后进行回退和反复迭代,从而减少算力资源的浪费,提升训 练成功的几率。大语言模型的研发看似是一个算力需求型的工程,实际上相关人 才是最重要的。可以说,一个大语言模型项目的核心训练人员的能力最后会决定 模型的整体水平。

2.1.2  指令微调与人类对齐

经过大规模数据预训练后的语言模型已经具备较强的模型能力,能够编码丰 富的世界知识,但是由于预训练任务形式所限,这些模型更擅长于文本补全,并 不适合直接解决具体的任务。尽管可以通过上下文学习(In-Context Learning, ICL) 等提示学习技术进行适配,但是模型自身对于任务的感知与解决能力仍然较为局 限。这里做一个简单的类比。预训练后的模型就像进入工作岗位的毕业生,尽管 学习了很多通用的文化课,具备了一定的实习经验,但是仍然需要加强面向特定 岗位的工作能力,并且深入了解工作岗位所涉及的相关要求。因此,用人单位往 往需要设置特定的培训环节,对于新入职的人员针对业务场景以及所需要的技术 进行专门提升。相似地,当预训练结束后,通常需要对于大语言模型进行微调与 对齐,使之更好地被用于任务求解,为人类服务。

目前来说,比较广泛使用的微调技术是“指令微调”(也叫做有监督微调, Supervised Fine-tuning, SFT),通过使用任务输入与输出的配对数据进行模型训练, 可以使得语言模型较好地掌握通过问答形式进行任务求解的能力。这种模仿示例 数据进行学习的过程本质属于机器学习中的模仿学习(Imitation Learning)。给定 一个特定任务,虽然可能存在很多解答方式,模仿学习旨在加强对于标准答案(即 师傅的示范动作)的复刻学习。一般来说,指令微调很难教会大语言模型预训练 阶段没有学习到的知识与能力,它主要起到了对于模型能力的激发作用,而不是 知识注入作用。与预训练相比,指令微调通常来说需要的指令实例数据规模要小 的多。通常来说,数十万到百万规模的指令微调数据能够有效地激发语言模型的通用任务解决能力,甚至有些工作认为数千条或者数万条高质量指令数据也能达 到不错的微调效果。因此,指令微调对于算力资源的需求相对较小。一般情况下, 若干台单机八卡(A100-80G)的服务器就能在一天或数天的时间内完成百亿模型 的指令微调,当指令数据规模较大的时候可以进一步增加所需要的算力资源。这 个过程还可以进一步加入多轮次的对话数据来增强模型的人机对话能力。

除了提升任务的解决能力外,还需要将大语言模型与人类的期望、需求以及价值观对齐,这对于大模型的部署与应用具有重要的意义。OpenAI 在 2022 年初发布了 InstructGPT的学术论文,系统地介绍了如何将语言模型 进行人类对齐。引入了基于人类反馈的强化学习对齐方法 RLHF(Reinforcement Learning from Human Feedback),在指令微调后使用强化学习加 强模型的对齐能力。在 RLHF 算法中,需要训练一个符合人类价值观的奖励模型(Reward Model)。为此,需要标注人员针对大语言模型所生成的多条输出进行偏 好排序,并使用偏好数据训练奖励模型,用于判断模型的输出质量。由于强化学 习需要维护更多的辅助模型进行训练,通常来说对于资源的消耗会多于指令微调, 但是也远小于预训练阶段所需要的算力资源。目前还有很多工作试图通过消除奖 励模型的使用,或其他使用 SFT 方式来达到与 RLHF 相似的效果,从而简化模型 的对齐过程。

经历上述两个过程后,大语言模型就能够具备较好的人机交互能力,通过问 答形式解决人类所提出的问题。这个构建过程需要大量的算力资源支持,也需要 具有良好洞察力和训练经验的研发人员进行相关技术路线的设计与执行。因此,实 现具有 ChatGPT 或者 GPT-4 能力的大语言模型绝非易事,需要进行深入的探索与 实践。

2.2  扩展法则

大语言模型获得成功的关键在于对“规模扩展”(Scaling)的充分探索与利用。 在实现上,大语言模型采用了与小型预训练语言模型相似的神经网络结构(基于 注意力机制的 Transformer 架构)和预训练方法(如语言建模)。但是通过扩展参数 规模、数据规模和计算算力,大语言模型的能力显著超越了小型语言模型的能力。 有趣的是,这种通过扩展所带来的性能提升通常显著高于通过改进架构、算法等 方面所带来的改进。因此,建立定量的建模方法,即扩展法则(Scaling Law),来 研究规模扩展所带来的模型性能提升具有重要的实践指导意义。在本部分,将首 先介绍两种常见的语言模型扩展法则的定义,并且进一步对于扩展法则进行深入 讨论。

2.2.1  KM 扩展法则

2020 年,OpenAI 团队首次建立了神经语言模型性能与三 个主要因素——模型规模、数据规模和计算算力之间的幂律关系(Power-Law Relationship)。由于原始论文中没有给出具体的扩展法则命名,本部分内容中使用两位共同第一作者姓氏的首字母来进行命名。在给定算力预算c的条 件下,可以近似得到以下三个基本指数公式来描述扩展法则:

这里, 表示用以 nat1为单位的交叉熵损失。其中 是实验性的 常数数值,分别对应于非嵌入参数数量、训练数据数量和实际的算力开销。为了 便于讨论,我们在不影响表达和理解的情况下对于原始的公式符号进行了适度简化。这三个公式是通过模型在不同数据规模(22M 到 23B 词元)、模型规模(768M 到 1.5B 非嵌入参数)和算力规模下的性能表现拟合推导得到的。为了推导这些公式,需要约定一些基本假设:一个因素的分析不会受到其他两个因素的限制,如 当变动模型参数规模的时候,需要保证数据资源是充足的。

由公式1 可见,模型性能与这三个因素之间存在着较强的依赖关系,可以 近似刻画为指数关系。上述公式为规模扩展效应提供了一种定量的普适建模方法。 通过普适规则能够更好地探究问题的本质,排除其他复杂因素的影响与干扰。

为了便于理解扩展法则对于模型性能的影响,OpenAI 的研究团队又将这里的 损失函数进一步分解为两部分,包括不可约损失(真实数据分布的熵)和可 约损失(真实分布和模型分布之间 KL 散度的估计):

这里 x是一个占位符号,可以指代公式 2.1 中的。其中,不可约损失由 数据自身特征确定,无法通过扩展法则或者优化算法进行约减;模型性能的优化 只能减小可约损失部分。

2.2.2  Chinchilla 扩展法则

DeepMind 团队于 2022 年提出了一种可选的扩展法则, 旨在指导大语言模型充分利用给定的算力资源进行优化训练。通过针对更大范围 的模型规模(70M 到 16B 参数)和数据规模(5B 到 500B 词元)进行实验,研究 人员拟合得到了另一种关于模型性能的幂律关系:

进一步,研究人员 发现 KM 扩展法则和 Chinchilla 扩展法则都可以近似 表示成上述算力为核心的公式(公式 4):

即当算力 C给定的情况下,最优的模型参数规模和数据规模由指数系数 ab分 别确定。可以看到,ab 决定了参数规模和数据规模的资源分配优先级:当 a> b 时,应该用更多的算力去提高参数规模;当 b> a时,应该用更多的算力去提高 数据规模。尽管 KM 扩展法则和 Chinchilla 扩展法则具有相似的公式形式,但是在 模型规模和数据规模的扩展上存在一定的差异。随着算力预算的增加,KM 扩展 法则倾向于将更大的预算分配给模型规模的增加,而不是分配给数据规模的增加;而 Chinchilla 扩展法则主张两种规模参数应该以等比 例关系增加。

Chinchilla 扩展法则这项研究的意义并不在于给出了资源在数据规模与模型规模上的具体分配方案,而是首次形式化指出了之前的预训练工作可能忽视了训练 数据的规模扩展。根据 Chinchilla 扩展 法则的指导,DeepMind 的研究团队进一步训练得到了具有 70B 参数的 Chinchilla 模型,使用大概 1.4T 的词元进行训练。越来越多的工作表明,现有的预训练语言模型对于数据的 需求量远高于这些扩展法则中所给出的估计规模。Transformer 架构具有较好的数据扩展性,到目前为止,还没有实验能够有效验证特定参数规模语言模型的饱和数据规模(即随着数据规模的扩展,模型性能不再提升)。

2.2.3  关于扩展法则的讨论

在介绍完上述两个扩展法则后,我们围绕可预测的扩展以及任务层面的可预 测性展开深入讨论,以加强读者对于扩展法则的理解。

• 可预测的扩展(Predictable Scaling):在实践中,扩展法则可以用于指导大 语言模型的训练,通过较小算力资源可靠地估计较大算力资源投入后的模型性能, 这被称为可预测的扩展。这种可预测性主要体现在两个方面:使用小模型的 性能去预估大模型的性能,或者使用大模型的早期训练性能去估计训练完成后的性能。可预测扩展对于大模型训练具有两个主要的指导作用。首先,对于大语言 模型来说,详细进行各种训练技巧或变体的测试需要耗费巨大的算力资源。因此, 一个较为理想的经验性方法是,基于小模型获得训练经验然后应用于大模型的训 练,从而减少实验成本。例如,可以训练小型代理模型来确定适合大型模型的预 训练数据混合的最佳比例。其次,大语言模型的训练过程较长,经常面临着 训练损失波动情况,扩展法则可以用于监控大语言模型的训练状态,如在早期识 别异常性能。尽管扩展法则刻画了模型性能增长(或模型损失减少)的平滑趋势, 但是指数形式的变化趋势意味着可能会出现随规模扩展的收益递减情况,即后期 的扩展增益开始变得缓慢甚至停滞。根据 OpenAI 团队的一项研究表明 ,即使 接近递减收益点,模型表征的质量仍 然能够随着规模扩展而有效提升。这一发现表明,训练大型模型对于改善下 游任务的性能是非常重要的。随着模型规模的不断增加,一个潜在问题是可供用 来训练大语言模型的数据量实际上是有限的,公共文本数据将很快变得“枯竭”。 因此,如何在数据受限的情况下建模扩展法则,仍然具有重要的实践意义。在这一情况下,数据重复或数据合成可能有助于缓解数据稀缺问题。

• 任务层面的可预测性. 现有关于扩展法则的研究大多数是基于语言建模损失开展的,例如预测下一个词元的平均交叉熵损失,这一度量本身是平滑的,是 对于模型整体能力的宏观度量。在实践中,我们则更关注大语言模型在真实任务 中的性能提升。为了建立扩展法则与模型任务性能的关联,一个基础问题就是语 言建模损失的减少是否真正意味着(或对应着)真实任务上模型性能的提高。 整体上来说,语言建模损失较小的模型往往在下游任务中表现更好,因为语言建模的能力可以被认为是一种模型整体能力的综合度量。然而,语言建模损失的减 少并不总是意味着模型在下游任务上的性能改善。对于某些特殊任务,甚至会出 现“逆向扩展”(Inverse Scaling)现象,即随着语言建模损失的降低,任务性能却出人意料地变差。总体而言,探索和描述任务层面的扩展法则更加困难,因为它可能还依赖于任务相关的信息(如任务指标、任务难度等)。


http://www.kler.cn/a/588360.html

相关文章:

  • 【Java】高频面试题
  • 图解多头注意力机制:维度变化一镜到底
  • 完整的模型验证套路
  • NPU的工作原理:神经网络计算的流水线
  • 计算机二级Python资料
  • RabbitMQ(补档)
  • Hive SQL 精进系列:解锁 Hive SQL 中 KeyValue 函数的强大功能
  • 微信小程序刷题逻辑实现:技术揭秘与实践分享
  • sensor数据在整个rk平台的框架流程是怎么样,
  • 业务幂等性设计的六种方案
  • 蓝桥杯[阶段总结] 二分,前缀和
  • 华为云容器引擎应用场景
  • 游戏成瘾与学习动力激发研究——多巴胺脉冲式释放与奖赏预测误差机制的神经科学解析
  • ccf3501密码
  • 计算机操作系统进程(4)
  • 【网络】什么是反向代理Reverse Proxies?
  • matlab中如何集成使用python
  • Python中在类中创建对象
  • 基于Spring Boot的航司互售系统
  • Java中队列(Queue)和列表(List)的区别