Encoder-only models — 仅编码器模型
Jump to navigation
Jump to search
仅编码器模型(Encoder-Only Models)是一类基于Transformer 架构中纯粹的编码器(encoder)部分的大语言模型(LLM)架构。与使用解码器或完整的编码器-解码器架构的模型不同,这类模型专注于自然语言理解(Natural Language Understanding, NLU)任务。
该方法的旗舰模型和先驱是 Google 于 2018 年开发的BERT(Bidirectional Encoder Representations from Transformers)。
概念与架构
仅编码器模型的核心思想是为输入序列中的每个词元(token)创建深度的、情境化表示(嵌入)。得益于 Transformer 中的自注意力(self-attention)机制,每个词元都能“看到”序列中所有其他词元并与之交互,这使得模型能够捕捉丰富的上下文信息。
一个关键特性是双向性:每个词元的表示是同时基于其左侧和右侧的上下文形成的。这与本质上是单向的自回归仅解码器模型(如 GPT)有着根本的不同。
在架构上,该模型由 个相同的编码器层堆叠而成。每个层由两个主要的子层构成:
- 多头自注意力(Multi-Head Self-Attention):为每个词元计算情境化表示。
- 前馈神经网络(Feed-Forward Network):对每个词元的表示应用非线性变换。
模型输出一个与输入序列长度相同的向量序列,其中每个向量都是对应输入词元的丰富表示。
预训练任务
为了让模型学会在双向上下文中理解语言,使用了特殊的自监督预训练任务:
掩码语言建模 (Masked Language Modeling, MLM)
这是仅编码器模型最核心、最重要的任务,首次在 BERT 中提出。
- 工作原理: 从输入序列中随机隐藏(掩码)一小部分词元(通常为 15%)。模型的任务是利用周围的双向上下文来预测这些被掩码词元的原始值。
- 目标: 该任务迫使模型学习单词之间深层的语义和句法关系。
下一句预测 (Next Sentence Prediction, NSP)
该任务(也源自最初的 BERT)旨在教会模型理解句子之间的关系。
- 工作原理: 模型接收一对句子,并需要判断第二个句子在原文中是否是第一个句子的逻辑延续。
- 现状: 后续研究(例如在 RoBERTa 模型中)表明,NSP 的效果不如 MLM,因此常常被其他任务替代或完全移除。
应用
由于缺少自回归解码器,仅编码器模型不用于自由形式的文本生成。它们的优势在于文本的分析和理解。模型的输出向量表示被用于解决广泛的 NLU 任务:
- 文本分类: 对于情感分析或主题识别等任务,使用在每个序列开头添加的特殊词元 `[CLS]` 的表示。其最终向量聚合了整个序列的信息。
- 词元分类: 对于命名实体识别(NER)或词性标注(POS-tagging)等任务,使用每个独立词元的向量表示。
- 问答(Question Answering): 在答案是给定文本的一个片段(抽取式问答)的任务中,模型被训练来预测答案的起始和结束词元。
- 获取嵌入: 编码器模型常被用作通用的文本编码器,以获取高质量的句子或文档嵌入,这些嵌入随后可用于搜索引擎或语义相似度任务。
主要模型及其演进
- BERT (2018): 该架构的先驱,在众多 NLP 基准测试中创下新纪录。
- RoBERTa (2019): “一个稳健优化的 BERT”。该模型表明,通过在更多数据上进行更长时间的训练并放弃 NSP 任务,可以显著提高 BERT 的性能。
- ALBERT (2019): “一个轻量化的 BERT”。该模型通过嵌入因子分解和跨层参数共享技术,大幅减少了参数数量。
- DistilBERT (2019): 通过知识蒸馏创建的 BERT 的精简版本,速度更快、更轻量,但保留了原作的大部分性能。
- ELECTRA (2020): 提出了一种更高效的预训练任务——替换词元检测,模型学习区分原始词元和由一个小型生成器模型生成的“伪”词元。
- DeBERTa (2020): 引入了“解耦注意力”(disentangled attention)机制,该机制分别对内容和相对位置进行编码。
参见
- BERT