人大译A Survey of Large Language Models
这篇论文全面回顾了大型语言模型 (LLM) 的最新进展,重点关注其发展背景、关键发现和主流技术。文章主要围绕 LLM 的四个主要方面展开:
自从 1950 年图灵测试被提出以来,人类一直在探索机器掌握语言智能的方法。语言本质上是一种受语法规则支配的复杂、精细的人类表达系统,这使得开发能够理解和掌握语言的强大人工智能 (AI) 算法成为一项重大挑战。在过去二十年里,语言建模作为一种主要方法,被广泛研究用于自然语言处理 (NLP) 中的语言理解和生成,从统计语言模型发展到神经网络语言模型。最近,预训练语言模型 (PLM) 通过在大型语料库上预训练 Transformer 模型而提出,在解决各种 NLP 任务方面展现出强大的能力。由于研究人员发现模型缩放可以提高模型容量,他们进一步通过增加参数规模来研究缩放效应,甚至将参数规模扩大到更大的规模。有趣的是,当参数规模超过一定水平时,这些扩大的语言模型不仅在性能上取得了显著提升,而且还展现出一些小型语言模型(例如 BERT)所不具备的特殊能力(例如上下文学习)。为了区分不同参数规模的语言模型,研究界为包含数十亿或数百亿参数的 PLM 提出了“大型语言模型 (LLM)”这一术语。最近,LLM 的研究在学术界和工业界都取得了重大进展,其中最引人注目的是 ChatGPT(基于 LLM 开发的强大 AI 聊天机器人)的发布,这引起了社会的广泛关注。LLM 的技术进步对整个 AI 社区产生了重要影响,这将彻底改变我们开发和使用 AI 算法的方式。考虑到这种快速的技术进步,在本调查中,我们通过介绍背景、关键发现和主流技术来回顾 LLM 的最新进展。特别是,我们专注于 LLM 的四个主要方面,即预训练、适应微调、利用和容量评估。此外,我们还总结了开发 LLM 的可用资源,并讨论了未来方向的剩余问题。本调查提供了关于 LLM 的最新文献综述,可以为研究人员和工程师提供有用的资源。
大模型要权衡尺度理论与涌现能力emergent的关系。尺度理论 Scaling law 是模型能力、数据尺寸之间的渐进关系,例如KM scaling law与Chinchilla scaling law。其中大模型涌现能力包括情景学习、指令调优、逐步微调(代表方法:思维链)
大模型关键技术:可伸缩性、训练、能力引导、对其调优、工具操作(计算器、搜索引擎、开发的APP)
工程方面。OpenAI采用迭代部署策略[134],按照五个阶段的开发和部署生命周期来开发模型和产品,旨在有效降低模型使用的潜在风险。 paper:Lessons learned on language model safety and misuse
GPT技术演进:从GPT1到4
总结公共api线上模型、指令微调与对其数据集
我们首先在4.1节中讨论数据的收集和处理,然后在4.2节中介绍常用的模型架构,最后在4.3节中介绍稳定有效地优化llm的训练技术。
数据收集、数据预处理(质量过滤、去重、隐私删减、token化)、数据调度(多数据源数据混合配比、数据课表控制数据训练顺序)、
架构(编码器-解码器、因果解码器和前缀解码器)使用混合专家MoE扩展参数;
Transformer架构
优化方法(批量训练、学习率、优化器 、训练稳定性)、模型训练建议(并行、ZeRO、精度浮点训练)、其他方法(可预测性扩展、模型评估)
分为指令微调与对齐微调,以下为指令微调!!!
首先需要收集或构造指令格式化的实例。 然后,我们使用这些格式化的实例以监督学习的方式对LLMS进行微调
(1)格式化现有数据集。
(2)格式化人类需求。 它们将一条指令(即收集的用户查询)和期望的输出(即人工编写的答案)作为训练实例进行配对。
(3)关键因素:指令规模、指令格式、CoT数据结合。最近,为了引出LLM 的分步推理能力,一些研究[69]提出在一些推理数据集(如算术推理)中加入思维链(CoT)示例。研究表明,具有CoT和非CoT示例的微调llm可以在各种推理任务中获得良好的性能,包括那些需要多跳推理能力的任务(例如,常识性问答和算术推理)以及那些不需要这种推理方式的任务(例如,情感分析和抽取式问答)。
不同类型指令集对LLM指令微调效果的影响 :
增加复杂度(任务需求或推理步骤),提高模型理解复杂指令
提高指令数据集的主题多样性
平衡指令难度(指令复杂度评估)
这四种参数高效微调方法各有优缺点,适用于不同的场景:
方法 | 详细方法 | 优点 | 缺点 | 适用场景 |
---|---|---|---|---|
Adapter Tuning | Transformer 层中添加微调模块 | 参数高效,可自定义适配器 | 适配器设计需要经验 | 想要自定义适配器功能的场景 |
Prefix Tuning | Transformer 层前添加微调模块 | 参数高效,训练稳定 | 需要设计MLP函数,可能需要额外的数据 | 需要增强特定任务性能的场景 |
Prompt Tuning | 输入添加提示向量 | 参数最少,简单易用 | 选择一个性能良好的底层模型 | 快速微调场景 |
LoRA | 对所选权重矩阵的密集层更新,并添加低秩自适应约束 | 减少模型参数与内存 | 需要选择合适的低秩 | 大模型 |
QLoRA | 引入了16位网络节点,量化为4位,并采用分页机制交换二进制数据 | 以处理内存有限的大型模型 | 有一些信息损失,但它被认为是可以接受 | |
全量微调 | 对预训练模型的全部参数进行微调 | 完全适应特定任务或领域 | 计算资源高,数据量大 | 大型模型 |
Low-Rank Adaptation
量化通常是指从浮点数到整数的映射过程,两种量化方式
四种PTQ方法:
方法 | 优点 | 缺点 | |
---|---|---|---|
混合精度分解 | 离群值的特征维度分开计算INT8 | ||
细粒度量化 | 权重和激活值分别进行量化ZeroQuant | 可获得最低的量化误差 | 计算量大,时间长 |
平衡量化难度 | 缩放因子来平衡权重和激活值的量化难度SmoothQuant | 可以减少量化误差,同时降低计算量 | 缩放因子的选择需要仔细调整 |
分层量化 | 对每一层的权重进行量化,并最小化层重建损失GPTQ、AWQ | 可以有效地优化量化目标,适用于大型模型 | 计算量较大,需要特定的优化方法 |
高效微调增强量化 | 加入适配器QLoRA | 可以获得与高精度模型相当的性能,同时减少内存占用 | 需要额外的训练数据 |
量化意识培训 | 无数据蒸馏方法,压缩权重、激活以及键值缓存 | 4位激活量化效果差 |
经验:
。。。
https://github.com/qwopqwop200/GPTQ-for-LLaMa可以基于GPTQ算法对不同的llama模型进行量化
关键因素(任务描述、输入数据、情景信息、提示风格)
设计原则(清晰表达任务目标、分解成子任务、提供少量示例、利用模型规定格式)
提示词优化:
ICL 公式:ICL 使用格式化的自然语言提示,包含任务描述和/或少量示例。
示例设计:示例选择( 启发式方法和基于 LLM )、格式、顺序( 相似度、熵或信息论 )
基本 CoT 提示方法:CoT 提示将中间推理步骤添加到示例中,引导 LLM 逐步生成 CoT 和答案。
改进策略:
CoT 提示何时有效:对大型模型和需要逐步推理的任务更有效。
LLM 为什么可以进行 CoT 推理:可能源于代码训练或提示设计。
整体框架:包括任务规划器、计划执行器和环境。
基本能力:语言生成、知识利用(闭卷问答、开放卷问答(使用检索器与大模型一起训练)、知识完整性)、复杂推理
高级能力:
基准与评估方法:
LLM三种类型:基础llm(预训练的模型检查点),微调llm(指令或校准微调模型检查点),以及专门的llm(针对某些特定任务或领域的适应性模型检查点)
微调LLM评分:以人评估、以模型评估
三种评估方法
LLM 对研究社区的影响:
LLM 对特定领域的影响:
总结: LLM 的应用前景广阔,但也面临着挑战,例如准确性、偏见、安全性和隐私等问题。未来需要开发更有效的技术来提高 LLM 的能力,并确保其安全可靠地应用于现实世界。
LLM 的基础和原理:
LLM 的模型架构:
LLM 的模型训练:
LLM 的模型利用:
LLM 的安全性和对齐:
LLM 的应用和生态系统:
总结: LLM 是一项具有巨大潜力的技术,但需要解决许多挑战才能实现其全部潜力。未来需要持续探索和改进 LLM 的各个方面,以确保其安全可靠地应用于现实世界,并推动 AI 的发展。