关于我
从2022年末开始接触AIGC,便一直紧跟最近技术与实践落地。期间参与copilot项目研发,落地了多个垂类AIGC大模型应用,熟悉各种AIGC相关技术如Agent,Langchain,chatdoc,向量数据库等。
关于本系列
请你认真看完,了解最佳食用方式。
本系列是结合AI搜索技术所得素材然后整理笔记而成。所有问题答案均由AI提供初稿,而后修缮而成。每个问题回答后面我都会放上原文的链接,方便大家深度阅读。另外有覆盖不到的问题,尽请留言,会在下期更新。
本期问题快浏
6. prefix LM 和 causal LM 区别是什么
8. 比较下prefix Decoder 和 causal Decoder 和 Encoder-Decoder
9. 为何现在的大模型大部分是Decoder only结构?
1. 大模型LLM的架构介绍
大型语言模型(LLM)通常指的是包含数百亿(或更多)参数的Transformer语言模型。这些模型在大规模文本数据上进行训练,例如GPT-3、PaLM、Galactica和LLaMA。
大型语言模型的架构要点:
-
自回归模型(Autoregressive Model):这类模型采用经典的语言模型任务进行预训练。在预测时,给出上文,模型预测下文。最经典的自回归模型是GPT。这些模型适用于文本生成任务,因为它们只能看到上文而无法看到下文。
-
自编码模型(Autoencoder Model):自编码模型采用句子重建的任务进行预训练。模型通过破坏句子(例如掩码或打乱顺序)来学习将其还原,对应原始Transformer模型的编码器部分。最经典的自编码模型是BERT。与自回归模型不同,自编码模型既可以看到上文信息,也可以看到下文信息,因此适用于自然语言理解的任务,如文本分类和阅读理解。
-
序列到序列模型(Sequence-to-Sequence Model):这种模型同时使用了原始的编码器和解码器,最经典的模型是T5。序列到序列模型适用于文本摘要、机器翻译等任务,实际上几乎所有的NLP任务都可以通过序列到序列模型解决。
目前现有的大型语言模型基本上都属于自回归模型。整个训练过程通常分为以下几个阶段:
-
预训练:在这一阶段,大模型的主体已经确定,使用大量数据进行训练,找出其中的共性并压缩为一个模型。目前认为模型的参数量不宜过小,但也不是越大越好。增加数据量并保持中等到大型参数规模是一个平衡效果和成本的较优方案。
-
微调:大型语言模型中的几乎所有知识都是在预训练中学习的。微调阶段使用相对较少、高质量的数据来继续训练模型,以适应特定场景或问题。
-
模型对齐:通过引入人工生成的预期效果样例以及使用强化学习(如RLHF)来实现模型和预测的对齐。这有助于符合预期目的,同时遵守人类提供的道德和安全标准。
总之,大型语言模型的架构基于Transformer,经过预训练、微调和模型对齐等阶段,不断优化以适应不同任务和领域的需求.
References
- 大语言模型(LLM)综述(一):大语言模型介绍 - 知乎
- LLM学习1:大模型架构要点总结 - 知乎
- 大语言模型LLM网络结构介绍 - 海_纳百川 - 博客园
- 《深入浅出LLM基础篇》(一):大模型概念与发展 - CSDN博客
- 大语言模型(LLM)综述(一):大语言模型介绍 - CSDN博客
2. 目前有哪些主流大模型?
以下是一些顶尖的大型语言模型及其架构:
-
ChatGPT:由OpenAI推出,基于GPT-3.5的开源聊天机器人。它可以与用户进行自然语言对话,广泛应用于回答问题、提供信息和生成创意内容等任务。
-
GPT-4:于2023年3月发布,是多模态预训练大模型,能够接受图像和文本输入,并输出正确的文本回复。实验表明,GPT-4在各种专业测试和学术基准上的表现与人类水平相当。
-
LaMDA:一系列基于Transformer的模型,专门用于对话。LaMDA拥有多达1370亿个参数,可以在各种话题上进行自由流畅的对话。
-
PaLM:具有5400亿个参数的语言模型,能够处理复杂的学习和推理任务。它在语言和推理测试中胜过最先进的语言模型和人类。
-
mT5:多语言T5(mT5)是一个由130亿个参数组成的文本到文本的Transformer模型,涵盖了101种语言。它在跨语言自然语言处理任务上表现出色。
-
Gopher:DeepMind的语言模型,在科学、人文等专业主题的问题上比现有的大型语言模型更准确。
-
Chinchilla:使用与Gopher相同的计算预算,但只有700亿个参数。在许多下游评估任务中,它胜过了其他模型。
-
Sparrow:由DeepMind开发的聊天机器人,旨在正确回答用户的问题,同时减少不安全和不适当回答的风险。
-
Claude:一个由先进的自然语言处理驱动的基于AI的对话助手,目标是成为有益、无害和诚实的助手。
-
OPT-IML:基于Meta的OPT模型的预训练语言模型,拥有1750亿个参数。在自然语言任务中表现更好,且具有更低的CO₂排放量。
-
BlenderBot-3:可以与人交互并接收反馈以提高对话能力的对话代理,基于Meta AI公开提供的OPT-175B语言模型构建。
-
Llama:拥有7B到65B参数的基础语言模型,在大多数基准测试中优于GPT-3(175B)。
-
Llama2:包括从70亿到700亿个参数的预训练和优化的大型语言模型集合,其中的Llama 2-Chat是针对对话场景优化的。
-
Jurassic-1:AI21 Labs推出的开发者平台,为构建应用程序和服务提供最先进的语言模型。提供了最大、最复杂的通用语言模型。
-
Megatron-Turing NLG:基于Transformer的语言模型,拥有5300亿个参数,超越了之前的最先进模型。
References
- 2023 年热门的大型语言模型 (LLMs)汇总 - 知乎
- 深入解析大语言模型的主流架构 | 数据学习者官方网站 ...
- 大模型核心技术原理: Transformer架构详解 - 知乎
- 为什么只有基于Transformer的大模型,而没有其他的? - 知乎
3. 大模型的涌现能力是因为什么?
什么是涌现能力?
在复杂系统中,当许多微小个体相互作用并形成宏观层面上无法由微观个体解释的特殊现象时,我们称之为“涌现现象”。生活中有许多例子,比如雪花的形成、堵车、动物迁徙等。
大型语言模型的涌现能力
大型语言模型,如近年来的巨型预训练模型(例如GPT-3、PaLM-E等),在未直接训练过的任务上表现出惊人的性能,这就是涌现能力。这种能力源于大量的训练数据和高度复杂的网络结构。
涌现能力的表现
大型语言模型的涌现能力在不同类型的任务中表现出不同的特点:
- 伸缩法则:对于知识密集型任务,随着模型规模的增长,任务效果也持续增加。这类任务对大模型中知识蕴含的数量要求较高。
- 涌现能力:由多步骤构成的复杂任务,只有当模型规模足够大时,效果才会急剧增长。在模型规模小于某个临界值之前,模型基本不具备任务解决能力。
- U形曲线:某些任务的效果随着模型规模增长呈现出U形曲线。初始模型效果下降,但当模型规模足够大时,效果反而提升。
具体案例
两类被认为具有涌现能力的任务是:
- In Context Learning(“Few-Shot Prompt”):用户给出几个例子,大模型不需要调整模型参数,就能够处理好任务。这种方法在各种任务中都表现出涌现现象。
- 思维链(CoT):用户提供一步一步的推导过程,大模型可以处理相对复杂的推理任务。这包括数学问题、符号推理等。
模型规模与涌现能力
涌现能力与模型规模大小有关。不同类型的任务对模型大小的要求不同。虽然没有唯一的模型大小数值,但通常模型达到一定规模后,涌现能力会显现。
总之,大型语言模型的涌现能力是一个引人瞩目的现象,其背后的原因仍需进一步研究和解释。
References
4. 了解Bert的结构吗?
BERT(Bidirectional Encoder Representations from Transformers)是一种语言表示模型,它基于Transformer架构构建而成。让我详细介绍一下 BERT 的结构和原理。
-
模型输入:
- BERT的输入由三种不同的嵌入组成:
- Wordpiece 嵌入:表示单词本身的向量。
- 位置嵌入:编码单词的位置信息。
- Segment 嵌入:用于区分两个句子的向量表示。
- BERT的输入由三种不同的嵌入组成:
-
网络结构:
- BERT的主要结构是Transformer的encoder部分,由多层encoder堆叠而成。
- 每一层的encoder包括:
- Self-Attention Layer:计算词之间的相关度,用于重新编码目标词。
- Layer Normalization:规范化层。
- Feed-forward Layer:前馈神经网络。
-
Self-Attention Layer:
- 通过目标词与句子中的所有词汇的相关度,对目标词重新编码。
- 计算包括三个步骤:
- 计算词之间的相关度。
- 对相关度进行归一化。
- 通过相关度和所有词的编码进行加权求和获取目标词的编码。
-
总结:
- BERT是一个预训练模型,通过预测被掩盖的词以及判断输入的两个句子是否上下句,完成NLP下游任务。
- 它使用了Transformer的encoder部分,每层由Self-Attention Layer和Feed-forward Layer组成。
References
- BERT原理和结构详解_bert结构-CSDN博客
- BERT:基本架构与模型结构的深度解读-百度开发者中心
- BERT 详解 - 知乎
- BERT系列(二)BERT模型的核心架构 - 知乎
- 【深度学习】BERT详解 - 知乎
5. Bert和GPT的区别是什么?
BERT(Bidirectional Encoder Representations from Transformers)和GPT(Generative Pre-trained Transformer)是近年来自然语言处理领域中备受关注的两个语言模型。
-
预训练任务:
- BERT:采用双向预训练语言模型,通过掩码语言模型和下一句预测等任务进行预训练。它在文本理解方面表现出色,如问答、文本分类、情感分析等。
- GPT:采用自回归预训练语言模型,通过生成式预训练,擅长文本生成任务,如文章、对话、摘要等.
-
网络结构:
- BERT:其网络结构类似于Transformer的Encoder部分,主要用于文本理解。它包含Multi-Head Attention和Masked Multi-Head Attention。
- GPT:类似于Transformer的Decoder部分,擅长文本生成。它也包含Multi-Head Attention,但没有Masked Multi-Head Attention。
-
上下文处理:
- BERT:在进行文本理解时,通常需要较短的上下文。
- GPT:在进行文本生成时,需要较长的上下文。
-
适用领域:
- BERT:主要用于解决判别式任务,如问答、文本分类、命名实体识别等。
- GPT:擅长生成式任务,如文本生成、对话生成、文章摘要等。
总结起来,BERT适用于文本理解,而GPT则擅长文本生成。这两者都是近年来NLP领域的重要突破,各自在不同任务上都有出色的表现.
References
- 关于ChatGPT:GPT和BERT的差别(易懂版) - 知乎
- BERT vs GPT:了解自然语言处理中的关键差异-腾讯云开发 ...
- BERT vs GPT自然语言处理中的关键差异详解 / 张生荣
- GPT vs. BERT:探索两大自然语言处理模型的异同 - CSDN博客
- 语言预训练模型梳理: BERT & GPT & T5 & BART - 知乎
6. prefix LM 和 causal LM 区别是什么
关于 Prefix LM 和 Causal LM 的区别
-
Prefix LM(前缀语言模型):
- Encoder-Decoder 模型的一种变体。
- 在 Prefix LM 中,Encoder 和 Decoder 共享同一个 Transformer 结构。
- Encoder 部分采用 Auto Encoding(AE-自编码)模式,即前缀序列中的任意两个 token 都相互可见。
- Decoder 部分采用 Auto Regressive(AR-自回归)模式,即待生成的 token 可以看到 Encoder 侧所有 token(包括上下文)和 Decoder 侧已经生成的 token,但不能看到尚未产生的 token。
- 代表模型:UniLM、T5、GLM(清华滴~)。
-
Causal LM(因果语言模型):
- 主要用于 GPT 系列的模型。
- 只涉及到 Encoder-Decoder 中的 Decoder 部分。
- 采用 Auto Regressive 模式,根据历史的 token 来预测下一个 token。
- Attention Mask 机制限制了模型只能看到当前和历史输入 token 序列,而不能看到未来输入信息。
总结一下:
- Prefix LM 可以根据给定的前缀生成后续的文本。
- Causal LM 只能根据之前的文本生成后续的文本。
如果对更多细节感兴趣,可以参考一下这些论文:
- 微软 UniLM:arxiv.org/pdf/1905.0319
- Google 理论评估 PLM 与 CLM:arxiv.org/pdf/2308.0691
References
- LLM面面观之Prefix LM vs Causal LM - 知乎
- 大模型面试题目-prefix LM 和 causal LM 区别是什么? - 知乎
- 大模型面试题目-prefix LM 和 causal LM 区别是什么? - 知乎
- 【了解LLM】—— LLM&& SD 基本概念 - 青铜时代的猪 - 博客园
- 超详细!大模型面经指南(附答案)-CSDN博客
7. prefix LM causal LM有什么优缺点?
-
Prefix LM(前缀语言模型):
- 优势:
- 可以同时进行语言理解和语言生成类任务。
- 相对于标准的 Encoder-Decoder 模型,它只使用了一个 Transformer,因此模型较轻量。
- 缺点:
- 效果方面可能较弱于 Encoder-Decoder 模型,特别是在语言理解类任务上。
- 生成类任务的效果与 Encoder-Decoder 模型相差不大。
- 优势:
-
Causal LM(因果语言模型):
- 只涉及到 Encoder-Decoder 中的 Decoder 部分。
- 采用 Auto Regressive 模式,即根据历史的 token 来预测下一个 token。
- 在 Attention Mask 中做手脚,使得待生成的 token 可以看到 Encoder 侧所有 token 和 Decoder 侧已经生成的 token,但不能看到尚未产生的 token。
- 目前流行的大多数模型都采用 Causal LM 结构,例如 GPT 系列模型和开源界的 LLaMa.
-
如何选择:
- 两种结构均能生成文本,具体选择取决于任务需求和个人偏好。
- 从理论上推导,Causal LM 在情境学习(In-Context Learning)中比不上 Prefix LM,但具体应用时需权衡.
-
总结:
- 前缀语言模型可以根据给定的前缀生成后续的文本。
- 因果语言模型只能根据之前的文本生成后续的文本.
References
- 预训练模型五大模型结构_prefix lm-CSDN博客
- LLM面面观之Prefix LM vs Causal LM - 知乎
- 预训练模型五大模型结构_prefix lm-CSDN博客
- LLM面面观之Prefix LM vs Causal LM - CSDN博客
8. 比较下prefix Decoder 和 causal Decoder 和 Encoder-Decoder
-
Causal Decoder(因果解码器):
- 代表模型:GPT 系列,例如 GPT-3 和 ChatGPT。
- 使用单向注意力掩码,确保每个输入标记只能关注过去的标记和它本身。
- 输入和输出标记通过解码器以相同的方式进行处理。
- Sequence mask 是一种典型的下三角矩阵,确保未来的信息不泄露给当前位置的单词。
-
Encoder-Decoder(编码器-解码器):
- 代表模型:Flan-T5 等。
- 模型包含两部分:编码器和解码器,两者参数独立。
- 编码器将输入序列处理为中间表示,而解码器基于中间表示自回归地生成目标序列。
- 编码器采用双向注意力,而解码器仍然采用单向注意力。
-
Prefix Decoder(前缀解码器):
- 也被称为非因果解码器。
- 注意力机制与 Encoder-Decoder 类似。
- 输入部分采用双向注意力,输出部分采用单向注意力。
- 处理输入和输出的模型参数是完全共享的,类似于 Causal Decoder,都属于 Decoder-Only 架构。
- 代表模型包括 U-PaLM 和 GLM-130B。
下面是一个简单的比较表格:
模型架构 | 代表模型 | 注意力机制 | 是否属于 Decoder-Only |
---|---|---|---|
Causal Decoder | GPT-3、ChatGPT | 纯单向 | 是 |
Encoder-Decoder | Flan-T5 | 输入双向,输出单向 | 否 |
Prefix Decoder | U-PaLM、GLM-130B | 输入双向,输出单向 | 是 |
References
- 管中窥豹:从mask入手对比不同大语言模型的架构 - 知乎
- 比较Causal decoder、Prefix decoder和encoder-decoder ...
- Different Decoder 整理 - 知乎
9. 为何现在的大模型大部分是Decoder only结构?
现在的大型语言模型(LLM)大部分采用Decoder-only结构,而不是Encoder-Decoder结构,有几个原因:
-
工程方面:随着模型规模的增大,各种工程问题变得更加复杂。例如,对于非Google系的团队,实现pipeline parallelism(流水线并行)变得必要,但像T5这样的模型并不直接支持。此外,一些新技术(如flashattention和relative positional bias)也对Decoder-only模型的性能产生了影响。
-
Zero-shot表现:Decoder-only模型在zero-shot任务上表现出色。这是一个重要的特性,因为它允许模型在没有任何下游任务标注数据的情况下进行泛化。
-
缺乏对应的scaling law:与其他架构相比,Decoder-only模型的性能在大规模上没有明确的scaling law。这使得它成为大规模训练的有利选择。
总之,虽然双向的Encoder-Decoder结构在理论上可能更强大,但目前Decoder-only参数已经足够大,而且它在许多方面具有优势。需要注意的是,不同模型可能有不同的架构,但Decoder-only在当前的大型语言模型中占据主导地位。