今天我们来分析和对比一下目前比较流行的几个开源LLM在模型结构上有什么区别,这里挑选的openai的gpt2、开源鼻祖llama、国内的代表qwen2、欧洲的代表号称效果很好的模型mistral、和号称完全开源的模型olmo。这边文章首先从gpt2开始分析,对比gpt2和trainsformer结构的区别,再对比gpt2到llama的演变,最后横向对比LLM时代llama、qwen2、mistral和olmo模型结构的区别。
一、gpt2和transformer结构的区别
都说gpt是把transformer的decoder单独拿出来的结构,这里根据文章中和gpt2的源码对比两个模型结构的区别。
首先对比模型的整体结构,可以看到gpt2和transformer的decoder部分基本相同,就是每个block将与encoder的交叉注意力去掉了,然后加上了一些dropout的操作。接下来看看每个block内部有没有区别。
上图是每个block内容的结构对比,可以看到与transformer的decoder相比,gpt2的每个block将归一化的位置进行了修改。之前是attention和mlp后面进行归一化,gpt2是在attention和mlp前面进行了归一化处理。这里一个理由是:“同一设置之下,Pre Norm结构往往更容易训练,但最终效果通常不如Post Norm”(https