Spaces:
Running
Running
from transformers import PretrainedConfig | |
from typing import List | |
class LMConfig(PretrainedConfig): | |
model_type = "minimind" | |
def __init__( | |
self, | |
dim: int = 512, | |
n_layers: int = 8, | |
n_heads: int = 8, | |
n_kv_heads: int = 2, | |
vocab_size: int = 6400, | |
hidden_dim: int = None, | |
multiple_of: int = 64, | |
norm_eps: float = 1e-5, | |
max_seq_len: int = 8192, | |
rope_theta: int = 1e6, | |
dropout: float = 0.0, | |
flash_attn: bool = True, | |
#################################################### | |
# Here are the specific configurations of MOE | |
# When use_moe is false, the following is invalid | |
#################################################### | |
use_moe: bool = False, | |
#################################################### | |
num_experts_per_tok: int = 2, | |
n_routed_experts: int = 4, | |
n_shared_experts: bool = True, | |
scoring_func: str = 'softmax', | |
aux_loss_alpha: float = 0.1, | |
seq_aux: bool = True, | |
norm_topk_prob: bool = True, | |
**kwargs, | |
): | |
self.dim = dim | |
self.n_layers = n_layers | |
self.n_heads = n_heads | |
self.n_kv_heads = n_kv_heads | |
self.vocab_size = vocab_size | |
self.hidden_dim = hidden_dim | |
self.multiple_of = multiple_of | |
self.norm_eps = norm_eps | |
self.max_seq_len = max_seq_len | |
self.rope_theta = rope_theta | |
self.dropout = dropout | |
self.flash_attn = flash_attn | |
#################################################### | |
# Here are the specific configurations of MOE | |
# When use_moe is false, the following is invalid | |
#################################################### | |
self.use_moe = use_moe | |
self.num_experts_per_tok = num_experts_per_tok # 每个token选择的专家数量 | |
self.n_routed_experts = n_routed_experts # 总的专家数量 | |
self.n_shared_experts = n_shared_experts # 共享专家 | |
self.scoring_func = scoring_func # 评分函数,默认为'softmax' | |
self.aux_loss_alpha = aux_loss_alpha # 辅助损失的alpha参数 | |
self.seq_aux = seq_aux # 是否在序列级别上计算辅助损失 | |
self.norm_topk_prob = norm_topk_prob # 是否标准化top-k概率 | |
super().__init__(**kwargs) | |