Hugging Face transformers
库中的 config
常用方法和属性
config
代表 Transformer 模型的配置对象,包含 模型架构、隐藏层维度、注意力头数、激活函数等超参数。可以使用 AutoConfig
直接加载模型配置,而不加载权重。
1. config
的常见属性
from transformers import AutoConfig
config = AutoConfig.from_pretrained("bert-base-uncased")
属性 | 作用 | 示例 |
---|---|---|
config.hidden_size | 模型的隐藏层维度 | 768 |
config.num_attention_heads | 自注意力头的数量 | 12 |
config.num_hidden_layers | Transformer 层数 | 12 |
config.vocab_size | 词汇表大小 | 30522 |
config.max_position_embeddings | 最大可处理序列长度 | 512 |
config.hidden_dropout_prob | 隐藏层 Dropout 比例 | 0.1 |
config.attention_probs_dropout_prob | 注意力 Dropout 比例 | 0.1 |
config.model_type | 模型类型 | 'bert' |
config.is_decoder | 是否为解码器模型 | False |
2. config
的常用方法
方法 | 作用 |
---|---|
config.to_dict() | 将配置转换为 Python 字典 |
config.to_json_string() | 以 JSON 格式返回配置 |
config.save_pretrained(path) | 保存配置到本地 |
config.from_pretrained(model_name_or_path) | 加载 Hugging Face 预训练模型的配置 |
config.update({"hidden_size": 512}) | 更新配置参数 |
3. config
详细用法
3.1. 仅加载模型配置(不加载权重)
from transformers import AutoConfig
config = AutoConfig.from_pretrained("bert-base-uncased")
print(config.hidden_size) # 768
3.2. 通过 config
创建模型
如果你想 自定义模型参数,可以使用 config
初始化模型:
from transformers import AutoModel
# 自定义配置
config = AutoConfig.from_pretrained("bert-base-uncased")
config.hidden_size = 512 # 修改隐藏层维度
# 用修改后的配置创建模型
model = AutoModel.from_config(config)
3.3. 以 JSON 格式查看配置
json_config = config.to_json_string()
print(json_config)
示例输出
{
"hidden_size": 768,
"num_attention_heads": 12,
"num_hidden_layers": 12,
"vocab_size": 30522
}
3.4. 保存 config
config.save_pretrained("./my_model_config")
3.5. 从本地加载 config
config = AutoConfig.from_pretrained("./my_model_config")
3.6. 更新 config
config.update({"hidden_size": 1024, "num_hidden_layers": 24})
print(config.hidden_size) # 1024
4. config
在不同模型中的应用
4.1. BERT
from transformers import BertConfig
config = BertConfig(hidden_size=512, num_hidden_layers=6)
model = AutoModel.from_config(config)
print(model.config)
4.2. GPT-2
from transformers import GPT2Config
config = GPT2Config(vocab_size=50257, n_layer=12)
model = AutoModel.from_config(config)
print(model.config)
4.3. T5
from transformers import T5Config
config = T5Config(d_model=512, num_layers=8)
model = AutoModel.from_config(config)
print(model.config)
5. 总结
config
是 Transformer 模型的核心配置对象,包含所有 模型超参数。
常用属性:
config.hidden_size
隐藏层维度config.num_attention_heads
注意力头数config.num_hidden_layers
Transformer 层数config.vocab_size
词汇表大小config.max_position_embeddings
最大序列长度
常用方法:
config.to_dict()
转换为字典config.to_json_string()
转换为 JSONconfig.save_pretrained(path)
保存配置config.from_pretrained(model_name_or_path)
加载配置config.update({...})
更新参数