Skip to content

Latest commit

 

History

History
97 lines (95 loc) · 3.87 KB

models----ibert----configuration_ibert.py.md

File metadata and controls

97 lines (95 loc) · 3.87 KB

.\models\ibert\configuration_ibert.py

# 设置文件编码为 UTF-8
# 版权声明,包括作者信息和版权信息
# 根据 Apache 许可证 2.0 版本,授权使用该文件
# 获取许可证的链接
# 根据适用法律或书面同意,按“原样”分发软件
# 没有任何明示或暗示的担保或条件
# 请查看许可证以获取特定语言的权限和限制
# I-BERT 配置
# 导入所需的库和模块
# 导入日志记录工具
# 获取 logger 对象
# 预训练模型配置文件映射
# I-BERT 预训练模型配置文件映射
# I-BERT 预训练模型配置文件映射
# I-BERT 预训练模型配置文件映射
# I-BERT 配置类,继承自 PretrainedConfig
# 用于存储 IBertModel 的配置信息
# 根据指定参数实例化 I-BERT 模型的配置
# 默认情况下实例化一个与 IBERT 相似的配置
# 配置对象继承自 PretrainedConfig,用于控制模型输出
# 阅读 PretrainedConfig 的文档以获取更多信息
# 模型类型为 "ibert"
# 初始化方法,设置默认参数
# 词汇表大小
# 隐藏层大小
# 隐藏层数量
# 注意力头数量
# 中间层大小
# 隐藏层激活函数
# 隐藏层丢弃概率
# 注意力概率丢弃概率
# 最大位置嵌入
# 类型词汇表大小
# 初始化范围
# 层归一化 epsilon
# 填充标记 ID
# 开始标记 ID
# 结束标记 ID
# 位置嵌入类型
# 量化模式
# 强制去量化
        # 调用父类的构造函数,初始化模型参数
        super().__init__(pad_token_id=pad_token_id, bos_token_id=bos_token_id, eos_token_id=eos_token_id, **kwargs)

        # 初始化模型的词汇表大小
        self.vocab_size = vocab_size
        # 初始化模型的隐藏层大小
        self.hidden_size = hidden_size
        # 初始化模型的隐藏层数量
        self.num_hidden_layers = num_hidden_layers
        # 初始化模型的注意力头数量
        self.num_attention_heads = num_attention_heads
        # 初始化模型的隐藏层激活函数
        self.hidden_act = hidden_act
        # 初始化模型的中间层大小
        self.intermediate_size = intermediate_size
        # 初始化模型的隐藏层dropout概率
        self.hidden_dropout_prob = hidden_dropout_prob
        # 初始化模型的注意力概率dropout概率
        self.attention_probs_dropout_prob = attention_probs_dropout_prob
        # 初始化模型的最大位置嵌入大小
        self.max_position_embeddings = max_position_embeddings
        # 初始化模型的类型词汇表大小
        self.type_vocab_size = type_vocab_size
        # 初始化模型的初始化范围
        self.initializer_range = initializer_range
        # 初始化模型的层归一化epsilon值
        self.layer_norm_eps = layer_norm_eps
        # 初始化模型的位置嵌入类型
        self.position_embedding_type = position_embedding_type
        # 初始化模型的量化模式
        self.quant_mode = quant_mode
        # 初始化模型的强制去量化标志
        self.force_dequant = force_dequant
# 定义一个类 IBertOnnxConfig,继承自 OnnxConfig 类
class IBertOnnxConfig(OnnxConfig):
    # 定义一个 inputs 属性,返回一个映射类型,键为字符串,值为映射类型,值的键为整数,值为字符串
    @property
    def inputs(self) -> Mapping[str, Mapping[int, str]]:
        # 如果任务是多项选择
        if self.task == "multiple-choice":
            # 动态轴为 {0: "batch", 1: "choice", 2: "sequence"}
            dynamic_axis = {0: "batch", 1: "choice", 2: "sequence"}
        else:
            # 否则动态轴为 {0: "batch", 1: "sequence"}
            dynamic_axis = {0: "batch", 1: "sequence"}
        # 返回一个有序字典,包含两个键值对,键为字符串,值为动态轴
        return OrderedDict(
            [
                ("input_ids", dynamic_axis),
                ("attention_mask", dynamic_axis),
            ]
        )