基于 Encoder-only 架构的大语言模型
基于 Encoder-only 架构的大语言模型
Encoder-only 架构
Encoder-only 架构凭借着其独特的双向编码模型在自然语言处理任务中表现出色,尤其是在各类需要深入理解输入文本的任务中。
核心特点:双向编码模型,能够捕捉全面的上下文信息。
Encoder-only 架构仅选取了 Transformer 中的编码器(Encoder)部分,用于接收输入文本并生成与上下文相关的特征。
具体来说,Encoder-only 架构包含三个部分,分别是输入编码部分,特征编码部分以及任务处理部分,具体的模型结构如图。
-
输入编码部分包含分词、向量化以及添加位置编码三个过程。
-
特征编码部分则是由多个相同的编码模块(Encoder Block)堆叠而成,其中每个编码模块包含自注意力模块(Self-Attention)和全连接前馈模块。
-
任务处理模块是针对任务需求专门设计的模块,其可以由用户针对任务需求自行设计。
Encoder-only架构模型的预训练阶段和推理阶段在输入编码和特征编码部分是一致的,而任务处理部分则需根据任务的不同特性来进行定制化的设计。
1. 输入编码部分
原始输入文本会被分词器(Tokenizer)拆解为 Token 序列,随后通过词表和词嵌入(Embedding)矩阵映射为向量序列,确保文本信息得以数字化表达。接着为了保留文本中单词的顺序信息,每个向量序列会被赋予位置编码(Positional Encoding)。
2. 特征编码部分
先前得到的向量序列会依次通过一系列编码模块,这些模块通过自注意力机制和前馈网络进一步提取和深化文本特征。
3.任务处理部分
在预训练阶段和下游任务适配阶段一般有所差别。在预训练阶段,模型通常使用全连接层作为输出头,用于完成掩码预测等任务。而在下游任务适配阶段,输出头会根据具体任务需求进行定制
BERT 语言模型
BERT模型结构
BERT基于Transformer的编码器架构,由多个编码器堆叠而成
有BERT-Base和BERT-Large两个版本,参数数量分别为1.1亿和3.4亿
每个编码器包含多头自注意力模块和前馈神经网络模块
BERT预训练方式
- 提出掩码语言模型(MLM)和下一句预测(NSP)两种预训练任务
- MLM任务随机掩盖15%的token,让模型预测被掩盖的内容
- NSP任务判断两个句子是否是原文中的连续句子
- 这两种任务使BERT能够学习到文本的上下文表示
BERT下游任务
BERT可以应用于文本分类、问答系统、文本匹配、语义相似度计算等任务
- 使用[CLS]标记提取整个序列的聚合表示,用于分类任务
- 使用[CLS]标记判断答案是否存在于相关文本中,用于问答任务
- 使用[CLS]标记计算文本之间的语义相似度
BERT衍生语言模型
RoBERTa
- 提出机构:Facebook AI (Meta)
- 目标:解决BERT训练不充分的问题,提升性能。
- 改进点:
- 更大的数据集。
- 更长的训练时间。
- 更细致的超参数调整。
- 结构:
- 与BERT类似,基于多层Transformer编码器堆叠而成。
- 预训练任务:
- 使用更大的数据集,包括BookCorpus、英语维基百科、CC-News、OpenWebText和Stories。
- 移除了BERT的Next Sentence Prediction(NSP)任务。
- 采用动态掩码语言模型(Dynamic Masked Language Model, DMLM),每次训练时掩码位置会变化。
- 版本:
- RoBERTa-Base:12层,768隐藏层维度。
- RoBERTa-Large:24层,1024隐藏层维度。
ALBERT
- 提出机构:Google Research
- 目标:减少模型参数量和内存占用,提高效率。
- 改进点:
- 参数因子分解技术。
- 跨层参数共享技术。
- 预训练任务:
- 使用与BERT相同的数据集:BookCorpus和英语维基百科。
- 引入了Sentence Order Prediction(SOP)任务,用于学习句子间的顺序关系。
- 结构:
- 与BERT类似,基于多层Transformer编码器堆叠而成。
- 通过参数因子分解和跨层参数共享技术减少参数量。
- 版本:
- ALBERT-Base:12层,128嵌入分解维度。
- ALBERT-Large:24层,1024隐藏层维度。
ELECTRA
- 提出机构:Google Brain 和斯坦福大学
- 目标:解决大规模预训练语言模型的效率和可扩展性问题。
- 改进点:
- 生成器-判别器架构。
- 生成器负责恢复掩码的文本,判别器负责检测生成器输出的文本中的每个Token是否是原文中的内容。
- 预训练任务:
- 使用生成器-判别器架构,通过Replaced Token Detection(RTD)任务进行预训练。
- 结构:
- ELECTRA-Small:12层,256隐藏层维度。
- ELECTRA-Base:12层,768隐藏层维度。
- ELECTRA-Large:24层,1024隐藏层维度。
模型 | 发布时间 | 参数量(亿) | 语料规模 | 预训练任务 |
---|---|---|---|---|
BERT | 2018.10 | 1.1, 3.4 | 约 15GB | MLM+NSP |
RoBERTa | 2019.07 | 1.2, 3.5 | 160GB | Dynamic MLM |
ALBERT | 2019.09 | 0.12, 0.18, 0.6, 2.2 | 约 15GB | MLM+SOP |
ELECTRA | 2020.03 | 0.28, 2.2, 6.6 | 约 20-200GB | RTD |