HuggingFace | config.json参数讲解

发布时间 2023-07-30 12:29:00作者: 张Zong在修行

在Hugging Face中,config.json文件是用于配置预训练模型参数的文件。这个文件通常包含了模型的架构、超参数和其他模型配置信息。它是一个JSON格式的文件,可以在加载模型时用来初始化模型的配置。

在加载模型时,from_pretrained()方法通常会自动加载相应的config.json文件。例如,BertForSequenceClassification.from_pretrained()方法会自动加载BERT模型的config.json文件。加载后,该方法会使用配置文件中的参数来创建一个新的模型。

Hugging Face中的config.json文件包含了用于配置预训练模型参数的选项,不同的模型类型和架构可能会有不同的选项。以下是一些可能出现在config.json文件中的常见选项:

  • _name_or_path: 模型的名称或路径。
  • architectures: 模型所使用的架构。
  • attention_probs_dropout_prob: 注意力矩阵中的dropout概率。
  • bos_token_id: 开始标记的ID。
  • decoder_start_token_id: 解码器的起始标记ID。
  • dropout: Dropout的概率。
  • eos_token_id: 终止标记的ID。
  • hidden_act: 激活函数的类型,如gelurelu等等。
  • hidden_dropout_prob: 隐藏层中的dropout概率。
  • hidden_size: 模型隐藏层的大小。
  • initializer_range: 参数初始化的范围。
  • intermediate_size: 每个隐藏层中间层的大小。
  • is_decoder: 是否为解码器。
  • is_encoder_decoder: 是否是编码器-解码器架构。
  • layer_norm_eps: LayerNorm层中epsilon的值。
  • n_head: 头部的数量。
  • n_layers: 模型中的总层数。
  • num_attention_heads: 每个隐藏层中的自注意头的数量。
  • num_hidden_layers: 模型的隐藏层数量。
  • pad_token_id: 填充标记的ID。
  • tie_word_embeddings: 是否将编码器和解码器的词嵌入层绑定。
  • tokenizer_class: 使用的分词器的类。
  • transformer_type: Transformer模型的类型。
  • transformers_version: Transformers库的版本号。
  • type_vocab_size: 类型词汇表的大小。
  • use_cache: 是否使用缓存。
  • vocab_size: 词汇表的大小。

上述选项只是一些常见的选项,具体的选项和对应的值会因不同的模型类型和架构而有所不同。除了上述字段之外,config.json文件还可能包含其他特定于模型的配置信息。在加载模型时,可以使用AutoConfig.from_pretrained()方法自动加载正确的模型配置文件。

如:使用了bert-base-uncased作为模型名称,该方法会自动从Hugging Face模型仓库中下载对应的配置文件并加载。如果已经下载过该模型,则会从本地文件系统中加载。

总结

  • 使用huggingface的from_pretrained()方法来加载模型和分词器需要模型的config.json文件,然后使用这个方法自动加载对应的模型和分词器。不同的模型和分词器类对应着不同的config.json文件,具体的模型对应具体的模型和分词器类。