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 数据集
- GSM8K: 一个包含8000道中小学数学题目的数据集,用于评估模型的数学推理能力。
- MATH: 高中数学竞赛题目数据集,测试模型在更复杂数学问题上的表现。
- BBH: Big-Bench Hard子集,包含一些高难度的语言理解和推理任务。
- MMLU: Massive Multitask Language Understanding数据集,包含57个任务,评估模型的多任务语言理解能力。
- GPQA: Graduate Physical Question Answering数据集,测试模型在生物、物理、化学领域内的推理理解能力。
- HumanEval: 代码生成任务数据集,评估模型的编程能力。
- BoolQ: 一个二元问答数据集,问题的答案为“是”或“否”,测试模型的文本理解和推理能力。
- CommonSenseQA: 常识问答数据集,要求模型具备常识知识来回答问题。
- HellaSwag: 一个多项选择题数据集,测试模型在常识推理和情景理解方面的能力。
- PIQA: Physical Interaction Question Answering数据集,测试模型对物理世界常识的理解。
- DROP: Discrete Reasoning Over Paragraphs数据集,包含需要离散推理和多步推理的阅读理解任务。
Chinese 数据集
- C-Eval: 一个中文的综合性评测数据集,涵盖多个领域和任务,用于评估模型的中文理解和生成能力。
- CMMLU: Chinese Massive Multitask Language Understanding数据集,类似于MMLU,但专注于中文任务。
- GAOKAO-Bench: 高考题目数据集,模拟中国高考的各种题型,测试模型在教育领域的应用能力。
- C3: 中文阅读理解数据集,包含需要深度理解和推理的阅读任务。