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

news2024/9/19 10:48:35

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

目录

  • 1. llama
    • 1.1 整体结构
    • 1.2 RoPE
    • 1.3 SwiGLU 激活函数
  • 2. llama2
    • 2.2 GQA架构
    • 2.3 RLHF
    • 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} fqfk可以表示为:
在这里插入图片描述
在这里插入图片描述
最终:
在这里插入图片描述
扩展到多维:
在这里插入图片描述
Rope最终公式:
在这里插入图片描述

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

1.3 SwiGLU 激活函数

计算公式:sigmoid(x)*x
结合了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)
[2] 从零实现ChatGPT——RLHF技术笔记

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2082982.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【数据结构入门】排序算法之插入排序与选择排序

目录 前言 一、排序的概念及运用 1.排序的概念 2.排序的运用 3.常见排序算法 二、插入排序与选择排序 2.1插入排序 2.1.1直接插入排序 1)基本思想 2)具体步骤 3)算法特性 4)算法实现 2.1.2希尔排序 1) 基本思想 2&…

从苹果智能看端上大模型应用

将生成式人工智能集成到边缘设备本身就是一个重大挑战,我们需要在智能手机和计算机有限的计算能力和内存范围内高效地运行高级模型。确保这些模型运行迅速,而不会耗尽电池寿命或使设备过热,端上的局限增加了大模型应用的复杂性。此外&#xf…

LeetCode 算法:杨辉三角 c++

原题链接🔗:杨辉三角难度:简单⭐️ 题目 给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行。 在「杨辉三角」中,每个数是它左上方和右上方的数的和。 示例 1: 输入: numRows 5 输出: [[1],[1,1],[1,2,1]…

关于异常断电后jmeter的jmx文件异常变成二进制文件并成功恢复的心酸历程

今日下午正在编写jmeter接口,正在调试中,突然断电(由于四川高温,导致电力紧缺的很),来电了后我正常启动电脑,打开后,赶紧打开jmeter,并打开最近打开的文件,我…

『功能项目』怪物受击的动画事件【10】

我们打开上一篇09着色器光透魔法球的项目, 本章要做的事情是在场景中创建一个怪物对象,当怪物被主角的魔法球击中后播放受击动画效果,此类技术用到动画事件帧,在动画上创建脚本。 首先打开资源商店选择一个免费资源的怪物模型加载…

静态ISP代理IP适合什么应用场景?

随着互联网的普及和发展,越来越多的设备和应用需要接入网络。在这些情况下,动态主机配置协议 (DHCP) 成为一种常见的选择,因为它会自动为客户端分配 IP 地址。然而,在某些特定场景下,静态 IP 地址 (ISP) 可能是更好的选…

哈夫曼树例题

从这道题可以看出需要构建哈夫曼树 构造哈夫曼树如下 9和5最小,构成左右树,二者之和是14,放入数组,5和9从数组去掉 14和16最小,构成左右树,二者之和是30,放入数组,14和16从数组去…

基于yolov8的玻璃瓶塑料瓶检测系统python源码+onnx模型+评估指标曲线+精美GUI界面

【算法介绍】 基于YOLOv8的玻璃瓶塑料瓶检测系统是一个利用深度学习技术的先进解决方案,专注于对图像、视频或实时摄像头流中的玻璃瓶和塑料瓶进行快速准确的检测与定位。该系统通过YOLOv8这一高效的目标检测算法,能够在多种应用场景下展现卓越的性能。…

Java面试题·解释题

系列文章目录 总章 Java解释题 文章目录 系列文章目录前言面向对象编程是什么?Java的跨平台原理Java的安全性Java的三大版本Java开发运行过程什么是JVM?什么是JDK?什么是JRE?JDK,JRE,JVM三者关系概括Java的数据类型?J…

有没有比较好用的在线翻译工具?实力推荐这4款。

当我们面对外文资料时,可能需要翻阅厚重的词典,耗费大量的时间和精力。在翻译这方面,很多人都十分依赖翻译工具的,因为这些工具只需几秒钟就能给出翻译结果,提高了我们的学习和工作的效率。但是随着翻译工具越来阅读&a…

灵感枯竭?ChatGPT助你轻松完成开题报告!

在学术探索的征途中,撰写论文开题报告是一项至关重要的初步工作。这项工作不仅标志着您研究旅程的起点,也是展现您研究思路和方法论的关键时刻。ChatGPT,作为一款前沿的人工智能工具,将以其深度学习能力,成为您学术探索…

【大模型系列篇】预训练模型:BERT GPT

2018 年,Google 首次推出 BERT(Bidirectional Encoder Representations from Transformers)。该模型是在大量文本语料库上结合无监督和监督学习进行训练的。 BERT 的目标是创建一种语言模型,可以理解句子中单词的上下文和含义&…

数学问题+贪心

前言:一开始我想的就是我每次都设置一个cnt记录每次增加量,后面都增加这个量,但是发现我忘记要把这个量先加到后面的元素上面去 正确的做法就是每次 a [ i ] > a [ i − 1 ] a[ i ] > a[ i-1 ] a[i]>a[i−1] 的时候再进行处理&…

量化交易backtrader实践(四)_评价统计篇(3)_更多评价与可视化

前情回顾 在第(1)节中,我们对于backtrader内置的评价指标一个接一个的进行了实践测试,其中第10个是金融投资组合分析库 - pyfolio,当时我们先去实践了Analyzer中的pyfolio指标(其实就是03,07,08&#xff0…

Python TensorFlow入门与实践

摘要 本文旨在详细介绍如何使用Python和TensorFlow进行基本的深度学习任务。我们将从安装TensorFlow开始,逐步讲解如何创建简单的神经网络模型,并通过一个具体的示例来演示如何训练模型。此外,我们还将讨论一些高级主题,如卷积神…

“长风破浪”计划创作营圆满结营 9月10日“2024华韵视听大会”佛山见

8月26日,“长风破浪”青年音乐人唱享计划与青年影视人扶持计划创作营在佛山高明皂幕山上圆满结营。首季创作营历时一周,在高强度的创作中,20位青年影视人和音乐人群策群力,超额完成任务,共创两首歌曲、一部微短剧及一部…

Wails实现桌面番茄钟应用

0.项目背景 最近在优化自己的工作流,在工作方法上开始使用番茄钟来实现时间控制,一直觉得番茄钟的方式有点silly,直到自己用过之后才发现,番茄钟是真的好用,它不止是工作的方法,更是休息的艺术&#xff0c…

流程图还不会画?这个AI工具一键出图,还有上万模版库可选

我是娜姐 迪娜学姐 ,一个SCI医学期刊编辑,探索用AI工具提效论文写作和发表。 流程图的绘制在工作中很常见。大家在写论文、课题申请等经常会用到需要绘制技术路线、工作流程、病人筛选流程等。 有没有AI工具能够根据我们的描述文字,一键生成流…

aspeed2600 openbmc对mctp over pcie的支持分析(支持mctp over pcie)

遍搜全网,竟然关于openbmc mctp over pcie的支持说明情况了无文章,这不是一个艰难的问题,服务器BMC也不是一个超级精尖的产品,想当年分享stm32资料,都是满天飞。可能服务器市场大家对于文章上的分享并无兴趣。 此篇文…

网络安全总结②

上一篇:网络安全总结① 下一篇: 传统防火墙 传统防火墙 技术:访问控制、代理技术、会话机制 工作层次:应用层一下 防御模式:通过防御设备划分边界,基于IP/端口和特征进行判断;以隔离为基础&am…