基于 Llama 的模型都有哪些?有什么细微的差异?

在这里插入图片描述

问题

基于 Llama 的模型都有哪些?有什么细微的差异?

Llama 生态

现在的模型架构基本都是 Llama 了。即使本来也有一些自己独创的结构,但是随着 Llama 生态环境的日趋统一,也都被迫向 Llama 低头了,不然没人适配你的特殊架构,自然就不带你玩了。比如 GLM 之前属于 Prefix LM,但是现在也变成 Llama 类似了。

虽然大家都长的很像,但是细微之处还是有些不太一样。今天就聊聊跟 Llama 很像的模型之间的细微差异。

Llama 目前有3代,先看一下 Llama 自己的变化,然后再以 Llama 为基准看一下其他模型与 Llama 的不同。

Llama 1 2 3

Llama 1

Llama 1 的架构是基于 GPT 来的,做了如下的升级:

  • 采用了 Pre-RMSNorm

  • 把 Gelu 改成了 SwiGLU

  • 位置编码改成了 RoPE

需要注意的是,这些内容都不是 Meta 首创的,但是 Meta 的 Llama 团队将他们组合到了一起并且取得了开源的 SOTA 效果。至于闭源的,那肯定早都用了。

其结构如下所示(Llama 7B):

    `LlamaForCausalLM(         (model): LlamaModel(           (embed_tokens): Embedding(32000, 4096, padding_idx=0)           (layers): ModuleList(             (0-31): 32 x LlamaDecoderLayer(               (self_attn): LlamaAttention(                 (q_proj): Linear(in_features=4096, out_features=4096, bias=False)                 (k_proj): Linear(in_features=4096, out_features=4096, bias=False)                 (v_proj): Linear(in_features=4096, out_features=4096, bias=False)                 (o_proj): Linear(in_features=4096, out_features=4096, bias=False)                 (rotary_emb): LlamaRotaryEmbedding()               )               (mlp): LlamaMLP(                 (gate_proj): Linear(in_features=4096, out_features=11008, bias=False)                 (up_proj): Linear(in_features=4096, out_features=11008, bias=False)                 (down_proj): Linear(in_features=11008, out_features=4096, bias=False)                 (act_fn): SiLU()               )               (input_layernorm): LlamaRMSNorm((4096,), eps=1e-06)               (post_attention_layernorm): LlamaRMSNorm((4096,), eps=1e-06)             )           )           (norm): LlamaRMSNorm((4096,), eps=1e-06)           (rotary_emb): LlamaRotaryEmbedding()         )         (lm_head): Linear(in_features=4096, out_features=32000, bias=False)       )`

在这里插入图片描述

Llama 2

Llama2 和 Llama1 结构基本相同,但是在更大的模型上(34B和70B) 采用了 grouped-query attention,主要是为了加速。

还有就是将上下文从 2048 扩展到了 4096.

Llama 3

Llama3 做了如下改变

  • GQA 变成标配。

  • 上下文 从 4096 扩展到了 8192

  • 词表大小从 32k 变成了 128k。前两代都是基于 SentencePiece 的,Llama 3 直接采用了 Openai 的 tiktoken。因为 tiktoken 用 rust 进行了底层的深度优化,效率比其他家要好很多。

Baichuan 系列

Baichuan 1

Baichuan 1 可以说是完全复用了 Llama 1 的架构。把权重的名字改一改可以完全用 baichuan 的代码来加载 llama 的权重。具体怎么修改的代码放在付费内容了,感兴趣可以看看。

有如下的差异:

  • llama 的 qkv 三个权重矩阵,在 baichuan 里变成了一个矩阵,相当于 qkv concat 起来了。

  • 扩充了 llama 的词表,加入了中文,词表大小为 64k,llama 1 为 32k。

  • 上下文为 4096, llama 1 为 2048.

Baichuan 2

Baichuan 2 的架构在 Llama 2 的基础上做了一些创新。

  • 在 lm_head 模块加了一个 norm,论文中说是可以提升效果

  • 在 13B 的模型上采用了 Alibi 位置编码。

  • 词表从 64k 扩充到了 125,696

Baichuan 3 & 4

没有开源。

Yi

yi 的架构和 llama2 一样。需要注意的是 llama2 只在更大的模型上使用了 GQA, 但是 Yi 在所有系列都用了。

在经历过一些开源协议的质疑之后,现在 yi 的模型可以用 LlamaForCausalLM 加载了

Qwen

Qwen 1

Qwen 1 和 Llama 1 的区别如下:

  • qkv 矩阵和 baichuan 类似,变成了一个 concat 后的大矩阵。

  • 这个 qkv 的矩阵有 bias,这一点和大多数模型都不一样。这是因为苏剑林的一篇文章,认为加入 bias 可以提高模型的外推能力:https://spaces.ac.cn/archives/9577

  • 词表大小为:151936

  • 训练的长度是2048, 但是通过一些外推手段来扩展长度。

Qwen 1.5

其实 Qwen 1.5 开始,比起 Llama 就多了很多自己的东西,只不过 Qwen 1 仍然和 Llama 很相似,所以这里也一并写一下吧。

1.5 的版本更像是在 1 的基础上做了很多扩展,重点如下:

  • 扩展长度到 32K

  • sliding window attention 和 full attention 的混合

  • 32B 的模型尝试了使用 GQA

  • tokenizer 针对代码做了一些优化。

Qwen 2

Qwen 2 包含了 1.5 的所有改变。和 llama 2 的区别:

  • qkv 矩阵有 bias

  • 全尺寸使用了 GQA

  • 上下文扩展为 32K

  • 采用了 Dual Chunk Attention with YARN

  • 还有一点就是在同等尺寸上,Qwen 2 相对于 1.5 和 1,将 MLP 模块的 hidden size 变大了,其他模块的 hidden size 变小了。以提高模型的表达的记忆能力。

  • 词表又扩充了一点点。

ChatGLM

GLM 最开始的时候采用的是 Prefix LM,但是后来也都改成 Decoder Only LM 了。

所以虽然 GLM 要早于 Llama,但是最后还是和 Llama 变得很像。上面提到的其实最像 Qwen 1.

所以也说一下与 Llama 的区别:

  • qkv 矩阵和 baichuan 类似,变成了一个 concat 后的大矩阵。

  • 这个 qkv 的矩阵有 bias。

MiniCPM

目前已经转战 size 略小一点的模型,也取得了很不错的效果。

我粗看其架构应该和 llama 3 差不多,区别:

  • 采用了 Weight Tying

  • 整体框架采用了 deep and thin 的结构。

有个细节是,我看论文里写的词表大小为:122,753, 似乎有点非主流。因为一般都需要设置成 8 或者64 的倍数。

Gemma

我要说 Gemma 是基于 Llama 的,Google 肯定是不承认的。

Google 有不承认的底气,毕竟 Transformers 是人家搞出来的, GLU 也是人家的,MQA 和 GQA 也是人家搞出来的。

最终发现 Llama 中除了 Pre-RMSNorm 和 RoPE,其他都是 Google 的成果。只能说 Google 真的是 “斗宗强者,恐怖如斯”。

但是最后的架构和 Llama 其实还是很像。区别如下:

Gemma 1

  • MLP 的激活采用了 GeGLU 而不是 SwiGLU

  • 采用了 MHA。但是 2 代还是换成了 GQA

  • 使用了 Weight Tying

Gemma 2

  • MLP 的激活采用了 GeGLU 而不是 SwiGLU

  • 融合了 Local and Global Attention

  • 使用了 Weight Tying

零基础如何学习大模型 AI

领取方式在文末

为什么要学习大模型?

学习大模型课程的重要性在于它能够极大地促进个人在人工智能领域的专业发展。大模型技术,如自然语言处理和图像识别,正在推动着人工智能的新发展阶段。通过学习大模型课程,可以掌握设计和实现基于大模型的应用系统所需的基本原理和技术,从而提升自己在数据处理、分析和决策制定方面的能力。此外,大模型技术在多个行业中的应用日益增加,掌握这一技术将有助于提高就业竞争力,并为未来的创新创业提供坚实的基础。

大模型典型应用场景

AI+教育:智能教学助手和自动评分系统使个性化教育成为可能。通过AI分析学生的学习数据,提供量身定制的学习方案,提高学习效果。
AI+医疗:智能诊断系统和个性化医疗方案让医疗服务更加精准高效。AI可以分析医学影像,辅助医生进行早期诊断,同时根据患者数据制定个性化治疗方案。
AI+金融:智能投顾和风险管理系统帮助投资者做出更明智的决策,并实时监控金融市场,识别潜在风险。
AI+制造:智能制造和自动化工厂提高了生产效率和质量。通过AI技术,工厂可以实现设备预测性维护,减少停机时间。

AI+零售:智能推荐系统和库存管理优化了用户体验和运营成本。AI可以分析用户行为,提供个性化商品推荐,同时优化库存,减少浪费。

AI+交通:自动驾驶和智能交通管理提升了交通安全和效率。AI技术可以实现车辆自动驾驶,并优化交通信号控制,减少拥堵。


这些案例表明,学习大模型课程不仅能够提升个人技能,还能为企业带来实际效益,推动行业创新发展。

学习资料领取

如果你对大模型感兴趣,可以看看我整合并且整理成了一份AI大模型资料包,需要的小伙伴文末免费领取哦,无偿分享!!!
vx扫描下方二维码即可
加上后会一个个给大家发

在这里插入图片描述

部分资料展示

一、 AI大模型学习路线图

整个学习分为7个阶段
在这里插入图片描述

二、AI大模型实战案例

涵盖AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,皆可用。
在这里插入图片描述

三、视频和书籍PDF合集

从入门到进阶这里都有,跟着老师学习事半功倍。
在这里插入图片描述

在这里插入图片描述

四、LLM面试题

在这里插入图片描述

如果二维码失效,可以点击下方链接,一样的哦
【CSDN大礼包】最新AI大模型资源包,这里全都有!无偿分享!!!

😝朋友们如果有需要的话,可以V扫描下方二维码联系领取~
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值