本文主要是介绍通义千问Qwen1.5(Beta Version of Qwen2)代码理解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Qwen1.5的代码已经集成到了transformers>=4.37.0
中,下面是对Qwen1.5代码初步阅读后的理解
- 位置编码:RotaryEmbedding
decoder中的FFN(实现类Qwen2MLP):激活函数使用了GLU的变体SiLU(Swish)激活函数
- 注意力层:
- 注意力机制有三种实现方式——手动实现、基于FlashAttention2、基于SDPA(torch.nn.functional.scaled_dot_product_attention)
- 实现了三种类型的注意力机制:MHA、MQA、GQA
-
decoder层:输入先使用RMSNorm,对注意力层进行残差连接后的输出使用RMSNorm,然后再输入给全连接层
-
掩码:causal mask结合输入的attention mask(区分实际输入和padding输入)
-
CausalLM:在最后的decoder层后加上全连接层
待完善。。。
这篇关于通义千问Qwen1.5(Beta Version of Qwen2)代码理解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!