BERT模型结构 思维导图
2024-03-05 17:41:40 37 举报
AI智能生成
BERT模型框架思维导图
作者其他创作
大纲/内容
pre-training预训练
MLM掩码语言模型
AR自回归模型
P(ABCD)=P(A)P(B|A)P(C|AB)P(D|ABC)
无监督目标函数
AE自编码模型
P(ABCD|AB[mask]D])=P([mask]=c|ABD)
任务
数据增强
自蒸馏
外部知识的融入
知识图谱
实体词信息
Bert Encoder
Embedding
Token Embeddings
Segment Embeddings
Position Embeddings
MLM
采样:将句子中15%的词汇被随机mask
预测mask
Masked LM
further pre-training
动态mask
n-gram mask
NSP
预测两个句子是否应该连接一起
Next Sentence Prediction
采样:采样时,50%的概率将第二句句子随机替换为段落中的任意一句句子。
Loss
输出:编码好的张量。形状为[ Batch Size, Seq lens, Emb dim]
编码层
详细训练过程
Fine-tuning微调
Input
Input Embedding
下游任务
NSP二分类任务
NSP样本
训练时将[CLS]的输出向量
连接二分类器
句子对分类任务
单个句子分类任务
问答任务
序列标注任务
针对所有token进行输出
判断segment属于实体中的哪个
子主题
Transformer结构
RNN网络
弊端:无法实现加速、并行计算
相同的还有LSTM,其最大区别,LSTM的训练是迭代的(类似for循环实现)当前字训练完成LSTM单元,才进入下一字。
但transformer的训练是并行的,所有字是全部同时训练的,大大加快了计算效率。
同时使用了位置嵌入(positional encoding)来理解语言顺序,使用自注意力机制和全连接层进行计算。
但transformer的训练是并行的,所有字是全部同时训练的,大大加快了计算效率。
同时使用了位置嵌入(positional encoding)来理解语言顺序,使用自注意力机制和全连接层进行计算。
结构
encoder 编码器
核心模块
Self-Attention多头注意力层
原理与流程
input:输入编码后的向量
加权,得到当前词语上下文关系
归一化处理
构建三矩阵
目的
查询当前词跟其他词的关系
特征向量表达
X*W~矩阵(权重)=矩阵
计算self-attention
q与k的内积表示有多匹配
输入两个向量得到一个分值
返回结果
图1
图2
输入语句
向量化
注意力权重
加权求和
矩阵相乘
注意力层
Multi-headed机制 Self-attention
一组q,k,v得到了一组当前词的特征表达
类似卷积神经网络中的filter
能不能提取多种特征呢?
卷积中的特征图:
类似卷积神经网络中的filter
能不能提取多种特征呢?
卷积中的特征图:
结果
不同的注意力结果
得到的特征向量表达也不相同
Add&Norm 层
前馈神经网络层
Linear 层
Add&Norm 层
decoder 解码器
隐藏层再映射为自然语言序列, 从而使我们可以解决各种问题, 如情感分类, 命名实体识别, 语义关系抽取, 摘要生成, 机器翻译等等
核心模块
前馈网络
编解码-Attention
Self-Attention
Multi-Head Attention
解码器堆栈输出
Linear线性层
投影成一维向量
Softmax
Attention
整体计算流程
每个词的Q会跟每一个K计算得分
Softmax后就得到整个加权结果
此时每个词看的不只是它前面的序列而是整个输入序列
同一时间计算出所有词的表示结果
实现步骤
Encoder输入
输入自然语言序列到编码器: Why do we work?(为什么要工作);
通过算法将单词向量化
两步之后,得到统一长度
嵌入位置信息
编码器输出的隐藏层, 再输入到解码器;
通过self-attention和前馈网络
图
Decoder输入
输入 <start> (起始)符号到解码器;
将得到的第一个字"为"落下来再输入到解码器;
输出上下文加权的embeddings
decoder
Positional Encoding
Decoder输出
得到第一个字"为";
得到第二个字"什";
将得到的第二字再落下来, 直到解码器输出 <end> (终止符), 即序列生成完成.
图
word2vec
- 弊端:不同语境下有表达歧义预训练好的 向量不会发生改变
输入:词
编码
解码器得到结果
衍生模型
RoBerta
动态掩码(MASK )
相对静态掩码的改进就是不重复看数据。
相对静态掩码的改进就是不重复看数据。
取消NSP代之DOC SENTENCES
而是每次输入连续的多个句子,都从一个文章中获得,而原来的Bert每次只输入两个句子。实验表明在MNLI这种推断句子关系的任务上RoBERTa也能有更好性能。
而是每次输入连续的多个句子,都从一个文章中获得,而原来的Bert每次只输入两个句子。实验表明在MNLI这种推断句子关系的任务上RoBERTa也能有更好性能。
数据集放大再放大再放大,训练时间更久
原本的BERTbase的batch size是256,训练1M个steps。RoBERTa的batch size为8k。
原本的BERTbase的batch size是256,训练1M个steps。RoBERTa的batch size为8k。
文本编码
Byte-Pair Encoding (BPE)是字符级和词级别表征的混合,支持处理自然语言语料库中的众多常见词汇。
Byte-Pair Encoding (BPE)是字符级和词级别表征的混合,支持处理自然语言语料库中的众多常见词汇。
全词MASK
ERNIE
Whole Word Masking
AlBert
该模型提出了两种减少内存的方法,同时提升了训练速度,其次改进了BERT中的NSP的预训练任务。
词嵌入向量参数的因式分解Factorized embedding parameterizationO(V* H) to o(V*E+E*H)
跨层参数共享Cross-Layer Parameter Sharing
参数共享能显著减少参数。共享可以分为全连接层、注意力层的参数共享,ALBERT结合了上述两种方案,全连接层与attention层都进行参数共享
段落连续性任务Inter-sentence coherence loss.
0 条评论
下一页
为你推荐
查看更多