Transformers中的BertConfig、BertModel详解

发布于:2025-03-26 ⋅ 阅读:(103) ⋅ 点赞:(0)

目录

一、功能

二、用法

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)

 通过 BertConfig,你可以灵活定义 BERT 模型的架构,适应不同任务需求和硬件资源限制


网站公告

今日签到

点亮在社区的每一天
去签到