Qwen2.5模型结构

打印 上一主题 下一主题

主题 2019|帖子 2019|积分 6057

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
self.lm_head = nn.Linear(config.hidden_size, config.vocab_size, bias=False) 这个是用来干嘛的
   
    输出层,词汇投影层,将模型输出的隐藏状态向量映射回词表空间,用于猜测下一个token
   
    # 猜测 logits,未经过 softmax
    lm_logits = self.lm_head(hidden_states)  # shape: [B, L, vocab_size]
   
    之后再通过 softmax 转换为每个 token 的概率。
   
   
   
   
   
    class Qwen2Model(Qwen2PreTrainedModel):
        def __init__(self, config):
            super().__init__(config)
            self.embed_tokens = nn.Embedding(config.vocab_size, config.hidden_size)
            self.layers = nn.ModuleList([
                Qwen2DecoderLayer(config) for _ in range(config.num_hidden_layers)
            ])    #这里由config文件决定的有很多很多层
            self.norm = RMSNorm(config.hidden_size, eps=config.rms_norm_eps)
   
   
    每一层结构
    class Qwen2DecoderLayer(nn.Module):
        def __init__(self, config):
            ...
            self.self_attn = Qwen2Attention(config)
            self.mlp = Qwen2MLP(config)
            self.input_layernorm = RMSNorm(config.hidden_size, eps=config.rms_norm_eps)
            self.post_attention_layernorm = RMSNorm(config.hidden_size, eps=config.rms_norm_eps)
   
        def forward(self, hidden_states, ...):
            residual = hidden_states
            hidden_states = self.input_layernorm(hidden_states)
            hidden_states, _ = self.self_attn(hidden_states, ...)
            hidden_states = residual + hidden_states
   
            residual = hidden_states
            hidden_states = self.post_attention_layernorm(hidden_states)
            hidden_states = self.mlp(hidden_states)
            hidden_states = residual + hidden_states
            return hidden_states, ...
   
   
   
   
   
    self.mlp = Qwen2MLP(config) 这个是什么
    标准Transformer FFN
    class TransformerFFN(nn.Module):
        def __init__(self, embed_dim, hidden_dim):
            super().__init__()
            self.linear1 = nn.Linear(embed_dim, hidden_dim)
            self.relu = nn.ReLU()
            self.linear2 = nn.Linear(hidden_dim, embed_dim)
   
        def forward(self, x):
            return self.linear2(self.relu(self.linear1(x)))
   

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

花瓣小跑

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表