Weevil-3M / configuration_weevil.py
ELBennett's picture
Add Weevil Transformers model, tokenizer and weights
0f70a95 verified
Raw History Blame Contribute Delete
1.49 kB
"""Hugging Face configuration shared by every Weevil checkpoint."""
from transformers import PretrainedConfig
class WeevilConfig(PretrainedConfig):
model_type = "weevil"
def __init__(
self, vocab_size=4096, hidden_size=256, embedding_dim=128,
intermediate_size=960, num_hidden_layers=8, num_heads=8,
qkv_rank=None, conv_kernel=4, norm_eps=1e-6, use_cache=True,
**kwargs,
):
kwargs.setdefault("bos_token_id", 0)
kwargs.setdefault("eos_token_id", 0)
kwargs.setdefault("pad_token_id", 1)
kwargs.setdefault("tie_word_embeddings", False)
super().__init__(**kwargs)
self.vocab_size = vocab_size
self.hidden_size = hidden_size
self.embedding_dim = embedding_dim
self.intermediate_size = intermediate_size
self.num_hidden_layers = num_hidden_layers
self.num_heads = num_heads
self.qkv_rank = qkv_rank
self.conv_kernel = conv_kernel
self.norm_eps = norm_eps
self.use_cache = use_cache
if min(vocab_size, hidden_size, embedding_dim, intermediate_size,
num_hidden_layers, num_heads, conv_kernel) < 1 or hidden_size < num_heads:
raise ValueError("Weevil dimensions must be positive; heads cannot exceed hidden size")
if qkv_rank is not None and not 1 <= qkv_rank <= hidden_size:
raise ValueError("qkv_rank must be between 1 and hidden_size")
WeevilConfig.register_for_auto_class()