codingutf8 2023 the huggingface inc team 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 orglicenseslicense2 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 pop2piano model configuration from configurationutils import pretrainedconfig from utils import logging logger logging getloggername pop2pianopretrainedconfigarchivemap sweetcocoapop2piano https huggingface cosweetcocoapop2pianoblobmainconfig json class pop2pianoconfigpretrainedconfig r this is the configuration class to store the configuration of a pop2pianoforconditionalgeneration it is used to instantiate a pop2pianoforconditionalgeneration model according to the specified arguments defining the model architecture instantiating a configuration with the defaults will yield a similar configuration to that of the pop2piano sweetcocoapop2pianohttps huggingface cosweetcocoapop2piano architecture configuration objects inherit from pretrainedconfig and can be used to control the model outputs read the documentation from pretrainedconfig for more information arguments vocabsize int optional defaults to 2400 vocabulary size of the pop2pianoforconditionalgeneration model defines the number of different tokens that can be represented by the inputsids passed when calling pop2pianoforconditionalgeneration composervocabsize int optional defaults to 21 denotes the number of composers dmodel int optional defaults to 512 size of the encoder layers and the pooler layer dkv int optional defaults to 64 size of the key query value projections per attention head the innerdim of the projection layer will be defined as numheads dkv dff int optional defaults to 2048 size of the intermediate feed forward layer in each pop2pianoblock numlayers int optional defaults to 6 number of hidden layers in the transformer encoder numdecoderlayers int optional number of hidden layers in the transformer decoder will use the same value as numlayers if not set numheads int optional defaults to 8 number of attention heads for each attention layer in the transformer encoder relativeattentionnumbuckets int optional defaults to 32 the number of buckets to use for each attention layer relativeattentionmaxdistance int optional defaults to 128 the maximum distance of the longer sequences for the bucket separation dropoutrate float optional defaults to 0 1 the ratio for all dropout layers layernormepsilon float optional defaults to 1e6 the epsilon used by the layer normalization layers initializerfactor float optional defaults to 1 0 a factor for initializing all weight matrices should be kept to 1 0 used internally for initialization testing feedforwardproj string optional defaults to gatedgelu type of feed forward layer to be used should be one of relu or gatedgelu usecache bool optional defaults to true whether or not the model should return the last keyvalues attentions not used by all models denseactfn string optional defaults to relu type of activation function to be used in pop2pianodenseactdense and in pop2pianodensegatedactdense coding utf 8 2023 the huggingface inc team 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 pop2piano model configuration this is the configuration class to store the configuration of a pop2pianoforconditionalgeneration it is used to instantiate a pop2pianoforconditionalgeneration model according to the specified arguments defining the model architecture instantiating a configuration with the defaults will yield a similar configuration to that of the pop2piano sweetcocoa pop2piano https huggingface co sweetcocoa pop2piano architecture configuration objects inherit from pretrainedconfig and can be used to control the model outputs read the documentation from pretrainedconfig for more information arguments vocab_size int optional defaults to 2400 vocabulary size of the pop2pianoforconditionalgeneration model defines the number of different tokens that can be represented by the inputs_ids passed when calling pop2pianoforconditionalgeneration composer_vocab_size int optional defaults to 21 denotes the number of composers d_model int optional defaults to 512 size of the encoder layers and the pooler layer d_kv int optional defaults to 64 size of the key query value projections per attention head the inner_dim of the projection layer will be defined as num_heads d_kv d_ff int optional defaults to 2048 size of the intermediate feed forward layer in each pop2pianoblock num_layers int optional defaults to 6 number of hidden layers in the transformer encoder num_decoder_layers int optional number of hidden layers in the transformer decoder will use the same value as num_layers if not set num_heads int optional defaults to 8 number of attention heads for each attention layer in the transformer encoder relative_attention_num_buckets int optional defaults to 32 the number of buckets to use for each attention layer relative_attention_max_distance int optional defaults to 128 the maximum distance of the longer sequences for the bucket separation dropout_rate float optional defaults to 0 1 the ratio for all dropout layers layer_norm_epsilon float optional defaults to 1e 6 the epsilon used by the layer normalization layers initializer_factor float optional defaults to 1 0 a factor for initializing all weight matrices should be kept to 1 0 used internally for initialization testing feed_forward_proj string optional defaults to gated gelu type of feed forward layer to be used should be one of relu or gated gelu use_cache bool optional defaults to true whether or not the model should return the last key values attentions not used by all models dense_act_fn string optional defaults to relu type of activation function to be used in pop2pianodenseactdense and in pop2pianodensegatedactdense noqa
from ...configuration_utils import PretrainedConfig
from ...utils import logging


logger = logging.get_logger(__name__)

POP2PIANO_PRETRAINED_CONFIG_ARCHIVE_MAP = {
    "sweetcocoa/pop2piano": "https://huggingface.co/sweetcocoa/pop2piano/blob/main/config.json"
}


class Pop2PianoConfig(PretrainedConfig):
    r

    model_type = "pop2piano"
    keys_to_ignore_at_inference = ["past_key_values"]

    def __init__(
        self,
        vocab_size=2400,
        composer_vocab_size=21,
        d_model=512,
        d_kv=64,
        d_ff=2048,
        num_layers=6,
        num_decoder_layers=None,
        num_heads=8,
        relative_attention_num_buckets=32,
        relative_attention_max_distance=128,
        dropout_rate=0.1,
        layer_norm_epsilon=1e-6,
        initializer_factor=1.0,
        feed_forward_proj="gated-gelu",  
        is_encoder_decoder=True,
        use_cache=True,
        pad_token_id=0,
        eos_token_id=1,
        dense_act_fn="relu",
        **kwargs,
    ):
        self.vocab_size = vocab_size
        self.composer_vocab_size = composer_vocab_size
        self.d_model = d_model
        self.d_kv = d_kv
        self.d_ff = d_ff
        self.num_layers = num_layers
        self.num_decoder_layers = num_decoder_layers if num_decoder_layers is not None else self.num_layers
        self.num_heads = num_heads
        self.relative_attention_num_buckets = relative_attention_num_buckets
        self.relative_attention_max_distance = relative_attention_max_distance
        self.dropout_rate = dropout_rate
        self.layer_norm_epsilon = layer_norm_epsilon
        self.initializer_factor = initializer_factor
        self.feed_forward_proj = feed_forward_proj
        self.use_cache = use_cache
        self.dense_act_fn = dense_act_fn
        self.is_gated_act = self.feed_forward_proj.split("-")[0] == "gated"
        self.hidden_size = self.d_model
        self.num_attention_heads = num_heads
        self.num_hidden_layers = num_layers

        super().__init__(
            pad_token_id=pad_token_id,
            eos_token_id=eos_token_id,
            is_encoder_decoder=is_encoder_decoder,
            **kwargs,
        )