mindformers.models.PretrainedConfig

查看源文件
class mindformers.models.PretrainedConfig(**kwargs)[源代码]

所有配置类的基类。处理所有模型配置的通用参数以及加载、下载、保存配置的方法。

说明

配置文件可以被加载并保存到磁盘。加载配置文件并使用这个文件初始化模型**不会**加载模型权重。它只影响模型的配置。

参数:
  • name_or_path (str, 可选) - 存储传递给 mindformers.models.PreTrainedModel.from_pretrained() 的字符串作为 pretrained_model_name_or_path ,如果配置是用这种方法创建的。默认值: ""

  • checkpoint_name_or_path (str, 可选) - checkpoint 文件的路径或名称。默认值: None

  • mindformers_version (str, 可选) - MindSpore Transformers 的版本。默认值: ""

返回:

PretrainedConfig类实例。

样例:

>>> from mindformers.models import LlamaConfig
>>> config = LlamaConfig(num_layers=2, seq_length=1024)
>>> print(config)
LlamaConfig {
"batch_size": 1,
"block_size": 16,
"bos_token_id": 1,
"checkpoint_name_or_path": "",
"compute_dtype": "float16",
"do_sample": true,
"embedding_init_type": "float16",
"eos_token_id": 2,
"extend_method": "None",
"ffn_dim_multiplier": null,
"fine_grain_interleave": 1,
"hidden_size": 4096,
"ignore_token_id": -100,
"intermediate_size": null,
"is_dynamic": false,
"layernorm_compute_type": "float32",
"llm_backend": "",
"max_decode_length": 1024,
"max_position_embedding": 1024,
"mindformers_version": "dev",
"model_type": "llama",
"multiple_of": 256,
"n_kv_heads": null,
"num_blocks": 512,
"num_heads": 32,
"num_layers": 2,
"offset": 0,
"pad_token_id": 0,
"parallel_decoding_params": null,
"parallel_optimizer": false,
"param_init_type": "float16",
"pp_interleave_num": 1,
"qkv_concat": false,
"qkv_has_bias": false,
"quant_config": null,
"repetition_penalty": 1.0,
"rms_norm_eps": 1e-05,
"rotary_dtype": "float32",
"scaling_factor": 1.0,
"seq_length": 1024,
"softmax_compute_type": "float32",
"theta": 10000.0,
"tie_word_embeddings": false,
"top_k": 5,
"top_p": 1.0,
"use_attn_mask_compression": false,
"use_flash_attention": false,
"use_past": false,
"use_ring_attention": false,
"use_rope_slice": false,
"vocab_size": 32000
}
classmethod from_dict(config_dict: Dict[str, Any], **kwargs)[源代码]

从参数字典实例化 PretrainedConfig。

参数:
返回:

PretrainedConfig, 从这些参数实例化的配置对象。

classmethod from_json_file(json_file: Union[str, os.PathLike])[源代码]

从 JSON 文件的路径实例化 PretrainedConfig。

参数:
  • json_file (Union[str, os.PathLike]) - 参数的 JSON 文件路径。

返回:

PretrainedConfig, 从该 JSON 文件实例化的配置对象。

classmethod from_pretrained(yaml_name_or_path, **kwargs)[源代码]

通过 yaml 名称或路径实例化配置。

参数:
  • yaml_name_or_path (str) - 支持的模型名称或模型配置文件路径(.yaml),支持的模型名称可以从 mindformers.AutoConfig.show_support_list() 中选择。如果 yaml_name_or_path 是模型名称,则支持以 mindspore 开头的模型名称或模型名称本身,如 "mindspore/vit_base_p16" 或 "vit_base_p16"。

  • pretrained_model_name_or_path (str, 可选) - 等同于 yaml_name_or_path,如果设置了 pretrained_model_name_or_path,则 yaml_name_or_path 无效。默认值: None

返回:

PretrainedConfig: 继承自 PretrainedConfig 的模型配置。

classmethod get_config_dict(pretrained_model_name_or_path: Union[str, os.PathLike], **kwargs)[源代码]

从 'pretrained_model_name_or_path' 解析到一个参数字典,用于使用 mindformers.models.PretrainedConfig.from_dict() 实例化 PretrainedConfig。

参数:
  • pretrained_model_name_or_path (Union[str, os.PathLike]) - 预训练检查点的标识符, 我们希望从中获得参数字典。

返回:

Tuple[dict, dict]: 用于实例化配置对象的字典。

save_pretrained(save_directory=None, save_name='mindspore_model', **kwargs)[源代码]

将预训练的配置保存到指定目录。

参数:
  • save_directory (str, 可选) - 配置文件的保存目录。默认值: None

  • save_name (str, 可选) - 保存文件的名称,默认值: mindspore_model

to_dict()[源代码]

将此实例序列化为 Python 字典。

返回:

dict, 包含构成此配置实例的所有属性的字典。

to_diff_dict()[源代码]

移除与默认配置属性对应的所有属性,以提高可读性,并序列化为 Python 字典。

返回:

dict: 包含此配置实例的所有属性的字典。

to_json_file(json_file_path: Union[str, os.PathLike], use_diff: bool = True)[源代码]

将此实例保存到 JSON 文件。

参数:
  • json_file_path (Union[str, os.PathLike]) - 此配置实例参数将被保存的 JSON 文件路径。

  • use_diff (bool, 可选) - 如果设置为 True,仅序列化配置实例与默认 mindformers.models.PretrainedConfig 的差异到 JSON 文件。默认值: True

to_json_string(use_diff: bool = True)[源代码]

将此实例序列化为 JSON 字符串。

参数:
  • use_diff (bool, 可选) - 如果设置为 True,仅序列化配置实例与默认 PretrainedConfig() 的差异到 JSON 字符串。默认值: True

返回:

str, 包含此配置实例所有属性的 JSON 格式字符串。