GPT 和 BERT 的 Mask 机制对比:核心区别与优化策略
在NLP领域,GPT 和 BERT 是最具代表性的预训练语言模型之一。它们都在训练过程中使用了 Mask 机制来引导模型学习语言表示,但具体实现方式和目标却有所不同。本文将深入探讨 GPT 和 BERT 的 Mask 方法的核心区别,并分析其优化策略。
1. BERT 的 Mask 机制:基于 MLM(Masked Language Model)
BERT(Bidirectional Encoder Representations from Transformers)采用 (Masked Language Model) 进行训练,即在输入文本中随机 Mask 掉部分 token,让模型在上下文中预测这些被 Mask 掉的 token。
BERT 的 Mask 方式具有以下特点:
Token 级别的 Mask:BERT 会随机选择一定比例的 token 并用
[MASK]
进行替换,例如:“I love [MASK] dogs.”
这里的my
可能会被 Mask 掉,模型需要结合上下文来预测原始词。基于子词(Subword)级别的 Mask:BERT 采用 BPE(Byte-Pair Encoding) 或 WordPiece 进行分词,一个单词可能被拆分成多个子词(subword)。
例如:“running” → [“run”, “##ning”]
如果只 Mask 掉 “##ning”,模型很容易猜测出原单词是 “running”。Mask 预测的优化:
- Span Mask(片段 Mask):后续研究发现,单独 Mask 子词会让任务变得过于简单,因此提出了 Span Mask,即将整个单词或一段短语整体 Mask 掉,从而增加任务的难度。
- 命名实体 Mask(适用于中文):中文的分词方式不同于英文,百度等团队在优化 BERT 训练时提出 Named Entity Masking(命名实体 Mask),专门对人名、地名等实体进行 Mask,使模型更好地学习实体识别能力。
2. GPT 的 Mask 机制:基于 CLM(Causal Language Model)
与 BERT 不同,GPT(Generative Pre-trained Transformer)采用的是 自回归语言模型(Causal Language Model, CLM),其训练目标是通过前面的词预测下一个词,而不是填补 Mask 掉的部分。因此,GPT 并不使用 [MASK]
,而是通过 自回归(Autoregressive) 方式进行训练,即:
“I love my” → 预测 “dog”
GPT 训练时,模型只能看到当前词及其之前的词,而不能看到未来的词,因此它的 Mask 机制表现为单向(从左到右)遮蔽:
- 自回归 Mask(Causal Mask):在 Transformer 计算注意力时,GPT 采用一个 上三角 Mask,即屏蔽掉当前 token 之后的所有 token,只能依赖前面的词信息进行预测。
- 无显式 Mask Token:GPT 没有
[MASK]
,而是通过连续生成下一个词的方式进行学习,并应用于文本生成任务,如 OpenAI 的 ChatGPT。
这种 Mask 方式的主要优点是适用于 文本生成任务,如对话生成、自动写作等,但缺点是缺乏双向信息,可能导致对上下文的理解不如 BERT 深入。
3. GPT vs. BERT 的 Mask 机制对比
BERT(MLM) | GPT(CLM) | |
---|---|---|
Mask 方式 | 随机 Mask 句子中的 token | 通过左到右的自回归预测下一个词 |
训练目标 | 预测被 Mask 掉的 token | 预测下一个 token |
注意力机制 | 双向注意力(可以看到左右两侧的上下文) | 单向注意力(只能看到前面的 token) |
适用任务 | 适用于 NLP 理解任务,如文本分类、命名实体识别、阅读理解等 | 适用于文本生成任务,如对话系统、自动写作等 |