当前位置: 首页 > news >正文

Transformers中的BertConfig、BertModel详解

目录

一、功能

二、用法

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_sizeint30522词表大小
hidden_sizeint768隐藏层维度
num_hidden_layersint12Transformer 层数
num_attention_headsint12注意力头数
intermediate_sizeint3072FFN 层中间维度
max_position_embeddingsint512最大位置编码长度
hidden_actstr"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 模型的架构,适应不同任务需求和硬件资源限制

相关文章:

  • 蓝桥杯备考:贪心问题之均分纸牌
  • 【2.项目管理】2.4 Gannt图【甘特图】
  • 【Python】类定义过程中 列表推导式获取类变量的问题
  • Oracle 23ai Vector Search 系列之2 ONNX(Open Neural Network Exchange)
  • Webpack 配置详解:从入门到实战
  • 复习MySQL20250327
  • OmniPlan Pro for Mac 项目管理流程
  • 人工智能模型的自我学习能力
  • 相对位置2d矩阵和kron运算的思考
  • 各种响应的理解
  • Java学习打卡-Day22-多线程
  • Dify 服务器部署指南
  • SpringBean模块(二)bean初始化(2)和容器初始化顺序的比较--引入ApplicationContextInitializer
  • SQLark SQL编辑器秘籍,编写高效SQL查询
  • SpringBoot3解决跨域请求问题(同源策略、JSONP、CORS策略)(Access-Control-Allow-Origin)(2025详细教程)
  • 电销行业机器人外呼话术设计:关键注意事项与实践指南
  • C语言之数据结构:双向链表
  • 整理一些php7 新特性
  • Node.js 模块加载机制--详解
  • 【设计模式】策略模式+门面模式设计对接银行接口的API
  • 违法违规收集使用个人信息,爱奇艺、轻颜等65款App被点名
  • 多家外资看好中国市场!野村建议“战术超配”,花旗上调恒指目标价
  • “75万买299元路由器”事件进展:重庆市纪委等三部门联合介入调查
  • 上海北外滩开发建设五周年交出亮眼答卷,未来五年有何新目标?
  • 网信部门曝光网络谣言典型案例,“AI预测彩票号码百分百中奖”等在列
  • 季后赛主场优势消失之谜,这事竟然要赖库里