赞
踩
InternLM2 技术报告
报告链接
https://arxiv.org/pdf/2403.17297.pdf
读前感:
其实很纠结是否要读这份报告, 首先会花费很多时间,其次是个人能力不足会不会有很多专业的内容无法读懂。但最后还是下决心了。虽然很慢也很痛苦,但学习高质量的论文应该是更高效的方式。下面笔记只是论文的结构和基本轮廓,详细内容请各位自行查询。砥砺前行,感谢各路大神的支持和帮助。
读后感:
花了2天时间,借助AI通篇看了一下这篇文章。 感觉大部分内容看不懂,具体的技术特性就略过了。 收货是对大模型的训练、评估过程有了一个初步的轮廓,建立一个宏观的认知。
该文件介绍了InternLM2,这是一个开源的大型语言模型(LLM),在各种评估和基准测试中超越了之前的模型,如ChatGPT和GPT-4。论文强调了InternLM2精心设计的预训练过程,包括准备各种类型的数据,如文本、代码和长上下文数据。该模型能够有效地捕捉长期依赖关系,从4k个令牌开始训练,逐步增加到32k个令牌,在"针在干草堆"测试中表现出色。InternLM2还结合了监督微调(SFT)和一种新颖的基于人类反馈的条件在线强化学习(COOL RLHF)策略,以解决人类偏好的冲突和奖励操纵。通过发布不同训练阶段和大小的模型,论文旨在为社区提供模型演化的洞见。
第一章介绍了大型语言模型(LLM)如ChatGPT和GPT-4的发展,引发了关于人工通用智能(AGI)可能出现的讨论。它还讨论了在开源模型中复制专有LLM进步的挑战,并介绍了InternLM2作为一种新的开源LLM,在各种评估和创新预训练技术中超越了以前的模型。论文详细介绍了InternLM2的精心预训练过程,突出了它捕捉长期依赖关系的能力,以及在"大海捞针"测试等具有挑战性的测试中的表现。此外,InternLM2使用监督微调(SFT)和一种新颖的有条件在线强化学习来自人类反馈(COOL RLHF)策略进行了对齐,以解决人类偏好的冲突和奖励操纵。关键点:
第二章的主要重点是探讨InternLM2在不同规模参数下在数学评估、对话模型和编程任务方面的表现。在数学评估方面,InternLM2在基本算术和定理证明等任务中展现出强大的能力,尤其是在复杂问题解决方面表现出色。对话模型方面,InternLM2在多轮对话中展现出可靠的能力,取得了领先的分数。在编程任务中,InternLM2在生成或完成程序方面表现出色,特别是在人类编写代码的基准数据集HumanEval上表现优异。这些结果表明InternLM2在多个领域都取得了显著的成就,展现出其在不同任务上的全面优势。
2.1 InternEvo
是一个高效、轻量级的预训练框架,用于模型训练。该框架使我们能够在数千个GPU中扩展模型训练。主要通过一下方法提高运行效率:
2.2 Model Structure
InternLM2是基于Transformer架构,遵循LLaMA的结构设计原则,整合了Wk、Wq和Wv矩阵,提高了5%的训练速度。
重新配置了矩阵布局,为每个注意力头采用了交织方式排列这三个矩阵,增强灵活性。
3.1 Pre-training data
3.1.1 Text Data文本数据
3.1.2 Code Data代码数据
3.1.3 Long Context Data 长上下文数据处理(> 32K个token)
3.2 Pre-training Settings
3.2.1 Tokenization 分词
选择了GPT-4的cl100k词汇表,取cl100k词汇表中顶部的60,004个词元,中国特有的32,397个词元结合,加入了147个预留词元,凑整256倍数。
3.2.2 Pre-training Hyper-parameters 预训练超参数
基本的超参数列于表3中。训练过程中,我们使用AdamW优化器(Loshchilov & Hutter, 2019),其中β1=0.9,β2=0.95,ε=1e-8,权重衰减(weight decay)=0.1来优化模型。我们采用余弦学习率衰减策略,并使学习率最终衰减至其最大值的10%。
3.3 Pre-training Phases 预训练阶段
用于预训练18亿、70亿和200亿参数模型的总词元数量范围从2万亿到2.6万亿,
第一阶段,我们使用长度不超过4千的预训练语料库。
第二阶段,我们纳入了50%长度不超过32千的预训练语料。
第三阶段,我们利用特定能力增强数据。
3.3.1 4k Context Training 上下文训练
在约90%的训练步骤中,我们使用长度最多为4096个词元的数据进行训练。若数据长度超过4096,我们将强制截断,仅使用剩余部分进行训练。
3.3.2 4k Long Context Training 长上下文训练
在这个阶段,仍有50%的数据长度小于4096个词元。长上下文训练约占总训练步数的9%。
为了适应更长的序列,我们将旋转位置嵌入(Rotary Positional Embedding (RoPE))的基础从50,000调整至1,000,000,确保对长上下文进行更有效的位置编码。Rotary Positional Embedding (RoPE):创建一个二维的旋转矩阵R(实部和虚部),输入嵌入中的每一个向量x_i通过旋转矩阵进行旋转x~i,j=Ri,j⋅xi,j,将旋转后的实部和虚部重新组合成一个完整的向量,作为最终的位置嵌入输出。
Flash Attention快速注意力机制:Flash Attention是一种用于加速Transformer模型中注意力机制计算的技术。它旨在提高运行速度并减少内存占用,是针对原始自注意力机制的一种优化方法。以下是Flash Attention的几个核心特点和工作原理:
当上下文窗口从4K调整到32K时,训练速度仅下降40%。
3.3.3 Capability Specific Enhancement Training 特定能力增强训练
在InternLM2中,包含从Hugging Face数据集平台上开源数据。总计240亿个词元,
预训练阶段为大型语言模型(LLMs)赋予了基础能力和知识,这些是解决多种任务所必需的。我们进一步对LLMs进行微调,以充分挖掘它们的潜力,并引导它们成为有用且无害的AI助手。这一阶段通常称为“对齐”,主要包括两个阶段:监督式微调(SFT)和基于人类反馈的强化学习(RLHF)。
在SFT过程中,我们使用高质量的指令数据来微调模型,使其能遵循人类的各种指示(参见第4.1节)。
COnditionalOnLine RLHF方法,该方法采用了一种新颖的条件奖励模型,能够调和不同的人类偏好(例如,多步推理准确性、有用性、无害性),并通过三轮在线RLHF循环来减少奖励操纵现象(参见第4.2节)。在对齐阶段,我们通过在SFT和RLHF期间使用长上下文预训练数据来保持LLMs处理长序列的能力(第4.3节)。此外,我们还介绍了提升LLMs工具利用能力的实践方法(第4.4节)。
4.1 Supervised Fine-Tuning 监督式微调
包含1000万个指令数据实例的数据集,数据样本转化为ChatML(Cha)格式
都使用AdamW优化器进行单次遍历(一个epoch)的训练,初始学习率设为4e-5。(AdamW优化器是一种结合了Adam优化算法的优点并修正了权重衰减处理的优化方法,有助于模型在微调过程中更高效地学习到任务特定的知识,同时保持对已有知识的适当保留。)
4.2 COOL Reinforcement Learning from Human Feedback COOL 人类反馈强化学习
RLHF取得了成就,但在其实际应用中仍然存在一些问题,例如偏好冲突,这时,通常依赖多个偏好模型进行评分,这也在训练流程中引入了更多模型,从而增加了计算成本并降低了训练速度。
LHF面临着奖励黑客攻击的问题,模型可能会学习通过捷径“欺骗”奖励系统以获得高分,而不是真正学习预期的行为。
COOL RLHF首先引入了一个条件奖励机制来调和不同的偏好,这使得奖励模型能够动态地根
4.2.1 Conditional Reward Model 条件奖励模型
并非采用多个偏好模型,条件奖励模型针对不同类型的偏好采用不同的系统提示,有效地在一个单一的奖励模型内部对多种偏好进行建模。
Data Composition:数据组成:条件奖励模型的训练过程涉及包含多达240万对二进制偏好对。在PPO阶段对奖励分数进行更精细的控制。
Loss Function:损失函数:为了减少数据集中简单样本和困难样本之间不平衡的影响,我们受到Focal Loss(Lin et al., 2017)的启发,修改了原始的排序损失函数(Burges et al., 2005)。我们在排序损失中添加了一个难度衰减系数,使得困难样本的损失值更大,简单样本的损失值更小,从而防止在大量简单样本上过度拟合。焦点排序损失(Focal Ranking Loss)的公式如下:
其中,( P_{i,j} = \sigma(r_i - r_j) ) 表示奖励i大于奖励j的概率。难度衰减系数仅在模型正确预测了训练样本的偏好时(即,( P_{i,j} > 0.5 ))生效,否则它等于1。参数γ是一个超参数,用于调节难度衰减的比例。在这里,我们默认将其设置为2。
同时,为了确保奖励模型在不同训练过程中输出分数的稳定性和一致性,我们向奖励分数引入了一个对数屏障惩罚项,以将分数分布限制在-5到5的范围内,定义为:
这一约束至关重要,因为它避免了在PPO阶段由于不同奖励模型的奖励分数分布变化而需要修改额外的与奖励相关的超参数。奖励模型的总损失函数为:
参数λ是一个权重系数,用于平衡( L_{ranking} )和( L_{penalty} )的贡献。我们根据初步实验结果将其设置为默认值0.02。这些改进提高了奖励模型的鲁棒性和一致性,特别是在简单样本和困难样本不平衡的数据集上下文中。
训练细节:在我们的实验中,遵循InstructGPT中的方法
构建策略着重于固定每个批次的偏好数据总长度为16384个标记,而不是限制偏好对的数量。最大的上下文长度被设定为8192。
采用了AdamW作为优化器,学习率按照余弦退火调度从1e-5递减到5e-6,权重衰减设置为0.01。
4.2.2 Online RLHF 在线强化学习自人类反馈(这部分实际上没看懂!)
在获得条件奖励模型后,我们采用Proximal Policy Optimization(PPO)算法来对齐大语言模型(LLMs)与人类偏好,这些人类偏好由奖励模型建模(参考Ouyang et al., 2022)。为了应对PPO阶段可能出现的奖励篡改(reward hacking)挑战,我们引入了一种在线RLHF方法,该方法分为两个不同的路径:快速路径(Fast Path)和慢速路径(Slow Path)。
快速路径:在线RLHF中的快速路径专注于通过针对性的补丁快速识别并纠正奖励篡改事件,以提高奖励模型的可靠性。随着PPO训练的进行,LLMs被鼓励向高奖励区域靠拢,这通常会暴露出更多易于检测的奖励篡改场景。在每轮RLHF之后识别出篡改模式后,我们通过比较当前轮次中早期和晚期PPO模型生成的响应来构建突出这些模式的偏好对。将20到100个这样的偏好对纳入训练过程是足够的,以显著防止奖励模型出现相应的篡改模式。这个过程允许快速修复奖励模型以应对新兴的篡改行为,增强奖励模型的可靠性和对期望结果的遵循性。
慢速路径:与专注于修复奖励篡改的快速路径不同,慢速路径旨在通过覆盖最新和最强大模型的LLMs响应来普遍提高奖励模型的上限,特别是高奖励区域的奖励模型的可靠性和鲁棒性,这遵循了之前的工作(Bai et al., 2022)。为实现这一点,使用训练过程中各个阶段模型(包括SFT模型、早期PPO模型和晚期PPO模型)生成的响应来形成成对比较。然后,将这些对呈现给专业的人类标注者来标记他们的偏好。
这样的过程为奖励模型提供了更细致和彻底的优化,但需要大量的人类标注时间。为了提高在线RLHF的效率,我们在实验开始时仅使用之前所有模型累积的人类偏好(即,由于人类标注的时间成本,这可能不包括当前轮次模型产生的响应的偏好)。通过基于人类反馈不断更新模型,慢速路径确保奖励模型随着人类偏好的复杂性和微妙性一同进化。
实施细节:进行了三轮的精细化调整。快速路径收集了数千个偏好补丁和在线偏好数据来更新奖励模型,并使用了来自之前模型的所有现有人类偏好数据。
4.2.3 PPO Training Details 训练细节
在RL对齐阶段,我们采用了标准的PPO(Proximal Policy Optimization)算法
该框架包含四个模型:行动者模型(actor model)、评论家模型(critic model)、参考模型(reference model)、奖励模型(reward model)。
在训练过程中,后两个模型是冻结的,只有前两个模型是积极训练的。
所有这些模型的大小都是相同的,这确保了它们在处理和生成数据时的能力一致。
通过大约400次迭代遍历大约20万个多样化的查询,并在验证集上选择最佳的检查点进行发布。
Model Initialization 模型初始化:
从SFT(Supervised Fine-Tuning)模型权重初始化参考模型和行动者模型。评论家模型则从奖励模型(不包括线性头)初始化,并经历一个50次迭代的预训练阶段,在此期间行动者模型被冻结。这个预训练阶段对于稳定早期训练中的价值估计是至关重要的,从而防止了不稳定值可能带来的不利影响。
我们进行了消融研究,比较了从奖励模型与从SFT模型初始化评论家模型的效果,如图9所示。结果显示,从奖励模型初始化的评论家模型在PPO训练的前几次迭代中经历了较大的损失,但大约经过20次迭代后,它始终展现出较低的损失,并导致行动者模型获得更高的奖励。我们假设,在初始阶段观察到的高损失可能揭示了奖励建模和评论家建模任务之间的根本差异。随后的低损失可能归因于对世界知识更一致的内部理解和对评估原则更好的把握。
图9:评论家模型初始化的消融研究。请注意,由于评论家损失具有较大的动态范围,我们在图中使用了对数坐标。
图10:条件PPO训练的说明。在奖励模型评估之前,向查询和响应添加适当的条件系统提示。请注意,这个系统提示与其他三个模型无关。
在图10中,我们展示了条件PPO训练的概念,即在奖励模型评估之前,向查询和响应中添加一个适当的条件系统提示。这个系统提示对于其他三个模型来说是无关的,但它可以帮助奖励模型在评估时考虑到更多的上下文信息,从而更准确地评估生成的响应。
Conditional Reward 条件奖励:如之前所讨论的,我们的奖励模型被训练以适应各种条件。因此,对于来自不同领域的查询,我们在计算奖励分数之前,会向每个采样得到的响应前添加适当的条件系统提示,如图10所示。这种做法确保了模型的响应能够与不同领域多变的需求在上下文中保持一致。
Pre-train Gradients 预训练梯度:为了缓解PPO阶段出现灾难性遗忘的风险,我们借鉴了InstructGPT的方法论,引入了预训练损失。预训练损失的系数被设置为0.5,并且预训练数据的量大约是PPO训练数据量的50%。这一举措有助于保留在初始训练阶段获得的知识,确保模型在适应新反馈和通过PPO学习时,能够保持其基础能力和知识库。
Hyperparameters 超参数设置:
4.3 Long-Context Finetuning 长上下文微调
在SFT(Supervised Fine-Tuning)和RLHF(Reinforcement Learning from Human Feedback)过程中继续使用长上下文预训练数据,
实验结果:长上下文代码数据不仅提高了LLMs的长上下文能力,还增强了其代码能力。这表明,在微调过程中继续使用长上下文预训练数据是一种有效的方法,可以保持和增强LLMs在处理长上下文和代码方面的能力。
4.4 Tool-Augmented LLMs 工具增强型大型语言模型
General Tool Calling 通用工具调用:定义了两个特定的关键字以支持AI代理的多样化目的,即代码解释器()和外部插件()。这使得我们能够采用统一的流式格式来处理各种类型的插件扩展和AI环境,同时保持与一般聊天的兼容性。将代理语料库与聊天领域对齐,并根据语言模型的基本能力进行细粒度训练
Code Interpreter 代码解释器:通过代码解释器增强了InternLM2-Chat解决数学问题的能力,将Python代码解释器视为一种特殊工具,使用与工具学习部分描述的相同模式。我们采用了推理与编码交织(RICO)策略,并以迭代硬示例挖掘的方式构建数据,这一方法已在InternLM-Math(Ying et al., 2024)中描述。
5.1 Overview 概览
评估分为两个主要类别:(a)下游任务 和(b)对齐性
使用OpenCompass(Contributors, 2023b)进行。这个是上海人工智能实验室开源的大模型评测平台。
5.2 Performance on Downstream Tasks下游任务性能
性能评估将从以下六个关键维度进行精准剖析:
5.2.1 Comprehensive Examination 全面考察
我们在一系列与考试相关的数据集上进行了基准测试,这些数据集包括:
MMLU(Hendrycks et al., 2020):一个包含57个子任务的多项选择题数据集,涵盖了人文、社会科学、STEM(科学、技术、工程和数学)等领域的主题。我们报告了5次采样(5-shot)的结果。
CMMLU(Li et al., 2023a):一个专门针对中国的多项选择题数据集,包含67个子任务。除了人文、社会科学、STEM等领域外,还包括许多与中国特有的任务。我们报告了5次采样(5-shot)的结果。
C-Eval(Huang et al., 2023):一个包含52个子任务和4个难度级别的多项选择题数据集,涵盖了人文、社会科学、STEM等领域的主题。我们报告了5次采样(5-shot)的结果。
AGIEval(Zhong et al., 2023):一个以人为中心的基准测试,包括多项选择题和开放性问题。这些问题来自20个官方、公开且高标准的入学和资格考试,旨在针对一般人类考生,我们报告了零次采样(0-shot)的结果。
GAOKAO-Bench(Zhang et al., 2023):一个包含从2010年到2022年中国高考(Gaokao)的数据集,包括主观题和客观题。我们只评估了客观题的数据集,并报告了零次采样(0-shot)的结果。
基本模型测试:InternLM2-Base
聊天模型测试:InternLM2-Chat
Evaluation Results 评估结果:
对于基础模型,InternLM2系列在具有相似参数数量的模型中表现良好。在7B和20B模型上,InternLM2相对于InternLM2-Base显示出显著的性能提升,这证明了在通用领域数据和领域增强语料库上进行预训练对于全面评估具有优势。对于AGIEval和GAOKAO任务,这些任务的数据集来源于专门为人类设计的考试,InternLM2相对于InternLM2-Base在其他数据集上显示出更大的提升。
对于聊天模型,InternLM2系列在具有相似参数数量的模型中同样表现出色。通过比较InternLM2-Chat-7B-SFT和InternLM2-Chat-7B模型,可以看出COOL RLHF(一种强化学习方法,通常用于微调模型以符合人类偏好)对全面评估的性能影响较小。这表明InternLM2模型的基础能力已经足够强大,能够处理各种考试场景,而额外的微调对整体性能的提升作用有限。
5.2.2 Language and Knowledge 语言和知识
TriviaQA(Joshi et al., 2017):一个包含阅读理解和开放域问答的数据集。平均而言,每个问题有6个可能的答案。我们使用了该数据集的开放域问答子集,并报告了零次学习(0-shot)结果。
NaturalQuestions(Kwiatkowski et al., 2019):一个问答数据集,其中的问题来自用户,答案由专家验证。我们报告了零次学习(0-shot)结果。
C3(Sun et al., 2020):一个自由格式的多项选择中文机器阅读理解数据集。我们报告了零次学习(0-shot)结果。
RACE(Lai et al., 2017):一个阅读理解数据集,其中包括为12至18岁的中国中学生设计的英语阅读理解考试问题。我们使用了针对高中生的子集,并报告了零次学习(0-shot)结果。
FLORES(Team et al., 2022):一个从维基百科中提取的翻译数据集,涵盖101种语言。我们评估了从英语到其他100种语言的翻译结果,以及反向翻译结果。对于每对翻译任务,我们选择了100个样本并使用BLEU进行评估。我们报告了八次学习(8-shot)结果。
Evaluation Results 评估结果:
我们在表7中报告了基础模型的评估结果,在表8中报告了聊天模型的评估结果。由于采用了严谨且高质量的训练语料库,InternLM2在涉及语言理解和知识应用的任务中展现出了显著的竞争优势。因此,它成为了众多依赖稳健语言理解和广泛知识的现实应用中的优秀选择。
5.2.3 Reasoning and Mathematics 推理和数学
在本节中,我们将主要验证InternLM2在推理和数学方面的性能,重点关注测试集的以下两个部分:
推理数据集:
数学数据集:
在推理和数学问题的评估中,对于多项选择题,我们主要使用零次学习(zero-shot)方法。对于开放性问题,如GSM8k、MATH以及MathBench的开放性问题部分,我们主要使用少次学习(few-shot)方法以增强模型遵循指令的能力,从而便于提取答案。为了确保评估结果的一致性,对于基础模型,我们使用困惑度(PPL)评估作为主要方法来评估多项选择题。
推理能力反映了模型理解、处理和操作抽象概念的能力,这对于涉及复杂问题解决和决策制定的任务至关重要。我们从基础和聊天两个方面分别比较并展示了InternLM2在表9中的性能。
评估结果
基础模型:在大约7B的模型中,InternLM2-7B在大多数数据集(除BBH外)上均表现出卓越的性能。特别是,它在WinoGrande上的性能(84.7)显著超越了Mistral-7B-v0.1(75.3),高出9.4个点,仅比其系列中的InternLM2-20B(85.2)低不到一个点。这展示了InternLM2-7B强大的常识推理能力。在所有测试的基础模型中,InternLM2-20B达到了最佳的整体性能。与InternLM2-20B-Base相比,引入领域增强的知识在常识推理方面带来了显著的改进,InternLM2-20B在测试的推理数据集上平均提高了10.4%。
聊天模型:在聊天模型中的推理方面,InternLM2继续领先,无论是在7B阶段还是13 ∼ 20B阶段。RL模型和SFT模型在显著先进的推理能力基础上展现了相似的效果。其中,7B参数模型甚至在三个测试集(如Mixtral-8x7B-Instruct-v0.1和Qwen-14B-Chat)上的性能超过了大多数13 ∼ 20B模型。
数学能力是模型认知和计算能力的一个重要组成部分。在表10和表11中,我们展示了基础模型和聊天模型在多个数学任务上的性能。
针对不同难度的多个数学评估集,在7B参数规模下,InternLM2-7B 占据了领先地位。具体来说,在基础算术GSM8k评估集中,InternLM2-7B(70.8)显著优于其他模型,比ChatGLM3-6B-Base(60.7)高出10.1个百分点,并且其性能几乎是InternLM2-7B-Base(36.0)的两倍,这展示了在融合了领域增强数据后,InternLM2-7B在基础算术方面的强大能力。对于更复杂的问题解决任务,如MATH和TheoremQA中的定理证明,虽然InternLM2-7B在MATH上稍逊一筹,但它取得的分数(10.5)甚至超过了更大的模型Qwen-14B-Base(10.4),这表明InternLM2-7B不仅在计算任务上表现出色,在复杂的定理证明方面也同样卓越。在双语数学数据集MathBench中,InternLM2在英文和中文测试中都展示了出色的性能。
在13 ∼ 20B参数规模阶段,InternLM2-20B在基础算术和定理证明方面均超越了所有测试的基础模型,而Qwen-14B-Base在问题解决任务以及MathBench的英文和中文测试中均表现出色。
在表11的聊天模型中,InternLM2-Chat在7B和20B参数规模下,在基础算术GSM8K、复杂应用数学MATH和理论问题TheoremQA方面均表现出最佳性能。特别值得注意的是,经过COOL RLHF训练的InternLM2-Chat-20B在所有指标上均全面领先,超越了API模型GPT-3.5和MoE模型Mixtral-8x7B-Instruct-v0.1。在MathBench的双语测试中,InternLM2-Chat-20B也表现出色。
5.2.4 Coding 编程
Python Coding Tasks
• HumanEval是一个被广泛认可的数据集,用于评估代码生成模型的性能。它包含了164个精心设计的编程任务,每个任务都由一个Python函数和一个配套的docstring组成,以提供上下文和规格说明。这个以人类编写的代码为特色的数据集,在评估大型语言模型(LLMs)在生成或完成程序时的能力方面发挥着关键作用。
• MBPP包含974个编程任务,这些任务对于入门级程序员来说都是可以解决的。这些任务范围广泛,从简单的数字操作到需要外部知识的更复杂问题,如定义特定的整数序列。我们使用的是MBPP的净化版,其中只包含了一部分数据,这些数据已经由作者手动验证过。
Multiple Programming Language Coding Tasks多编程语言编码任务
• HumanEval-X数据集是原始HumanEval基准的多语言扩展,旨在评估跨多个编程语言的代码生成模型的能力。它包含了164个手工制作的编程问题,每个问题都被翻译成五种主要语言:C++、Java、JavaScript、Go和Python。这总共产生了820个问题-解决方案对,支持代码生成和代码翻译任务。HumanEval-X允许评估模型生成功能正确的代码以及在不同语言之间翻译代码的能力,使用测试用例来验证生成代码的正确性。这个基准测试有助于更全面地理解预训练的多语言代码生成模型及其在现实世界编程任务中的潜在应用。
为了评估InternLM2的编码能力,我们进行了一系列实验,采用了广泛认可的基准测试MBPP和HumanEval。此外,为了衡量代码生成模型对多种编程语言的适应性,我们将评估范围扩展到包括MBPP-CN(MBPP的中文版本)和HumanEval-X(原始HumanEval基准的多语言扩展)。如图13所示,InternLM2模型系列取得了领先的性能,尤其是在HumanEval、MBPP和MBPP-CN上,其中InternLM2-Chat-20B模型超过了先前最先进的技术水平超过10%,突显了InternLM2系列在代码生成任务中的卓越能力。另外,在MBPP-CN基准测试中,InternLM2-Chat-20B模型相对于InternLM2-Chat-7B模型表现出了显著的改进,但在HumanEval-X上则略有性能下降。这可能是由于InternLM2-Chat-20B模型为中文进行了精细调整,从而牺牲了其他语言的有效性。
5.2.5 Performance Before and After Enhancement Training 增强训练前后的性能
通过前面的结果,我们可以清楚地看到,经过特定能力增强训练的InternLM2模型在性能上始终优于其对应的基础模型。这一阶段的模型性能对比概览如图12所示,其中各项能力的得分来自多个评估集的平均值。
编码能力:HumanEval和MBPP。
推理能力:MATH、GSM8k、SummEdits 和 BBH。
(注:此处的“能力”指的是模型在特定任务或数据集上展现出的性能,如编码能力、推理能力等。)
问题能力:HellaSwag、PIQA、WinoGrande、OpenBookQA、NaturalQuestions和TriviaQA。
评估工具:MMLU、AGIEval和C-Eval。
显然,这些能力得到了显著的提升。此外,我们还在表14中比较了基础模型在接受增强训练前后在监督微调(SFT)下的性能。这些能力维度与OpenCompass 7中采用的分类一致。可以观察到,经过特定能力增强的SFT模型在各个能力维度上都取得了更好的性能。本报告中其他部分的SFT性能是基于增强训练之前的基础模型。
5.2.6 Long-context Modeling 长上下文建模
长上下文理解和推理。我们主要在以下两个基准测试中评估InternLM2的长上下文建模能力:L-Eval和LongBench。
L-Eval:L-Eval是一个长上下文基准测试,包含18个子任务,涵盖了法律、经济和技术等多个领域的文本。L-Eval由411篇文档和超过2000个测试用例组成,平均文档长度为7217个单词。该数据集中的子任务可以分为两大类:5个封闭性任务和13个开放性类别。封闭性任务使用基于精确匹配的准确率进行评估,而开放性任务则采用Rouge分数作为评估指标。
LongBench:LongBench是一个长上下文基准测试,包含21个子任务,共有4750个测试用例。它是第一个双语长上下文基准测试,平均英文文本长度为6711个单词,平均中文文本长度为13386个字符。这21个子任务被分为6种类型,为模型在各方面的能力提供了更全面的评估。
Evaluation Results评估结果:评估结果。我们在表15中报告了InternLM2在长上下文基准测试上的评估结果。InternLM2的所有变体在两个基准测试中均展现出强大的长上下文建模性能。InternLM2-Chat-20B-SFT在L-Eval上取得了最佳性能,并且远超其他模型。在LongBench上,InternLM2-Chat-7B-SFT在4个类别(共6个子任务类别)中优于其他≤7B的模型。(我们采用了L-Eval的第一个版本,对应于https://arxiv.org/abs/2307.11088v1)。它获得了48.1的总分,仅略低于ChatGLM3-6B的48.4总分。同时,我们注意到,对于InternLM2来说,不同的参数量大小并不会导致长上下文性能上的显著差异,这将是我们进一步研究的对象。
“Needle-in-the-Haystack” 是一项旨在测试大型语言模型(LLMs)回忆单一关键信息能力的单针检索任务。这个测试通过将关键信息插入到目标长度的干草堆文本(Haystack text)中的不同位置,然后在提示的末尾查询模型关于这个关键信息的内容来进行。这种方法能够精确地可视化LLMs在不同长度长文本中不同位置上的回忆能力。
本研究遵循原始理念,设计了一个中文干草堆文本,其中文本标记长度的计算使用了GPT-4的分词器。为了确保中文文本来源的多样性和质量,我们使用了Wei等人(2023)发布的Skywork/ChineseDomainModelingEval数据集。这个数据集覆盖了从金融到科技等多个领域,提供了高质量、最新的中文文章,并为评估不同模型处理特定领域长文本的能力提供了一个稳定的基准。
对于这项实验,我们利用LMDeploy推理引擎来加速推理过程。图13中的结果有效地展示了InternLM2在长上下文建模方面的能力。
从这项分析中可以看出,通过“Needle-in-the-Haystack”任务,研究人员能够精确地评估LLMs在复杂长文本中检索关键信息的能力。这种能力对于许多实际应用场景至关重要,如文档检索、知识问答等。通过利用高质量的中文数据集和先进的推理引擎,本研究为评估LLMs的长上下文建模能力提供了有力的工具和方法。此外,InternLM2在该任务中展现出的优秀性能也进一步证明了其在实际应用中的潜力和价值。
5.2.7 Tool Utilization 工具利用
普遍认可的是,外部工具和API能够显著增强大型语言模型(LLMs)解决复杂现实问题的能力。为了分析InternLM2在工具利用方面的熟练程度,我们在多个基准数据集上进行了实验:GSM8K、Math、最近引入的MathBench、T-Eval以及CIBench的模板子集。这些实验都采用了ReAct协议,其中LLMs交替生成思考过程和执行操作。
MathBench包含了3709个问题,涵盖了从小学到高中水平的数学概念。这个数据集能够对LLM解决数学问题的能力进行全面评估。
T-Eval提供了经过人类验证的高质量问题说明以及相应的逐步解决方案。它测量了LLM在六个不同维度上使用日常工具(如Google搜索和高德地图)的熟练程度。
CIBench是由我们团队开发的,它使用交互式Jupyter笔记本模拟真实的数据分析场景。它包含多个连续的任务,并涵盖了数据分析中最常用的Python模块,包括Pandas、Numpy和Pytorch。这个定制的基准测试允许对LLM在数据分析方面的综合能力进行全面评估。
GSM8K、MATH和MathBench:我们利用外部代码解释器并遵循ReAct协议来评估大型语言模型(LLM)解决编程和数学问题的能力。如图14所示,即使在使用代码解释器的情况下,也展现出了显著的改进,特别是在MATH数据集上,提升尤为明显。
如图15所示,就最近引入的MathBench数据集而言,使用代码解释器在大多数情况下都提高了InternLM2的性能,而性能的微小下降可能归因于对这类解释器的错误使用。此外,InternLM2-20B-Chat在知识领域和InternLM2-7B-Chat在应用部分都观察到了显著的改进。这些差异可能源于多种因素,包括它们各自训练数据集构成的差异。
T-Eval和CIBench:如图16所示,InternLM2模型在各种基准测试中始终展现出优于或相当于现有模型的性能。特别是,在相同规模的模型比较中,InternLM2-Chat-7B在T-Eval和CIBench上均表现出色,成为最佳模型。同时,InternLM2-Chat-20B在T-Eval上取得了竞争性的结果,并在CIBench上获得了最高分。此外,InternLM2系列模型在中文方面也取得了令人印象深刻的结果,展示了其多语言能力。
5.3 Performance on Alignment 对齐性能
尽管大型语言模型(LLMs)通过预训练和SFT(监督微调)在客观能力上有所提升,但它们的回答风格可能并不符合人类偏好,因此需要通过RLHF(强化学习与人类反馈)进行进一步的增强以改善对齐性。因此,评估对齐能力至关重要,以确定LLMs是否真正满足人类需求。
在本节中,我们评估了InternLM2在多个流行的主观对齐数据集上的性能,比较了SFT(监督微调)和RLHF(强化学习与人类反馈)模型的性能。从表17中我们可以看出,InternLM2在多个基准测试中的对齐任务总体性能达到了SOTA(当前最佳)或接近SOTA的结果,这显示了InternLM2系列模型的主观输出与人类偏好之间的高度一致性。下面我们将分别详细阐述模型在每个数据集上的性能。此外,附录中还列出了每个数据集上主观对齐任务所使用的提示模板。
5.3.1 English Subjective Evaluation 英语主观评价
AlpacaEval 是一个包含805个问题的单轮问答数据集。其主要目的是评估模型响应对人类的有用性,通过对抗性评估反映与人类意图的一致性。AlpacaEval(v2)建立了一个基线模型,并使用GPT4-Turbo作为判断模型来比较基线模型的回答与待评估模型的回答。它选择与人类偏好更一致的模型,并计算胜率。AlpacaEval(v2)不直接收集判断模型的响应,而是利用逻辑概率来统计分析判断模型的偏好。这些偏好随后被用作加权胜率计算中的权重因子。如表17所示,InternLM2-20B实现了21.8的胜率,在比较模型中取得了最高的SOTA结果,展示了其卓越的对齐性能。此外,表格还表明,RLHF模型在胜率方面优于SFT模型,这凸显了对齐策略的有效性。
MTBench 是一个包含80个问题的两轮对话数据集,涵盖了推理、角色扮演、数学、编程、写作、人文、STEM和信息提取八个维度。每个维度包含10个问题,这些问题会经过两轮问答。首先,测试模型回答基础问题的能力;随后,模型必须遵循额外的具体指令来完善其先前的回答。一个判断模型会按照1-10的尺度进行评分。如表17所示,InternLM2在7B和20B版本中均取得了领先的分数,分别为7.7和7.9,证明了其可靠的多轮对话能力。
5.3.2 Chinese Subjective Evaluation 中文主观评价
CompassArena 包含520个中文问题,涵盖了知识、语言、数学、推理和创造力等方面。与AlpacaEval类似,它使用GPT4-Turbo作为判断模型来计算两个模型的胜率,并采用交换模型顺序的双盲测试来减轻位置偏见。如表17所示,InternLM2在7B版本(28.7)和20B版本(31.4)中均获得了最高的胜率。注意,InternLM2的7B和20B版本之间的性能差距相对较小。然而,与SFT模型相比,InternLM2的RLHF模型在性能上有了显著的提升。这表明RLHF策略极大地增强了InternLM2与人类偏好的对齐性,而不仅仅是增加了模型的大小。此外,如图16所示,根据类别细分的结果显示,InternLM2系列在中文创造力和语言能力方面表现异常强大,其胜率与GPT4-Turbo相媲美。(图中没有看到与GPT4-Turbo的对比)
AlignBench 是一个中文主观评价数据集,包含了683个问答对,分为八大类,包括基础语言能力、高级中文理解、面向任务的角色扮演等,涵盖了物理、历史、音乐和法律等多种场景。该数据集使用了一个名为CritiqueLLM的内部判断模型进行评估。CritiqueLLM为每个问题在多个维度上提供1到10的分数,并给出一个最终分数。我们在表17中呈现了CritiqueLLM提供的这些最终分数,并在表18中提供了不同类别的详细分数。如表17所示,InternLM2在7B和20B版本中均取得了SOTA分数,分别为6.1和6.8,超过了GPT-3.5的5.7分。此外,与SFT模型相比,InternLM2的7B和20B版本在RLHF后均表现出显著的性能提升,这凸显了我们RLHF策略在提高模型与人类偏好对齐性方面的有效性。对详细分数的分析揭示了数学和推理能力方面的改进空间;然而,InternLM2在问答和角色扮演任务中表现出色,提供了强大的主观性能。
5.3.3 Instruct Following Evaluation 指令遵循能力评估
旨在测试模型的指令遵循能力,要求模型的响应遵循特定模式,如字母大小写限制和关键词限制。IFEval包含了25种不同的指令类型,构建了541个遵循这些指令的问题,并采用基于规则的评估来评估模型对每个问题响应的正确性。通过运用各种统计方法,IFEval提供了四种准确率分数:提示级严格、提示级宽松、实例级严格和实例级宽松。我们在表17中展示了这四种分数的平均结果。
尽管基于英语的模型(如Llama2和Mistral)通常在IFEval上优于基于中文的模型,但InternLM2在7B阶段(48.5)和13-20B阶段(48.7)分别排名第二和第三。这表明,尽管指令遵循任务具有挑战性,但InternLM2在类似大小的模型中仍保持了领先地位。
5.3.3 Ablation Study of Conditional Reward Model 条件奖励模型的消融研究
为了验证条件系统提示的影响,我们比较了在是否使用条件系统提示的情况下,使用来自不同领域的异构混合数据训练的奖励模型的性能。如表19所示,在没有系统提示的情况下,多个公共数据集的精确度出现了显著下降,这些场景包括有用且无害的对话、内容摘要、数学问题以及Reddit回复。相反,加入系统提示后,这些领域的精确度显著提高。
5.4 Discussion on Data Contamination数据污染的讨论
我们评估了几个基础模型在GSM8K数据集样本(一个样本是问题和答案的拼接)上的语言建模(LM)损失,结果如表20所示。对于每个大型语言模型(LLM),我们比较了训练集(L_train)上的LM损失、测试集(L_test)上的LM损失,以及一个由GPT-4特别制作的参考集(L_ref)上的LM损失,该参考集旨在模拟GSM8K数据集。我们还报告了两个关键指标:∆1 = L_test - L_ref,作为在LLM训练过程中可能存在的测试数据泄露的指标,即较低的值可能表明存在泄露;以及∆2 = L_test - L_train,用于衡量模型在训练集上的过拟合程度。∆2的较高值意味着过度过拟合。
在表20中,∆1和∆2的异常值均以灰色突出显示。
本报告介绍了InternLM2大型语言模型,该模型在主观和客观评估中都展现出了卓越的性能。InternLM2基于超过2万亿的高质量预训练语料库进行训练,涵盖了1.8B、7B和20B的模型大小,使其适用于各种场景。为了更好地支持长文本上下文,InternLM2采用了GQA来降低推理成本,并额外在长达32k的上下文中进行了训练。除了开源模型本身外,我们还提供了训练过程中各个阶段的检查点,方便未来研究者的研究。
除了开源模型外,我们还详细描述了如何训练InternLM2,包括训练框架、预训练文本数据、预训练代码数据、预训练长文本数据和对齐数据。此外,为了解决在RLHF(Reinforcement Learning with Human Feedback)过程中遇到的偏好冲突问题,我们提出了条件在线RLHF(Conditional Online RLHF)来协调各种偏好。这些信息可以为如何准备预训练数据和如何更有效地训练更大规模的模型提供见解。
References
略
A.2 Prompts for Evaluation
这部分有一些关于Prompts的设定,大神可以参考。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。