大型语言模型综述 A Survey of Large Language Models

文章源自

2303.18223 (arxiv.org)

如有侵权,请通知下线

这是一篇关于大语言模型(LLMs)的综述论文,主要介绍了 LLMs 的发展历程、技术架构、训练方法、应用领域以及面临的挑战等方面,具体内容如下:

摘要 —— 自从图灵测试在 20 世纪 50 年代被提出以来,人类已经探索了机器对语言智能的掌握。语言本质上是一个由语法规则支配的复杂、复杂的人类表达系统。它对开发有能力的人工智能(AI)算法来理解和掌握语言提出了重大挑战。作为一种主要方法,语言建模在过去的二十年里被广泛研究用于语言理解和生成,从统计语言模型发展到神经语言模型。最近,通过在大规模语料库上预训练 Transverter 模型提出了预训练语言模型(PLM),在解决各种自然语言处理(NLP)任务方面显示出强大的能力。由于研究人员发现模型缩放可以导致模型容量的提高,他们通过将参数缩放增加到更大的大小来进一步研究缩放效应。有趣的是,当参数尺度超过一定水平时,这些放大的语言模型不仅实现了显着的性能提升,而且还表现出一些小规模语言模型(例如 BERT)中不存在的特殊能力(例如上下文学习)。为了区分不同参数尺度的语言模型,研究界为具有显著规模(例如,包含数百亿或数千亿参数)的 PLM 创造了术语大语言模型(LLM)。最近,关于 LLM 的研究在很大程度上得到了学术界和工业界的推进,一个显著的进展是 ChatGPT(基于 LLM 开发的强大的 AI 聊天机器人)的推出,引起了社会的广泛关注。LLM 的技术演进一直在对整个 AI 社区产生重要影响,这将彻底改变我们开发和使用 AI 算法的方式。考虑到这一快速的技术进步,在本次调查中,我们通过介绍背景、主要发现和主流技术来回顾 LLM 的最新进展。特别是,我们关注 LLM 的四个主要方面,即预培训、适应调整、利用和能力评估。此外,我们还总结了发展 LLM 的可用资源,并讨论了未来方向的剩余问题。本次调查提供了对 LLM 文献的最新回顾,这对研究人员和工程师来说都是一个有用的资源。

INTRODUCTION

  1. 研究背景和概述
    • 语言模型的发展:从统计语言模型、神经语言模型到预训练语言模型和大语言模型,模型规模不断扩大,能力逐渐增强。


      如今,LLM对人工智能社区产生了重大影响,ChatGPT和GPT-4的出现导致了对通用人工智能(AGI)可能性的重新思考。OpenAI发表了一篇题为“规划AGI及以后”的技术文章,讨论了接近AGI的短期和长期计划[40],最近的一篇论文认为GPT-4可能被认为是AGI系统的早期版本[41]。人工智能的研究领域正在被LLM的快速发展所彻底改变。在NLP领域,LLM可以作为通用语言任务求解器(在某种程度上),研究范式已经转向使用LLM。在IR领域,传统搜索引擎受到通过人工智能聊天机器人(即ChatGPT)寻找信息的新方式的挑战,新宾格3提出了基于LLM增强搜索结果的初步尝试。在简历领域,研究人员试图开发ChatGPT的视觉语言模型,可以更好地服务于多模态对话[42-45],GPT-4[46]通过整合视觉信息支持多模态输入。这一新技术浪潮有可能导致基于有限责任公司的现实世界应用程序的繁荣生态系统。例如,有限责任公司(即Copilot)授权微软365实现办公自动化,OpenAI支持使用ChatGPT中的插件来实现特殊功能。
    • LLMs 的特点和重要性
      • 特点:具有强大的语言理解和生成能力,能够展现出一些超出小模型的 “涌现能力”,如上下文学习、指令跟随和逐步推理等。
      • 重要性:对人工智能领域产生了重要影响,推动了自然语言处理任务的发展,在信息检索、推荐系统、多模态等领域有广泛应用。

2 OVERVIEW

该部分对大语言模型(LLM)的背景进行了概述,主要包括缩放定律、涌现能力、关键技术以及 GPT 系列模型的技术演化,具体内容如下:

  1. 背景知识
    • 定义与规模:大型语言模型通常指基于 Transformer 架构、包含数百亿(或更多)参数并在大规模文本数据上训练的语言模型,如 GPT-3、PaLM、Galactica 和 LLaMA 等,具有理解自然语言和解决复杂任务的强大能力。
    • 研究意义:快速了解 LLM 的工作原理对于该领域的发展至关重要,有助于推动人工智能技术的进步,为解决各种实际问题提供支持。
       

  1. 技术要点
    • 缩放定律
      • 定律阐述:包括 KM 缩放定律和 Chinchilla 缩放定律,前者由 OpenAI 团队提出,后者由 Google DeepMind 团队提出。这些定律描述了模型性能与模型大小、数据集大小和训练计算量之间的幂律关系。
      • 特点与影响
        • 可预测性:缩放定律可用于指导 LLM 的训练,能够根据较小模型的性能可靠地估计较大模型的性能,有助于在训练过程中进行优化和调整。
        • 资源分配:KM 缩放定律和 Chinchilla 缩放定律对计算预算在模型大小和数据大小之间的分配有不同的建议,这对资源的有效利用具有重要意义。
        • 性能趋势:虽然定律表明模型性能随规模增加而提高,但也存在收益递减的趋势,同时语言建模损失的降低并不总是意味着下游任务性能的提升,这为理解模型性能的变化提供了重要依据。
    • 涌现能力
      • 定义与特征:LLM 的涌现能力是指在大规模模型中出现而在小规模模型中不存在的能力,其显著特征是当规模达到一定水平时,性能会显著高于随机水平,与物理中的相变现象有密切联系。
      • 具体能力
        • 上下文学习:模型能够根据提供的自然语言指令和任务演示,生成测试实例的预期输出,且在不同模型和任务中表现有所差异,例如 GPT-3 在某些任务中具有较强的上下文学习能力,而 GPT-1 和 GPT-2 则较弱。
        • 指令跟随:通过对多任务数据集进行微调,LLM 能够根据指令执行新任务,表现出良好的泛化能力,随着模型规模的增加,指令跟随能力也会增强。
        • 逐步推理:对于小语言模型难以解决的涉及多推理步骤的复杂任务,LLM 可以通过思维链(CoT)提示策略,利用中间推理步骤推导出最终答案,这种能力在模型规模较大时表现得更为明显。
    • 关键技术
      • 缩放:是 Transformer 语言模型中的重要现象,更大的模型、数据规模和更多的训练计算通常会导致模型能力的提升。通过合理利用缩放定律,可以更有效地分配计算资源,提高训练效率。
      • 训练:由于 LLM 模型规模巨大,分布式训练算法是训练成功的关键,需要利用各种并行策略,并借助优化框架如 DeepSpeed 和 Megatron-LM 来实现高效的训练。
      • 能力引出:通过设计合适的任务指令或特定的上下文学习策略,激发 LLM 在完成特定任务时的潜在能力,这些能力在小语言模型中可能并不明显。
      • 对齐调整:由于 LLM 可能会产生有害、有偏差的内容,需要通过对齐调整使模型与人类价值观保持一致,例如 InstructGPT 通过强化学习与人类反馈的技术,使 LLM 能够遵循预期的指令,生成高质量、无害的响应。
      • 工具操作:由于 LLM 在处理非文本任务和获取最新信息方面存在局限性,通过引入外部工具,如计算器和搜索引擎,可以扩展 LLM 的能力,使其能够更好地应对各种复杂任务。
  2. GPT 系列模型的技术演化
    • 发展阶段
      • 早期探索:OpenAI 早期就探索了用语言模型构建智能系统的想法,从使用循环神经网络(RNN)到开发 GPT-1 和 GPT-2,为更强大的模型奠定了基础。
      • 能力提升
        • 容量飞跃:GPT-3 通过扩展生成式预训练架构,实现了模型能力的重大飞跃,引入了上下文学习概念,在各种 NLP 任务中表现出色。
        • 技术增强:包括在代码数据上进行训练和与人类偏好对齐等,这些增强技术使得 GPT-3 模型的能力得到进一步提升,如在解决数学问题和遵循人类指令方面表现更优。
      • 重要里程碑
        • ChatGPT:基于 GPT 模型开发,通过优化对话能力,在与人类的交流中表现出强大的知识储备、推理能力和对人类价值观的良好遵循,引发了人工智能领域的轰动。
        • GPT-4:是 LLM 发展的另一个重要里程碑,将文本输入扩展到多模态信号,在解决复杂任务方面比 GPT-3 更强大,对恶意或挑衅性查询的响应更安全,同时引入了可预测缩放等技术,提高了模型训练和性能评估的效率。
    • 技术特点
      • 基本原理:GPT 模型的基本原理是通过语言建模将世界知识压缩到仅解码器的 Transformer 模型中,从而恢复世界知识的语义并作为通用任务求解器。
      • 关键因素:成功的关键在于训练仅解码器的 Transformer 语言模型以准确预测下一个单词,并通过扩展模型规模来提高模型的性能和能力。

3 RESOURCES OF LLMS

该章节主要介绍了开发大语言模型(LLM)的可用资源,包括模型检查点、API、语料库、数据集和库资源等,具体内容如下:

  1. 模型检查点和 API
    • 重要性:模型检查点对于 LLM 的研究和开发至关重要,它们是训练成果的重要体现,而 API 则为用户提供了更便捷的使用方式。
    • 具体内容
      • 模型检查点
        • 特点与分类:介绍了多个具有代表性的 LLM 模型检查点,如 LLaMA、Mistral、Qwen 等,它们在参数规模、数据和计算资源需求以及性能评估方面各有特点。
        • 性能差异:不同模型在处理不同任务和数据集时表现出不同的性能,例如在某些基准测试中,一些模型可能在语言生成方面表现出色,而在知识推理方面则相对较弱。
      • API
        • 作用与优势:API 为普通用户提供了使用 LLM 的更方便途径,避免了本地运行模型的复杂性和资源需求。
        • 代表接口:以 GPT 系列模型的 API 为例,介绍了其不同版本的接口特点和应用场景,如 OpenAI 提供的多种 API 接口,包括 ada、babbage、curie、davinci 等,这些接口在不同的任务和应用中具有不同的优势。
           

  1. 常用语料库
    • 语料库分类
      • 分类依据:根据内容类型,将常用语料库分为网页、书籍、维基百科、代码和其他混合数据五类。
      • 具体类型
        • 网页数据:如 CommonCrawl、C4、RedPajama-Data 等,是训练语言模型的重要数据来源,但存在噪声和质量参差不齐的问题。
        • 书籍和学术数据:包括 BookCorpus、Project Gutenberg 等,为模型提供了丰富的知识和语言表达模式。
        • 代码数据:如从 GitHub 和 StackOverflow 等收集的代码,对于训练与编程相关的能力非常有帮助。
    • 语料库使用
      • 数据收集:在收集语料库时,需要注意数据的质量和多样性,以确保模型能够学习到丰富和准确的语言知识。
      • 混合使用:实际训练中,通常会混合使用不同类型的语料库,以充分利用各种数据的优势,提高模型的性能。

  1. 常用数据集
    • 指令调优数据集
      • 数据集类型:包括 NLP 任务数据集、日常聊天数据集和合成数据集等。
      • 具体数据集
        • NLP 任务数据集:如 P3 和 FLAN 等,这些数据集是通过对自然语言处理任务进行整理和标注得到的,为模型的指令调优提供了重要的基础。
        • 日常聊天数据集:如 ShareGPT、OpenAssistant 和 Dolly 等,包含了大量的日常对话数据,有助于模型学习自然语言的表达方式和语义理解。
        • 合成数据集:如 Self-Instruct-52K、Alpaca 和 Baize 等,通过让模型生成新的指令和实例,增加了数据集的多样性和规模。
      • 数据集构建:构建这些数据集需要精心设计的方法和策略,以确保数据集的质量和有效性。
    • 对齐调优数据集
      • 数据集作用:用于调整 LLM 与人类价值观和偏好的一致性,提高模型的安全性和可靠性。
      • 具体数据集
        • HH-RLHF:包含关于 LLM 有用性和无害性的开放端对话实例,通过人类标注者对模型的响应进行评估和选择。
        • SHP:专注于响应的有用性,通过收集人类对问题 / 指令的响应偏好数据来训练模型。
        • PKU-SafeRLHF:包含专家比较数据,用于评估模型在安全性和无害性方面的表现。
      • 数据集收集:收集对齐调优数据集需要考虑人类反馈的质量和一致性,以确保数据集的有效性。
  2. 库资源
    • 库资源概述:介绍了一系列用于开发 LLM 的库,这些库提供了各种工具和功能,帮助开发人员更高效地构建和训练模型。
    • 具体库介绍
      • Transformers 库:由 Hugging Face 开发和维护,是一个用于使用 Transformer 架构构建模型的开源 Python 库,具有简单易用的 API,便于用户进行模型的训练、推理和优化。
      • DeepSpeed 库:由 Microsoft 开发,是一个深度学习优化库,提供了多种优化技术,如内存优化、管道并行等,有助于提高模型的训练效率和性能。
      • Megatron-LM 库:由 NVIDIA 开发,是一个专门用于训练大规模语言模型的深度学习库,提供了丰富的优化技术和并行训练策略,能够有效利用 GPU 资源进行高效训练。
      • 其他库:还介绍了 JAX、Colossal-AI、BMTrain、FastMoE、vLLM 和 DeepSpeed-MII 等库,这些库在模型训练、推理和优化方面都具有各自的特点和优势。

4 PRE-TRAINING

该章节主要介绍了大语言模型(LLM)的预训练过程,包括数据收集与准备、模型架构、训练技术等方面,具体内容如下:

  1. 数据收集与准备
    • 重要性:高质量的数据是 LLM 预训练的基础,对模型的性能和能力具有重要影响。
    • 具体内容
      • 数据源
        • 数据分类:包括通用数据(如网页、书籍、对话文本)和专业数据(如多语言文本、科学文本、代码)。
        • 数据特点
          • 通用数据:为模型提供了广泛的语言知识和背景信息,有助于提高模型的泛化能力。
          • 专业数据:可以增强模型在特定领域的能力,如多语言数据有助于提高模型的多语言理解和生成能力,科学文本有助于提高模型的科学知识理解能力,代码数据有助于提高模型的编程相关能力。
      • 数据预处理
        • 预处理步骤:包括过滤和选择、去重、隐私减少和标记化。
        • 具体操作
          • 过滤和选择:采用基于分类器和启发式的方法,去除低质量数据,如根据语言特征、文本质量评估指标和关键词等进行过滤。
          • 去重:避免数据重复对模型训练的不利影响,包括句子级、文档级和数据集级的去重。
          • 隐私减少:通过去除个人可识别信息(PII)来保护用户隐私。
          • 标记化:将文本分割成单词或子词单元,以便模型能够处理和学习。
             
      • 数据调度
        • 调度因素:包括数据混合和数据课程,数据混合涉及不同数据源的比例设置,数据课程涉及数据呈现的顺序安排。
        • 优化策略
          • 增加数据多样性:通过混合不同类型的数据源,减少模型对特定领域数据的依赖,提高模型的泛化能力。
          • 优化数据混合:可以手动设置数据混合比例,也可以通过优化算法来寻找最佳的数据混合方式,以提高模型的预训练效果。
          • 专业能力增强:通过增加特定数据来源的比例,可以增强模型在特定领域的能力,如增加数学文本和代码数据的比例可以提高模型的数学推理和编程能力。
  2. 模型架构
    • 架构类型
      • 主流架构:包括编码器 - 解码器、因果解码器和前缀解码器三种类型。
      • 新兴架构:如基于参数化状态空间模型(SSM)的变体,如 Mamba、RWKV、RetNet 和 Hyena 等,这些架构旨在提高模型的效率和性能。
    • 详细配置
      • 关键组件
        • 归一化方法:包括 LayerNorm、RMSNorm 和 DeepNorm 等,用于稳定模型的训练过程,减少梯度消失和爆炸的问题。
        • 位置嵌入:包括绝对位置嵌入、相对位置嵌入和旋转位置嵌入(RoPE)等,用于为模型提供位置信息,帮助模型理解文本的顺序和结构。
        • 激活函数:如 GeLU、GLU 及其变体 SwiGLU 和 GeGLU 等,用于增强模型的非线性表达能力,提高模型的学习能力。
        • 注意力机制:包括全注意力、稀疏注意力、多查询 / 分组查询注意力、FlashAttention 和 PagedAttention 等,用于模型对文本信息的关注和交互,提高模型的注意力集中程度和信息处理效率。
      • 配置特点
        • 优化选择:一般建议选择预 RMSNorm 进行层归一化,SwiGLU 或 GeGLU 作为激活函数,避免在嵌入层后立即使用 LN,以防止性能下降。对于位置嵌入,RoPE 或 ALiBi 是更好的选择,尤其在处理长序列时表现更优。
    • 预训练任务
      • 任务类型:主要包括语言建模和去噪自动编码,语言建模是最常用的预训练任务,而去噪自动编码则相对较少使用。
      • 具体任务
        • 语言建模:目标是根据前面的令牌自动回归地预测下一个令牌,通过最大化下一个令牌的预测概率来训练模型,包括常规的语言建模和前缀语言建模任务。
        • 去噪自动编码:输入是被损坏的文本,模型的目标是恢复原始文本,通过最小化重建误差来训练模型。
      • 混合目标:如 Mixture-of-Denoisers(MoD)将语言建模和去噪自动编码目标结合起来,作为统一的预训练目标。
    • 解码策略
      • 背景与机制:基于语言建模任务,解码器仅模型通过自动回归生成输出,解码策略包括贪婪搜索、采样 - based 方法等。
      • 具体策略
        • 贪婪搜索:在每个步骤中选择具有最高概率的令牌作为下一个输出,但可能会导致局部最优解。
        • 采样 - based 方法:通过随机选择令牌来增加输出的多样性,但可能会导致生成的文本质量不稳定。
        • 改进策略:包括波束搜索、长度惩罚、温度采样、顶部 - k 采样和顶部 - p 采样等,这些策略可以改善生成文本的质量和多样性。
      • 实践设置:不同的 LLM 模型在解码策略上有不同的设置,例如 T5、GPT-3 和 Alpaca 等模型在不同任务中采用了不同的解码策略。
  3. 模型训练
    • 优化设置
      • 训练参数
        • 批量训练:通常设置较大的批量大小(如 2,048 个示例或 4M 个令牌)以提高训练稳定性和吞吐量,一些模型还采用动态增加批量大小的策略。
        • 学习率:采用类似的学习率调度策略,包括线性预热和余弦衰减,学习率的范围通常在到之间。
        • 优化器:常用的优化器包括 Adam、AdamW 和 Adafactor 等,这些优化器基于自适应估计的低阶矩进行一阶梯度优化。
      • 训练稳定性:为了防止训练不稳定,通常采用权重衰减和梯度裁剪等技术,同时一些模型还会采用重启训练、调整嵌入层梯度等策略来解决训练过程中的问题。
    • 可扩展训练技术
      • 技术概述:随着模型和数据规模的增加,需要解决训练效率和内存使用等问题,可扩展训练技术包括 3D 并行和混合精度训练等。
      • 具体技术
        • 3D 并行:结合数据并行、管道并行和张量并行三种技术,通过在多个 GPU 上并行处理数据、模型层和张量,提高训练效率。
        • 混合精度训练:使用 16 位浮点数(FP16)或其他低精度格式来减少内存使用和通信开销,同时一些模型还会采用 Brain Floating Point(BF16)等格式来平衡精度和性能。

5 POST-TRAINING OF LLMS

该章节主要介绍了大语言模型(LLM)的后训练过程,包括指令调优、对齐调优、参数高效的模型适应等方面,具体内容如下:

  1. 指令调优
    • 基本概念
      • 定义与目的:指令调优是对预训练 LLM 进行微调的一种方法,通过在自然语言格式的指令实例上进行训练,以增强或解锁 LLM 的能力,使其能够更好地执行各种任务。
      • 与其他训练的关系:与预训练和其他后训练方法(如对齐调优)相结合,共同提高 LLM 的性能和适用性。
    • 格式化实例构建
      • 构建方法
        • 格式化 NLP 任务数据集:从传统的 NLP 任务数据集中收集实例,通过添加人类编写的任务描述来格式化数据集,以便 LLM 能够理解任务目标。
        • 格式化日常聊天数据:以真实用户向 OpenAI API 提交的查询为任务描述,收集人类标签者的回答作为输出,构建训练实例。还可以从 ShareGPT 等数据集收集用户聊天请求和模型生成的响应。
        • 格式化合成数据:通过将现有实例输入到 LLM 中,让其生成新的指令和实例,从而合成大量的训练数据。这种方法可以减少人工标注的负担,但需要注意数据的质量和多样性。
      • 关键因素
        • 扩展指令:增加指令的数量可以增强 LLM 的泛化能力,但当指令数量达到一定程度时,增加指令的效果会逐渐减弱。
        • 格式化设计:合理的自然语言格式设计,如添加任务描述和可选的演示,可以提高 LLM 对任务的理解和执行能力。
        • 指令质量改进:通过精心设计的提示和知识引导,可以提高指令数据的质量,减少低质量指令的影响。
        • 指令选择:选择高质量的指令数据集对于训练效果至关重要,可以通过评估指令的质量和多样性来进行选择。
    • 指令调优策略
      • 平衡数据分布:采用示例比例混合策略,结合所有数据集并均匀采样每个实例,增加高质量集合的采样比例,同时设置最大容量来控制数据集的影响。
      • 结合调优方式:将预训练数据与指令调优数据结合,采用多任务学习的方式进行训练,或者先进行预训练,再进行指令调优。
      • 多阶段调优:根据指令数据的类型,采用多阶段的指令调优策略,先对大规模的任务格式化指令进行调优,再对日常聊天指令进行调优。
      • 实用技巧
        • 高效训练多回合聊天数据:对于多回合聊天数据,采用将整个对话输入到 LLM 中,并使用损失掩码来计算聊天机器人响应的损失,从而减少计算成本。
        • 建立 LLM 的自我识别:通过创建与 LLM 身份相关的指令进行微调,或者在输入前添加自我识别提示,使 LLM 能够意识到自己的身份信息。
    • 指令调优的效果
      • 性能提升:指令调优能够显著提高 LLM 的性能,使模型在各种任务中表现更好,尤其在零样本或少样本学习情况下效果更明显。
      • 任务泛化:能够增强 LLM 对未见过任务的泛化能力,使模型能够根据自然语言指令执行各种新任务,包括多语言任务。
      • 领域专业化:可以将通用的 LLM 调整为特定领域的专家模型,提高模型在特定领域的性能和准确性。
  2. 对齐调优
    • 背景与标准
      • 背景意义:由于 LLM 在训练过程中可能会出现不符合人类价值观和偏好的行为,如生成虚假信息、有害内容等,因此需要进行对齐调优,使模型的行为与人类期望相符。
      • 对齐标准
        • 代表性标准:包括有用性、诚实性和无害性等标准,这些标准是根据人类认知和价值观制定的,用于评估 LLM 的行为是否符合人类期望。
        • 标准细化
          • 有用性:要求 LLM 能够准确地回答用户的问题,提供有用的信息和帮助,尽可能简洁高效地完成任务。
          • 诚实性:指 LLM 在回答问题时应提供准确的内容,不伪造信息,同时要适当地表达不确定性,避免误导用户。
          • 无害性:要求 LLM 生成的语言不应具有攻击性、歧视性或有害性,能够保护用户的权益和尊严。
    • 收集人类反馈
      • 反馈收集方法
        • 人类标注:是收集人类反馈的主要方法,通过选择具有合格教育水平和英语 proficiency 的人类标注者,对 LLM 的输出进行评估和标注。
        • 反馈收集方式
          • 排名 - based 方法:早期工作中,人类标注者通过粗粒度的方式选择最佳候选输出,但这种方法忽略了未选择的样本,可能导致反馈不准确。
          • 问题 - based 方法:人类标注者通过回答研究人员设计的问题,提供更详细的反馈,包括对齐标准和其他约束条件。
          • 规则 - based 方法:通过制定一系列规则,对 LLM 的输出进行评估和判断,例如检查输出是否符合有用性、诚实性和无害性等标准。
      • 反馈数据利用:利用收集到的人类反馈数据,通过强化学习从人类反馈(RLHF)等技术来调整 LLM 的参数,使模型的行为与人类期望更加一致。
    • 强化学习从人类反馈
      • RLHF 系统
        • 系统组成:由预训练的 LM、从人类反馈中学习的奖励模型和用于训练 LM 的 RL 算法组成。
        • 模型特点
          • 预训练 LM:作为基础模型,为整个系统提供语言生成和理解的能力。
          • 奖励模型:根据人类反馈数据学习,为 LM 的输出提供奖励信号,引导 LM 生成符合人类期望的响应。
          • RL 算法:如近端策略优化(PPO),用于优化 LM 的参数,使模型能够更好地适应人类反馈。
      • 关键步骤
        • 监督微调:收集包含输入提示和期望输出的监督数据集,对 LM 进行微调,使模型能够初步表现出期望的行为。
        • 奖励模型训练:使用 LM 生成的输出和人类标注者的反馈,训练奖励模型,使其能够准确地预测人类对模型输出的偏好。
        • 有效奖励模型训练:为了避免奖励模型的过拟合,采用多种策略,如使用大尺寸的奖励模型、引入 LM 损失作为正则化项等。
        • RL 微调:将对齐问题表述为 RL 问题,使用 PPO 算法等对 LM 进行微调,使模型的输出与奖励模型的期望一致。
      • 实用策略
        • 高效 RL 训练:通过将奖励模型部署在单独的服务器上,减少通信成本;使用波束搜索解码算法等提高训练效率。
        • 过程监督 RLHF
          • 获得细粒度监督信号:通过自动标注中间推理步骤或利用强大的 LLM 来代替人类标注者,获得更细粒度的监督信号。
          • 利用过程监督奖励模型:使用过程监督奖励模型来评估 LLM 的输出,引导 LLM 生成更符合人类期望的响应。
  3. 参数高效的模型适应
    • 参数高效调优方法
      • 方法概述:参数高效的调优方法旨在减少训练过程中需要调整的参数数量,同时保持模型的性能,包括适配器调优、前缀调优、提示调优和 LoRA 等。
      • 具体方法
        • 适配器调优:通过在 Transformer 模型中插入小型神经网络模块(适配器)来调整模型的参数,这些模块在训练过程中可以学习到特定任务的特征,从而提高模型的性能。
        • 前缀调优:在语言模型的每个 Transformer 层之前添加一个可训练的前缀向量,这些向量可以学习到不同任务的特征,从而提高模型的性能。
        • 提示调优:通过在输入层添加可训练的提示向量来调整模型的参数,这些向量可以引导模型生成更符合任务要求的输出。
        • LoRA:通过对模型的参数矩阵进行低秩分解,减少训练过程中需要调整的参数数量,从而提高模型的训练效率。
    • LLM 的参数高效调优
      • 应用情况:这些方法在开源 LLM 中得到了广泛的应用,如 LLaMA 和 BLOOM 等模型都采用了这些方法进行参数高效调优。
      • 效果评估:通过实验对比,这些方法在减少参数数量的同时,能够保持或提高模型的性能,尤其是在处理大规模数据和复杂任务时,具有明显的优势。

6 UTILIZATION

该章节主要介绍了大语言模型(LLM)的利用方式,包括提示、上下文学习、思维链提示和规划等技术,具体内容如下:

  1. 提示(Prompting)
    • 概述:提示是利用 LLM 解决各种任务的主要途径,其质量对 LLM 在特定任务中的性能表现有着至关重要的影响。
    • 提示创建
      • 关键要素
        • 任务描述:清晰明确地用自然语言阐述任务目标,对于具有特殊输入或输出格式的任务,需详细说明并运用关键词突出重点,为 LLM 理解任务提供明确指引。
        • 输入数据:以自然语言描述实例,对于特殊数据,如知识图谱和表格,可通过线性化或编程语言等方式使其更适合 LLM 处理,以增强模型对任务相关信息的理解。
        • 上下文信息:包括检索到的文档等,在开放域问答等任务中,能为答案生成提供重要支持,影响答案的准确性和完整性。
        • 提示风格:根据 LLM 的特点设计合适的问题或指令前缀,例如使用 “让我们逐步思考” 等前缀可引导模型进行逐步推理,使用 “你是这个任务的专家” 等前缀能提升模型在特定任务中的性能。对于聊天型 LLM,采用多回合分解子任务的方式更能有效利用模型能力。
      • 设计原则
        • 表达清晰:任务描述应避免模糊不清,确保 LLM 能准确理解任务要求,从而生成符合期望的输出。
        • 分解任务:将复杂任务分解为多个简单、详细的子任务,有助于 LLM 逐步完成任务,提高任务解决的准确性。
        • 提供示例:少量高质量的示例(few-shot demonstrations)能帮助 LLM 学习输入与输出之间的语义映射,无需进行参数调整,有效提升模型在新任务中的表现。
        • 格式友好:利用 LLM 预训练数据的特点,采用特定的格式(如 ### 或 """ 作为分隔符),或在英语环境下使用英语指令,能使 LLM 更好地理解任务,提高任务完成质量。
        • 角色扮演:利用 LLM 在大量语料中学习到的角色扮演能力,通过特定提示引导其在特定领域发挥优势,从而生成更合理、准确的解决方案。
      • 实验分析
        • 性能提升:通过精心设计的提示,能够显著提升 ChatGPT 在复杂推理任务上的零样本或少样本性能,使模型能够更好地理解任务要求并生成准确的回答。
        • 任务特点:复杂任务尤其受益于提示工程,在数学推理任务中,基于编程语言格式设计特定提示,能充分利用 ChatGPT 的代码合成能力,获得更精确的结果。
        • 综合能力:在知识利用和复杂推理任务中,适当的提示能够使 ChatGPT 达到与监督基线相当甚至更好的性能,展示了提示在提升模型性能方面的重要作用。然而,在某些特定任务上,ChatGPT 仍可能表现不如专门优化的模型。
        • 非传统任务:提示还可以帮助 ChatGPT 完成一般推荐和对话推荐等非传统 NLP 任务,但目前的性能还有待提高,需要进一步探索和优化提示策略。
    • 提示优化
      • 离散提示优化
        • 梯度方法:通过最大化输出似然进行梯度更新来搜索有效提示,如 Auto-Prompt 方法。但该方法直接搜索成本较高,因为需要对每个提示位置的每个候选令牌进行评估,导致大量的额外前向传递。改进方法是将离散令牌转换为连续嵌入,在连续空间进行优化,减少计算量。
        • 强化学习方法:将离散提示优化问题表述为强化学习问题,如 RLPrompt 训练策略网络生成期望的提示。然而,这种方法存在编辑空间限制和灵活性不足的问题,因为它主要通过手动定义的编辑操作(如添加、交换和删除)来修改原始提示。
        • 编辑方法:基于任务性能直接编辑现有提示,如 GPS 利用语言模型进行编辑,或采用人工定义的操作(如删除、交换、释义和添加)进行迭代搜索。这种方法相对灵活,但需要大量的人工干预和实验来找到最佳的提示。
        • LLM 方法:直接利用 LLM 生成初始提示,如 APO 通过提示 LLM 生成文本反馈来优化提示。但这种方法可能存在搜索空间大、结果不稳定的问题,因为 LLM 的输出具有不确定性,需要进一步引入启发式方法或类比梯度优化来改进。
      • 连续提示优化
        • 充分数据学习:将连续提示视为可训练的模型参数,利用监督学习基于大量下游任务数据最小化交叉熵损失来优化。但这种方法缺乏对输入语义的充分考虑,可能导致模型在处理不同输入时性能下降。
        • 稀缺数据转移:针对数据稀缺问题,采用提示转移学习方法,如 SPoT 先学习源任务的连续提示,再初始化目标任务的提示。改进方法考虑任务和实例级信息,设计自适应注意力机制,以更好地利用有限的数据进行提示优化。
  2. 上下文学习(In-Context Learning)
    • 定义与形式:上下文学习是 LLM 的一种特殊提示形式,它通过自然语言提示(包括任务描述和示例)来引导 LLM 识别和执行新任务,无需明确的梯度更新。在这种学习方式中,模型根据提供的上下文信息,理解任务要求,并生成相应的输出。
    • 示例选择方法
      • 启发式方法:这是一种广泛应用的方法,例如使用 k-NN 检索语义相关的示例。然而,这种方法单独选择示例可能会忽略示例集的整体评估,可能导致选择的示例不够具有代表性。为了解决这个问题,一些多样性选择策略被提出,以确保选择的示例能够覆盖不同的方面和情况。同时,考虑相关性和多样性的方法被证明是更有效的,可以提高上下文学习的性能。
      • LLM 方法:利用 LLM 自身的能力来选择示例,例如通过测量示例的信息性、采用两阶段检索或将演示选择表述为强化学习问题等。这种方法可以充分利用 LLM 的语言理解和生成能力,选择更合适的示例来帮助模型学习和执行新任务。
    • 演示格式:将选择的任务示例整合到自然语言提示中,是上下文学习的重要环节。一种常见的方法是实例化预定义模板,并将相应的输入 - 输出对填充到模板中。为了增强推理能力,还可以添加任务描述或使用思维链提示。此外,自动生成高质量的演示格式也是一个研究方向,例如通过使用自动生成技术或利用大规模数据进行学习,来生成更有效的演示格式。
    • 演示设计要点
      • 演示选择:对上下文学习的性能有重要影响,不同的演示选择方法会导致模型在学习和执行任务时的表现不同。启发式方法和 LLM-based 方法都可以用于演示选择,需要根据具体任务和数据特点选择合适的方法。
      • 演示顺序:LLM 在处理演示时可能会受到近期偏差的影响,因此合理安排演示顺序非常重要。早期工作提出了多种启发式方法来确定演示顺序,如根据嵌入空间相似性排列、使用全局和局部熵指标等。这些方法可以帮助模型更好地利用演示信息,提高上下文学习的效果。
    • 底层机制
      • 预训练影响:上下文学习能力与模型的预训练密切相关,随着模型规模的增加,上下文学习能力通常会增强。小模型也可以通过持续预训练或微调来获得较强的上下文学习能力,这表明预训练任务和数据对上下文学习能力的发展具有重要作用。
      • 推理过程
        • 任务识别:LLM 能够从演示中识别出任务,并利用预训练获得的知识来解决新的测试任务。通过 PAC 框架等方法可以评估上下文学习的可学习性,实验表明 LLM 主要通过识别任务来进行上下文学习,而不是学习演示中的具体细节。
        • 任务学习:LLM 还可以通过演示学习新的任务,这被视为一种隐含的微调过程。在这个过程中,模型通过前向计算生成元梯度,并通过注意力机制进行隐含的梯度下降,从而学习到新的任务知识。一些研究还发现,特定的注意力头在上下文学习中起着重要作用,它们能够执行与任务无关的原子操作,帮助模型更好地理解和执行任务。
  3. 思维链提示(Chain-of-Thought Prompting)
    • 基本方法:思维链提示是一种改进的提示策略,旨在增强 LLM 在复杂推理任务中的性能。它通过在提示中引入中间推理步骤,将输入与输出连接起来,使 LLM 能够更好地理解问题的结构和逻辑关系,从而生成更准确、更有条理的回答。
    • 改进策略
      • 更好的提示设计:使用多样化的思维链或更复杂的推理路径可以有效增强性能。然而,依赖注释的思维链数据集在实践中使用受限,因为获取和维护这些数据集需要大量的人工标注工作。魔法指令如 “让我们逐步思考” 可以自动构造思维链,为模型提供了一种简单而有效的方式来生成中间推理步骤。
      • 增强的思维链生成
        • 采样方法:通过采样多个推理路径并进行多数投票或基于复杂程度选择推理路径来提高性能。例如,self-consistency 方法首先生成多个推理路径,然后通过多数投票选择最一致的答案。然而,这种方法仍然可能导致错误答案,特别是当大多数推理路径都被误导时。
        • 验证方法:使用训练验证器或 LLM 自身来验证推理步骤的正确性,以减少错误的积累。例如,DIVERSE 方法训练不同层次的验证器来检查推理步骤的准确性,另一种方法利用 LLM 进行自我验证,通过逐步推理和自我检查来确保推理步骤的正确性。
      • 推理结构扩展:基本的思维链结构在解决复杂推理任务时有限,因此需要扩展推理结构。树结构(如 ToT)通过分层树结构支持并行推理和前瞻回溯,能够更好地处理复杂的推理问题。图结构(如 GoT)则更加灵活,能够表示更复杂的关系和交互,但计算成本较高。XoT 通过预训练策略和值网络引导思维搜索,提高了推理效率和准确性。
    • 进一步讨论
      • 适用条件:思维链提示是一种涌现能力,仅对足够大的模型(通常包含 10B 或更多参数)有效。它主要适用于需要逐步推理的任务,如算术推理、常识推理和符号推理等。对于其他不需要复杂推理的任务,思维链提示可能会导致性能下降。
      • 推理原理
        • 能力来源:思维链推理能力的来源尚不完全清楚,但研究表明与代码训练可能有关。在代码数据上训练的模型通常表现出较强的推理能力,这可能是因为代码具有明确的逻辑结构和编程流程,有助于模型学习和理解推理过程。然而,这一假设还需要进一步的实验验证。
        • 组件作用:思维链提示与标准提示的主要区别在于包含推理路径,研究发现符号、模式和文本是思维链提示中三个关键组件。去除其中任何一个都会导致性能显著下降,这表明这些组件在思维链提示中相互协作,共同帮助 LLM 理解和解决问题。文本和模式相互共生,文本有助于 LLM 生成有用的模式,而模式则有助于 LLM 理解任务并生成准确的回答。
  4. 规划(Planning)
    • 总体框架
      • 组件与流程:规划是一种用于解决复杂任务的方法,它由任务规划、计划执行和环境三个组件组成。任务规划由 LLM 负责,根据任务目标生成计划;计划执行由 LLM 或外部工具完成,根据计划执行相应的操作;环境提供计划执行的反馈,包括自然语言或多模态信号等。通过迭代的 “规划 - 执行 - 反馈 - 改进” 循环,LLM-based 智能体可以自主调整行为,以实现目标。
    • 计划生成
      • 文本和代码方法
        • 文本方法:LLM 可以直接生成自然语言形式的计划,通过添加 “设计计划” 等指令进行零样本生成,或者使用 ICL(In-Context Learning)结合演示进行引导。此外,还可以引入额外的工具或模型,如 ToolFormer 和 HuggingGPT,来增强计划生成的能力。
        • 代码方法:生成可执行的编程语言代码形式的计划,如 Faithful CoT 和 PAL 先生成计划,再由确定性求解器执行。这种方法可以提高计划的准确性和可执行性,特别适用于需要精确计算和控制的任务。
    • 反馈获取
      • 内部反馈:LLM 自身可以通过评估生成计划的质量、根据计划执行结果提供反馈。例如,RAP 通过评估每个候选计划导致任务成功的可能性来提供反馈,Tree of Thoughts 通过比较不同计划进行投票来选择最优计划。
      • 外部反馈:外部对象如代码解释器、稳定扩散等工具或虚拟世界可以提供反馈,帮助 LLM 改进计划。例如,代码解释器可以提供错误消息,稳定扩散可以提供视觉感知等。
    • 计划改进
      • 推理改进:通过明确的推理过程从反馈中提取关键信息,如 React 通过演示生成推理跟踪来改进计划,ChatCoT 将工具辅助的推理过程统一为多回合对话,使 LLM 能够更好地理解和处理反馈信息。
      • 回溯调整:采用搜索算法如广度优先或深度优先搜索进行回溯,以改进计划。例如,Tree of Thoughts 通过回溯选择更好的计划,DEPS 和 TIP 根据反馈信号修改计划,以确保计划的有效性和适应性。
      • 记忆辅助:利用长期记忆来辅助计划改进,如 Reflexion 存储自我反思的反馈,Generative Agents 设计记忆流机制,技能库机制存储成功计划,使用向量数据库等工具进行高效存储和检索。记忆辅助可以帮助 LLM 在处理长期任务时保持一致性和连贯性,提高计划的质量和效率。

7 CAPACITY AND EVALUATION

该章节主要对大语言模型(LLM)的能力和评估进行了详细论述,包括基本能力、高级能力、基准和评估方法以及实证评估等方面,具体内容如下:

  1. 基本能力
    • 语言生成
      • 任务分类:包括语言建模、条件文本生成和代码合成任务。语言建模旨在预测下一个令牌,条件文本生成涉及根据给定条件生成文本,代码合成则是生成满足特定条件的计算机程序。
      • 具体任务与评估
        • 语言建模:常用数据集如 Penn Treebank、WikiText - 103 和 The Pile 等用于评估语言建模能力,通过计算困惑度来衡量模型在零样本设置下的性能。LAMBADA 数据集则用于测试模型对长文本中单词的预测能力。
        • 条件文本生成:在机器翻译、文本摘要和问答等任务中表现重要。自动指标(如 BLEU、ROUGE)和人类评级用于评估生成文本的质量,但这些指标在评估 LLM 在复杂任务中的性能时存在局限性。
        • 代码合成:通过计算生成代码通过测试用例的通过率(如 pass@k)来评估质量。APPS、HumanEval 和 MBPP 等数据集常用于评估代码合成能力,一些新的策略如采样多个候选解决方案和规划引导解码也被提出。
      • 主要问题
        • 不可靠的生成评估:虽然 LLM 生成的文本质量与人类文本相当,但现有评估基准存在缺陷,导致人类评估和自动参考指标之间存在不一致。LLM 作为评估者也可能存在偏见,影响评估的准确性。
        • 专业生成不足:LLM 在处理专业领域或任务时表现不佳,难以注入专业知识,在处理结构化数据和低资源语言任务时也存在挑战。
    • 知识利用
      • 任务分类:包括闭卷问答、开卷问答和知识完成等任务。闭卷问答测试模型从预训练语料中获取事实知识的能力,开卷问答允许模型访问外部知识库,知识完成任务则是补充或预测知识单元的缺失部分。
      • 具体任务与评估
        • 闭卷问答:使用 Natural Questions、Web Questions 和 TriviaQA 等数据集进行评估,准确率是主要评估指标。模型性能与模型规模和数据量有关,在处理精细知识问题时可能表现不佳。
        • 开卷问答:除了使用闭卷问答数据集外,还涉及外部知识源的利用。通过与文本检索器或搜索引擎结合,模型可以提取相关证据来回答问题,评估指标包括准确率和 F1 分数。
        • 知识完成:知识完成任务包括知识图完成和事实完成等子任务,通过评估模型在知识图谱或文本中完成知识填充的能力来衡量。FB15k - 237、WN18RR 和 WikiFact 等数据集常用于评估知识完成能力。
      • 主要问题
        • 幻觉:LLM 在生成事实性文本时容易出现幻觉,包括内在幻觉(生成的内容与输入文本或已知事实冲突)和外在幻觉(生成的内容无法被现有来源验证)。幻觉问题广泛存在,即使是最先进的模型如 GPT - 4 也难以避免,这会影响模型的可靠性和实用性。
        • 知识时效性:模型在处理需要最新知识的任务时存在困难,虽然可以通过定期更新数据来解决,但成本高昂且可能导致模型的灾难性遗忘。目前的方法包括利用外部知识源和编辑模型参数等,但效果有限。
    • 复杂推理
      • 推理分类:包括知识推理、符号推理和数学推理。知识推理依赖于事实知识的逻辑关系,符号推理涉及符号操作和规则遵循,数学推理则需要运用数学知识和逻辑进行计算和证明。
      • 具体任务与评估
        • 知识推理:使用 CSQA、StrategyQA 和 ScienceQA 等数据集进行评估,通过评估模型对常识和科学知识的推理能力来衡量。链思维(CoT)提示策略被广泛用于增强模型的推理能力,但在处理复杂推理任务时,模型的性能仍落后于人类。
        • 符号推理:在最后字母连接和硬币翻转等任务上进行评估,通过评估模型对符号操作的理解和推理能力来衡量。由于模型在处理未见过的复杂符号组合时存在困难,需要使用辅助策略如便签和导师来帮助模型理解和推理。
        • 数学推理:包括数学问题解决和自动定理证明等任务,使用 SVAMP、GSM8k 和 MATH 等数据集进行评估。CoT 提示策略和持续预训练在提高数学推理能力方面有一定效果,但模型在处理大规模计算和复杂数学概念时仍存在挑战。
      • 主要问题
        • 推理不一致:尽管采用了各种推理策略,LLM 在推理过程中仍存在不一致的问题,可能会产生正确答案但推理过程错误或错误答案的情况。这可能导致模型的可靠性受到质疑,需要进一步改进推理机制和模型训练方法。
        • 数值计算困难:在处理涉及数值计算的任务时,LLM 通常表现不佳,特别是对于罕见的符号和大规模计算。虽然可以通过调整模型架构和训练方法来改善,但仍然是一个需要解决的问题。
  2. 高级能力
    • 人类对齐
      • 评估标准:通过评估模型在有益性、诚实性和无害性等方面的表现来衡量人类对齐能力。有益性要求模型能够准确回答问题并提供有用信息,诚实性要求模型不生成虚假信息,无害性要求模型生成的语言不具有攻击性和歧视性。
      • 评估方法
        • 对抗性问答任务:通过设计对抗性问题来测试模型是否能够识别和拒绝虚假信息,例如 TruthfulQA 数据集就是用于评估模型在这方面能力的一个常用数据集。
        • 人类评估:邀请领域专家对模型的输出进行评估,这是一种更直接的评估方式,但成本较高且存在主观性。
      • 影响因素:模型的性能受到多种因素的影响,如数据质量、训练方法和模型架构等。高质量的预训练数据和有效的训练方法可以提高模型的人类对齐能力,而不合适的模型架构可能导致模型产生不符合人类价值观的输出。
    • 与外部环境的交互
      • 评估环境:使用虚拟家庭、ALFRED 和 BEHAVIOR 等模拟环境以及真实世界环境如 Minecraft 来评估模型与外部环境交互的能力。在这些环境中,模型需要生成行动计划并与环境进行交互,以完成特定任务。
      • 能力表现
        • 任务完成能力:LLM 能够生成详细的行动计划,并在一定程度上执行这些计划来完成任务,例如在虚拟家庭环境中,模型可以完成清洁、烹饪等任务。
        • 多智能体协作:研究还探索了多智能体协作的情况,通过多个 LLM 模型协同工作来解决复杂问题,展示了模型在团队合作和交互方面的潜力。
      • 发展方向:未来的研究方向包括设计更有效的交互界面和开发更智能的代理,以提高模型与外部环境的交互效率和质量。
    • 工具操作
      • 评估任务:通过数学问题解决和知识问答等任务来评估模型的工具操作能力,例如使用 HotpotQA 和 Gorilla 等数据集。在这些任务中,模型需要调用外部工具(如搜索引擎和计算器)来辅助解决问题。
      • 能力表现
        • 工具利用效率:LLM 能够有效地利用外部工具来提高任务解决能力,例如在数学问题解决中,模型可以调用计算器来进行精确计算。
        • 工具扩展:模型还具有自主创造工具的潜力,能够根据任务需求开发新的工具来解决问题。
      • 挑战与应对:模型在操作工具时面临着一些挑战,如工具数量增加导致的上下文长度限制和工具信息表示的问题。为了解决这些问题,研究人员提出了一些方法,如检索相关工具信息和编码工具信息为令牌等。
  3. 基准和评估方法
    • 综合评估基准
      • 基准介绍:介绍了一些广泛使用的综合评估基准,如 MMLU、BIG - bench、HELM 和人类考试基准等。这些基准涵盖了多个领域和任务,旨在全面评估 LLM 的能力。
      • 具体基准特点
        • MMLU:是一个大规模的多任务知识理解基准,包含从数学到人文科学等多个领域的任务,模型在该基准上的表现通常与模型规模相关。
        • BIG - bench:是一个协作基准,旨在从多个方面探测 LLM 的能力,包括语言、数学、常识推理等。它包含 204 个任务,模型在少数样本设置下的表现是评估的重点之一。
        • HELM:是一个综合基准,实现了 16 个场景和 7 类指标的评估,通过对模型在不同任务和指标上的表现进行评估,来全面了解模型的性能。
        • 人类考试基准:如 AGIEval、MCMU、M3KE 和 C - Eval 等,这些基准旨在通过设计与人类考试相似的任务来评估 LLM 的综合能力,模型在这些基准上的表现可以与人类进行比较。
    • 评估方法
      • 方法分类:根据模型类型的不同,评估方法主要包括基于基准、基于人类和基于模型的方法。
      • 具体评估方法
        • 基于基准的方法:使用预先定义的基准测试来评估模型的性能,通过比较模型的输出与基准答案的一致性来衡量模型的能力。这种方法简单直观,但基准测试可能存在一定的局限性。
        • 基于人类的方法:邀请人类评估者对模型的输出进行评估,评估者根据自己的主观判断来给模型的回答打分或进行排序。这种方法能够更直接地反映模型在实际应用中的表现,但评估结果可能受到评估者主观因素的影响。
        • 基于模型的方法:使用其他强大的模型来评估目标模型的性能,例如使用 GPT - 4 等模型作为评估者来评估其他 LLM 模型的性能。这种方法可以在一定程度上避免人类评估的主观性,但模型之间的差异和偏见也可能影响评估结果。
      • 评估方法的优缺点
        • 基于基准的方法:优点是可以进行大规模的自动化评估,适用于快速筛选和比较不同模型的性能。缺点是基准测试可能无法完全覆盖实际应用中的所有情况,导致评估结果不够准确。
        • 基于人类的方法:优点是能够直接反映模型在实际应用中的表现,考虑到了人类的主观因素和实际需求。缺点是成本较高,评估结果可能存在不一致性,且难以进行大规模的评估。
        • 基于模型的方法:优点是可以在一定程度上避免人类评估的主观性,并且能够快速处理大量的评估任务。缺点是模型之间的差异和偏见可能会影响评估结果的准确性,而且对于一些复杂的任务,模型的评估能力可能有限。
  4. 实证评估
    • 实验设置
      • 模型选择:选择了包括开源模型(如 LLaMA、Falcon)和闭源 API 访问模型(如 ChatGPT、Claude)在内的多种代表性 LLM 模型进行评估。
      • 任务和数据集
        • 语言生成任务:包括语言建模、文本摘要和代码合成等任务,使用 LAMBADA、WMT'22、XSum 和 HumanEval 等数据集。
        • 知识利用任务:包括问答和知识提取等任务,使用 TriviaQA、Natural Questions、Web Questions 和 ARC 等数据集。
        • 复杂推理任务:包括知识推理、符号推理和数学推理等任务,使用 OpenbookQA、HellaSwag、SocialIQA、Colored Objects 和 GSM8k 等数据集。
        • 人类对齐任务:使用 TruthfulQA、CrowS - Pairs、WinoGender 和 HaluEval 等数据集。
        • 与环境交互任务:使用 ALFWorld 和 WebShop 等数据集。
        • 工具操作任务:使用 HotpotQA 和 Gorilla 等数据集。
      • 实验方法:对于每个任务和数据集,使用相同的提示和结果解析方法,根据模型的输出与真实答案的匹配程度来评估模型的性能。
    • 结果分析与发现
      • 模型性能比较
        • 总体表现:不同模型在不同任务上的表现存在差异,闭源模型如 ChatGPT 在大多数任务上表现较好,而开源模型在一些任务上也能取得不错的成绩。
        • 模型优势:一些模型在特定任务上具有优势,例如在数学推理任务中,某些模型表现出较强的计算和推理能力;在知识问答任务中,一些模型能够准确回答问题并提供详细的解释。
      • 能力特点
        • 通用能力:所有模型都在一定程度上具备语言生成、知识利用和简单推理等通用能力,但在性能上存在差异。
        • 专业能力:一些模型经过专门的训练和优化,在特定领域或任务上表现出更强的能力,例如在医疗、法律和金融等领域的应用。
      • 问题与挑战
        • 模型性能瓶颈:尽管模型在一些任务上取得了较好的成绩,但在处理复杂任务和极端情况时,仍存在性能瓶颈,需要进一步提高模型的能力。
        • 数据和任务适应性:模型的性能还受到数据质量和任务特点的影响,需要进一步优化数据收集和预处理方法,以提高模型在不同任务和数据上的适应性。

8 APPLICATIONS

该章节主要探讨了大语言模型(LLM)在研究社区和特定领域的应用,具体内容如下:

  1. LLM 对研究社区的影响
    • 经典 NLP 任务
      • 任务涵盖:包括单词 / 句子级任务、序列标记、信息提取和文本生成等。这些任务是自然语言处理的基础,对于理解和处理自然语言具有重要意义。
      • 模型表现
        • 优势方面:LLM 在这些任务中展现出了一定的优势。例如,在单词和句子级任务中,通过大规模无监督预训练,LLM 能够学习到丰富的语言知识和语义信息,从而在一些任务上表现优于小模型。
        • 挑战所在:尽管如此,小模型在某些特定任务上,通过专门的优化和针对目标任务的微调,仍然可以取得更好的性能,因为小模型能够更专注于特定任务的特征和需求。
    • 信息检索
      • 模型应用方式
        • 作为 IR 模型:LLM 可以作为信息检索(IR)模型的一部分,通过对文本的理解和语义分析,对检索结果进行重新排序,提高检索的准确性和相关性。
        • 增强 IR 模型:还可以用于增强现有 IR 模型,例如通过生成中间文本、扩展查询或文档等方式,为 IR 系统提供更多的信息和上下文,从而改善 IR 系统的性能。
      • 存在问题
        • 适应性问题:LLM 在信息检索中的应用还面临一些挑战,例如模型的高计算成本和对长文本处理的局限性,需要对模型进行适当的调整和优化,以适应 IR 系统的需求。
        • 数据利用问题:此外,现有 IR 系统主要基于文本检索,对于多媒体信息的利用不足,需要进一步探索如何将 LLM 与多媒体信息结合起来,开发更强大的多媒体检索系统。
    • 推荐系统
      • 模型应用形式
        • 作为推荐模型:LLM 可以直接作为推荐模型,通过对用户历史行为和偏好的学习,为用户生成个性化的推荐列表。
        • 增强推荐模型:也可以与传统的推荐模型相结合,通过提供额外的知识和信息,增强推荐模型的性能和准确性。
        • 作为推荐模拟器:还可以用于开发推荐模拟器,通过模拟用户的行为和偏好,为推荐系统的设计和评估提供支持。
      • 面临挑战
        • 理解用户行为:在推荐系统中,LLM 需要理解用户的行为和偏好,这对于大规模用户数据和复杂用户行为的处理是一个挑战。
        • 与推荐系统的融合:此外,将 LLM 与传统的推荐模型融合,需要解决模型之间的兼容性和协同工作问题,以充分发挥 LLM 的优势。
    • 多模态大语言模型
      • 训练过程
        • 训练阶段:多模态大语言模型(MLLM)的训练包括视觉语言对齐预训练和视觉指令调优两个阶段。在预训练阶段,通过对大规模图像 - 文本对的学习,使模型学习到视觉和语言之间的关联和映射关系;在调优阶段,通过对特定任务的指令和数据的学习,进一步优化模型的性能和能力。
        • 关键技术:关键技术包括图像编码器、语言模型和连接模块等,图像编码器用于对图像进行编码和特征提取,语言模型用于生成文本响应,连接模块用于将视觉和语言信息进行融合和对齐。
      • 评估方法
        • 评估视角:评估 MLLM 的性能主要从感知和认知两个视角进行,感知任务包括对图像内容的理解和分类,认知任务包括对图像的推理和问答等。
        • 评估范式:评估范式包括闭端和开放两种,闭端评估基于精确匹配答案,开放评估则更注重模型生成文本的质量和合理性。
        • 评估基准:评估基准包括 LVLM - eHub、Reform - Eval 和 MME 等,这些基准为 MLLM 的评估提供了重要的参考依据。
      • 发展要点
        • 数据质量:数据质量对 MLLM 的性能至关重要,包括图像和文本数据的质量、标注的准确性等。
        • 模型训练:模型训练需要平衡语言模型和视觉编码器的性能,同时要考虑如何更好地利用多模态信息进行学习和推理。
        • 安全对齐:安全和对齐是 MLLM 应用中需要关注的重要问题,包括模型生成内容的准确性、安全性和符合人类价值观等。
    • 知识图谱增强的 LLM
      • 增强方式
        • 检索增强:通过从知识图谱中检索相关知识,并将其作为提示的一部分提供给 LLM,从而增强 LLM 的知识理解和推理能力。
        • 协同增强:将 LLM 与知识图谱进行协同训练,使模型能够更好地利用知识图谱中的结构化信息进行学习和推理,提高模型的性能和准确性。
      • 未来方向
        • 知识源整合:未来需要探索如何统一整合不同类型的知识源,使 LLM 能够更好地利用各种知识来源进行学习和推理。
        • 知识更新:知识图谱中的知识可能会随着时间的推移而变得过时或不准确,需要探索如何及时更新知识图谱中的知识,以保证 LLM 的知识更新能力。
        • 内容真实性:利用知识图谱中的事实信息来对齐 LLM 生成的内容,减少幻觉的产生,提高内容的真实性和可靠性。
    • LLM 用于评估
      • 评估格式
        • 分数评估:通过使用可测量的指标对评估文本进行评分,例如通过比较不同文本之间的相似性或差异来进行评分。
        • 语言评估:通过对文本的语言表达、逻辑结构和语义理解等方面进行评估,提供定性的解释和建议。
      • 评估方法
        • 指令提示:通过向 LLM 提供特定的指令和提示,让模型对评估对象进行分析和评价,例如对文本的质量、观点的合理性等进行评价。
        • 多模态信息:结合图像、音频等多模态信息进行评估,提供更全面的评估视角。
      • 元评估:通过引入元评估基准,对 LLM 作为评估者的性能进行评估,例如评估 LLM 与人类偏好的一致性和评估的公平性等。
      • 存在问题
        偏见问题:LLM 在评估过程中可能会受到数据偏差和模型偏见的影响,导致评估结果不准确。
        理解能力:LLM 在理解自我生成的内容时可能存在困难,需要进一步提高模型的自我理解能力。
  2. LLM 在特定领域的应用
    • 医疗保健
      • 应用场景:包括生物信息提取、医疗建议咨询、心理健康分析和报告简化等。这些应用场景有助于提高医疗保健领域的效率和质量,为患者提供更好的服务。
      • 发展情况
        • 模型表现:LLM 在这些领域已经取得了一定的成果,例如能够准确提取生物信息、提供专业的医疗建议和分析心理健康状况等。
        • 问题挑战:然而,LLM 在医疗保健领域的应用也面临一些挑战,例如模型可能会生成错误的医疗信息、侵犯患者隐私等问题,需要加强数据安全和隐私保护措施。
    • 教育
      • 应用领域:在标准化测试、写作和阅读辅助等方面有广泛应用,能够为学生和教育工作者提供帮助。
      • 作用效果
        • 辅助学习:可以作为学习工具,为学生提供个性化的学习计划和辅导,帮助学生提高学习效率和成绩。
        • 教育评估:还可以用于教育评估,例如对学生的作文进行评分和分析,为教育教学提供反馈和改进建议。
      • 面临问题
        • 知识准确性:LLM 生成的内容可能存在知识错误,需要加强对模型的训练和优化,提高知识的准确性。
        • 教育伦理:在教育应用中,需要遵循教育伦理原则,避免过度依赖模型而忽视了学生的自主学习和思考能力。
    • 法律
      • 应用任务:包括法律文档分析、法律判断预测和法律文档写作等。这些应用任务有助于提高法律领域的效率和准确性,为法律工作者提供支持。
      • 发展现状
        • 模型能力:LLM 在法律领域已经展现出了一定的能力,能够对法律文档进行分析和理解,预测法律判断结果,并生成法律文档。
        • 挑战应对:然而,LLM 在法律领域的应用也面临一些挑战,例如法律知识的专业性和复杂性、模型的可解释性等问题,需要进一步加强法律专业知识的融合和模型的解释性研究。
    • 金融
      • 应用方向:在数值索赔检测、金融情感分析、金融命名实体识别和金融推理等方面有重要应用。
      • 应用效果
        • 决策支持:能够为金融决策提供支持,例如通过分析金融市场数据和用户行为,帮助金融机构做出更准确的决策。
        • 风险评估:还可以用于金融风险评估,及时发现和预警潜在的风险,保障金融市场的稳定。
      • 注意事项
        • 数据质量:金融数据的质量对 LLM 的性能至关重要,需要确保数据的准确性和完整性。
        • 模型安全性:金融领域对模型的安全性要求较高,需要加强模型的安全性评估和防护,防止模型被恶意攻击。
    • 科学研究
      • 应用阶段:在文献综述、科学假设生成、数据分析和论文写作等阶段都有重要作用。
      • 应用优势
        • 知识整合:能够整合大量的科学知识和信息,为科学研究提供全面的支持。
        • 创新启发:还可以启发科学家提出新的科学假设和研究思路,推动科学研究的发展。
      • 发展方向
        • 知识可信度:需要提高模型生成内容的知识可信度,减少错误和误导性信息的产生。
        • 与实验结合:未来还需要加强与实验数据的结合,提高模型的实证能力。

9 ADVANCED TOPICS

该章节主要探讨了大语言模型(LLM)的一些先进话题,包括长上下文建模、LLM 赋能的智能体、模型训练分析与优化、模型推理分析与优化、模型压缩、检索增强生成和幻觉等方面,具体内容如下:

  1. 长上下文建模
    • 背景需求:在实际应用场景中,对 LLM 处理长上下文的能力需求不断增加,如信息解析、提取和总结等任务。
    • 建模方法
      • 缩放位置嵌入
        • 方法概述:包括直接模型微调、位置插值、位置截断、基础修改和基础截断等多种方法,旨在适应模型到更长的上下文窗口。
        • 具体方法特点
          • 直接模型微调:通过在长文本上进行微调来适应长上下文,但训练过程缓慢,且需要大量的计算资源。
          • 位置插值:通过调整位置索引来避免在预训练中出现的分布旋转角度问题,从而有效地扩展上下文窗口。
          • 位置截断:通过截断较长的相对位置来满足最大训练长度的要求,同时保留注意力机制与相邻令牌的关系。
          • 基础修改:通过调整基础参数来改变位置嵌入的波长,从而适应更长的文本,增加基础参数可以更好地处理长文本,但可能会影响模型在训练长度内的性能。
          • 基础截断:根据基础范围对基础参数进行截断,以避免在较大位置索引处出现分布旋转角度问题。
      • 适应上下文窗口
        • 方法介绍:包括并行上下文窗口、Λ 形上下文窗口和令牌选择等方法,以缓解 Transformer 模型上下文窗口有限的问题。
        • 具体方法特点
          • 并行上下文窗口:采用分治策略处理输入文本,将文本分割成多个段进行独立编码,但无法区分段的顺序,可能会影响模型在某些任务上的性能。
          • Λ 形上下文窗口:根据注意力权重保留起始和最近的令牌,丢弃其他令牌,有助于处理长文本生成,但可能会导致上下文信息的丢失。
          • 令牌选择:通过选择相关的令牌来减少上下文窗口的限制,包括令牌级和块级选择方法,令牌级选择方法根据令牌的注意力得分选择最相关的令牌,块级选择方法则根据块的特征选择相关的块。
    • 数据要求
      • 数量效应:少量的长文本数据对于持续预训练扩展上下文窗口是足够的,但可能会影响模型处理短文本的能力。
      • 质量效应:长文本数据的质量对模型的长上下文建模能力至关重要,包括数据的连贯性、凝聚力和复杂性等指标,高质量的数据有助于提高模型的性能。
  2. LLM - 赋能的智能体
    • 总体框架
      • 组件构成:由记忆、规划和执行三个主要组件组成,记忆组件用于存储环境信息和支持决策,规划组件负责生成行动计划,执行组件负责执行计划。
      • 工作流程:智能体通过接收环境信息,将其写入短期记忆,然后进行处理和分析,生成行动计划,最后由执行组件执行计划,并根据环境反馈进行调整和优化。
    • 应用场景
      • 单智能体应用:包括通用任务解决和特定领域的自主智能体,如 AutoGPT、GPT - Engineer 和 XAgent 等,这些智能体能够自主完成用户请求,解决各种复杂任务。
      • 多智能体应用:多智能体系统通过协作工作来实现集体智能,包括合作型和竞争型多智能体系统,合作型多智能体系统通过通信协议进行协作,竞争型多智能体系统通过辩论等方式进行交互。
    • 发展挑战
      • 计算成本:随着 LLM 能力的增强,智能体应用的计算需求也大幅增加,包括通信网络的复杂性和计算资源的消耗等,需要优化通信协议和架构来提高效率。
      • 人类对齐:LLM 通常在互联网语料上训练,难以准确模拟在线讨论较少的角色和新兴角色,同时在对话场景中缺乏自我意识,需要改进训练方法和架构来增强角色模拟能力和自我意识。
      • 能力扩展:智能体需要具备工具学习等高级能力来完成复杂任务,但现有工具的质量和数量有限,需要进一步扩展工具的兼容性和可扩展性。
      • 稳健性和可信度:智能体系统需要具备对抗性输入的鲁棒性和可信度,包括使用对抗训练、数据增强等技术来提高系统的安全性,同时需要解决 LLM 的幻觉问题,以确保系统的可靠性。
  3. 分析和优化对于模型训练
    • 训练内存消耗估计
      • 模型状态成本:模型状态包括模型参数、梯度和优化器状态,在训练过程中通常占用大部分内存,使用混合精度训练时,模型参数和梯度通常存储为 16 位浮点数,优化器状态需要额外的 32 位浮点数存储空间。
      • 激活成本:激活是在反向传播过程中需要存储的中间状态,包括张量运算中的输入和输出等,激活成本与模型架构、批次大小和序列长度等因素有关。
      • 其他内存成本:还包括深度学习框架、分布式框架和中间结果等带来的内存消耗,如 PyTorch 框架的核心函数需要约 1GB 的 GPU 内存,分布式训练框架的内存消耗取决于优化和超参数设置。
    • 内存优化方法
      • 梯度检查点:通过在正向传播过程中保留激活值,并在反向传播时重新计算这些值来节省内存,虽然会增加一些计算开销,但可以有效减少内存使用。
      • ZeRO:DeepSpeed 库中的 ZeRO 技术通过优化数据并行性来减少内存冗余,提供了三种策略(ZeRO - 1、ZeRO - 2 和 ZeRO - 3)来分别处理模型状态、梯度和参数的存储,以降低内存消耗。
      • 卸载:DeepSpeed 的卸载技术可以将部分模型状态和计算开销卸载到 CPU 内存中,从而减少 GPU 内存需求,例如将梯度和优化器状态卸载到 CPU,只将模型参数保留在 GPU 上。
    • 效率优化方法
      • FlashAttention:一种针对注意力机制的优化方法,通过减少注意力计算中的中间结果存储和内存读写操作,提高了注意力计算的效率,从而降低了内存使用和激活内存消耗。
      • 序列并行:一种在预训练中用于处理长数据序列的并行技术,通过将序列分割并在多个设备上进行并行计算,减少了通信成本,提高了计算效率。
  4. 分析和优化对于模型推理
    • 推理效率分析
      • 分析指标:包括 GPU 性能指标(如计算能力和内存带宽)和模型效率指标(如计算量和数据传输量),通过比较模型的算术强度与 GPU 的最大算术强度,来判断推理过程是受内存带宽限制还是计算能力限制。
      • 瓶颈分析:在预填充阶段,模型的计算主要集中在线性变换和多头注意力等操作,这些操作的算术强度较高,通常是计算受限的;在解码阶段,模型的计算主要是线性变换和多头注意力,但算术强度较低,主要受内存传输速度限制,即存在内存墙问题。
    • 系统级优化
      • FlashAttention 和 Flash - 解码:FlashAttention 方法可以应用于预填充阶段,减少数据传输操作,提高算术强度;Flash - 解码则是基于 FlashAttention 的思想,对解码过程进行优化,特别是对于长序列,通过分割 KV 缓存并进行并行计算,提高了解码效率。
      • PagedAttention:通过引入内存分页管理方法,优化 KV 缓存和注意力计算,减少内存分配和复制操作,提高了内存利用效率和注意力计算的并行性。
      • 批量管理优化:包括连续批处理和动态 SplitFuse 等方法,通过调整批次大小和计算迭代方式,增加了计算吞吐量,减少了推理延迟。
    • 算法级优化
      • 推测解码:根据语言模型生成步骤的难度差异,使用较小的高效模型进行预生成,然后由较大的模型进行验证,通过这种方式可以加速推理速度,提高生成效率。
      • 级联推理:通过使用不同规模的模型来处理不同难度的请求,根据模型的输出结果进行判断,决定是否继续使用更强大的模型进行推理,从而提高了推理的准确性和效率。
      • 非自回归解码:与传统的自回归解码方法不同,非自回归解码方法一次性生成所有令牌,虽然生成质量可能不如自回归方法,但可以通过结合其他方法来加速推理过程。
      • 早期退出:根据模型在解码过程中的中间状态,判断是否满足早期退出条件,当满足条件时,模型可以直接使用中间计算结果生成令牌,从而提高了推理效率。
  5. 模型压缩
    • 量化方法
      • 方法概述:包括量化感知训练(QAT)和后训练量化(PTQ)两种方法,PTQ 又包括混合精度分解、突出权重保护、细粒度量化、平衡量化难度和逐层量化等多种技术。
      • 具体方法特点
        • 混合精度分解:针对隐藏激活中出现的大值异常,将激活值分为异常值和其他值进行单独处理,以减少量化误差。
        • 突出权重保护:通过识别和保护模型中对量化敏感的权重,减少量化对模型性能的影响。
        • 细粒度量化:采用更精细的量化方式,如对权重和激活进行不同粒度的量化,以提高量化精度。
        • 平衡量化难度:通过调整权重和激活之间的量化难度平衡,提高模型的量化性能。
        • 逐层量化:通过逐层优化量化参数,找到最优的量化权重,从而提高模型的压缩率和性能。
      • 其他量化方法:如高效微调增强量化和量化感知训练等方法,也在不断探索和发展中,以提高模型的压缩效率和性能。
    • 其他模型压缩方法
      • 模型蒸馏:通过将一个大型模型的知识转移到一个较小的模型中,实现模型的压缩,包括白盒方法和黑盒方法,白盒方法利用教师模型的中间状态和输出进行知识蒸馏,黑盒方法则仅使用教师模型的文本输出进行训练。
      • 模型修剪:通过删除模型中一些不重要的参数或结构,来减少模型的大小和计算量,包括结构化修剪和非结构化修剪两种方法,结构化修剪主要删除模型的某些组件,非结构化修剪主要删除单个权重或连接。
    • 开源库支持:介绍了一些用于模型压缩的开源库,如 Bitsandbytes、GPTQ - for - LLaMA、AutoGPTQ 和 llama.cpp 等,这些库提供了各种模型压缩功能和优化算法,方便用户进行模型压缩和部署。
  6. 检索增强生成
    • 基本工作流程
      • 流程步骤:包括上下文检索、提示构建和响应生成三个主要步骤。首先,从信息源中检索相关上下文信息;然后,将检索到的信息与任务描述一起构建提示;最后,将提示输入到 LLM 中,生成响应。
      • 关键技术
        • 上下文检索:采用词汇匹配和语义检索等方法,从大规模文档集合中检索相关的上下文信息,词汇匹配通过对文档进行分词和构建倒排索引来实现,语义检索则通过将文档映射到低维稠密向量,并使用近似最近邻搜索算法来查找相似的文档。
        • 提示构建:将检索到的上下文信息和任务描述整合到提示中,通过引入重排序模型或使用信息提取和文本压缩技术,选择最相关的信息,并构建简洁有效的提示。
        • 响应生成:将构建好的提示输入到 LLM 中,生成响应。在生成过程中,LLM 可以根据提示中的信息和自身的知识储备,生成符合任务要求的响应。同时,LLM 还可以对生成的响应进行自我检查和评估,确保响应的质量和准确性。
    • 改进策略
      • 检索方法改进
        • 文本粒度优化:通过选择合适的文本粒度(如命题)作为检索单位,减少检索结果中的无关信息,提高检索的准确性和相关性。
        • 查询扩展和重写:使用 LLM 对查询进行扩展和重写,添加补充信息和强调关键信息,以提高查询与文档的匹配度。
      • 检索结果精炼
        • 结果重排:对检索结果进行重排,根据结果与输入的相关性进行排序,将最相关的结果排在前面,提高结果的可用性。
        • 信息提取和压缩:使用信息提取和自动总结技术,从检索结果中提取最相关的信息,并进行压缩和整理,以减少结果的冗余度。
      • 迭代检索增强
        • 迭代检索:通过迭代地进行检索和生成过程,根据模型生成的结果不断调整检索策略和提示,以获取更全面和准确的信息。
        • 自适应检索增强:让 LLM 自主决定是否使用检索机制,并根据任务需求和生成结果进行自适应调整,提高检索增强生成的效果。
      • RAG 增强训练
        • 指令调优:通过设计针对检索上下文利用的指令数据,对 LLM 进行指令调优,提高 LLM 对检索信息的利用能力。
        • 预训练任务:在预训练阶段引入特殊的训练任务,如根据检索结果重建文档内容等,进一步增强 LLM 的检索和生成能力。
  7. 幻觉
    • 定义与分类
      • 定义:指 LLM 生成的内容与事实信息不一致的现象,包括内在幻觉(与输入文本冲突)和外在幻觉(无法被验证),以及实体错误、关系错误、不完整、过时、过度声称和无法验证等多种类型。
    • 产生原因
      • 训练数据
        • 数据质量:低质量的数据可能包含错误信息和偏见,导致模型学习到错误的知识,从而产生幻觉。
        • 数据分布:数据的分布不均匀可能导致模型在处理某些领域或任务时出现困难,容易产生幻觉。
      • 训练方法
        • 预训练:预训练方法如下一个令牌预测可能导致模型在处理长序列时出现注意力衰减,影响模型对长距离依赖关系的建模能力,从而产生推理错误和幻觉。
        • 后训练:后训练过程中的知识蒸馏和人类对齐等方法可能会引入一些问题,如合成数据中的幻觉可能会传播到训练后的模型中。
      • 响应生成
        • 提示设计:不当的提示设计可能导致模型忽略重要信息或产生误解,从而生成错误的内容。
        • 解码策略:一些解码策略如温度采样等可能会增加生成内容的多样性,但也可能导致模型生成一些与事实不符的内容。
    • 检测方法
      • 模型检测:利用强大的 LLM 自身的语言理解和生成能力,通过设计特定的提示和任务,让模型对生成的文本进行自我评估和检测,如 HaluEval 数据集就是用于评估 LLM 对幻觉的检测能力。
      • 不确定性检测:通过分析模型生成内容的不确定性,如令牌概率和对数几率等,来判断是否存在幻觉。例如,SelfCheckGPT 通过让模型多次回答相同的问题,来判断生成答案的一致性,从而检测幻觉的存在。
      • 工具检测:使用外部工具如搜索引擎、计算器等对模型生成的内容进行验证,如 FActScore 和 FacTool 等工具可以帮助检测模型生成内容的真实性。
    • 缓解方法
      • 人类对齐:通过使用强化学习从人类反馈(RLHF)等方法,让模型学习人类的偏好和价值观,从而减少幻觉的产生。例如,HaluEval 2.0 通过收集幻觉和非幻觉响应,训练奖励模型,来引导模型生成更准确的内容。
      • 检索增强生成:利用外部知识源进行检索增强,如 RARR 和 LLM - Augmenter 等方法,通过获取更多的背景信息和知识,来减少模型的幻觉。
      • 改进解码策略:通过改进解码策略,如 DoLa 和 ITI 等方法,利用模型内部的知识和信息来减少幻觉的产生,例如 DoLa 通过对比模型不同层的输出,来调整令牌的概率分布,从而提高生成内容的准确性。

10 CONCLUSION AND FUTURE DIRECTIONS

该章节主要对大语言模型(LLM)的研究进行了总结,并提出了未来的发展方向,具体内容如下:

  1. 研究总结
    • 研究内容回顾:本调查回顾了大语言模型的最新进展,涵盖了从预训练、适应、利用到评估等四个重要方面,介绍了关键概念、发现和技术。
    • 关键技术与发现
      • 技术要点:重点关注了 Transformer 架构在构建 LLM 中的有效性,以及各种技术手段,如模型缩放、训练优化、并行计算等对提升模型性能的重要作用。
      • 能力表现:LLM 在语言理解、知识推理、生成能力等方面展现出了强大的能力,能够解决各种复杂的自然语言处理任务。
      • 资源利用:总结了开发 LLM 所需的资源,包括数据、计算能力和算法等,并讨论了如何有效地利用这些资源进行模型训练和优化。
    • 成果贡献
      • 技术贡献:为人工智能领域的发展做出了重要贡献,推动了自然语言处理技术的进步,为开发更智能、更强大的语言模型提供了基础。
      • 应用影响:在实际应用中具有广泛的应用前景,如智能客服、智能写作、智能推荐等领域,能够提高工作效率和质量,为人们的生活和工作带来便利。
  2. 挑战与未来方向
    • 基础与原理方面
      • 基本原理探究:LLM 通过大规模无监督预训练学习语言知识,但目前对于其能力的基础原理仍缺乏深入理解,需要进一步揭示模型容量学习和选择的机制。
      • 模型缩放研究:模型缩放对模型性能的影响显著,但关于大模型与小模型行为之间的关系还需要更深入的理论分析,以更好地指导模型设计和训练。
      • 泛化能力探讨:模型的泛化能力是一个重要问题,需要探索如何使 LLM 能够更好地推广到新的任务和领域,而不仅仅局限于预训练数据所包含的知识。
      • 评估协议建立:数据污染对 LLM 性能评估的影响日益严重,需要建立合适的评估协议,以更准确地评估模型的能力和性能。
    • 模型相关方面
      • 模型架构优化
        • 架构改进需求:虽然 Transformer 架构在 LLM 中表现出色,但仍存在训练成本高和推理速度慢等问题,需要进一步开发更高效的模型架构。
        • 长上下文处理:处理长上下文信息是 LLM 面临的一个挑战,需要探索特定的架构适应或算法来增强对长上下文信息的建模和利用能力。
        • 模型多样性探索:目前的研究主要集中在训练解码器 - only Transformer 模型,需要更多地探索其他模型架构,以发现更适合 LLM 的模型结构。
      • 训练方面
        • 训练基础设施建设:建立以数据为中心的基础设施和训练流程对于优化 LLM 训练至关重要,需要更好地组织和管理数据收集、清洗、混合和课程安排等环节。
        • 训练优化挑战:训练大规模 LLM 面临着计算资源消耗大、数据质量敏感和训练技巧要求高等挑战,需要开发更系统、更经济的训练方法,如可预测缩放和代理模型训练等。
        • 持续训练与微调:持续训练和微调是优化 LLM 的重要手段,但目前在预训练数据准备和数据调度等方面还缺乏可重复性的工作,需要进一步探索有效的方法和策略。
        • 知识注入与编辑:如何有效地向 LLM 注入或编辑特定知识,如纠正过时的事实等,是一个重要的研究方向,需要开发更有效的技术手段。
    • 应用相关方面
      • 利用方式拓展
        • 提示工程优化:提示是利用 LLM 的重要方式,但目前对于如何设计有效的提示还缺乏深入的理解,需要进一步探索提示的设计原则和方法,以提高 LLM 的性能和效率。
        • 推理能力增强:虽然 LLM 在一些推理任务上取得了较好的成绩,但在复杂推理和多步推理方面仍存在不足,需要进一步增强 LLM 的推理能力,如通过改进思维链提示和规划等方法。
        • 检索增强应用:检索增强生成是一种有前途的应用方向,但目前在长上下文利用的有效性方面还存在挑战,需要进一步优化检索和生成过程,提高 LLM 的回答质量和准确性。
      • 安全与对齐问题
        • 安全风险应对:LLM 在实际应用中面临着安全挑战,如产生幻觉、生成有害内容等,需要加强安全研究,开发更有效的安全机制,如通过改进模型架构和训练方法来减少幻觉的产生,利用强化学习从人类反馈中优化模型的行为等。
        • 对齐方法改进:对齐方法是解决 LLM 与人类价值观和偏好不一致问题的关键,但目前的对齐方法还存在一些问题,如需要高质量的人类反馈数据、训练难度大等,需要进一步改进对齐方法,如开发更简单、更有效的优化算法。
        • 隐私保护考虑:在使用领域特定数据对 LLM 进行微调时,需要考虑隐私保护问题,如联邦学习等技术可以在保护隐私的前提下进行模型训练和优化。
    • 整体发展展望
      • 应用前景广阔:LLM 在解决各种任务方面具有巨大的潜力,有望在信息检索、推荐系统、智能客服、智能写作等领域得到广泛应用,推动人工智能技术的发展和应用。
      • 技术创新推动:未来需要不断进行技术创新,如改进模型架构、优化训练方法、增强推理能力等,以提高 LLM 的性能和效率,满足不断增长的应用需求。
      • 安全与责任并重:在发展 LLM 技术的同时,需要重视安全和责任问题,确保 LLM 的应用符合人类的价值观和利益,避免潜在的风险和危害。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/19484.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

服务器作业4

[rootlocalhost day04]# vim 10.sh [rootlocalhost day04]# cat 10.sh #通过shell脚本分析部署nginx网络服务 #1.接收用户部署的服务名称 read -p "服务名称:(nginx)" server if [ $server ! nginx ];then echo "输入的不是nginx,脚本退出" exit 1…

Linux基础(二十)——程序管理与 SELinux 初探

程序管理与 SELinux 初探 1. 程序和进程2.程序调用流程3. 一个bash中的多任务工作管理4.进程管理4.1 查询进程4.2 进程的执行顺序 5.系统资源的观察6. /proc/* 代表的意义7.SELinux 1. 程序和进程 2.程序调用流程 程序与进程之间的关系: 从上图可以看出&#xff0…

vue3 路由写法及传参方式 !超详细

Vue Router 是 Vue.js 官方的路由管理器。它主要用于单页面应用程序(SPA, Single Page Application)中,帮助解决页面导航、组件复用等问题。 基本的使用 1.router配置文件代码 创建一个ts文件,用来写路由器 // 创建一个路由器,并暴露出去 …

MATLAB绘制正四面体、正六面体

MATLAB绘制正四面体、正六面体 clc;close all;clear all;warning off;% clear all rand(seed, 100); randn(seed, 100); format long g;% 正四面体(Tetrahedron) % 顶点坐标(正四面体的顶点位于一个正方体的对角线上,并经过适当缩…

一文了解 inductive bias(归纳偏好)

🍉 CSDN 叶庭云:https://yetingyun.blog.csdn.net/ 归纳偏好(Inductive Bias)是机器学习中的一个非常基础但又非常重要的概念。为了更好地理解它,我们先从 “归纳” 和 “偏好” 这两个词开始讲解。 什么是归纳&#x…

leetcode844:比较含退格的字符串

题干 题目分析 两个字符串要进行比较,#代表着回车,也就是删除之前的字符。 若按照遍历的惯例,选择从前到后遍历,但这样没法判断,因为#之前被删除的部分是不需要相同的。 因此考虑到#的含义,我们应该选择从…

【Python爬虫实战】从入门到精通:全面解析IP代理池的原理与实战应用

🌈个人主页:易辰君-CSDN博客 🔥 系列专栏:https://blog.csdn.net/2401_86688088/category_12797772.html ​ 目录 前言 一、IP代理池 (一)基本概念 (二)主要功能 (三…

c++_day2

第一题: 继续为 mystring类编写以下方法: 1:析构函数,释放buf指向的堆空间 2:编写 append(const mystring r) 为当前字符串尾部,拼接新的字符串r 3:编写 isEqual(const mystring r) 判断当前字符串和 字符串…

机器学习基础06

目录 1.梯度下降 1.1梯度下降概念 1.2梯度下降公式 1.3学习率 1.4实现梯度下降 1.5API 1.5.1随机梯度下降SGD 1.5.2小批量梯度下降MBGD 1.6梯度下降优化 2.欠拟合过拟合 2.1欠拟合 2.2过拟合 2.3正则化 2.3.1L1正则项(曼哈顿距离) 2.3.2…

基于一种基于OCR图像识别技术的发票采集管理系统及方法

本发明涉及了一种基于OCR图像识别技术的发票采集管理系统及方法,该系统的发票信息采集单元采集发票图片信息数据,OCR图像识别单元基于OCR图像识别技术并结合人工智能深度学习算法对发票图片信息数据进行识别读取以获得OCR图像识别结果,发票信…

Windows注册表基础学习

修改注册表让cmd ascii输出有颜色 reg add HKCU\Console /v VirtualTerminalLevel /t REG_DWORD /d 1 如何打开注册表编辑器 运行regedit 按下"Winr"组合键,在打开的"运行"对话框中输入"regedit",单击"确定"…

CarSim复制数据注意事项

更正,上图中提到的“数据集”应该是“数据类别”,可以理解为数据集的一个子集。

Spring:注解开发依赖注入

Spring为了使用注解简化开发,并没有提供构造函数注入、setter注入对应的注解,只提供了自动装配的注解实现。 直接上代码: 1,添加一个配置类SpringConfig Configuration ComponentScan("com.itheima") //PropertySourc…

springboot006基于SpringBoot的网上订餐系统(源码+包运行+LW+技术指导)

项目描述 临近学期结束,还是毕业设计,你还在做java程序网络编程,期末作业,老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据疫情当下,你想解决的问…

【Linux】learning notes(2)

文章目录 1、快捷键2、专业名词2.1、驱动2.2、内核2.3、U-Boot2.4、Dynamic Library and Static Library2.5、SDK / NDK / UDK 3、BUG 前文链接: 【Linux】learning notes 1、快捷键 在文件夹里,ctrll,选定文件夹路径 Linux下的ctrl常用组合…

商业银行核心系统单元化改造的研究与思考

随着金融科技的快速发展,银行核心系统面临着更高的处理能力、扩展能力及业务连续性的要求与挑战。为应对这些挑战,许多银行开始考虑对其核心系统进行单元化改造。本文首先分析了传统银行核心系统存在的问题以及单元化改造的必要性,然后详细阐…

指针

内存和地址 内存 我们知道计算上CPU(中央处理器)在处理数据的时候,需要的数据是在内存中读取的,处理后的数据也会放回内存中,那我们电脑上的哪些内存空间如何高效的管理呢? 其实也是把内存划分为一个个的…

强大的正则表达式——Medium

由上一篇文章《Easy》中提到过的: 还是直接让AI写个python脚本生成难度2的正则表达式,但是生成的正则表达式无法成功获取到flag: 这里了解了一下相关知识,字符串形式的整数对常数求模是可以用有限状态机来实现的。对于二进制数字来…

科技改变工作方式:群晖NAS安装内网穿透实现个性化办公office文档分享(1)

文章目录 前言1. 本地环境配置2. 制作本地分享链接3. 制作公网访问链接4. 公网ip地址访问您的分享相册5. 制作固定公网访问链接 前言 本文将详细介绍如何在群晖NAS上安装Synology Office和Synology Drive Server,并利用Cpolar内网穿透工具为本地文档配置固定的公网…

android:taskAffinity 对Activity退出时跳转的影响

android:taskAffinity 对Activity跳转的影响 概述taskAffinity 的工作机制taskAffinity对 Activity 跳转的影响一个实际的开发问题总结参考 概述 在 Android 开发中,任务栈(Task)是一个核心概念。它决定了应用程序的 Activity 如何相互交互以…