自 GLM- 130B 千 亿参 数规模的基础模型推出以来,GLM系 列模型持续发展,受到了国内外广泛关注和认可。 特别是 Chat GLM-6B 系列开 源模型,在 2023 年便在H ugging Face平台 上吸引了超过 1000 万次 的下 载量。
我们于近期发布了 ChatGLM 技术报告,与业界分享从 GLM-130B 到 GLM-4 All Tools 的实践经验与教训。
本报告主要聚焦于 GLM-4 系列模型,包括 GLM-4、GLM-4-Air 和 GLM-4-9B。
更多关于智谱多模态大模型的工作将在后续的技术报告中详细介绍。
Paper: https://arxiv.org/abs/2406.12793
GitHub: https://github.com/THUDM
HF: https://huggingface.co/THUDM
在预训练阶段,我们在包含10万亿个tokens(主要是中文和英文)以及24种语言的小型语料库上进行了学习,并特别注重中文和英文的对齐。为了达到高质量的对齐效果,我们实施了多阶段的后训练过程,包括监督微调(Supervised Fine-Tuning,SFT)和基于人类反馈的强化学习(Reinforcement Learning from Human Feedback,RLHF)。
评估结果显示,GLM-4在MMLU、GSM8K、MATH、BBH、GPQA和HumanEval等多个通用指标上的表现与GPT-4非常接近,甚至在某些方面超过了GPT-4。在指令遵循方面,GLM-4的表现接近GPT-4-Turbo(根据IFEval指标评估)。在处理长上下文任务方面,GLM-4能够与GPT-4 Turbo (128K)和Claude 3相媲美。在中文对齐方面,GLM-4优于GPT-4(根据AlignBench指标评估)。
经过进一步优化的GLM-4 All Tools模型能够理解用户的意图,并自主决定何时以及如何使用包括网络浏览器、Python解释器、文本到图像模型以及用户自定义函数在内的工具来高效完成复杂任务。在实际应用中,GLM-4 All Tools在访问在线信息和使用Python解释器解决数学问题等任务中的表现超过了GPT-4 All Tools。
图 1:GLM 系列语言、代码、视觉和智能体(agent)模型的时间轴。本报告的重点主要是语言模型,即 ChatGLM。API 可通过 https://bigmodel.cn 公开获取,开放模型可通过 https://github.com/THUDM 访问。
我们从预训练数据、架构、对齐、All Tools 等方面详细介绍了 ChatGLM 中采用和开发的预训练和后训练技术;以及从学术基准测试评估、指令跟随能力评估、对齐评估、长上下文处理能力评估、函数调用评估、智能体能力评估等 8 个方面评估了 GLM-4 模型。
此外,我们也评估并减轻了模型在现实世界中可能对用户造成的潜在危害,包括风险缓解和安全评测两方面工作。
“
在过去的一年半时间里,我们从亲身经历的角度理解了大语言模型的各种观点,取得了长足的进步...... 我们正在利用迄今为止所学到的一切,开发功能更强大的模型。未来,我们将继续通过开源实现前沿 LLM 技术的民主化,并朝着“让机器像人一样思考”的目标不断突破模型能力的边界。
”
ChatGLM 技术概览
在这一部分中,我们介绍了 ChatGLM 中采用和开发的预训练和后训练技术,包括预训练数据、模型架构、对齐和 All Tools。
预训练数据
ChatGLM系列模型的预训练语料库由多种语言的文档构成,主要为英文和中文,涵盖了网页、维基百科、书籍、代码和论文等多种来源。数据处理流程精心设计,分为三个主要阶段:去重、过滤和分词。
在去重阶段,我们通过精确匹配和模糊匹配技术剔除重复或相似的文档,确保数据集的多样性。接着,在过滤阶段,我们移除了包含攻击性内容、占位符文本和源代码等噪声文档,以提升数据质量。最后,在分词阶段,文本被转换成token序列,为后续处理打下基础。
预训练数据中的token数量对模型训练速度有直接影响。为了提高效率,我们采用了字节级字节对编码(BPE)算法,分别对中文和多语种文本进行学习,并将学到的token与tiktoken中的cl100k_base tokenizer的token合并,形成了一个包含15万词汇的统一token集。在最终训练集中,我们对不同来源的数据进行了重新加权,增加了高质量和教育性来源(如书籍和维基百科)的数据比例,使得预训练语料库包含了约十万亿个tokens。
在ChatGLM四代模型的开发过程中,我们验证了现有研究的发现:数据质量和多样性对于构建有效的LLM至关重要。尽管我们积累了丰富的经验和启示,但截至目前,我们尚未发现一个基本准则来全面指导数据收集、清洗和选择的过程。
架构
GLM系列的 LLM 是基于Transformer架构构建的。在开发GLM-130B模型时,我们考虑到当时的硬件限制,并探索了多种策略来稳定其预训练过程。
在GLM-130B中,我们采用了DeepNorm作为层归一化策略,并在前馈网络(FFN)中使用了旋转位置嵌入(RoPE)以及配备GeLU激活函数的门控线性单元。在整个探索过程中,我们研究了不同的技术以提高模型的性能和推理效率。最新的GLM-4模型采用了以下架构设计选择:
No Bias Except QKV: 为了提升训练速度,我们去除了所有偏差项,除了注意力层中的查询(Query)、键(Key)和值(Value)偏差。这一变化略微改善了长度外推法的性能。
RMSNorm 和 SwiGLU: 我们用RMSNorm替换了LayerNorm,并用SwiGLU替换了ReLU。这两种策略能够提升模型性能。
旋转位置嵌入(RoPE): 我们将RoPE扩展到二维形式,以适应GLM中的二维位置编码。
分组查询注意力(GQA): 我们用GQA替换了传统的多头注意力(MHA),以减少推理过程中的KV缓存大小。由于GQA使用的参数比MHA少,我们相应增加了FFN的参数数量,以保持模型大小的一致性。
ChatGLM系列模型的上下文长度经历了多次扩展,从ChatGLM的2K增长到ChatGLM2和ChatGLM3的32K,再进一步增长到GLM-4的128K和1M。这种扩展不仅仅是通过上下文长度的增加(位置编码的扩展和对长文本的持续训练)实现的,而且还通过对长上下文的优化对齐,使得GLM-4能够有效地处理长文本。
对齐
预训练是构建 LLMs 的基础阶段,而后期训练则对这些模型进行细化和调整,以更好地符合人类的期望和需求,包括理解人类意图、遵循指令和进行流畅的多轮对话。
在GLM-4模型中,我们主要通过 SFT 和 RLHF 来实现对齐。在SFT阶段,我们意识到使用真实的人工提示和交互数据,而非基于模板或模型生成的响应,对于提高对齐质量至关重要。尽管SFT在很大程度上使模型与人类的偏好保持一致,但RLHF进一步帮助我们解决了拒绝回答、安全性以及多轮对话中的一致性等问题。
在第一代模型(ChatGLM-6B和ChatGLM-130B)的开发过程中,提示-应答对主要是由模型开发者自行标注的。而对于后续的模型,对齐数据则是内部标注数据和第三方专有数据的组合,这些数据都受到了严格的质量控制。类似于现有的方法,标注者被指导从多个维度对模型的回答进行评分,这些维度包括安全性、事实性、相关性、有用性和对人类偏好的响应。
All Tools
最新的 ChatGLM 模型系列包括 GLM-4 和 GLM-4 All Tools,这两个模型都是采用先进技术进行训练和对齐的。GLM-4 All Tools 是专门为支持智能体和相关任务而进一步优化的模型版本。它能够自主理解用户的意图,规划复杂的指令,并能够调用一个或多个工具(例如网络浏览器、Python解释器和文本到图像模型)以完成复杂的任务。
下图展示了 GLM-4 All Tools系统的整体工作流程。当用户提出复杂请求时,模型会对任务进行分析,并逐步规划解决问题的过程。如果模型确定无法独立完成任务,它将依次调用一个或多个外部工具,利用它们的中间反馈和结果来协助解决任务。
图|GLM-4 All Tools 和定制 GLMs(智能体)的整体流程。
在 GLM-4 的 All-tools 功能基础上,我们还开发了 GLMs 应用平台,该平台允许用户为特定任务创建和定制自己的智能体。GLMs不仅支持嵌入式Python解释器、网络浏览器、文本到图像模型,还支持用户自定义函数、API 和外部知识库,从而能够更有效地满足用户的需求。
ChatGLM 技术
在ChatGLM的开发过程中,我们不仅提出了一系列技术来提升模型性能,而且还在不断更新和发布这些技术,以保持模型的先进性。
-
LLM 的涌现能力: 我们深入研究了 LLM 的涌现能力,探讨了预训练损失与模型在下游任务上的性能之间的关系。我们发现,在不同模型大小和训练token数量下,当预训练损失相同时,LLMs在下游任务上展现出相似的性能。此外,我们还观察到,在某些任务(如MMLU和GSM8K)上,只有当预训练损失降至特定阈值以下时,模型性能才会显著超越随机概率。基于这些发现,我们将涌现能力重新定义为模型在较低预训练损失下所展现出的特殊能力。(arXiv:2403.15796)
-
LongAlign: 为了扩展LLMs处理长上下文的能力,我们提出了LongAlign,这是一套全面的长上下文对齐方法。它使得GLM-4能够处理长达128K token的长文本,并且在性能上与Claude 2和GPT-4 Turbo (1106)持平。(arXiv:2401.18058)
-
ChatGLM-Math: 我们还专注于提升LLMs在数学问题解决方面的能力,推出了ChatGLM-Math。这一方法通过自我批评机制来选择数据,而不是依赖于外部模型或手动标注。(arXiv:2404.02893)
-
ChatGLM-RLHF: 为了使LLMs更好地与人类反馈对齐,我们提出了ChatGLM-RLHF,这是将PPO和DPO应用于LLMs的一种方法。(arXiv:2404.00934)
-
Self-Contrast: 为了避免依赖昂贵的人类偏好反馈数据,我们开发了Self-Contrast,一种无需反馈的对齐策略。它利用目标LLM自身来生成大量负样本,以此进行RLHF对齐。(arXiv:2404.00604)
-
AgentTuning: 为了提高 LLM 的智能体能力,我们开发了 AgentTurning 框架,该框架包括 AgentInstruct 指令微调数据集,其中包含智能体与环境之间的高质量交互轨迹。(arXiv:2310.12823)
-
APAR: 为了提高LLMs对具有分层结构响应的推理速度,我们提出了自并行自回归(APAR)生成方法。它通过指令微调来训练LLM规划其并行生成过程,并执行APAR生成。(arXiv:2401.06761)
-
基准测试: 我们还开发了一系列开放的LLM基准测试,包括用于评估LLMs作为智能体能力的AgentBench(arXiv:2308.03688),用于评估长上下文处理性能的LongBench(arXiv:2308.14508),用于测量ChatGLM与中文内容对齐质量的AlignBench(arXiv:2311.18743),用于评估非Python编程语言中HumanEval问题的HumanEval-X(arXiv:2303.17568),以及用于测量模型解决实际编程任务能力的NaturalCodeBench (NCB)(arXiv:2405.04520)。
GLM-4 能力概述
我们全面评估了GLM-4模型的多方面能力,包括在学术基准测试上的基础性能、代码问题解决、英文环境下的智能体能力、指令遵循、中英文长上下文处理以及对齐能力。由于GLM-4主要针对中英文环境进行预训练,并且特别对齐到中文,我们重点报告了最新版本的GLM-4,即GLM-4 (0520) 和 GLM-4-Air (0605) 的结果。GLM-4 (0520) 在我们评估的基准测试中表现略优于其原始版本0116。在评估过程中,GLM-4和GLM-4-Air均以BFloat16精度进行部署。
为了进行比较,我们提供了GPT-4 (0603)、GPT-4 Turbo (1106, 2024-04-09)、Claude 2、Claude 3 Opus和Gemini 1.5 Pro作为基准线的模型结果,这些结果来源于相应的技术报告或通过公开API进行的测试。
总体来看,GLM-4在标准基准测试、指令遵循、长上下文处理、代码问题解决以及英文环境下的智能体能力方面,接近于当前最先进的模型(如GPT-4 Turbo、Gemini 1.5 Pro和Claude 3 Opus)。特别是在对齐能力方面,GLM-4在中英文环境中展现出比最先进模型更强的性能,涵盖了基本语言能力、高级中文理解、专业知识以及开放式问题等多个领域。综合来看,GLM-4在中文语言任务上表现卓越,并且在中文数学和逻辑推理能力方面与GPT-4和Claude 3 Opus相当,尽管略低于GPT-4 Turbo。
在学术基准测试评估方面 ,我们选择了六个涵盖知识、数学、推理、常识和编程的常用基准——MMLU、GSM8K、MATH、BBH、GPQA、HumanEval,并将GLM-4的性能与原始GPT-4进行了比较。结果显示,GLM-4在MMLU上的准确率为GPT-4的96.3%,在其他基准测试上则超过了GPT-4。总的来说,GLM-4的基础能力接近GPT-4-Turbo和Claude 3 Opus。
图|GLM-4 在学术基准上的表现
在指令跟随能力评估方面 ,我们采用了新近提出的IFEval数据集来衡量GLM-4模型按照指令执行的能力。结果显示,在宽松模式下,GLM-4在英文和中文环境中的指令级准确率与GPT-4 Turbo持平。在严格模式下,GLM-4在英文和中文环境中的指令级准确率分别达到了GPT-4 Turbo(2024-04-09)的99.0%和98.6%,显示出其卓越的指令遵循能力。
图|GLM-4 在 LLM指令跟随基准的 IFEval 上的表现。“L”代表“宽松”,“S”代表“严格”。“P”代表“提示”,“I”代表“指令”。
在对齐评估方面 ,我们使用了AlignBench,这是一种自动化的LLMs-as-Judge方法,专门用于评估模型在中文背景下的对齐情况。评估结果表明,GLM-4在总体上优于GPT-4 Turbo、Claude 3 Opus和Gemini 1.5 Pro,在基线中取得了最高的总分。特别是在中文逻辑推理和语言理解方面,GLM-4显著优于其他所有强力模型,这突显了它对中文语言和知识的深刻理解。
图|GLM-4 在 AlignBench 上的性能,这是一个中文对齐的 LLM 基准。
在长上下文处理能力评估方面 ,我们在LongBench-Chat基准上进行了测试,该基准包含了从10到100千个token的上下文长度,覆盖了用户常见的长文本场景,如文档问答、总结和编码。我们采用了GPT-4的评估标准,并运用了多种策略对LongBench-Chat中的模型进行评估。为了减少评分波动并得出更可靠的统计结论,我们进行了重复评估,并计算了多次评估的平均值,以确保最终性能指标能够充分反映GLM-4在不同情况下的表现。数据显示,GLM-4在英文提示上的表现与GPT-4 Turbo和Claude 3 Opus相当,在中文提示上甚至能够超越它们。
图|GLM-4 在 LongBench-Chat 中的表现
在真实世界用户提示的编码评估方面 ,除了HumanEval,我们还对GLM-4在NaturalCodeBench(NCB)上的表现进行了评估。NCB是一个基于自然用户提示的双语编码基准,旨在反映真实世界编码任务的复杂性。结果表明,GLM-4在实际场景中的编码性能与Claude 3 Opus相近,尽管与GPT-4相比还存在一些差距,但考虑到GLM-4的双语平衡特性,通过后续迭代中的优化训练策略和数据整理,其性能在NCB上有很大的提升潜力。
图|GLM-4 在 NaturalCodeBench (NCB) 上的表现,这是一个用两种编程语言(Python 和 Java)对英语和汉语进行真实编码提示的基准测试。
在函数调用评估方面 ,我们在Berkeley Function Call Leaderboard上进行了测试,该基准包含了2千个问题-函数-答案对。该基准评估了模型在三个类别中的函数调用能力:通过抽象语法树(AST)评估、通过执行API评估和相关性检测。结果显示,GLM-4 (0520)的函数调用能力与GPT-4 Turbo (2024-04-09)相当,而GLM-4-9B-Chat在函数调用方面明显优于Llama-3-8B-Instruct。我们还发现,随着模型大小的增加,整体准确率并未提高,而GLM-4-9B-Chat甚至超过了GLM-4-Air。此外,在评估真实世界API执行结果的执行总结方面,随着模型大小的增加,性能稳步提高。
图|GLM 在 Berkeley Function Call Leaderboard 上的表现
在智能体能力评估方面 ,我们在AgentBench上对GLM-4和其他比较LLMs进行了评估。AgentBench是一个全面的大语言模型智能体基准,涵盖了一系列实际环境,包括基于代码、游戏和基于网络的上下文。结果显示,GLM-4模型在智能体任务上表现相当出色,GLM-4-Air的得分与GPT-4 Turbo和Claude 3 Opus相当,而GLM-4的得分超过了它们。在特定环境中,GLM-4系列在数据库、家庭管理和网络购物任务上表现尤为出色,而在操作系统、知识图谱和横向思维谜题方面仍与GPT-4系列存在差距,这表明GLM-4在代码相关的智能体任务和高度交互的语言任务上仍有提升空间。
图|GLM-4 在 AgentBench 上的表现
在All Tools评估方面 , GLM-4 All Tools (Web)在解决数学问题的Python解释器、信息检索的浏览器方面的性能与ChatGPT-4 (Web)相当。
图|GLM-4 在 All Tools 上的表现
安全与风险
在大型模型安全性的实践中,我们不仅关注道德和公平问题,还认真评估并努力减轻模型在现实世界中可能对用户造成的潜在危害。
在预训练阶段,我们采取了严格的措施来清洗数据,包括从预定义的黑名单中移除包含敏感关键字的文本和网页。在对齐阶段,我们评估了每个训练样本的安全性,并删除了任何可能存在风险的样本。在比较模型输出时,无害性(Harmlessness)是一个重要的偏好对齐标准。此外,我们还设立了一个“红队”,通过提出可能导致不安全答案的棘手问题来持续挑战模型。我们从GLM-4中收集所有有害的问题-答案对,并通过人工标注对其进行改进,以进一步优化模型对齐。
我们在SafetyBench数据集上对GLM-4模型进行了评测,该数据集从七个维度评估每个模型的能力:伦理道德(不道德行为)、违法行为(基本法律知识)、心理健康(对心理健康的不利影响)、攻击性(攻击行为)、身体健康(可能造成身体伤害的危险行为)、隐私和财产(隐私泄露或财产损失)、不公平和偏见。我们在SafetyBench的中文子集上对不同的模型进行了评测,该子集是通过删除容易被屏蔽的高度敏感问题而创建的,以减轻不同API安全政策的干扰。
图|与 GPT-4 模型和 Claude 3 Opus 相比,GLM-4 在 SafetyBench 上的性能。
上图展示了GLM-4与SOTA模型在安全性方面的结果。在大多数维度上,GLM-4(0520)展现出了竞争性的安全性能,总体上与Claude 3 Opus的性能相当。GLM-4略逊于GPT-4系列模型,尤其是在身体健康维度上,该维度要求模型掌握物理世界中的强大常识性知识,以避免潜在风险。