BERT模型内部结构解析
解析 模型 bert 内部结构
2023-09-11 14:17:14 时间
BERT强大的特征抽取能力在各方面的应用如火如荼的展开,今日准备要对BERT输出的特征进行组合,以期能具有更好地变现,现在对model对象做详细的分析。
直观上,我们能够利用bert的信息有:1)pool out [CLS];2)encoder layer;3)hidden state first output
我们加载bert的过程如下:
model = modeling.BertModel(config=bert_config, is_training=self.__is_training, input_ids=self.input_ids, input_mask=self.input_masks, token_type_ids=self.segment_ids, use_one_hot_embeddings=False)
无论你是通过什么方法得到的,这个model对象就是我们要解析的,通过debug我们得知,它有如下成员:
讲一下个人的理解,请批评指正:
all_encoder_layers: 经过transformer_model函数返回每个block的结果,即对应bert的12个Transformer层,均是原始高维数据。如果要分析不同层抽取何种特征,可以分析这个得出一些结论
embedding_table: vocab表,用于构建字符embedding向量
embedding_output: embedding结果
sequence_output: 是bert最后一层的输出,需要验证一下all_encoder_layers最后一层的输出有何区别
维度为[Batch_szie, seq_length, hidden_size],这和一开始词向量的维度是一样的,只不过这个结果是经过Transformer Encoded提取特征之后的,包含重要的信息,也是bert想得到的结果
pooled_output: 一般分类任务需要的特征,pooled_output是取sequence_output的第一个切片然后线性投影获得,这个位置就是[CLS]
其实,明白这些之后就可以做一些特征组合进行操作了
相关文章
- google Guava包的ListenableFuture解析
- Spring Cloud Finchley.SR1 版本的坑:placeholer占位符无法解析!
- 让数据流动起来,RocketMQ Connect 技术架构解析
- SAP CRM Survey调查问卷的模型设计原理解析
- 在linux 中wget 无法解析主机
- Python:wordcloud.wordcloud()函数的参数解析及其说明
- C++QT开发——Xml、Json解析
- python 结构化数据解析
- 转 白话解析:一致性哈希算法 consistent hashing
- urllib url解析学习
- 【ChatGPT】GPT 原理解析:Transformer 模型的核心思想:注意力机制(Attention Mechanism)的核心原理是什么?并给出数学公式代码实例。
- 【Groovy】Groovy 脚本调用 ( Groovy 配置文件格式 | Groovy 配置文件读取 | 完整配置文件及解析代码示例 )
- 【高并发】两种异步模型与深度解析Future接口
- 【Python-Keras】Keras搭建神经网络模型的Model解析与使用
- C1能力认证训练题解析 _ 第三部分 _ JavaScript基础
- 风格迁移1-08:Liquid Warping GAN(Impersonator)-源码无死角解析(3)-模型总体结构
- 【Nature-2020】VirtualFlow: An open-source drug discovery platform enables ultra-large vir解析+实战
- YOLOv5、v6、v7、x模型全系列大解析(Neck篇)