ChatGLM: A Family of Large Language Models from GLM-130B to GLM-4 All Tools

我们先从预训练数据、架构、对齐、Tools、Evaluation几个方面介绍GLM4.

1 预训练数据

数据来源:网页数据、wiki百科、论文、书籍、代码等

数据处理:去重、过滤、分词。

  • 去重:模糊去重和精准去重。
  • 过滤:过滤攻击性、偏见性等内容,占位符文本,源代码等噪声文档。
  • 分词:BPE,对中英文和多语种文本进行学习,最后和titoken的cl100k_base tokenizer合并词典,最后形成一个包含15w词汇的同意token集合,最后总共为10万亿token(10T Tokens)。

2 架构

GLM4集百家之所长最终的架构修改如下:

  • 1 No Bias Except QKV:除了QKV的其他权重矩阵不设置bias。
  • 2 RMSNorm和SwishGLU
  • 3 RoPE
  • 4 GQA

ChatGLM 2k -> ChatGLM2/3 32k -> GLM4 128k, 1M

3 对齐

SFT:使用真实的人工提示和交互数据,而非基于模板或模型生成的响应,对于提高对齐质量至关重要

RLHF:进一步帮助我们解决了拒绝回答、安全性以及多轮对话中的一致性等问题。

4 Tools

最新的 ChatGLM 模型系列包括 GLM-4 和 GLM-4 All Tools,这两个模型都是采用先进技术进行训练和对齐的。GLM-4 All Tools 是专门为支持智能体和相关任务而进一步优化的模型版本。它能够自主理解用户的意图,规划复杂的指令,并能够调用一个或多个工具(例如网络浏览器、Python解释器和文本到图像模型)以完成复杂的任务。

5 评估

5.1 基准测试

English 数据集

  1. GSM8K: 一个包含8000道中小学数学题目的数据集,用于评估模型的数学推理能力。
  2. MATH: 高中数学竞赛题目数据集,测试模型在更复杂数学问题上的表现。
  3. BBH: Big-Bench Hard子集,包含一些高难度的语言理解和推理任务。
  4. MMLU: Massive Multitask Language Understanding数据集,包含57个任务,评估模型的多任务语言理解能力。
  5. GPQA: Graduate Physical Question Answering数据集,测试模型在生物、物理、化学领域内的推理理解能力。
  6. HumanEval: 代码生成任务数据集,评估模型的编程能力。
  7. BoolQ: 一个二元问答数据集,问题的答案为“是”或“否”,测试模型的文本理解和推理能力。
  8. CommonSenseQA: 常识问答数据集,要求模型具备常识知识来回答问题。
  9. HellaSwag: 一个多项选择题数据集,测试模型在常识推理和情景理解方面的能力。
  10. PIQA: Physical Interaction Question Answering数据集,测试模型对物理世界常识的理解。
  11. DROP: Discrete Reasoning Over Paragraphs数据集,包含需要离散推理和多步推理的阅读理解任务。

Chinese 数据集

  1. C-Eval: 一个中文的综合性评测数据集,涵盖多个领域和任务,用于评估模型的中文理解和生成能力。
  2. CMMLU: Chinese Massive Multitask Language Understanding数据集,类似于MMLU,但专注于中文任务。
  3. GAOKAO-Bench: 高考题目数据集,模拟中国高考的各种题型,测试模型在教育领域的应用能力。
  4. C3: 中文阅读理解数据集,包含需要深度理解和推理的阅读任务。

5.2 指令跟随

5.3 长文本

5.4 Agent

5.5 对齐

5.6 代码

5.7 函数调用

5.8 安全性