|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
""" Bros model configuration""" |
|
|
|
from ...configuration_utils import PretrainedConfig |
|
from ...utils import logging |
|
|
|
|
|
logger = logging.get_logger(__name__) |
|
|
|
BROS_PRETRAINED_CONFIG_ARCHIVE_MAP = { |
|
"jinho8345/bros-base-uncased": "https://huggingface.co/jinho8345/bros-base-uncased/blob/main/config.json", |
|
"jinho8345/bros-large-uncased": "https://huggingface.co/jinho8345/bros-large-uncased/blob/main/config.json", |
|
} |
|
|
|
|
|
class BrosConfig(PretrainedConfig): |
|
r""" |
|
This is the configuration class to store the configuration of a [`BrosModel`] or a [`TFBrosModel`]. It is used to |
|
instantiate a Bros 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 Bros |
|
[jinho8345/bros-base-uncased](https://huggingface.co/jinho8345/bros-base-uncased) architecture. |
|
|
|
Configuration objects inherit from [`PretrainedConfig`] and can be used to control the model outputs. Read the |
|
documentation from [`PretrainedConfig`] for more information. |
|
|
|
Args: |
|
vocab_size (`int`, *optional*, defaults to 30522): |
|
Vocabulary size of the Bros model. Defines the number of different tokens that can be represented by the |
|
`inputs_ids` passed when calling [`BrosModel`] or [`TFBrosModel`]. |
|
hidden_size (`int`, *optional*, defaults to 768): |
|
Dimensionality of the encoder layers and the pooler layer. |
|
num_hidden_layers (`int`, *optional*, defaults to 12): |
|
Number of hidden layers in the Transformer encoder. |
|
num_attention_heads (`int`, *optional*, defaults to 12): |
|
Number of attention heads for each attention layer in the Transformer encoder. |
|
intermediate_size (`int`, *optional*, defaults to 3072): |
|
Dimensionality of the "intermediate" (often named feed-forward) layer in the Transformer encoder. |
|
hidden_act (`str` or `Callable`, *optional*, defaults to `"gelu"`): |
|
The non-linear activation function (function or string) in the encoder and pooler. If string, `"gelu"`, |
|
`"relu"`, `"silu"` and `"gelu_new"` are supported. |
|
hidden_dropout_prob (`float`, *optional*, defaults to 0.1): |
|
The dropout probability for all fully connected layers in the embeddings, encoder, and pooler. |
|
attention_probs_dropout_prob (`float`, *optional*, defaults to 0.1): |
|
The dropout ratio for the attention probabilities. |
|
max_position_embeddings (`int`, *optional*, defaults to 512): |
|
The maximum sequence length that this model might ever be used with. Typically set this to something large |
|
just in case (e.g., 512 or 1024 or 2048). |
|
type_vocab_size (`int`, *optional*, defaults to 2): |
|
The vocabulary size of the `token_type_ids` passed when calling [`BrosModel`] or [`TFBrosModel`]. |
|
initializer_range (`float`, *optional*, defaults to 0.02): |
|
The standard deviation of the truncated_normal_initializer for initializing all weight matrices. |
|
layer_norm_eps (`float`, *optional*, defaults to 1e-12): |
|
The epsilon used by the layer normalization layers. |
|
pad_token_id (`int`, *optional*, defaults to 0): |
|
The index of the padding token in the token vocabulary. |
|
dim_bbox (`int`, *optional*, defaults to 8): |
|
The dimension of the bounding box coordinates. (x0, y1, x1, y0, x1, y1, x0, y1) |
|
bbox_scale (`float`, *optional*, defaults to 100.0): |
|
The scale factor of the bounding box coordinates. |
|
n_relations (`int`, *optional*, defaults to 1): |
|
The number of relations for SpadeEE(entity extraction), SpadeEL(entity linking) head. |
|
classifier_dropout_prob (`float`, *optional*, defaults to 0.1): |
|
The dropout ratio for the classifier head. |
|
|
|
|
|
Examples: |
|
|
|
```python |
|
>>> from transformers import BrosConfig, BrosModel |
|
|
|
>>> # Initializing a BROS jinho8345/bros-base-uncased style configuration |
|
>>> configuration = BrosConfig() |
|
|
|
>>> # Initializing a model from the jinho8345/bros-base-uncased style configuration |
|
>>> model = BrosModel(configuration) |
|
|
|
>>> # Accessing the model configuration |
|
>>> configuration = model.config |
|
```""" |
|
model_type = "bros" |
|
|
|
def __init__( |
|
self, |
|
vocab_size=30522, |
|
hidden_size=768, |
|
num_hidden_layers=12, |
|
num_attention_heads=12, |
|
intermediate_size=3072, |
|
hidden_act="gelu", |
|
hidden_dropout_prob=0.1, |
|
attention_probs_dropout_prob=0.1, |
|
max_position_embeddings=512, |
|
type_vocab_size=2, |
|
initializer_range=0.02, |
|
layer_norm_eps=1e-12, |
|
pad_token_id=0, |
|
dim_bbox=8, |
|
bbox_scale=100.0, |
|
n_relations=1, |
|
classifier_dropout_prob=0.1, |
|
**kwargs, |
|
): |
|
super().__init__( |
|
vocab_size=vocab_size, |
|
hidden_size=hidden_size, |
|
num_hidden_layers=num_hidden_layers, |
|
num_attention_heads=num_attention_heads, |
|
intermediate_size=intermediate_size, |
|
hidden_act=hidden_act, |
|
hidden_dropout_prob=hidden_dropout_prob, |
|
attention_probs_dropout_prob=attention_probs_dropout_prob, |
|
max_position_embeddings=max_position_embeddings, |
|
type_vocab_size=type_vocab_size, |
|
initializer_range=initializer_range, |
|
layer_norm_eps=layer_norm_eps, |
|
pad_token_id=pad_token_id, |
|
**kwargs, |
|
) |
|
|
|
self.dim_bbox = dim_bbox |
|
self.bbox_scale = bbox_scale |
|
self.n_relations = n_relations |
|
self.dim_bbox_sinusoid_emb_2d = self.hidden_size // 4 |
|
self.dim_bbox_sinusoid_emb_1d = self.dim_bbox_sinusoid_emb_2d // self.dim_bbox |
|
self.dim_bbox_projection = self.hidden_size // self.num_attention_heads |
|
self.classifier_dropout_prob = classifier_dropout_prob |
|
|