add part of glm

This commit is contained in:
Logan Zou
2025-04-10 11:42:48 +08:00
parent 3512f55993
commit d42ce92ab5

View File

@@ -74,7 +74,7 @@ GPT-3 则是更进一步展示了 OpenAI“力大砖飞”的核心思路
在 GPT 系列模型的基础上,通过引入预训练-指令微调-人类反馈强化学习的三阶段训练OpenAI 发布了跨时代的 ChatGPT引发了大模型的热潮。也正是在 GPT-3 及 ChatGPT 的基础上LLaMA、ChatGLM 等模型的发布进一步揭示了 LLM 的无尽潜力。在下一节,我们将深入剖析目前 LLM 的普适架构——LLaMA。
## LLaMA
## 3.3.2 LLaMA
Llama模型是由Meta前Facebook开发的一系列大型预训练语言模型。从Llama-1到Llama-3Llama系列模型展示了大规模预训练语言模型的演进及其在实际应用中的显著潜力。
@@ -116,10 +116,40 @@ Llama模型是由Meta前Facebook开发的一系列大型预训练语言模
Llama模型以其技术创新、多参数版本、大规模预训练和高效架构设计而著称。模型支持从7亿到数百亿不等的参数量适应不同规模的应用需求。Llama-1以其开源性和优异性能迅速受到社区欢迎而Llama-2和Llama-3进一步通过引入分组查询注意力机制和支持更长文本输入显著提升了模型性能和应用范围。特别是Llama-3通过采用128K词表大小的高效tokenizer和15T token的庞大训练数据实现了在多语言和多任务处理上的重大进步。Meta对模型安全性和社区支持的持续关注预示着Llama将继续作为AI技术发展的重要推动力促进全球范围内的技术应用和创新。
## 3.3.3 GLM
GLM 系列模型是由智谱开发的主流中文 LLM 之一,包括 ChatGLM1、2、3及 GLM-4 系列模型,覆盖了指令理解、代码生成等多种应用场景,曾在多种中文评估集上达到 SOTA 性能。
ChatGLM-6B 是 GLM 系列的开山之作,也是 2023年国内最早的开源中文 LLM也是最早提出不同于 GPT、LLaMA 的独特模型架构的 LLM。在整个中文 LLM 的发展历程中GLM 具有独特且重大的技术意义。本节将简要叙述 GLM 系列的发展,并介绍其不同于 GPT、LLaMA 系列模型的独特技术思路。
### 1模型架构-相对于 GPT 的略微修正
GLM 最初是由清华计算机系推出的一种通用语言模型基座,其核心思路是在传统 CLM 预训练任务基础上,加入 MLM 思想,从而构建一个在 NLG 和 NLU 任务上都具有良好表现的统一模型。
在整体模型结构上GLM 和 GPT 大致类似,均是 Decoder-Only 的结构,仅有三点细微差异:
1. 使用 Post Norm 而非 Pre Norm。Post Norm 是指在进行残差连接计算时,先完成残差计算,再进行 LayerNorm 计算;而类似于 GPT、LLaMA 等模型都使用了 Pre Norm也就是先进行 LayerNorm 计算再进行残差的计算。相对而言Post Norm 由于在残差之后做归一化对参数正则化的效果更强进而模型的鲁棒性也会更好Pre Norm相对于因为有一部分参数直接加在了后面不需要对这部分参数进行正则化正好可以防止模型的梯度爆炸或者梯度消失。因此对于更大体量的模型来说一般认为 Pre Norm 效果会更好。但 GLM 论文提出,使用 Post Norm 可以避免 LLM 的数值错误(虽然主流 LLM 仍然使用了 Pre Norm
2. 使用单个线性层实现最终 token 的预测,而不是使用 MLP这样的结构更加简单也更加鲁棒即减少了最终输出的参数量将更大的参数量放在了模型本身
3. 激活函数从 ReLU 换成了 GeLUS。ReLU 是传统的激活函数,其核心计算逻辑为去除小于 0的传播保留大于 0的传播GeLUS 核心是对接近于 0的正向传播做了一个非线性映射保证了激活函数后的非线性输出具有一定的连续性。
### 2预训练任务-GLM
GLM 的核心创新点主要在于其提出的 GLMGeneral Language Model通用语言模型任务这也是 GLM 的名字由来。GLM 是一种结合了自编码思想和自回归思想的预训练方法。所谓自编码思想,其实也就是 MLM 的任务学习思路,在输入文本中随机删除连续的 tokens要求模型学习被删除的 tokens所谓自回归思想其实就是传统的 CLM 任务学习思路,也就是要求模型按顺序重建连续 tokens。
GLM 通过优化一个自回归空白填充任务来实现 MLM 与 CLM 思想的结合。其核心思想是,对于一个输入序列,会类似于 MLM 一样进行随机的掩码,但遮蔽的不是和 MLM 一样的单个 token而是每次遮蔽一连串 token模型在学习时既需要使用遮蔽部分的上下文预测遮蔽部分在遮蔽部分内部又需要以 CLM 的方式完成被遮蔽的 tokens 的预测。例如,输入和输出可能是:
输入I <MASK> because you <MASK>
输出:<MASK> - love you; <MASK> - are a wonderful person
**参考资料**
1. [Improving Language Understanding by Generative Pre-Training](https://cdn.openai.com/research-covers/language-unsupervised/language_understanding_paper.pdf)
2. [Language Models are Unsupervised Multitask Learners](https://d4mucfpksywv.cloudfront.net/better-language-models/language_models_are_unsupervised_multitask_learners.pdf)
3. [Language Models are Few-Shot Learners](https://arxiv.org/pdf/2005.14165)
4. [万字长文带你梳理Llama开源家族从Llama-1到Llama-3](https://mp.weixin.qq.com/s/5_VnzP3JmOB0D5geV5HRFg)
4. [万字长文带你梳理Llama开源家族从Llama-1到Llama-3](https://mp.weixin.qq.com/s/5_VnzP3JmOB0D5geV5HRFg)
5. [ChatGLM: A Family of Large Language Models from GLM-130B to GLM-4 All Tools](https://arxiv.org/abs/2406.12793)
6. [GLM: General Language Model Pretraining with Autoregressive Blank Infilling](https://arxiv.org/abs/2103.10360)