A Survey of LLM
人大译A Survey of Large Language Models
这篇论文全面回顾了大型语言模型 (LLM) 的最新进展,重点关注其发展背景、关键发现和主流技术。文章主要围绕 LLM 的四个主要方面展开:
1引言
自从 1950 年图灵测试被提出以来,人类一直在探索机器掌握语言智能的方法。语言本质上是一种受语法规则支配的复杂、精细的人类表达系统,这使得开发能够理解和掌握语言的强大人工智能 (AI) 算法成为一项重大挑战。在过去二十年里,语言建模作为一种主要方法,被广泛研究用于自然语言处理 (NLP) 中的语言理解和生成,从统计语言模型发展到神经网络语言模型。最近,预训练语言模型 (PLM) 通过在大型语料库上预训练 Transformer 模型而提出,在解决各种 NLP 任务方面展现出强大的能力。由于研究人员发现模型缩放可以提高模型容量,他们进一步通过增加参数规模来研究缩放效应,甚至将参数规模扩大到更大的规模。有趣的是,当参数规模超过一定水平时,这些扩大的语言模型不仅在性能上取得了显著提升,而且还展现出一些小型语言模型(例如 BERT)所不具备的特殊能力(例如上下文学习)。为了区分不同参数规模的语言模型,研究界为包含数十亿或数百亿参数的 PLM 提出了“大型语言模型 (LLM)”这一术语。最近,LLM 的研究在学术界和工业界都取得了重大进展,其中最引人注目的是 ChatGPT(基于 LLM 开发的强大 AI 聊天机器人)的发布,这引起了社会的广泛关注。LLM 的技术进步对整个 AI 社区产生了重要影响,这将彻底改变我们开发和使用 AI 算法的方式。考虑到这种快速的技术进步,在本调查中,我们通过介绍背景、关键发现和主流技术来回顾 LLM 的最新进展。特别是,我们专注于 LLM 的四个主要方面,即预训练、适应微调、利用和容量评估。此外,我们还总结了开发 LLM 的可用资源,并讨论了未来方向的剩余问题。本调查提供了关于 LLM 的最新文献综述,可以为研究人员和工程师提供有用的资源。
2概述
大模型要权衡尺度理论与涌现能力emergent的关系。尺度理论 Scaling law 是模型能力、数据尺寸之间的渐进关系,例如KM scaling law与Chinchilla scaling law。其中大模型涌现能力包括情景学习、指令调优、逐步微调(代表方法:思维链)
大模型关键技术:可伸缩性、训练、能力引导、对其调优、工具操作(计算器、搜索引擎、开发的APP)
工程方面。OpenAI采用迭代部署策略[134],按照五个阶段的开发和部署生命周期来开发模型和产品,旨在有效降低模型使用的潜在风险。 paper:Lessons learned on language model safety and misuse
GPT技术演进:从GPT1到4
3LLM的资源
总结公共api线上模型、指令微调与对其数据集
我们首先在4.1节中讨论数据的收集和处理,然后在4.2节中介绍常用的模型架构,最后在4.3节中介绍稳定有效地优化llm的训练技术。
4预训练
数据的收集和处理:
数据收集、数据预处理(质量过滤、去重、隐私删减、token化)、数据调度(多数据源数据混合配比、数据课表控制数据训练顺序)、
常用的模型架构:
架构(编码器-解码器、因果解码器和前缀解码器)使用混合专家MoE扩展参数;
Transformer架构
- 四个主要配置(归一化、位置嵌入、激活函数以及注意和偏置);
- 有两种常用的预训练任务(语言建模和去噪自编码);
- 长上下文建模(扩展位置编码、适应上下文窗口);
- 模型解码策略(贪婪搜索、随机采样)
优化llm的训练技术:
优化方法(批量训练、学习率、优化器 、训练稳定性)、模型训练建议(并行、ZeRO、精度浮点训练)、其他方法(可预测性扩展、模型评估)
5大模型自适应微调
分为指令微调与对齐微调,以下为指令微调!!!
首先需要收集或构造指令格式化的实例。 然后,我们使用这些格式化的实例以监督学习的方式对LLMS进行微调
1、格式化实例构造:
(1)格式化现有数据集。
(2)格式化人类需求。 它们将一条指令(即收集的用户查询)和期望的输出(即人工编写的答案)作为训练实例进行配对。
(3)关键因素:指令规模、指令格式、CoT数据结合。最近,为了引出LLM 的分步推理能力,一些研究[69]提出在一些推理数据集(如算术推理)中加入思维链(CoT)示例。研究表明,具有CoT和非CoT示例的微调llm可以在各种推理任务中获得良好的性能,包括那些需要多跳推理能力的任务(例如,常识性问答和算术推理)以及那些不需要这种推理方式的任务(例如,情感分析和抽取式问答)。
2、 指令调谐策略 (重要方面):
- 平衡数据分布。 由于指令调优涉及不同任务的混合,因此在调优过程中平衡不同任务的比例是很重要的。
- 结合指令调优和预训练。 为了使优化过程更加有效和稳定,Opt-IML在指令优化过程中加入了预训练数据(大规模数据),这可以看作是模型优化的正则化。
- 进行多阶段指令微调。使用**大规模任务格式的指令(具体明确任务描述)**和日常聊天指令(日常随意对话)。
- 其他技巧:多回合聊天数据的有效训练。自我认同(指令前制定人物关系)。多个示例连接到单个序列中以接近最大长度。
3、实证分析
不同类型指令集对LLM指令微调效果的影响 :
增加复杂度(任务需求或推理步骤),提高模型理解复杂指令
提高指令数据集的主题多样性
平衡指令难度(指令复杂度评估)
三、参数效率模型自适应
这四种参数高效微调方法各有优缺点,适用于不同的场景:
方法 | 详细方法 | 优点 | 缺点 | 适用场景 |
---|---|---|---|---|
Adapter Tuning | Transformer 层中添加微调模块 | 参数高效,可自定义适配器 | 适配器设计需要经验 | 想要自定义适配器功能的场景 |
Prefix Tuning | Transformer 层前添加微调模块 | 参数高效,训练稳定 | 需要设计MLP函数,可能需要额外的数据 | 需要增强特定任务性能的场景 |
Prompt Tuning | 输入添加提示向量 | 参数最少,简单易用 | 选择一个性能良好的底层模型 | 快速微调场景 |
LoRA | 对所选权重矩阵的密集层更新,并添加低秩自适应约束 | 减少模型参数与内存 | 需要选择合适的低秩 | 大模型 |
QLoRA | 引入了16位网络节点,量化为4位,并采用分页机制交换二进制数据 | 以处理内存有限的大型模型 | 有一些信息损失,但它被认为是可以接受 | |
全量微调 | 对预训练模型的全部参数进行微调 | 完全适应特定任务或领域 | 计算资源高,数据量大 | 大型模型 |
Low-Rank Adaptation
四、内存效率模型自适应
量化通常是指从浮点数到整数的映射过程,两种量化方式
- 量化感知训练(QAT)(需要额外的全模型再训练)
- 训练后量化(PTQ)(不需要模型再训练)。更受欢迎
四种PTQ方法:
方法 | 优点 | 缺点 | |
---|---|---|---|
混合精度分解 | 离群值的特征维度分开计算INT8 | ||
细粒度量化 | 权重和激活值分别进行量化ZeroQuant | 可获得最低的量化误差 | 计算量大,时间长 |
平衡量化难度 | 缩放因子来平衡权重和激活值的量化难度SmoothQuant | 可以减少量化误差,同时降低计算量 | 缩放因子的选择需要仔细调整 |
分层量化 | 对每一层的权重进行量化,并最小化层重建损失GPTQ、AWQ | 可以有效地优化量化目标,适用于大型模型 | 计算量较大,需要特定的优化方法 |
高效微调增强量化 | 加入适配器QLoRA | 可以获得与高精度模型相当的性能,同时减少内存占用 | 需要额外的训练数据 |
量化意识培训 | 无数据蒸馏方法,压缩权重、激活以及键值缓存 | 4位激活量化效果差 |
经验:
。。。
https://github.com/qwopqwop200/GPTQ-for-LLaMa可以基于GPTQ算法对不同的llama模型进行量化
6利用(使用)
提示词
关键因素(任务描述、输入数据、情景信息、提示风格)
设计原则(清晰表达任务目标、分解成子任务、提供少量示例、利用模型规定格式)
提示词优化:
- 离散提示优化: 基于梯度的方法(最大化似然)、基于强化学习的方法、基于编辑的方法和基于 LLM 的方法(LLM生成)
- 连续提示优化: 基于大量数据的提示学习和基于稀缺数据的提示迁移(原任务提示词迁移)
上下文学习
ICL 公式:ICL 使用格式化的自然语言提示,包含任务描述和/或少量示例。
示例设计:示例选择( 启发式方法和基于 LLM )、格式、顺序( 相似度、熵或信息论 )
思维链
基本 CoT 提示方法:CoT 提示将中间推理步骤添加到示例中,引导 LLM 逐步生成 CoT 和答案。
改进策略:
- 更好提示词设计
- 增强CoT生成(采样与集成方法相结合、验证方法)
- 推理结构扩展(方便纠正中心思想、前瞻和回溯等探索)
- 树状结构ToT并行推理(可以并行探索多个推理路径,并进一步支持前瞻和回溯的操作)。
- 图状结构GoT(产生新的思维时进一步利用其他推理路径的思维)
CoT 提示何时有效:对大型模型和需要逐步推理的任务更有效。
LLM 为什么可以进行 CoT 推理:可能源于代码训练或提示设计。
复杂工作任务规划
整体框架:包括任务规划器、计划执行器和环境。
- 计划生成
- 反馈获取(内部反馈:来自 LLM 本身,例如评估计划质量或中间结果;外部反馈:来自工具或其他环境,例如代码解释器或虚拟世界)
- 计划细化(推理:从反馈中提取关键信息;回溯:使用搜索算法改进计划;记忆:使用长期记忆来处理长期任务)
7能力与评估
基本能力:语言生成、知识利用(闭卷问答、开放卷问答(使用检索器与大模型一起训练)、知识完整性)、复杂推理
高级能力:
- 人类对齐:使用对抗性问答、偏见检测和毒性检测数据集评估模型的符合人类价值观的能力。
- 与外部环境的交互:使用虚拟家庭、电子商务网站和开放世界环境评估模型的交互能力。
- 工具操作:使用搜索引擎、计算器和模型接口评估模型的工具操作能力。
基准与评估方法:
LLM三种类型:基础llm(预训练的模型检查点),微调llm(指令或校准微调模型检查点),以及专门的llm(针对某些特定任务或领域的适应性模型检查点)
微调LLM评分:以人评估、以模型评估
三种评估方法
- 基于基准的方法:使用现有的基准评估 LLM 的性能,例如 MMLU、BIG-bench 和 HELM。
- 基于人类的方法:使用人类评估 LLM 的性能,例如对抗性问答、偏见检测和毒性检测,以及自然语言生成评估,这种方法可以更直接地反映 LLM 在真实场景中的表现,但成本高且耗时长。
- 基于模型的方法:使用 LLM 评估 LLM 的性能,例如 AlpacaEval 和 MT-bench,这种方法可以减少对人类评估的依赖,提高效率,但可能存在模型偏差问题。
8应用
LLM 对研究社区的影响:
- 经典 NLP 任务: LLM 在词/句级任务、序列标注、信息提取和文本生成等经典 NLP 任务中展现出强大的能力,甚至优于经过微调的小模型。然而,LLM 在处理复杂语义关系和低资源语言任务方面仍然存在挑战。
- 信息检索: LLM 可以作为信息检索模型,通过重新排序检索到的候选文档来提高检索质量。此外,LLM 也可以增强现有的检索模型,例如通过生成查询或扩展文档来改进相关性评估。
- 推荐系统: LLM 可以作为推荐模型,通过指令微调来实现个性化推荐。LLM 也可以增强推荐模型,例如通过推断用户意图或编码用户和物品的特征来提高推荐质量。此外,LLM 还可以模拟用户行为,开发推荐模拟器。
- 多模态大语言模型 (MLLM): MLLM 可以处理文本以外的模态,例如图像,并通过视觉指令微调来提高性能。然而,MLLM 仍然面临幻觉生成和安全性的挑战。
- 知识增强 LLM: 知识图谱 (KG) 可以增强 LLM 的性能,例如通过检索和利用 KG 中的知识来提高问答和知识补全任务的准确性。此外,LLM 也可以帮助构建和扩展 KG。
- 基于 LLM 的智能体: LLM 可以作为智能体的核心计算单元,通过记忆、规划和执行等组件来实现自主任务解决。LLM 智能体可以应用于单智能体和多智能体场景,例如自主代理和协作代理。
- LLM 用于评估: LLM 可以作为自动评估器,例如通过评分或生成语言反馈来评估文本质量。LLM 评估方法包括基于提示的评估、多模型协作和微调专门化的评估模型。然而,LLM 评估仍然存在偏差和局限性。
LLM 对特定领域的影响:
- 医疗保健: LLM 可以用于生物信息提取、医疗咨询、心理健康分析和报告简化等任务。然而,LLM 也可能生成虚假信息,并引发隐私问题。
- 教育: LLM 可以作为学生水平的标准化考试解答者,并帮助学生进行写作和阅读。然而,LLM 也可能导致剽窃、AI 内容偏见和过度依赖等问题。
- 法律: LLM 可以用于法律文件分析、法律判决预测和法律文件写作等任务。然而,LLM 的应用也引发了法律挑战,例如版权问题、个人信息泄露和偏见歧视。
- 金融: LLM 可以用于数值索赔检测、金融情绪分析和金融实体识别等任务。LLM 也需要在大规模金融语料库上进行持续预训练来提高性能。
- 科学研究: LLM 可以帮助进行文献综述、研究想法生成、数据分析和研究论文写作等任务。LLM 也可以协助自动论文审查过程。
总结: LLM 的应用前景广阔,但也面临着挑战,例如准确性、偏见、安全性和隐私等问题。未来需要开发更有效的技术来提高 LLM 的能力,并确保其安全可靠地应用于现实世界。
9结论及未来发展方向
LLM 的基础和原理:
- 需要揭示 LLM 能力的基础原理,例如模型容量学习、缩放效应和泛化能力。
- 探索 LLM 的信息建模能力,并分析数据污染问题。
LLM 的模型架构:
- 改进 Transformer 架构,降低训练成本和提高推理效率。
- 开发新的模型架构和算法来处理长上下文信息。
- 探索替代模型架构,例如对 decoder-only Transformer 的限制。
LLM 的模型训练:
- 建立数据中心的训练流程,并开发更有效的训练方法。
- 解决灾难性遗忘和任务专业化问题,并开发有效的微调策略。
- 探索持续的预训练和微调方法,并改进预训练数据准备和数据调度。
LLM 的模型利用:
- 进一步探索提示设计、优化和有效查找有效提示的方法。
- 探索降低 LLM 推理成本的方法,例如高效调优和量化。
- 探索检索增强生成,以提高知识边界和问答能力。
LLM 的安全性和对齐:
- 改进对齐方法,例如 RLHF,并探索更高效的标注方法和简化的优化算法。
- 采用红队测试和联邦学习等技术来提高模型安全性。
- 关注隐私问题,例如在微调时使用领域特定数据。
LLM 的应用和生态系统:
- 推动信息检索和推荐系统等技术的发展。
- 开发更智能的系统(例如自主 AI 代理)来解决现实世界中的复杂任务。
- 建立 LLM 应用生态系统,例如 OpenAI 的 GPT Store。
- 探索 AGI 的发展,并关注 AI 安全性问题。
总结: LLM 是一项具有巨大潜力的技术,但需要解决许多挑战才能实现其全部潜力。未来需要持续探索和改进 LLM 的各个方面,以确保其安全可靠地应用于现实世界,并推动 AI 的发展。