大型语言模型(LLMs)研究综述:进展、挑战与展望 ——《A Survey of Large Language Models》
论文地址
:https://arxiv.org/abs/2303.18223
摘要
:本文深入解读了关于大型语言模型(LLMs)的研究综述,涵盖其发展背景、关键技术、应用领域、面临挑战及未来研究方向。详细分析了预训练、适应、利用和评估等方面的技术细节,探讨了模型在不同任务和领域的表现及问题,旨在为相关研究人员提供全面深入的理解和参考,推动该领域的进一步发展。
一、引言
随着人工智能技术的迅速发展,大型语言模型(LLMs)成为研究热点。它们在自然语言处理及诸多领域展现出强大能力,如GPT-3、ChatGPT和GPT-4等模型引起广泛关注。本文旨在对相关综述论文进行详细解读,剖析LLMs的核心技术、应用现状、存在问题及未来趋势,为深入研究和应用提供全面参考。
二、LLMs的发展背景与关键概念
(一)定义与发展历程
LLMs通常指基于Transformer架构、包含数百亿甚至更多参数,并在大规模文本数据上训练的语言模型。早期语言模型主要用于文本数据的建模和生成,如n-gram模型等统计方法。随着技术演进,神经网络模型如ELMo、BERT等出现,通过预训练和微调在特定自然语言处理任务上取得进展。近年来,LLMs通过扩大模型规模和数据量,展现出解决复杂任务的通用能力,引发研究热潮,相关论文发表数量显著增加,尤其在ChatGPT发布后,研究关注度急剧上升。
(二)缩放定律与涌现能力
- 缩放定律:KM缩放定律和Chinchilla缩放定律从数学上描述了模型性能与模型大小、数据集大小和训练计算量之间的关系。例如,在KM缩放定律中,通过公式 L ( N ) = ( N c N ) α N L(N)=\left(\frac{N_{c}}{N}\right)^{\alpha_{N}} L(N)=(NNc)αN等展示了模型性能随参数规模(N)、数据集规模(D)和训练计算量(C)的变化规律。这表明在一定范围内,增加模型和数据规模可提高性能,但可能面临收益递减。在实际训练中,可利用缩放定律指导训练过程,如通过小规模模型实验为大规模模型训练提供参考,预测模型性能,监测训练状态,但数据有限性可能限制其应用。
- 涌现能力:LLMs具有一些在小规模模型中不存在的涌现能力,如GPT-3的in-context learning能力。以数学推理任务为例,当模型规模达到一定程度时,其在复杂数学问题解决上的性能显著提升,表现出与小规模模型截然不同的能力。这些涌现能力与模型规模密切相关,当模型参数超过特定阈值时可能出现,但目前其产生机制尚不完全清楚,可能与模型结构和训练数据的复杂交互有关。
三、LLMs的关键技术
(一)预训练技术
- 数据收集与准备
-
数据来源:包括网页(如CommonCrawl、C4等)、书籍(BookCorpus、Gutenberg等)、维基百科、代码(BigQuery、The Stack等)及混合数据(The Pile、ROOTS等)。网页数据提供了丰富多样的语言样本,但存在噪声和低质量信息;书籍数据有助于学习长文本结构和知识;代码数据对提升模型的编程和逻辑推理能力有重要作用。例如,在训练代码生成能力时,GitHub上的代码数据可提供大量实际编程案例。
-
数据预处理:涉及过滤、去重、隐私处理和标记化等步骤。过滤通过基于分类器或启发式方法去除低质量数据,如根据文本的语言特征、来源可信度等筛选;去重可避免数据冗余影响模型性能,在句子、文档和数据集层面进行操作;隐私处理保护个人信息;标记化将文本转换为模型可处理的标记序列,常用Byte-Pair Encoding(BPE)、WordPiece等方法,不同方法对模型性能和词汇表示有不同影响。
-
数据调度:包括设置数据混合比例和顺序。合理的数据混合可平衡不同数据源对模型能力的影响,如增加代码数据可提升编程能力;数据课程则根据任务难度和模型学习阶段安排数据,如在早期训练阶段提供简单示例,逐步引入复杂数据,有助于模型学习和泛化。
-
-
架构设计
- 主流架构:主要有编码器 - 解码器(如 T5)、因果解码器(如 GPT 系列)和前缀解码器(如 GLM - 130B)。编码器 - 解码器在多种自然语言处理任务上有应用,但在 LLMs 中较少使用;因果解码器通过单向注意力掩码保证输入的时间顺序,在 GPT 系列模型中取得成功,其在大规模训练下能展现出强大的语言生成和零/少样本学习能力;前缀解码器通过特殊的掩码机制实现对前缀序列的双向编码和输出的自回归预测,在一些特定任务上表现出优势。
- 详细配置:包括归一化方法(如 LayerNorm、RMSNorm 等)、位置嵌入(如绝对位置嵌入、相对位置嵌入、旋转位置嵌入等)、激活函数(如 GeLU、SwiGLU 等)和注意力机制(如全注意力、稀疏注意力、多查询/分组查询注意力等)。不同的配置组合会影响模型的训练稳定性、性能和计算效率。例如,RMSNorm 在训练速度和性能上有优势,旋转位置嵌入(RoPE)在长序列建模中表现较好,而 FlashAttention 等高效注意力机制可减少计算和内存开销。
- 预训练任务:主要包括语言建模和去噪自编码。语言建模通过自回归预测下一个词来学习语言知识,是解码器 - 仅模型常用的预训练任务;去噪自编码则通过恢复被损坏文本中的标记来训练模型,如 T5 模型采用此任务。此外,还有混合去噪器等统一目标,将不同的预训练任务视为不同类型的去噪任务,以提高模型的泛化能力。
- 解码策略:常见的有贪婪搜索、束搜索和采样 - 基于方法(如温度采样、Top - k 采样、Top - p 采样等)。贪婪搜索每次选择概率最高的词,但可能导致局部最优;束搜索通过保留多个候选路径来提高搜索质量,但计算成本较高;采样 - 基于方法可增加生成的多样性,但可能生成低质量或不相关的词。不同的解码策略适用于不同的任务场景,如在文本生成任务中,可根据对生成质量和多样性的需求选择合适的策略。
-
模型训练
- 优化设置:在批量训练方面,通常采用较大的批量大小(如 2,048 示例或 4M 标记)以提高训练稳定性和吞吐量,部分模型在训练过程中动态调整批量大小。学习率采用带有 warm - up 和衰减策略的设置,如在训练初期线性增加学习率,然后采用余弦衰减策略降低学习率。常用的优化器有 Adam 和 AdamW,其基于自适应估计的低阶矩进行一阶梯度优化,并设置相应的超参数(如 b e t a 1 = 0.9 beta_{1}=0.9 beta1=0.9, β 2 = 0.95 \beta_{2}=0.95 β2=0.95和 ϵ = 1 0 − 8 \epsilon = 10^{-8} ϵ=10−8)。为稳定训练,还采用权重衰减和梯度裁剪等技术,防止模型过拟合和训练不稳定。
- 可扩展训练技术:3D 并行技术结合了数据并行、流水线并行和张量并行。数据并行通过在多个 GPU 上复制模型参数和分配数据来提高训练速度;流水线并行将模型的不同层分配到不同 GPU 以减少计算和通信开销;张量并行则分解模型的张量参数到多个 GPU 上进行计算。混合精度训练采用 16 位或 BF16 位浮点数代替 32 位浮点数,减少内存使用和通信开销,同时提高计算效率,但需注意精度损失对模型性能的影响。
(二)后训练适应技术
- 指令调整
- 格式化实例构建:通过格式化自然语言任务数据集、日常聊天数据和合成数据来构建指令格式的实例。在格式化任务数据集时,为传统 NLP 任务数据添加自然语言任务描述,使模型能理解任务目标;日常聊天数据则从真实用户与模型的交互中收集,更贴近实际应用场景;合成数据利用现有实例和模型生成新的指令和数据对,如 Self - Instruct 方法。关键因素包括指令的缩放、格式设计和质量改进。增加指令数量和多样性可提高模型的泛化能力,但存在饱和点;合理的格式设计(如明确的任务描述、适当的示例和推理步骤引导)有助于模型学习;通过改进提示、利用知识分类和筛选高质量指令等方法可提升指令质量。
- 指令调整策略:平衡不同任务的数据分布可采用示例比例混合策略,并结合高质量数据集来提升性能。将指令调整与预训练结合,如 OPT - IML 在指令调整中融入预训练数据,或采用多任务学习同时训练预训练数据和指令调整数据。多阶段指令调整可先使用大规模任务格式指令,再用日常聊天指令进行微调,并添加适量任务格式指令避免能力遗忘。此外,还有针对多轮聊天数据的高效训练方法,如 Vicuna 采用的整段输入和损失掩码计算方法,以及为模型建立自我识别的策略,如在输入前添加身份提示。
- 效果与实证分析:指令调整能显著提升不同规模模型在各种任务上的性能,使较小模型在某些情况下优于未微调的大型模型,且在任务泛化和领域专业化方面表现出色。通过对 LLaMA(7B 和 13B)的实验表明,混合不同类型的指令数据集有助于提高模型综合能力,增强指令复杂性和多样性可提升性能,但简单增加指令数量或平衡难度并不一定有效,较大模型规模通常对应更好的指令跟随性能。
- 对齐调整
-
背景与标准:由于 LLMs 可能产生有害、误导和偏见性的输出,需要进行人类对齐调整。对齐标准包括 helpfulness(如有效协助用户解决问题)、honesty(如准确呈现内容,避免虚假信息)和 harmlessness(如避免产生冒犯或歧视性语言),但这些标准具有主观性,难以直接作为优化目标。
-
收集人类反馈:选择合适的人类标注者至关重要,需具备一定教育水平和英语能力,并通过筛选确保标注质量。收集反馈的方法有排名 - 基于方法、问题 - 基于方法和规则 - 基于方法。排名 - 基于方法通过比较候选输出来获取偏好排名;问题 - 基于方法让标注者回答特定问题提供反馈;规则 - 基于方法利用规则测试模型输出是否符合对齐标准,并获取响应偏好和规则违反反馈。
-
强化学习从人类反馈(RLHF):RLHF 系统由预训练语言模型、奖励模型和强化学习算法组成。关键步骤包括监督微调(可选,用于初始化模型行为)、奖励模型训练(通过人类标注的偏好数据训练模型预测人类偏好输出)和强化学习微调(将模型与奖励模型结合,通过强化学习算法优化模型,同时可加入惩罚项避免与初始模型偏差过大)。实践策略包括使用大型奖励模型、有效训练奖励模型(如引入正则化避免过拟合,训练多个关注不同标准的奖励模型并组合)、在强化学习前进行良好的监督微调、采用高效的强化学习训练方法(如部署奖励模型在单独服务器,利用 beam search 解码算法),以及过程监督的 RLHF(获取细粒度监督信号训练过程监督奖励模型,并利用其评估和调整模型生成行为)。
-
无 RLHF 的对齐方法:直接利用监督学习在高质量对齐数据集上微调 LLMs,包括基于奖励模型的方法(如利用奖励模型选择高质量响应进行微调)、基于 LLM 的生成方法(如利用强大 LLM 自动生成对齐数据)和基于 LLM 的交互方法(如构建模拟交互环境让 LLM 相互反馈学习)。监督对齐微调采用传统的交叉熵损失作为主要训练目标,并可结合辅助损失(如排名损失、对比学习损失)增强学习效果,同时也有直接偏好优化等改进策略,但存在平衡正负实例学习和参考模型影响等问题。
-
SFT 和 RLHF 的比较:SFT 是在格式化演示数据上训练模型,能提升模型性能和任务泛化能力,但可能存在模仿专家行为导致的问题,如在超出模型知识范围的数据上训练可能引发幻觉行为。RLHF 则通过学习奖励模型优化模型,能缓解有害响应和提高模型能力,减少幻觉问题,但继承了强化学习算法的缺点,如样本效率低和训练不稳定,且实施复杂。总体而言,SFT 适用于提升预训练模型的初始能力,RLHF 可进一步优化 SFT 模型,但两者都需要进一步改进。
-
- 参数高效模型适应
-
参数高效微调方法:包括适配器调整(在 Transformer 模型中插入小型神经网络模块,在微调时仅优化适配器模块参数)、前缀调整(在语言模型的每个 Transformer 层前添加可训练的前缀向量,通过特定映射函数优化)、提示调整(在输入层添加可训练的提示向量,根据任务监督学习)和 LoRA(通过低秩分解矩阵近似更新参数,减少可训练参数数量)。这些方法在不同程度上减少了训练参数数量,提高了训练效率,但在应用于 LLMs 时,其效果仍需进一步深入研究。例如,在对不同规模的开源语言模型进行实验时发现,虽然这些方法在简单任务上能取得与全参数微调相近的性能,但在复杂任务上,与强大的基线模型(如 GPT - 3.5)相比仍有差距。其中,LoRA 方法因能显著节省内存和存储使用,并可方便地在不同任务间切换,在实际应用中受到较多关注,但不同模型和任务下其最优设置仍有待探索。
-
在 LLMs 上的应用:在 LLMs 兴起后,参数高效微调方法在下游任务中得到了广泛应用。以 LLaMA 及其变体为例,AlpacaLoRA 利用 LoRA 对 Alpaca 进行轻量化微调,在不同语言和模型规模上都有相关探索。然而,目前大多数研究主要在小规模预训练语言模型上测试这些方法,对于大规模 LLMs 在不同设置和任务下的效果,仍缺乏全面深入的研究,未来需要更多实验和分析来确定其在 LLMs 中的最佳应用方式。
-
(三)模型利用技术
-
提示工程
- 提示创建:提示由任务描述、输入数据、上下文信息和提示风格等关键成分组成。例如,在问答任务中,任务描述需清晰说明问题类型和期望的回答形式;输入数据应简洁明了地呈现给模型;上下文信息可提供相关背景知识或示例;提示风格则要根据模型特点和任务需求进行设计,如采用引导性语言或特定格式。设计原则包括清晰表达任务目标、分解复杂任务、提供少量示例、采用模型友好格式和运用角色扮演策略等。通过在多种任务上的实证分析发现,精心设计的提示能显著提升 ChatGPT 的零/少样本性能,尤其是在复杂任务中效果更为明显。例如,在知识利用和复杂推理任务中,合适的提示可使 ChatGPT 接近或超越监督基线方法,但在某些特定任务上仍存在差距。同时,在数学推理任务中,基于编程语言格式设计的提示能有效利用 ChatGPT 的代码合成能力,提高解题准确性。
- 提示优化:离散提示优化方法包括梯度 - 基于方法(如通过最大化输出似然更新提示,但搜索空间大)、RL - 基于方法(将提示优化视为强化学习问题,但可能受限于手动定义的编辑空间)、编辑 - 基于方法(直接编辑现有提示,如基于遗传算法或人工定义操作)和 LLM - 基于方法(利用 LLM 生成或改进提示,但面临搜索空间大的问题)。连续提示优化在 PLMs 中有研究,包括基于充足数据的提示学习(将连续提示视为可训练参数,通过监督学习优化)和基于稀缺数据的提示转移(先学习源任务的提示,再转移到目标任务),但在 LLMs 中关注度较低。
-
上下文学习(ICL)
- ICL 公式与演示设计:ICL 通过格式化自然语言提示,包含任务描述和示例,使 LLMs 能识别和执行新任务。演示设计包括选择与测试查询相关且信息丰富的示例,可采用启发式方法(如 k - NN 检索、考虑多样性和相关性)或 LLM - 基于方法(如利用 LLM 测量示例的信息量)。将示例格式化为自然语言提示时,可添加任务描述或推理步骤,并合理安排示例顺序,避免模型出现近因偏差。
- 底层机制:预训练对 ICL 能力有重要影响,大规模预训练和特定的训练任务设计有助于提升 ICL 能力,且理论上与语言数据的长程连贯性和组合结构学习有关。在推理阶段,LLMs 可能通过任务识别(从演示中捕获任务变量,利用预训练知识解决问题)或任务学习(通过注意力机制隐式学习新任务,部分研究认为可视为梯度下降过程)来利用演示,但不同模型规模在这两种能力上表现不同,较小模型更易获得任务识别能力,而较大模型在任务学习能力上更具优势。
-
思维链提示(CoT)
-
基本方法与改进策略:CoT 提示通过在演示中添加中间推理步骤来增强 LLMs 在复杂推理任务上的性能,可通过简单指令(如“Let’s think step by step”)触发模型生成推理步骤。改进策略包括设计更好的提示(如使用多样或复杂的推理路径)、增强推理生成(如采样 - 基于方法通过多次采样和投票提高准确性,验证 - 基于方法利用训练的验证器或模型自身检查推理步骤正确性)和扩展推理结构(如树状和图状推理,以应对复杂任务中的探索和回溯需求,但图状推理可能存在效率问题)。
-
进一步讨论:CoT 提示主要对大规模模型和需要逐步推理的任务有效,在数学推理、常识推理等任务中表现突出,但在一些不需要复杂推理的任务上可能性能不佳。其推理能力来源可能与代码训练有关,但缺乏确凿证据,且指令调整对其能力获取并非关键因素。同时,研究发现 CoT 提示中的模式和文本部分对模型性能至关重要,符号部分相对次要。
-
-
规划
- 总体框架:由任务规划器(通常由 LLM 担任,负责生成解决任务的计划,可利用记忆机制存储和检索计划)、计划执行器(根据计划执行任务,可为 LLM 或外部工具)和环境(提供执行反馈,可为内部或外部环境)组成。在解决复杂任务时,任务规划器先理解任务目标生成计划,计划执行器执行计划,环境反馈结果,规划器再根据反馈优化计划,形成迭代过程。
- 计划生成与反馈获取:计划生成有文本 - 基于和代码 - 基于两种方法。文本 - 基于方法通过自然语言生成计划,如 Plan - and - Solve 直接提示 LLM 规划,部分方法还会添加示例引导;代码 - 基于方法生成可执行代码计划,如 Faithful CoT 和 PAL 利用确定性求解器执行计划,提高计划的可靠性。反馈获取来自内部(如 LLM 自身通过评估计划质量或基于中间结果提供反馈)和外部(如工具的实时错误信息、虚拟世界的感知或多智能体协作中的其他智能体反馈)。
- 计划细化:包括推理(从反馈中提取关键信息,如 React 提示 LLM 生成推理痕迹,ChatCoT 将推理和规划统一为多轮对话)、回溯(如 Tree of Thoughts 利用搜索算法回溯优化计划,部分研究根据反馈修改整个计划)和记忆(利用长期记忆存储反馈辅助计划细化,如 Reflexion 将反馈存入记忆,Generative Agents 设计记忆流机制,还可利用向量数据库实现高效存储和检索)等方法。
四、LLMs的能力与评估
(一)基本能力
-
语言生成
- 任务分类与评估:包括语言建模(通过预测下一个词评估模型对语言的基本理解和生成能力,常用 perplexity 指标,LLMs 在相关数据集上性能优于传统方法,但长程依赖建模仍有挑战)、条件文本生成(如机器翻译、文本摘要等,通过自动指标和人类评级评估,LLMs 表现出色,但自动指标存在局限性,且在处理专业领域或结构化数据生成时可能不足)和代码合成(通过计算代码在测试用例上的通过率评估,LLMs 经代码训练后在相关基准测试中表现出竞争力,且可辅助编程,但在复杂编程任务和理解代码语义方面仍有提升空间)。
- 主要问题:在语言生成评估方面,存在生成评价不可靠的问题,即自动指标与人类评价可能不一致,且人类评价也存在主观性和不一致性,部分研究尝试利用 LLMs 改进评价质量,但 LLMs 作为评价者也存在偏差。在专业领域生成方面,LLMs 可能因缺乏专业知识或受序列建模架构限制,在处理专业领域文本(如医学报告)或结构化数据生成任务时表现不佳,且存在灾难性遗忘和注入专业知识困难等问题。
-
知识利用
- 任务与评估设置:分为闭卷问答(测试模型从预训练数据中获取的事实知识,通过准确率评估,性能与模型大小和数据量有关,但在细粒度知识问答上可能表现不佳)、开卷问答(允许模型从外部知识库获取信息,通过准确率和 F1 分数评估,检索器可辅助模型提高答案准确性和验证推理路径)和知识完成(如知识图谱和事实完成任务,评估模型对知识的学习和补全能力,LLMs 在某些关系类型上表现困难)。
- 主要问题:LLMs 在知识利用中存在幻觉问题,即生成与现有来源冲突或无法验证的信息,可通过对齐调整和利用外部工具缓解,但难以完全消除。同时,知识时效性也是挑战,LLMs 难以处理超出训练数据时间范围的新知识,更新知识成本高且可能引发灾难性遗忘,利用外部知识源虽有帮助,但仍存在问题。
-
复杂推理
- 推理任务分类与评估:包括知识推理(利用事实知识进行推理,通过 准确率或自动指标及人类评价评估推理过程和结果,CoT 提示可提升性能但仍落后于人类)、符号推理(操作符号完成目标,通过生成符号的准确性评估,在复杂场景下模型较难捕捉符号操作含义,可通过辅助策略改进)和数学推理(利用数学知识和计算解题或证明,通过准确率或证明成功率评估,CoT 提示和预训练数学语料可提升表现,在定理证明中可辅助搜索但面临形式语言数据缺乏问题)。
- 主要问题:在复杂推理中,LLMs 存在推理不一致问题,即推理过程和结果可能不匹配,可通过外部工具、集成策略、过程监督和重写任务为代码等方法缓解。在数值计算方面,LLMs 对预训练中少见的符号计算有困难,可通过训练合成问题、追踪中间步骤、利用外部工具和改进标记化方法等提升能力。
(二)高级能力
- 人类对齐:通过 TruthfulQA、CrowS - Pairs、WinoGender、RealToxicityPrompts 和 HaluEval 等基准测试,从 helpfulness、honesty 和 safety 等多个标准评估 LLMs 是否符合人类价值观和需求。除自动评估外,人类评估更直接有效,如 OpenAI 邀请专家评估 GPT - 4。研究表明相关策略可提升对齐能力,高质量预训练数据也有助于减少对齐努力。
- 与外部环境交互:利用 VirtualHome、ALFRED、BEHAVIOR 等环境和基准测试评估 LLMs 生成行动方案和与环境交互的能力。LLMs 在复杂环境任务中表现出一定能力,如生成准确行动方案,且在多智能体协作模拟中也有探索,可通过设计特定提示和提供真实世界基础等方法提升交互能力。
- 工具操作:在数学问题解决、知识问答等任务中评估 LLMs 使用外部工具(如搜索引擎、计算器、编译器等)的能力。通过在提示中添加工具使用示例或微调模型可教会 LLMs 使用工具,提高其在特定任务上的能力,但随着工具增多,LLMs 在描述和演示工具 API 时可能面临挑战,可通过检索工具用法或编码工具信息等方法解决。
(三)基准测试与评估方法
- 综合评估基准:MMLU 涵盖多领域知识,用于评估多任务知识理解能力,LLMs 通常在该基准上表现出规模优势;BIG - bench 包含多种主题任务,可从多方面探测 LLMs,部分模型在规模扩大后能超越人类平均表现;HELM 进行整体评估,指令调整可提升 LLMs 性能,预训练代码的模型在推理任务中表现更好;人类水平测试基准(如 AGIEval、MMCU 等)用人类测试题评估 LLMs 综合能力,虽部分模型表现出色但仍落后于顶尖人类表现。此外,还有针对特定能力的基准测试,如 TyDiQA 和 MGSM。
- 评估方法
- 基于基准测试的方法:常用于评估基础 LLMs,通过将问题格式化为提示,获取模型生成结果并解析,与真实答案比较计算准确率等指标,可在零/少样本设置下进行,但模型对评估设置敏感,且存在数据污染问题。
- 基于人类的方法:考虑更多实际因素评估微调后的 LLMs,如人类对齐和工具操作等,通过邀请人类评估者进行成对比较或单答案评分,但存在主观性、成本高和不可重复性等问题。
- 基于模型的方法:利用强大的闭源 LLMs 替代人类评估,如 AlpacaEval 和 MT - bench,但闭源 LLMs 存在访问限制和数据泄漏风险,且自身也有评估偏差问题,可通过微调开源 LLMs 等方法改进。
(四)实证评估
- 实验设置:评估模型包括开源模型(如 LLaMA、Vicuna、Alpaca 等基础和指令调优模型)和闭源模型(如 ChatGPT、Claude 等)。任务和数据集涵盖语言生成(LAMBADA、WMT’22、XSum、HumanEval)、知识利用(TriviaQA、Natural Questions 等)、复杂推理(OpenbookQA、GSM8k 等)、人类对齐(TruthfulQA、CrowS - Pairs 等)和与环境交互及工具操作(ALFWorld、WebShop、HotpotQA、Gorilla)等方面,主要报告零/三样本性能。实验基于闭源模型 API 和开源模型代码及 GPU 进行,结果可公开复现。
- 结果分析与发现
- 闭源模型:ChatGPT、Claude 等闭源模型在多数任务中表现良好,ChatGPT 综合性能突出,在复杂任务如 GSM8k 和 HumanEval 上优势明显。Claude 2、ChatGPT 和 Davinci003 在与环境交互和工具操作任务上表现更佳,而所有对比模型在极难的推理任务如 MATH 和 HotpotQA 上表现欠佳,在机器翻译任务(WMT)中也因语言覆盖问题存在不足。
- 开源模型:指令调优模型总体优于基础模型,但部分模型在特定语言建模任务上可能出现性能下降。小型开源模型在数学推理、环境交互和工具操作任务上表现较弱,不同模型在人类对齐任务上的表现排名不一。LLaMA 2(7B)在复杂推理任务上表现较好,且模型规模扩大通常能提升性能,尤其在复杂任务中效果更显著。
五、LLMs的应用领域
(一)对研究社区的影响
- 经典自然语言处理任务
- 词/句级和序列标注任务:在词级(如聚类、词义消歧)和句级(如句子匹配、情感分类)任务中,LLMs 可通过上下文学习解决,但在某些经典任务上,全数据微调的小模型可能表现更优。序列标注任务(如命名实体识别、词性标注)中,LLMs 面临处理特殊类别困难,可能因误解语义导致标注不准确。
- 信息提取和文本生成任务:信息提取任务(如关系提取、事件提取)中,LLMs 的上下文学习效果不如传统全数据微调方法,但与小模型协作可提升性能,部分研究也探索出有竞争力的零 - 射击工作流程。文本生成任务(如机器翻译、自动摘要)中,LLMs 表现强大,但在低资源语言和领域存在不足。未来可探索向 LLMs 注入领域知识和结合小模型的方法,以及研究其处理复杂语义关系的机制。
- 信息检索
- LLMs 作为信息检索模型:LLMs 有潜力改进现有信息检索(IR)模型,主要作为重新排名器,通过设计特殊指令对候选文档重新排名,可采用点式、成对或列表式排名方法。也可通过微调将其作为检索或重新排名的骨干模型,但成本较高。
- LLMs 增强的信息检索模型:LLMs 可用于标注数据、重写查询和扩展文档,以提高现有 IR 模型性能,但直接应用存在推理开销大、长文本建模困难和适应任务需特殊调整等问题。未来需研究适应现代 IR 系统的方法,探索新的信息检索架构和考虑多模态信息源。
- 推荐系统
- LLMs 作为推荐模型:可通过零 - 射击提示或指令调整适应推荐任务,高质量指令数据是关键,也可通过扩展词汇和语义标识符提升性能。
- LLMs 增强的推荐模型:利用 LLMs 推断用户意图、编码特征或蒸馏能力,以改进传统推荐系统,但零/少 - 射击设置下性能可能不如传统推荐器,且存在推理延迟和长上下文建模问题。
- 多模态大语言模型(MLLMs)
- 训练过程:包括视觉 - 语言对齐预训练(通过大规模图像 - 文本对训练对齐视觉编码器和 LLM,需设计有效策略和选择合适数据)和视觉指令调整(通过高质量视觉指令数据提升任务解决和指令跟随能力)。
- 评估:从感知(评估对图像基本语义理解,存在幻觉问题)和认知(评估基于感知的推理能力,如视觉问答)任务、封闭 - 端和开放 - 端评估范式以及多种评估基准等方面进行评估。
- 关键改进点:包括提高视觉指令数据的质量和数量、平衡模型训练中保留 LLM 能力和适应多模态任务的关系、解决安全和对齐问题(如幻觉、有害内容生成)。
- 知识图谱增强的 LLM
- 检索增强的 LLM:通过检索知识图谱中的相关知识并融入提示,帮助 LLMs 解决知识密集型任务,但面临知识检索和结构化数据利用的问题,可通过训练小模型检索和转换结构化数据为自然语言等方法解决。
- 协同增强的 LLM:通过多轮交互查询知识图谱解决复杂任务,可分解任务和利用特定接口提高效率,但存在搜索空间大的问题。未来需探索统一利用不同知识源的方法、研究知识更新机制以及利用知识图谱减少幻觉。
- LLM 用于评估
- 评估格式:分为基于分数的评估(如通过 pairwise 比较或参考指导评分)和基于语言的评估(如生成批评和建议)。
- 评估方法:通过特定指令提示 LLM 生成评估反馈,可通过多样化上下文和多模型协作或微调 LLM 为特定评估器来提高质量。
- 元评估与问题:通过元评估基准评估 LLM 评估器质量,但 LLM 评估器存在多种偏差,且在评估复杂任务和顶级 LLM 时可能不足。
(二)特定领域应用
- 医疗保健:LLMs 可处理多种医疗任务,但可能产生医学错误信息和隐私问题,研究人员致力于开发医疗相关 LLM 以提高性能。
- 教育:能在标准化测试和辅助教学中发挥作用,但可能引发抄袭、偏见、过度依赖和不公平访问等问题。
- 法律:可解决法律任务,通过特定提示工程提升性能,但存在版权、隐私和歧视等法律挑战。
- 金融:应用于金融任务,可通过大规模金融语料预训练提升性能,但需严格审查和监控其生成内容的准确性和安全性。
- 科学研究:在科学研究各阶段可辅助研究人员,但仍需提高其作为科学助手的能力和可靠性。
六、LLMs的高级话题与挑战
(一)长上下文建模
- 缩放位置嵌入:方法包括直接模型微调(需长文本数据但速度慢)、位置插值(有效扩展上下文窗口但可能影响原窗口性能)、位置截断(避免超范围旋转角但增加计算成本)、基础修改(调整 RoPE 基础参数但可能需重新训练)和基础截断(处理长波长维度但效果不佳)。
- 适应上下文窗口:有并行上下文窗口(采用分割输入策略但模型能力受限)、Λ 形上下文窗口(关注起始和临近令牌但长程依赖建模困难)和令牌选择(选择相关令牌减少计算量,包括令牌级和块级选择方法)等方法。
- 长文本数据:少量长文本数据可用于扩展上下文窗口,但需注意数据质量和与原训练数据的分布匹配,同时也可利用上下文压缩和提示技术处理长文本任务。
(二)LLM 赋能的智能体
- 总体框架:由记忆(包括短期和长期记忆,用于存储和检索信息)、规划(生成行动方案,可基于文本或代码)和执行(执行计划,可由 LLM 或外部工具完成)组件构成,智能体通过接收环境信息、处理信息、生成计划和执行计划的循环流程完成任务。
- 应用:单智能体可自主完成任务,如 AutoGPT 等项目;多智能体可通过合作(基于多种通信协议组织智能体协作)或竞争(如通过辩论促进思维)模式解决复杂任务,如 LangChain 等框架可用于开发多智能体应用。
- 挑战:包括计算成本高(因模型和交互复杂)、与人类社会性对齐困难(难以模仿角色和缺乏自我意识)、能力扩展受限(工具使用受工具质量和数量限制)和鲁棒性与可信度问题(受幻觉和对抗输入影响)。
(三)模型训练分析与优化
- 训练内存消耗估计:包括模型状态成本(主要由参数、梯度和优化器状态组成,如训练 LLaMA - 7B 需大量内存存储模型状态)、激活成本(存储中间状态用于梯度计算,不同组件内存消耗不同)和其他内存成本(如深度学习框架、分布式框架、中间结果和内存碎片等的开销)。
- 记忆优化方法:有梯度检查点(保留部分激活值并重新计算以节省内存)、ZeRO(通过分区数据减少内存冗余)和 Offload(将部分数据和计算转移到 CPU 或磁盘以降低 GPU 内存需求)等方法。
- 效率优化方法:FlashAttention(优化注意力计算减少内存传输和峰值内存使用)和序列并行(跨设备并行计算长数据序列,如 DeepSpeed - Ulysses 和 Ring Attention 等方法)可提高训练效率。
(四)模型推理分析与优化
- 推理效率分析:通过 GPU 性能指标(如计算能力和内存带宽)和模型效率指标(如计算量和数据传输量)评估推理效率,分析表明预填充阶段通常是计算受限,而解码阶段通常是内存受限,是影响 LLM 推理效率的主要瓶颈所在。
- 系统级优化:FlashAttention 和 Flash - Decoding 可减少数据传输,提高预填充阶段和长序列解码阶段的效率;PagedAttention 通过内存分页管理和算子融合优化 KV 缓存和注意力计算,减少数据传输;Batch Management Optimization(如连续批处理和 Dynamic SplitFuse)通过增加解码阶段的批处理大小来提高算术强度,从而提升推理吞吐量。
- 算法级优化:Speculative Decoding 利用小模型预生成令牌并由大模型验证,可显著加速推理;Cascade Inference 根据任务难度选择不同规模模型,可提高推理速度;Non - autoregressive Decoding 一次性生成所有令牌,但质量较低,可与其他方法结合使用;Early Exit 根据中间计算结果提前生成令牌,可提高推理效率,如 Mixture - of - depths 可动态调整各层计算负载。
(五)模型压缩
-
量化方法
- 背景与 PTQ 方法:量化是将浮点数映射为整数以减少模型内存占用,对于 LLMs,后训练量化(PTQ)更受青睐。PTQ 方法包括混合精度分解(处理隐藏激活中的异常值)、突出权重保护(识别和保留关键权重)、精细量化(采用更细粒度的量化参数)、平衡量化难度(迁移权重和激活的量化难度)和逐层量化(最小化逐层重建损失)等,这些方法可联合使用并依赖硬件支持。
- 其他量化方法与实证分析:包括高效微调增强量化(如 QLoRA 结合 LoRA 和量化方法提高量化模型性能)和量化感知训练(QAT)(在 LLM 上仍需进一步探索)。实证分析表明,INT8 权重量化在 LLMs 上效果较好,较低精度权重量化需特定策略;激活量化较困难,LLMs 对低精度激活量化更敏感;高效微调可增强量化模型性能,在实际应用中可先尝试 4 位权重量化。
-
其他模型压缩方法:模型蒸馏可将教师模型能力转移到学生模型,有白盒和黑盒两种方法;模型修剪包括结构化修剪(去除不重要的模型组件)和非结构化修剪(去除单个权重或连接),在 LLMs 上都可取得一定的压缩效果。
-
开源库:介绍了 Bitsandbytes、GPTQ - for - LLaMA、AutoGPTQ 和 llama.cpp 等量化库,以及 Torch - Pruning 和 LLM - Pruner 等其他模型压缩库。
(六)检索增强生成
- 基本工作流程:包括上下文检索(通过词汇或语义方法从外部源检索相关信息)、提示构建(将检索到的文档融入提示,需注意文档筛选和信息提取)和响应生成(利用检索信息生成回答,可进行自我检查和重新检索)。
- 改进策略:检索方法改进可通过选择合适的检索单元、优化查询(如扩展和重写查询)来提高检索性能;检索结果精炼可通过重新排名、信息提取和压缩等方法提高检索结果质量;迭代检索增强可通过迭代查询和自适应检索提高检索效果;RAG - 增强训练可通过指令调整和预训练任务提高 LLM 利用检索信息的能力。
(七)幻觉问题
- 定义与来源:幻觉是指 LLM 生成与事实不符的内容,可分为实体错误、关系错误、不完整、过时、过度声称和不可验证等类型。其来源包括训练数据(质量低和分布不合理)、训练方法(预训练和后训练中的问题)和响应生成(提示设计和解码策略不当)。
- 检测与缓解方法:检测方法有模型 - 基于(利用强大 LLM)、不确定性 - 基于(评估输出不确定性)和工具 - 基于(调用外部工具)方法;缓解方法包括人类对齐(如 RLHF 及改进标注过程)、检索增强生成和改进解码策略(如利用模型内部知识或外部知识调整解码)。
七、结论与未来研究方向
LLMs 在自然语言处理和诸多领域取得显著进展,但仍面临诸多挑战。在基础原理方面,需揭示其能力基础、分析缩放行为和模型泛化机制,以及解决数据污染问题;模型架构上,要开发更高效的架构和提升长上下文建模能力,探索更多样的架构形式;模型训练需建立数据中心的基础设施和流程,开发经济高效的训练方法,解决持续训练和知识注入问题;模型利用要深入理解提示原理、降低推理成本、优化检索增强生成技术;在幻觉问题上,需进一步完善检测和缓解方法,增强模型的可靠性和可信度。
未来研究方向还包括探索如何更好地结合人类知识和智能与 LLMs,实现人机协同的高效创新。例如,在复杂任务中,如何让人类专家与 LLMs 相互补充,充分发挥人类的创造力和判断力以及 LLMs 的知识储备和快速处理能力。同时,跨领域的应用研究也有待深化,如在医疗、金融等对准确性和安全性要求极高的领域,进一步提升 LLMs 的性能和可靠性,使其能够真正满足实际业务需求,推动行业的智能化发展。此外,随着多模态数据的日益丰富,如何构建更加统一和高效的多模态语言模型框架,实现不同模态信息的深度融合和准确理解,也是未来研究的重要方向之一。在模型的可解释性方面,需要取得更大突破,以便用户能够更好地理解 LLMs 的决策过程和输出结果,增强对模型的信任和应用的透明度。最后,在伦理和法律层面,需要建立健全的规范和准则,确保 LLMs 的开发和应用符合社会道德和法律要求,避免潜在的风险和不良影响。
总之,LLMs 具有巨大的潜力,但仍需要全球研究人员的共同努力,在技术创新、应用拓展、伦理规范等多个方面持续探索和改进,以实现其在人工智能领域的更大价值和更广泛的社会影响。