目录
一、功能
二、用法
1.导入BertConfig
2. 初始化默认配置
3.使用配置初始化模型
使用场景:
1.自定义小型BERT模型
2.加载预训练模型配置
从 Hugging Face 模型库加载 bert-base-uncased 的默认配置:
通过 BertConfig,你可以灵活定义 BERT 模型的架构,适应不同任务需求和硬件资源限制
BertConfig
是 Hugging Face Transformers 库中用于定义 BERT 模型结构的配置类,它允许你完全控制模型的超参数(如层数、注意力头数、隐藏层维度等)。
一、功能
1.定义模型架构:通过参数指定BERT模型的结构(如层数,注意力头等等)
2.加载预训练配置项:从已有模型(如bert-base-uncased)中读取默认配置项。
3.自定义配置:修改参数以适配硬件资源(如缩小模型尺寸)。
二、用法
1.导入BertConfig
from transformers import BertConfig, BertModel
2. 初始化默认配置
直接创建BertConfig对象时,会使用BERT-base 的默认参数:
config = BertConfig()
print(config) # 查看所有配置参数
3.使用配置初始化模型
model = BertModel(config) # 根据自定义配置创建新模型
参数名 | 类型 | 默认值 | 作用 |
---|---|---|---|
vocab_size | int | 30522 | 词表大小 |
hidden_size | int | 768 | 隐藏层维度 |
num_hidden_layers | int | 12 | Transformer 层数 |
num_attention_heads | int | 12 | 注意力头数 |
intermediate_size | int | 3072 | FFN 层中间维度 |
max_position_embeddings | int | 512 | 最大位置编码长度 |
hidden_act | str | "gelu" | 激活函数(如 "gelu" , "relu" ) |
使用场景:
1.自定义小型BERT模型
# 定义更小的模型配置
config = BertConfig(
vocab_size=30522,
hidden_size=256, # 隐藏层维度缩小到256
num_hidden_layers=6, # 仅6层Transformer
num_attention_heads=8, # 8个注意力头
intermediate_size=1024, # FFN层中间维度缩小
)
model = BertModel(config) # 初始化自定义模型
print(model) # 查看模型结构
2.加载预训练模型配置
从 Hugging Face 模型库加载 bert-base-uncased
的默认配置:
config = BertConfig.from_pretrained("bert-base-uncased")
model = BertModel.from_pretrained("bert-base-uncased", config=config)