""" GPT configuration (Hugging Face `transformers`-compatible). This is shipped INSIDE the model repo and loaded via `trust_remote_code=True`: from transformers import AutoConfig cfg = AutoConfig.from_pretrained("", trust_remote_code=True) It mirrors the training architecture: a GPT-style decoder with RMSNorm, ReZero residual gates, tied token/LM-head weights, rotary position embeddings (RoPE), and bias-free attention/MLP Linears. """ from transformers import PretrainedConfig class GPTConfig(PretrainedConfig): model_type = "gpt" # Names transformers utilities sometimes read generically. We also keep the # project's own names (n_embd / n_head / n_layer / block_size) as the # authoritative ones used by modeling_gpt.py. attribute_map = { "hidden_size": "n_embd", "num_attention_heads": "n_head", "num_hidden_layers": "n_layer", "max_position_embeddings": "block_size", } def __init__( self, vocab_size=28000, n_embd=1664, n_head=26, n_layer=27, block_size=32768, dropout=0.0, tie_weights=True, rezero_scale_init=0.01, rms_norm_eps=1e-5, rope_theta=1_000_000.0, # Special token ids (verified from the project's SentencePiece tokenizer). # 0 /, 1 , 2 , 3 <|im_start|>, 4 <|im_end|> im_start_id=3, im_end_id=4, unk_pad_id=0, bos_token_id=1, eos_token_id=2, pad_token_id=0, **kwargs, ): self.vocab_size = vocab_size self.n_embd = n_embd self.n_head = n_head self.n_layer = n_layer self.block_size = block_size self.dropout = dropout self.tie_weights = tie_weights self.rezero_scale_init = rezero_scale_init self.rms_norm_eps = rms_norm_eps self.rope_theta = rope_theta self.im_start_id = im_start_id self.im_end_id = im_end_id self.unk_pad_id = unk_pad_id # transformers ties via this flag + get_input/output_embeddings(). kwargs.setdefault("tie_word_embeddings", tie_weights) super().__init__( bos_token_id=bos_token_id, eos_token_id=eos_token_id, pad_token_id=pad_token_id, **kwargs, )