【大模型】llama系列模型基础

前言:llama基于transformer架构,与GPT相似,只用了transformer的解码器部分。本文主要是关于llama,llama2和llama3的结构解读。

目录

  • [1. llama](#1. llama)
    • [1.1 整体结构](#1.1 整体结构)
    • [1.2 RoPE](#1.2 RoPE)
    • [1.3 SwiGLU 激活函数](#1.3 SwiGLU 激活函数)
  • [2. llama2](#2. llama2)
    • [2.2 GQA架构](#2.2 GQA架构)
    • [2.3 RLHF](#2.3 RLHF)
  • [3. llama3](#3. llama3)
  • 参考文献

1. llama

1.1 整体结构

由self-attention和mlp堆叠形成,相比较transformer结构主要区别有三个:

  • 位置编码:transformer使用的绝对位置编码,llama使用的RoPE(旋转位置编码),对Q和K使用
  • 归一化: transformer使用的layernorm在子层输出后,llama使用的RMSNorm 归一化函数,对子层的输入进行了归一化。pre-layer-norm使得训练更稳定,但是post-layer-norm使得模型具有更强的表达力。
  • 激活函数:用 SwiGLU 激活函数替换 ReLU 非线性,以提高性能。

1.2 RoPE

RoPE的目标是找到一种函数,实现以下功能:

  • 推导
    以二维平面为例,m和n为绝对位置, θ {\theta} θ可以由以下公式得到:

    d为词向量维度

论文中提出了一种形式如下:

f q 和 f k {f_q和f_k} fq和fk可以表示为:

最终:

扩展到多维:

Rope最终公式:

  • 优势:相对于绝对位置编码,可以更好的捕捉相对位置信息。相邻位置的编码之间有一定的相似性,而远离位置的编码之间有一定的差异性。

1.3 SwiGLU 激活函数

结合了GLU和SiLU的优点。

  • 表达能力更强

    SwiGLU 通过在激活函数前引入门控机制(GLU),允许模型在特定条件下选择性地激活或抑制某些神经元,从而增强模型的非线性表达能力。这对于处理复杂的数据模式特别有效。

  • 梯度流动更稳定

    SwiGLU 在使用 SiLU 激活函数时,由于其平滑的曲线和非饱和性质,有助于保持稳定的梯度流动,避免梯度消失或爆炸的情况。这使得在训练深度神经网络时,模型能够更容易地收敛。

  • 适应性更强

    SwiGLU 的门控机制使得模型可以根据输入特征的不同,自适应地调整激活的强度。这种灵活性有助于在不同的输入条件下,模型能够选择最优的特征表示,从而提高整体性能。

  • 提高计算效率

    SwiGLU 的设计相对简单,计算复杂度较低,因此在大型模型或需要高计算效率的场景中,能够提供较好的性能提升,同时不会显著增加计算成本。

2. llama2

包含7B、13B和70B。其中,7B和13B沿用了Llama 1的经典架构,而70B模型则采用了创新的分组查询注意力(GQA)架构,相较于Llama 1,Llama 2的预训练语料增加了40%。整体结构基本与llama1相似,但是新增了GQA架构,与llama1相比主要优势:

  • 扩展上下文长度:Llama 2 模型提供 4,096 个令牌的上下文长度,是 LLaMa 1 的两倍。 上下文长度(或上下文窗口)是指模型在推理(即生成文本或正在进行的对话)期间"记住"的最大令牌数。 这样,自然语言就更加复杂,交流也更加连贯流畅。
  • 提高可访问性:LLaMa 1 专为研究用途而发布,而 Llama 2 可供任何组织(活跃用户少于 7 亿)使用。
  • 更强大的训练:Llama 2 使用增加 40% 的数据进行预训练,增强其知识库和上下文理解。 此外,与 LLaMa 1 不同,Llama 2 聊天模型使用基于人类反馈的强化学习 (RLHF) 进行微调,有助于更好地将模型响应与人类期望保持一致。

2.2 GQA架构

一种在大型语言模型 (LLM) 中的多查询注意力 (MQA) 和多头注意力 (MHA) 之间进行插值的方法,它的目标是在保持 MQA 速度的同时实现 MHA 的质量。

  • MQA

    让所有的头之间共享同一份 K 和 V矩阵,每个头正常的只单独保留了一份 Q参数,从而大大减少 Key 和 Value 矩阵的参数量。

  • MHA

    transformer中的模块,将Q,K,V分成多组,最后拼接,每个头的K,V矩阵不共享。

  • GQA

    Q分成N组,每个组共享一个K和V

2.3 RLHF

核心思想:训练阶段,如果直接用人的偏好(或者说人的反馈)来对模型整体的输出结果计算reward或loss,显然是要比上面传统的"给定上下文,预测下一个词"的损失函数合理的多。

主要包含三个步骤:

  1. 收集样本预训练模型
    常规的有监督训练
  2. 训练奖励模型
    用多个模型(可以是初始模型、finetune模型和人工等等)给出问题的多个回答,然后人工给这些问答对按一些标准(可读性、无害、正确性blabla)进行排序(打分的话标注员差异太大),用排序数据训练一个奖励模型/偏好模型来打分(reward model)。对响应进行排名多半比编写响应更简单。
  3. 训练强化学习策略,微调 LM
    用强化学习做LM训练的一种思路是用Policy Gradient做,这一块OpenAI用的是他们在17年提出的PPO算法,即Proximal Policy Optimization。

3. llama3

具有8B和70B,模型架构与llama2基本没区别,但是改进了tokinizer,对长文本的处理变快。由sentencepiece换成了tiktoken,这与GPT4 保持一致。同时,词表大小由32k扩展到了128k。

参考文献

1\] [十分钟读懂旋转编码(RoPE)](https://blog.csdn.net/c9Yv2cf9I06K2A9E/article/details/132593526#:~:text=%E6%80%BB%E7%BB%93%E6%9D%A5%E8%AF%B4%EF%BC%8CRoPE%20%E7%9A%84%20self-attention%20%E6%93%8D%E4%BD%9C%E7%9A%84%E6%B5%81%E7%A8%8B%E6%98%AF%EF%BC%9A%E5%AF%B9%E4%BA%8E%20token%20%E5%BA%8F%E5%88%97%E4%B8%AD%E7%9A%84%E6%AF%8F%E4%B8%AA%E8%AF%8D%E5%B5%8C%E5%85%A5%E5%90%91%E9%87%8F%EF%BC%8C%E9%A6%96%E5%85%88%E8%AE%A1%E7%AE%97%E5%85%B6%E5%AF%B9%E5%BA%94%E7%9A%84%20query%20%E5%92%8C,%E4%B8%A4%E4%B8%A4%E4%B8%80%E7%BB%84%20%E5%BA%94%E7%94%A8%E6%97%8B%E8%BD%AC%E5%8F%98%E6%8D%A2%EF%BC%8C%E6%9C%80%E5%90%8E%E5%86%8D%E8%AE%A1%E7%AE%97%20query%20%E5%92%8C%20key%20%E4%B9%8B%E9%97%B4%E7%9A%84%E5%86%85%E7%A7%AF%E5%BE%97%E5%88%B0%20self-attention%20%E7%9A%84%E8%AE%A1%E7%AE%97%E7%BB%93%E6%9E%9C%E3%80%82) \[2\] [从零实现ChatGPT------RLHF技术笔记](https://zhuanlan.zhihu.com/p/591474085)

相关推荐
try2find2 天前
安装llama-cpp-python踩坑记
开发语言·python·llama
西西弗Sisyphus3 天前
LLaMA-Factory 单卡后训练微调Qwen3完整脚本
微调·llama·llama-factory·后训练
顾道长生'3 天前
(Arxiv-2024)自回归模型优于扩散:Llama用于可扩展的图像生成
计算机视觉·数据挖掘·llama·自回归模型·多模态生成与理解
Zhijun.li@Studio13 天前
【LLaMA-Factory 实战系列】二、WebUI 篇 - Qwen2.5-VL 多模态模型 LoRA 微调保姆级教程
人工智能·自然语言处理·llama·多模态大模型
1213413 天前
LLM:重构数字世界的“智能操作系统”
gpt·aigc·ai编程·llama·gpu算力
冷雨夜中漫步21 天前
Java中如何使用lambda表达式分类groupby
java·开发语言·windows·llama
扫地的小何尚22 天前
全新NVIDIA Llama Nemotron Nano视觉语言模型在OCR基准测试中准确率夺冠
c++·人工智能·语言模型·机器人·ocr·llama·gpu
CFAteam23 天前
DeepSeek AI功能演示:如何生成Verilog脚本
人工智能·ai·fpga开发·llama
Tadas-Gao25 天前
从碳基羊驼到硅基LLaMA:开源大模型家族的生物隐喻与技术进化全景
人工智能·机器学习·大模型·llm·llama
Run_Clover25 天前
llama-factory微调大模型环境配置避坑总结
llama