from transformers import PretrainedConfig, PreTrainedModel class DiffusionConfig(PretrainedConfig): """Configuration class for Diffusion-LLM model.""" model_type = "diffusionLM" def __init__( self, vocab_size: int = 50257, hidden_size: int = 768, num_hidden_layers: int = 12, num_attention_heads: int = 12, intermediate_size: int = 3072, hidden_dropout_prob: float = 0.1, attention_probs_dropout_prob: float = 0.1, max_position_embeddings: int = 1024, initializer_range: float = 0.02, layer_norm_eps: float = 1e-12, pad_token_id: int = 0, mask_token_id: int = 50256, eos_token_id: int = 50256, num_timesteps: int = 100, time_embed_dim: int = 128, **kwargs ): super().__init__(pad_token_id=pad_token_id, **kwargs) self.vocab_size = vocab_size self.hidden_size = hidden_size self.num_hidden_layers = num_hidden_layers self.num_attention_heads = num_attention_heads self.intermediate_size = intermediate_size self.hidden_dropout_prob = hidden_dropout_prob self.attention_probs_dropout_prob = attention_probs_dropout_prob self.max_position_embeddings = max_position_embeddings self.initializer_range = initializer_range self.layer_norm_eps = layer_norm_eps self.mask_token_id = mask_token_id self.eos_token_id = eos_token_id self.num_timesteps = num_timesteps self.time_embed_dim = time_embed_dim