技术专栏|LLaMA家族——模型架构

LLaMA的模型架构与GPT相同,采用了Transformer中的因果解码器结构,并在此基础上进行了多项关键改进,以提升训练稳定性和模型性能。LLaMA的核心架构如图 3.14 所示,融合了后续提出的多种优化方法,这些方法也在其他模型(如 PaLM)中得到了应用。

图片

图3.14 LLaMA的模型架构示意图

模型有以下主要特点:

1.前置的归一化层(Pre-Normalization)为增强训练稳定性,LLaMA 采用前置归一化策略,即在每个 Transformer 子层的输入之前进行归一化,而非传统的后置归一化。

2.SwiGLU激活函数和降维在前馈层(FFN)中采用用SwiGLU激活函数,替代传统的ReLU,提升了非线性表达能力和训练稳定性。前馈层维度减少为²⁄₃ 4d,其表达式down(up(x))×SwiGLU(gate(x)),其中downupgate都是线性层。

3.旋转式位置编码(RoPE在查询(Q)和键(K)上应用旋转式位置编码,以增强模型对相对位置信息的感知能力。

前置归一化层详解

归一化操作可以协调在特征空间上的分布,更好地进行梯度下降。在神经网络中,特征经过线性组合后,还要经过激活函数,如果某个特征数量级过大,在经过激活函数时,就会提前进入它的饱和区间(例如sigmoid激活函数),即不管如何增大这个数值,它的激活函数值都在1附近,不会有太大变化,这样激活函数就对这个特征不敏感。在神经网络用SGD等算法进行优化时,不同量纲的数据会使网络失衡,变得不稳定。

归一化的方式主要包括以下几种方法:批归一化(BatchNorm)、层归一化(LayerNorm)、实例归一化(InstanceNorm)、组归一化(GroupNorm)。归一化的不同方法对比如图3.15所示,图中N表示批次,C表示通道,HW表示空间特征。

图片

图3.15 归一化的不同方法对比

1.BatchNorm:在批次方向做归一化,计算N×H×W的均值,BatchNorm的主要缺点是对批次的大小比较敏感,对小的批次大小效果不好;由于每次计算均值和方差是在一个批次上,所以如果批次太小,则计算的均值、方差不足以代表整个数据分布;同时,对于RNN来说,文本序列的长度是不一致的,即RNN的深度不是固定的,不同的时间步需要保存不同的统计特征,可能存在一个特殊序列比其他序列长很多的情况,这样在训练时计算很麻烦。

2.LayerNorm:在通道方向做归一化,计算C×H×W的均值,LayerNorm中同层神经元输入拥有相同的均值和方差,不同的输入样本有不同的均值和方差,所以,LayerNorm不依赖于批次的大小和输入序列的深度,因此对于RNN的输入序列进行归一化操作很方便,而且作用明显。

3.InstanceNorm:一个通道内做归一化,计算H×W的均值,主要用在图像的风格化迁移;因为在图像风格化中,生成结果主要依赖于某个图像实例,所以对整个批次归一化不适合图像风格化中,因而对H×W做归一化,可以加速模型收敛,并且保持每个图像实例之间的独立。

4.GroupNorm:将通道方向分组,然后每个组内做归一化,计算(C//G)HW的均值,G表示分组的数量;这样与批次大小无关,不受其约束。当批次大小小于16时,可以使用这种归一化。

5.SwitchableNorm:将BatchNormLayerNormInstanceNorm结合,赋予权重,让网络自己学习归一化层应该使用什么方法。其使用可微分学习,为一个深度网络中的每一个归一化层确定合适的归一化操作。

旋转位置编码详解

旋转位置编码(RotaryPositionEmbeddingRoPE)是一种将相对位置信息融入自注意力机制的位置编码方法,能够提升Transformer架构的表达能力和外推性能。受GPTNeo的启发,LLaMA放弃了传统的绝对位置编码,而采用旋转位置编码,这种方式已成为当前主流大模型中最常用的相对位置编码方案之一。

ROPE的核心优势在于提升模型外推能力——即在训练与推理时输入长度不一致的情况下仍具备良好的泛化性能。例如,若模型训练时仅见过512token的文本,传统绝对位置编码方法在推理超过该长度时可能性能骤降,而RoPE能自然延展到更长的输入序列,适应长文本和多轮对话等任务。

旋转位置编码总结如下:

1.保持相对位置信息一致性RoPE可以有效地保持位置信息的相对关系,即相邻位置的编码之间有一定的相似性,而远离位置的编码之间有一定的差异性。这样可以增强模型对位置信息的感知和利用,而这正是其他绝对位置编码方式(如正弦位置编码、学习的位置编码等)所不具备的。

2.具备强外推性RoPE可以通过旋转矩阵来生成超过预训练长度的位置编码,显著提高模型的泛化能力和鲁棒性。这是固定位置编码方式(如正弦位置编码、固定相对位置编码等)难以实现的,因为它们只能表示预训练长度内的位置,而不能表示超过预训练长度的位置。

3.计算高效,兼容线性注意力RoPE可以与线性注意力机制兼容,即不需要额外的计算或参数来实现相对位置编码。RoPE 相较于Transformer-XLXLNet等混合编码方式,具有更低的计算与内存开销。

RoPE 的实现流程简述如下:对每个 token,先计算其查询和键向量,再根据其位置信息生成对应的旋转位置编码。随后将查询和键的向量按照两两一组进行旋转变换,最后通过内积计算自注意力分数。此外,RoPE 可从二维推广至任意维度,进一步拓展其在复杂任务中的应用潜力。

图片

全文引自《开启智能对话新纪元:大规模语言模型的探索与实践》

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

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

相关文章

电脑插入多块移动硬盘后经常出现卡顿和蓝屏

当电脑在插入多块移动硬盘后频繁出现卡顿和蓝屏问题时,可能涉及硬件资源冲突、驱动兼容性、供电不足或系统设置等多方面原因。以下是逐步排查和解决方案: 1. 检查电源供电问题 问题原因:多块移动硬盘同时运行可能导致USB接口供电不足&#x…

Go 语言实现高性能 EventBus 事件总线系统(含网络通信、微服务、并发异步实战)

前言 在现代微服务与事件驱动架构(EDA)中,事件总线(EventBus) 是实现模块解耦与系统异步处理的关键机制。 本文将以 Go 语言为基础,从零构建一个高性能、可扩展的事件总线系统,深入讲解&#…

npm ERR! @biomejs/biome@1.9.4 postinstall: `node scripts/postinstall.js`

npm install 报错如下, npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! @biomejs/biome@1.9.4 postinstall: `node scripts/postinstall.js` npm ERR! Exit status 1 npm ERR! npm ERR! Failed at the @biomejs/biome@1.9.4 postinstall script. npm ERR! This is pro…

APMPlus × veFaaS 一键开启函数服务性能监控,让函数运行全程可观测

资料来源:火山引擎-开发者社区 近年来,无服务器架构(Serverless)的崛起让开发者得以从基础设施的复杂性中解放,专注于业务逻辑创新。但随着采用率提升,新的问题开始出现——函数实例的短暂生命周期、动态变…

玛哈特零件矫平机:精密制造中的平整度守护者

在精密制造、模具、冲压、钣金加工、汽车零部件、航空航天以及电子设备等众多工业领域,零件的平整度(Flatness)是一项至关重要的质量指标。微小的翘曲、扭曲或弯曲都可能导致装配困难、功能失效、外观缺陷甚至影响整机性能。为了消除零件在加…

std::make_shared简化智能指针 `std::shared_ptr` 的创建过程,并提高性能(减少内存分配次数,提高缓存命中率)

std::make_shared 是 C 标准库中的一个函数模板,用于简化智能指针 std::shared_ptr 的创建过程。引入 std::make_shared 的主要原因是提高代码的安全性、性能和可读性。以下是详细分析: 1. 安全性提升 避免显式调用 new 导致的错误 在不使用 std::make…

JDK版本如何丝滑切换

一句话总结 》》》步骤分为: 下载对应JDK配置环境变量 下载JDK 如何下载JDK这里不必多提,提出一点,就是多个版本的JDK最好放在一个文件夹里(忽略我的java文件夹,这里都是不同的jdk版本): 配置环…

Rust 通用代码生成器:莲花,红莲尝鲜版三十六,哑数据模式图片初始化功能介绍

Rust 通用代码生成器:莲花,红莲尝鲜版三十六,哑数据模式图片初始化功能介绍 Rust 通用代码生成器莲花,红莲尝鲜版三十六。支持全线支持图片预览,可以直接输出带图片的哑数据模式快速原型。哑数据模式和枚举支持图片。…

45. Jump Game II

目录 题目描述 贪心 题目描述 45. Jump Game II 贪心 正向查找可到达的最大位置 时间复杂度O(n) class Solution { public:int jump(vector<int>& nums) {int n nums.size();if(n 1)return 0;int cur_cover 0;int cover 0;int res 0;for(int i 0;i < …

model.classifier 通常指模型的分类头 是什么,详细举例说明在什么部位,发挥什么作用

model.classifier 通常指模型的分类头 是什么,详细举例说明在什么部位,发挥什么作用 在深度学习模型中,分类头(Classifier Head)是指模型末端用于完成分类任务的组件,通常是一个或多个全连接层(线性层)。它的作用是将模型提取的高层语义特征映射到具体的分类标签空间。…

机器学习+城市规划第十四期:利用半参数地理加权回归来实现区域带宽不同的规划任务

机器学习城市规划第十四期&#xff1a;利用半参数地理加权回归来实现区域带宽不同的规划任务 引言 在城市规划中&#xff0c;如何根据不同地区的地理特征来制定有效的规划方案是一个关键问题。不同区域的需求和规律是不同的&#xff0c;因此我们必须考虑到地理空间的差异性。…

Kivy的ButtonBehavior学习

Kivy的ButtonBehavior学习 ButtonBehavior 简介1、主要特点2、基本用法3、主要事件4、常用属性5、方法代码示例 文档&#xff1a;https://kivy.org/doc/stable/api-kivy.uix.behaviors.button.html#kivy.uix.behaviors.button.ButtonBehavior ButtonBehavior 简介 ButtonBeha…

WPS中将在线链接转为图片

WPS中将在线链接转为图片 文章目录 WPS中将在线链接转为图片一&#xff1a;解决方案1、下载图片&#xff0c;精确匹配&#xff08;会员功能&#xff09;2、将在线链接直接转为图片 一&#xff1a;解决方案 1、下载图片&#xff0c;精确匹配&#xff08;会员功能&#xff09; …

API:解锁数字化协作的钥匙及开放实现路径深度剖析

API:解锁数字化协作的钥匙及开放实现路径深度剖析 一、API 的概念与本质 (一)定义与基本原理 API(Application Programming Interface,应用程序编程接口)是一组定义、协议和工具,用于构建和集成软件应用程序。它如同一个精心设计的合约,详细规定了软件组件之间相互交…

Azure 虚拟机端口资源:专用 IP 和公共 IP Azure Machine Learning 计算实例BUG

## 报错无解 找不到Azure ML 计算实例关联的 NSG .env 文件和 ufw status&#xff1a; .env 文件中 EXPOSE_NGINX_PORT8080 是正确的&#xff0c;它告诉 docker-compose.yaml 将 Nginx 暴露在宿主机的 8080 端口。 sudo ufw status 显示 Status: inactive&#xff0c;意味着宿…

深入理解Python协程:async def、async for、await、yield详解

前言 在现代编程中&#xff0c;异步编程已成为提高程序效率和性能的重要方式。 Python 作为一种流行的编程语言&#xff0c;自然也提供了强大的异步编程支持。 本文将详细介绍 Python 中的协程&#xff0c;以及 async def、async for、await 和 yield 等关键字的使用。 协程简介…

基于功能基团的3D分子生成扩散模型 - D3FG 评测

D3FG 是一个在口袋中基于功能团的3D分子生成扩散模型。与通常分子生成模型直接生成分子坐标和原子类型不同&#xff0c;D3FG 将分子分解为两类组成部分&#xff1a;官能团和连接体&#xff0c;然后使用扩散生成模型学习这些组成部分的类型和几何分布。 一、背景介绍 D3FG 来源…

写一个shell脚本,把局域网内,把能ping通的IP和不能ping通的IP分类,并保存到两个文本文件里

写一个shell脚本&#xff0c;把局域网内&#xff0c;把能ping通的IP和不能ping通的IP分类&#xff0c;并保存到两个文本文件里 脚本1 #!/bin/bash #定义变量 ip10.1.1 #循环去ping主机的IP for ((i1;i<10;i)) doping -c1 $ip.$i &>/dev/null[ $? -eq 0 ] &&am…

如何提升企微CRM系统数据的准确性?5大核心策略详解

在数字化客户管理时代&#xff0c;企微CRM管理系统已成为企业连接客户的核心平台。但据统计&#xff0c;73%的企业因数据质量问题导致客户分析失真、营销效果下降。本文将深入解析影响数据准确性的关键因素&#xff0c;并提供可落地的优化方案&#xff0c;帮助企业在企微CRM软件…

Unity轻松实现麦克风录音与播放

文章目录 概要录音&#xff0c;播放音频注意事项参考 概要 之前有想写一个音乐播放的器的音频功能&#xff0c;一直没做&#xff0c;最近突然想写&#xff0c;就写了 录音&#xff0c;播放 在语言模型中&#xff0c;编码器和解码器都是由一个个的 Transformer 组件拼接在一起…