1 大模型种类
prefix Decoder 和 causal Decoder 和 Encoder-Decoder 区别是 attention mask 不同;• Encoder-Decoder :
- 在输入上采用双向注意力,对问题的编码理解更充分
- 适用任务:在偏理解的 NLP 任务上效果好
- 缺点:在长文本生成任务上效果差,训练效率低;
• causal Decoder :
- 自回归语言模型,预训练和下游应用是完全一致的,严格遵守只有后面的token才能看到前面的 token的规则;
- 适用任务:文本生成任务效果好;
- 优点:训练效率高,zero-shot 能力更强,具有涌现能力;
prefix Decoder:
- 特点:prefix部分的token互相能看到,causal Decoder 和 Encoder-Decoder 折中;
- 缺点:训练效率低
- Prefix Decoder 系:主要用于需要额外上下文信息引导生成内容的场景,如对话系统。
- Causal Decoder 系:主要用于生成连续的文本序列,每个生成的词依赖于前面的词。
- Encoder-Decoder 系:主要用于需要双向上下文信息的任务,如机器翻译、文本摘要等。
可入手下面的模型进行微调:
目前,主流的开源大语言模型主要有三个:LLaMA、ChatGLM 和 BLOOM。基于这三个开源模型,业界进行了指令微调或强化学习,衍生出了许多不同的大模型。下面从训练数据、tokenizer 和模型结构上对这三个大语言模型进行比较。
1.1 ChatGLM
ChatGLM借助编码器-解码器架构思想,前半部分采用类似于Bert的双向注意力,后半部分采用类似于GPT的自回归架构进行预测;ChatGPT采用的是仅解码器架构。
ChatGLM-6B 是一个开源的、支持中英双语的对话语言模型,基于 General Language Model (GLM) 架构,具有 62 亿参数。ChatGLM-6B 使用了和 ChatGPT 相似的技术,针对中文问答和对话进行了优化。经过约 1T 标识符的中英双语训练,辅以监督微调、反馈自助、人类反馈强化学习等技术的加持,62 亿参数的 ChatGLM-6B 已经能生成相当符合人类偏好的回答。
在 ChatGLM 的预训练过程中,使用掩码片段(masked spans)作为预训练任务的一部分,可以帮助模型学习更长距离的上下文依赖关系。具体来说,可以将输入文本分割成多个片段,并从中随机选取若干片段进行掩码,然后将这些掩码片段的位置打乱,形成 Part A 和 Part B 的输入。
ChatGLM的输入:
1 随机采样2个片段,将其mask,作为part A。
2、被mask的2个片段(各自开头加上起始符)的位置随机打散,作为part B。【为何要随机打散呢?我的理解是:因为被mask的片段间实际上attention是单向的,打散可以完整的捕捉到不同片段之间的依赖关系】
3、part A和part B拼接作为输入序列。
4、为了区分part A和part B的token的位置信息,GLM采用了二维位置编码,也就是每个token用两个位置id来表示,这样一来就可以将token embedding和其对应的两个position embedding相加了。那么,为兼具encoder和decoder的优势,GLM对attention mask做了如下改进:
1、A 部分的字符可以注意到A 部分的所有字符(双向),但是不能注意到 B部分的任何字符。
2、B 部分只能注意到B自身之前的字符(单向);但可以注意到A 部分的所有字符。
3、其他部分就是mask了。
为兼顾下游自然语言理解和自然语言生成任务的性能,GLM设计了三种不同的基于自回归填空的预训练目标。
针对自然语言理解任务:
- 从一个均值为3的泊松分布中采样片段的长度0直到原始文本中 15%的字符被掩盖,然后在文本中随机排布填空片段的位置这个目标我们称为 token-level objective。(实际中,GLM发现15%的填空比例对于下游自然语言理解任务的良好表现非常重要)
针对文本生成任务设计了另外两种预训练目标:
- document-level obiective: 我们采样了一个长度从原始文本长度的 50% 到100%的均匀分布中采样的片段。这个预训练目标针对的是无条件的长文本生成任务。
- sentence-level objective: 我们限制了每个被掩盖的片段必须是完整的句子,采样多个句子直到覆盖了原始文本中15%的字符。这个预训练目标针对的是输出目标常常是句子或者段落的有条件文本生成任务。
1.2 Bloom
bloom是一种基于变换器网络(Transformer)架构的自回归语言模型。该模型除了176B 之外,还提供了几个较小的模型,其模型参数规模为:560M,1.1B,1.7B,3B 和7.1B。46 种口语和 13 种编程语言,其中包括中文。
ref:https://zhuanlan.zhihu.com/p/630134021