拓冰建站拓冰建站
首页 / 资讯中心 / 正文

BERT、GPT、LLaMA 和位置编码有什么差异?

第22题BERT、GPT、LLaMA 和位置编码有什么差异1. 核心回答这三类模型都建立在 Transformer 上但主要差异集中在四个维度模型主体结构Attention 可见范围典型预训练目标经典位置表示BERTEncoder-only每个 Token 可同时看左、右上下文Masked Language Modeling原始 BERT 还包含 NSPLearned Absolute Position Embedding原始 GPTDecoder-only只能看当前位置及其左侧 TokenCausal Language ModelingLearned Absolute Position EmbeddingLLaMACausal Transformer只能看当前位置及其左侧 TokenCausal Language ModelingRoPE最核心的理解是BERT强调双向上下文表示主要服务于文本理解和表征任务GPT强调按照从左到右的条件概率生成文本LLaMA延续因果语言模型路线同时在 Transformer 细节上采用 RoPE、RMSNorm、SwiGLU 等现代设计位置编码负责告诉 Transformer Token 的顺序。BERT、早期 GPT 和 LLaMA 使用的位置机制并不相同。2. BERT 的结构是什么BERT 的全称是Bidirectional Encoder Representations from Transformers它主要使用 Transformer Encoder。对于一个序列x1,x2,…,xn x_1,x_2,\ldots,x_nx1​,x2​,…,xn​BERT 中第iii个 Token 的 Self-Attention 可以访问整个输入序列x1,…,xi−1,xi,xi1,…,xn x_1,\ldots,x_{i-1},x_i,x_{i1},\ldots,x_nx1​,…,xi−1​,xi​,xi1​,…,xn​因此同一个词的表示能够同时利用左侧和右侧语境。例如I went to the bank to deposit money.这里的bank可以同时观察左边的went to the右边的deposit money。模型因此更容易判断这里的bank表示金融机构。2.1 BERT 怎么训练原始 BERT 最核心的训练方式是 Masked Language Modeling简称 MLM。例如The cat is sitting on the [MASK].模型需要利用两侧上下文预测mat可以抽象为P(xi∣x1,…,xi−1,xi1,…,xn) P(x_i\mid x_1,\ldots,x_{i-1},x_{i1},\ldots,x_n)P(xi​∣x1​,…,xi−1​,xi1​,…,xn​)原始 BERT 还使用 Next Sentence Prediction简称 NSP用于判断两个文本片段是否具有连续关系。因此BERT 学习的重点是给定完整上下文形成高质量上下文表示。这类表示天然适合文本分类情感分析命名实体识别信息抽取阅读理解句子匹配。3. GPT 的结构是什么这里用原始 GPT 的经典设计说明。原始 GPT 使用Decoder-only Transformer并使用 masked self-attention。假设输入为x1,x2,…,xn x_1,x_2,\ldots,x_nx1​,x2​,…,xn​第iii个位置只能访问x1,x2,…,xi x_1,x_2,\ldots,x_ix1​,x2​,…,xi​未来 Tokenxi1,…,xn x_{i1},\ldots,x_nxi1​,…,xn​会被 causal mask 屏蔽。Attention mask 可以理解为$$M_{ij}\begin{cases}0,j\leq i\-\infty,ji\end{cases}$$随后$$\operatorname{Attention}(Q,K,V)\operatorname{softmax}\left(\frac{QK^\top}{\sqrt{d_k}}M\right)V$$这样可以保证模型生成第i1i1i1个 Token 时只依赖已经出现的 Token。3.1 GPT 怎么训练经典 GPT 采用从左到右的语言模型目标$$P(x_1,\ldots,x_n)\prod_{t1}^{n}P(x_t\mid x_1,\ldots,x_{t-1})$$训练过程可以理解成不断完成输入 The malware connects to 预测 a然后输入 The malware connects to a 预测 remote继续The malware connects to a remote预测server因此 GPT 的结构与训练目标天然支持逐 Token 生成。4. LLaMA 和 GPT 有什么关系LLaMA 同样属于因果自回归 Transformer 路线。它和 GPT 在核心语言建模思想上非常接近P(xt∣xt) P(x_t\mid x_{t})P(xt​∣xt​)也就是根据前面的 Token 预测后面的 Token。LLaMA 的重要差异主要体现在现代 Transformer 的具体实现。原始 LLaMA 论文明确列出了三个关键改动4.1 Pre-Normalization RMSNormLLaMA 在 Transformer 子层之前执行归一化并使用 RMSNorm。可以简化理解为x→RMSNorm⁡(x)→Attention⁡ x \rightarrow \operatorname{RMSNorm}(x) \rightarrow \operatorname{Attention}x→RMSNorm(x)→Attention这样设计主要用于改善深层模型训练稳定性。4.2 SwiGLU原始 Transformer 的 FFN 使用 ReLU。LLaMA 使用 SwiGLU 激活结构。它属于 gated feed-forward 结构使 FFN 的表达方式更加灵活。4.3 RoPE这是本题与位置编码最相关的改动。LLaMA 删除了传统的绝对位置 Embedding并在 Transformer 每一层 Attention 中使用 Rotary Position Embedding即 RoPE。5. 为什么 Transformer 必须有位置信息Self-Attention 本身主要根据 Token 之间的内容关系计算QK⊤ QK^\topQK⊤如果完全不提供顺序信息那么下面两个序列中的 Token 集合相同dog bites manman bites dog模型需要额外知道谁在第 1 个位置谁在第 2 个位置谁在第 3 个位置。因此 Transformer 通常需要显式或隐式的位置机制。经典方法主要包括Sinusoidal Positional EncodingLearned Absolute Position EmbeddingRelative Position EncodingRotary Position Embedding。6. 原始 Transformer 的正弦位置编码是什么《Attention Is All You Need》使用固定的正弦和余弦函数表示位置。经典形式是$$PE(pos,2i)\sin\left(\frac{pos}{10000^{2i/d}}\right)$$$$PE(pos,2i1)\cos\left(\frac{pos}{10000^{2i/d}}\right)$$其中pospospos是 Token 的位置iii是向量维度ddd是模型隐藏维度。然后直接与 Token Embedding 相加$$h_{pos}E(x_{pos})PE(pos)$$它的特点包括参数固定不需要学习每个位置具有唯一的连续向量表示不同维度使用不同频率原论文选择这一方案时考虑了向更长序列外推的可能性。原始 Transformer 同时实验过 learned positional embeddings并报告两种方式在当时机器翻译实验中的结果非常接近。7. BERT 的位置编码是什么原始 BERT 使用可学习的绝对位置嵌入。BERT 的输入实际上由三部分相加$$h_iE_{\text{token}}(x_i)E_{\text{segment}}(s_i)E_{\text{position}}(i)$$也就是Token Embedding Segment Embedding Position Embedding例如[CLS] I like AI [SEP]模型会分别学习Position 0 Position 1 Position 2 Position 3 Position 4对应的位置向量。这种设计的特点是位置本身成为模型参数P∈RLmax⁡×d P\in\mathbb{R}^{L_{\max}\times d}P∈RLmax​×d训练过程中P PP会通过梯度下降一起更新。因此 BERT 学到的是每一个绝对位置编号对应的参数表示。8. 原始 GPT 的位置编码是什么原始 GPT 同样采用可学习的位置嵌入。其输入可以简化表示为$$h_0UW_eW_p$$其中WeW_eWe​是 Token EmbeddingWpW_pWp​是 Position Embedding。因此经典 GPT 的方式和 BERT 在“位置表示类型”上比较接近Token EmbeddingLearned Position Embedding \text{Token Embedding} \text{Learned Position Embedding}Token EmbeddingLearned Position Embedding二者真正明显的结构差异来自 Attention 可见范围。BERT 使用双向 Self-Attention。GPT 使用 Causal Self-Attention。因此BERT 左边 ← 当前Token → 右边GPT 左边 → 当前Token × 未来Token需要注意“GPT”现在已经代表一个很大的模型家族。原始 GPT 明确使用 learned absolute position embeddings其他 GPT 类模型可以采用不同的位置机制所以回答时最好说明具体模型版本。9. LLaMA 的 RoPE 是什么LLaMA 使用 Rotary Position Embedding。RoPE 的核心思路是在 Attention 中根据 Token 的位置对QQQ和KKK做旋转变换。假设位置为mmm$$q_mR_m q$$位置为nnn$$k_nR_n k$$Attention 中计算qm⊤kn q_m^\top k_nqm⊤​kn​得到(Rmq)⊤(Rnk) (R_mq)^\top(R_nk)(Rm​q)⊤(Rn​k)旋转矩阵具有组合性质因此结果能够显式反映n−m n-mn−m这样的相对位置关系。这使 RoPE 同时包含Token 所在的绝对位置Attention 中两个 Token 的相对距离信息。一个直观区别是9.1 BERT / 经典 GPT位置向量直接加入 Token Embeddingxipi x_ip_ixi​pi​9.2 LLaMA / RoPEToken Embedding 中不直接加入传统绝对位置向量。位置作用于 Attention 的Q QQ和K KK即Qi→RiQi Q_i\rightarrow R_iQ_iQi​→Ri​Qi​Kj→RjKj K_j\rightarrow R_jK_jKj​→Rj​Kj​随后再计算 Attention。因此 RoPE 更直接地把位置信息写入 Token 之间的 Attention 关系。10. BERT 和 GPT 最关键的差异是什么可以从 Attention Mask 直接理解。10.1 BERT假设有四个 TokenA B C D每个位置基本都可以看到A B C DAttention Matrix 近似为A B C D A ✓ ✓ ✓ ✓ B ✓ ✓ ✓ ✓ C ✓ ✓ ✓ ✓ D ✓ ✓ ✓ ✓因此是双向上下文建模。10.2 GPT / LLaMA使用 Causal MaskA B C D A ✓ × × × B ✓ ✓ × × C ✓ ✓ ✓ × D ✓ ✓ ✓ ✓所以A 只能看 AB 可以看 A、BC 可以看 A、B、CD 可以看 A、B、C、D。这样才能保证训练和生成时不存在未来信息泄漏。11. 三者的任务倾向有什么差异可以从训练目标直接推导。11.1 BERT核心问题是根据完整上下文这个位置应该是什么因此更自然地用于分类检索表示NER信息抽取文本匹配阅读理解。11.2 GPT / LLaMA核心问题是已知前面的 Token下一个 Token 应该是什么因此更自然地用于文本生成对话代码生成长文本续写指令跟随Agent 的语言生成模块。模型最终能做什么还受到预训练数据、后训练、Prompt、工具和任务适配方式影响因此架构只能解释主要倾向。12. 最容易混淆的几个点12.1 Encoder 和 Decoder 与位置编码属于两个维度下面这些组合在理论上都可以存在Encoder Absolute Position Encoder Relative Position Decoder Absolute Position Decoder RoPE因此不能根据“Decoder-only”直接推出“使用 RoPE”。12.2 GPT 不对应唯一的位置编码方式原始 GPT 使用 learned position embeddings。现代 GPT-style Decoder 模型可能使用learned absolute embeddingRoPEALiBi其他 relative position 方法。面试中最好明确如果讨论原始 GPT它使用 learned absolute positional embeddings如果泛指 GPT-style causal LM则位置方案需要看具体模型。12.3 BERT 的双向来自 Attention 结构和 MLM 训练方式BERT 可以同时使用左右上下文因为输入中的普通 Token 之间没有 causal mask。MLM 通过遮挡部分目标 Token避免模型直接读取需要预测的答案。13. 面试时可以压缩成下面这段BERT、GPT 和 LLaMA 都基于 Transformer但架构和训练目标不同。BERT 是 Encoder-only 的双向模型每个 Token 可以同时关注左右上下文原始预训练主要使用 MLM 和 NSP因此更适合文本理解、分类、抽取等任务。经典 GPT 是 Decoder-only 的因果语言模型通过 causal mask 保证当前位置只能看到左侧 Token并通过 next-token prediction 学习P(xt∣xt) P(x_t\mid x_{t})P(xt​∣xt​)因此天然适合自回归生成。LLaMA 也采用 causal language modeling但在 Transformer 结构上进行了现代化设计例如 RMSNorm、SwiGLU 和 RoPE。位置编码方面原始 Transformer 使用固定正弦/余弦编码BERT 和原始 GPT 使用 learned absolute positional embeddingLLaMA 使用 RoPE。BERT 和经典 GPT 都是把绝对位置信息加入输入表示RoPE 则通过旋转QQQ和KKK将位置关系直接引入 Attention。所以回答这道题时我会用四个维度比较架构、Attention 可见范围、训练目标、位置编码。14. 来源Devlin et al.,BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding, NAACL 2019.Radford et al.,Improving Language Understanding by Generative Pre-Training, OpenAI, 2018.Touvron et al.,LLaMA: Open and Efficient Foundation Language Models, 2023.Vaswani et al.,Attention Is All You Need, NeurIPS 2017.Su et al.,RoFormer: Enhanced Transformer with Rotary Position Embedding, 2021.
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门