AI summary
type
status
date
slug
summary
category
tags
icon
password
Transformer 模型一开始是用来做 seq2seq 任务的,所以它包含 Encoder 和 Decoder 两个部分;他们两者的区别主要是,Encoder 在抽取序列中某一个词的特征时能够看到整个序列中所有的信息,即上文和下文同时看到;而 Decoder 中因为有 mask 机制的存在,使得它在编码某一个词的特征时只能看到自身和它之前的文本信息。
模型体系有哪些?
- BERT 为代表的 Encoder-only
- T5 为代表的 Encoder-decoder
- 编码器使用双向注意力,解码器使用交叉注意力和掩码,通过自回归生成
- 对问题编码理解更充分,适合偏理解的 NLP 任务
- 在长文本生成任务上效果差,训练效率低
- GPT 为代表的 Decoder-only
- 因果解码器(Causal Decoder),采用单向注意力掩码,GPT,Llama
- 预训练和下游应用完全一致,适用于文本生成任务,训练效率高
- 前缀解码器(Prefix Decoder),对于前缀部分使用双向注意力编码,GLM
- 与 encoder-decoder 的区别是编码和解码共享参数
Prefix LM 与 Causal LM:

为什么现有 LLM 基本都是 decoder-only?
- 首先淘汰掉 BERT 这种 encoder-only,因为它用 masked language modeling 预训练,不擅长做生成任务;相比之下 decoder-only 的模型用 next token prediction 预训练,兼顾理解和生成,在各种下游任务上的 zero-shot 和 few-shot 泛化性能都很好。
- Encoder 的双向注意力会存在低秩问题,这可能会削弱模型表达能力,就生成任务而言,引入双向注意力并无实质好处。而 Encoder-Decoder 架构之所以能够在某些场景下表现更好,大概只是因为它多了一倍参数。
- 双向 attention 的注意力矩阵容易退化为低秩状态,causal attention 是下三角矩阵,满秩,建模能力更强。
- 更好的Zero-Shot性能、更适合于大语料自监督学习。
- decoder-only 模型在没有任何 tuning 数据的情况下、zero-shot 表现最好,而 encoder-decoder 则需要在一定量的标注数据上做 multitask finetuning 才能激发最佳性能。
- decoder-only 支持一直复用 KV-Cache,对多轮对话更友好。因为每个 Token 的表示之和它之前的输入有关,而 encoder-decoder 和 PrefixLM 就难以做到。
- 轨迹依赖,OpenAI 摸索出来一条行之有效的路子,后来者继续沿用。
涌现能力的原因?
什么是涌现能力
- 一个系统在其组成部分的基础上,表现出超出这些部分单独作用时所能实现的特性或行为。这种能力并不是系统的单个部分所固有的,而是通过这些部分之间的相互作用和协同作用自然产生的。
- 比如雪花的形成、动物迁徙等
猜想
- 任务的评价指标不够平滑
- 例如,emoji 猜电影,要求输出与答案精确匹配就会发生涌现现象,如果变成多选题,那么就是一般的 scaling law 现象
- 复杂任务与子任务
- 复杂的任务由多个子任务构成,子任务符合 scaling law,最终任务体现为涌现
什么是 Scaling law?
- 定义:用计算量、数据集规模和模型规模,来预测模型最终能力
- 在训练之前了解模型的能力(预测性能边界),来改善关于模型对齐、安全和部署的决定
- 在固定资源预算下,匹配模型的最佳大小和数据大小,无需昂贵的试错
- DeepMind
- AlphaGo,专注于解决有明确规划和目标的难题
- 模型大小和数据集大小应该等比例扩展;更关注数据集的扩展,只有数据是高质量时,更大数据集的益处才能体现
- OpenAI
- GPT,致力于让机器理解和生成自然的人类语言
- 为了获得最佳性能,需要三个因素同步扩大;如果没有限制,性能与每个单独因素间呈幂律关系;影响程度为计算量 > 参数 >> 数据集大小,固定计算量时应该优先考虑较大的模型 + Early Stopping
LLMs 复读机问题
LLMs复读机问题(LLMs Parroting Problem)是指大型语言模型在生成文本时过度依赖输入文本的复制,而缺乏创造性和独特性。
为何出现:
- 数据偏差:如果训练数据中存在大量的重复文本或者某些特定的句子或短语出现频率较高,模型在生成文本时可能会倾向于复制这些常见的模式。
- 训练目标的限制:大型语言模型的训练通常是基于自监督学习的方法,通过预测下一个词或掩盖词来学习语言模型。这样的训练目标可能使得模型更倾向于生成与输入相似的文本。
- 缺乏多样性的训练数据:如果训练数据中缺乏多样性的语言表达和语境,模型可能无法学习到足够的多样性和创造性。
- 模型结构和参数设置:大型语言模型的结构和参数设置也可能对复读机问题产生影响。例如,模型的注意力机制和生成策略可能导致模型更倾向于复制输入的文本。
如何缓解:
- 多样性训练数据:在训练阶段,使用多样性的语料库来训练模型,避免数据偏差和重复文本的问题。包括从不同领域、不同来源和不同风格的文本中获取数据。
- 引入噪声:在生成文本时,引入一些随机性或噪声,例如通过采样不同的词或短语,或者引入随机的变换操作,以增加生成文本的多样性。
- 参数调整:较高的温度值会增加随机性,从而减少复读机问题的出现。调整 Beam 大小和搜索宽度,可以控制生成文本的多样性和创造性。
- 后处理和过滤:对生成的文本进行后处理和过滤,去除重复的句子或短语,以提高生成文本的质量和多样性。可以使用文本相似度计算方法或规则来检测和去除重复的文本。
LLMs 输入句子长度理论上可以无限长吗?
理论上来说,LLMs 可以处理任意长度的输入句子,但实际上存在一些限制和挑战。
- 计算资源:生成长句子需要更多的计算资源,包括内存和计算时间。计算长句子可能会导致内存不足或计算时间过长的问题。
- 模型训练和推理:在训练阶段,处理长句子可能会导致梯度消失或梯度爆炸的问题,影响模型的收敛性和训练效果。在推理阶段,生成长句子可能会增加模型的错误率和生成时间。
- 上下文建模:长句子的上下文可能会更加复杂和深层。模型需要能够捕捉长句子中的语义结构,以生成准确和连贯的文本。
Bert,Llama,ChatGLM 怎么选?
取决于具体的应用场景和需求。
- Bert:更适合于 NLU 相关的任务。
- LLaMA:LLaMA(Large Language Model Meta AI)适合于英文文本生成的任务。
- ChatGLM:适用于构建聊天机器人、智能客服等对话系统。
另外,如果有足够的计算资源,或者数据敏感,可以选择本地部署开源模型。否则可以直接使用商业 API。
各个专业领域是否需要各自的大模型来服务?
- 领域特定知识:不同领域拥有各自特定的知识和术语,需要针对该领域进行训练的大模型才能更好地理解和处理相关文本。
- 语言风格和惯用语:专门针对某个领域进行训练的大模型可以更好地掌握该领域的语言特点,生成更符合该领域要求的文本。
- 数据稀缺性:某些领域的数据可能相对较少,无法充分训练通用的大模型。针对特定领域进行训练的大模型可以更好地利用该领域的数据,提高模型的性能和效果。
领域特定的模型可以在通用模型的基础上进行微调和定制,以适应特定领域的需求。这样可以在满足领域需求的同时,减少模型的重复训练和资源消耗。