itn_vi / model_config.py
MinhHan1009's picture
Upload folder using huggingface_hub
1e9c44c verified
# Copyright 2020 The HuggingFace Inc. team.
# Copyright (c) 2018, NVIDIA CORPORATION. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
import copy
from transformers.configuration_utils import PretrainedConfig
from transformers import BertConfig, EncoderDecoderConfig
from transformers.utils import logging
logger = logging.get_logger(__name__)
class DecoderInvertTextNormalizationConfig(BertConfig):
def __init__(self, pad_token_id=1, bos_token_id=0, eos_token_id=2, **kwargs):
super().__init__(pad_token_id=pad_token_id, bos_token_id=bos_token_id, eos_token_id=eos_token_id, **kwargs)
self.num_hidden_layers=2
class InvertTextNormalizationConfig(EncoderDecoderConfig):
is_composition = True
model_type = "invert_text_normalization"
def __init__(self, **kwargs):
super().__init__(**kwargs)
# assert (
# "encoder" in kwargs and "decoder" in kwargs
# ), "Config has to be initialized with encoder and decoder config"
# encoder_config = kwargs.pop("encoder")
# encoder_model_type = encoder_config.pop("model_type")
# decoder_config = kwargs.pop("decoder")
# decoder_model_type = decoder_config.pop("model_type")
# from transformers.models.auto.configuration_auto import AutoConfig
# self.encoder = AutoConfig.for_model(encoder_model_type, **encoder_config)
# self.decoder = AutoConfig.for_model(decoder_model_type, **decoder_config)
# self.is_encoder_decoder = True
# @classmethod
# def from_encoder_decoder_configs(
# cls, encoder_config: PretrainedConfig, decoder_config: PretrainedConfig, **kwargs
# ) -> PretrainedConfig:
# r"""
# Instantiate a :class:`~transformers.EncoderDecoderConfig` (or a derived class) from a pre-trained encoder model
# configuration and decoder model configuration.
# Returns:
# :class:`EncoderDecoderConfig`: An instance of a configuration object
# """
# logger.info("Set `config.is_decoder=True` and `config.add_cross_attention=True` for decoder_config")
# decoder_config.is_decoder = True
# decoder_config.add_cross_attention = True
# return cls(encoder=encoder_config.to_dict(), decoder=decoder_config.to_dict(), **kwargs)
# def to_dict(self):
# """
# Serializes this instance to a Python dictionary. Override the default `to_dict()` from `PretrainedConfig`.
# Returns:
# :obj:`Dict[str, any]`: Dictionary of all the attributes that make up this configuration instance,
# """
# output = copy.deepcopy(self.__dict__)
# output["encoder"] = self.encoder.to_dict()
# output["decoder"] = self.decoder.to_dict()
# output["model_type"] = self.__class__.model_type
# return output